ModBUS協(xié)議通訊的應用
引言
在燃氣蓄熱式窯爐控制系統中,不僅需要將溫度、壓力、流量等模擬參數進(jìn)行采集、計算控制輸出至執行器,同時(shí)還應將火焰狀態(tài)、電磁閥狀態(tài)、換相閥狀態(tài)進(jìn)行采集,隨時(shí)控制點(diǎn)火器點(diǎn)火,并進(jìn)行周期性換相,換相周期會(huì )根據溫度的不同而變化。面對眾多參量的采集控制,需要建立時(shí)變系統和非線(xiàn)性系統的狀態(tài)空間表達式進(jìn)行復雜的多相關(guān)變量的運算,得到穩定輸出以控制相關(guān)變量。事實(shí)上,取得大量數據,建立相應數據庫,進(jìn)行數據分析,單靠低端的數字控制設備難以完成。通常的做法是信號的數據采集、濾波、簡(jiǎn)單PID運算、輸出量、及輸出量的互鎖由低端控制器完成。為了完成上述功能,我們采用ABB公司生產(chǎn)的PLC,配置如下:
名稱(chēng) 數量 描述
07KT51 1塊 50CPU,8DI,6DO
XM06B5 2塊 Extension I/O,4AI,2AO
XK08F1 1塊 Extension I/O,4DI,6DO
PLC軟件采用AC31 SOFTWARE,上位機程序用VB編制,實(shí)現與上位工控機通訊的過(guò)程中需要使用MODBUS協(xié)議。本文重點(diǎn)介紹其通訊實(shí)現的過(guò)程。
一、 MODBUS簡(jiǎn)介
MODBUS協(xié)議是應用于電子控制器的一種通訊語(yǔ)言。利用這個(gè)協(xié)議,控制器相互之間(例如485、232C等),控制器通過(guò)網(wǎng)絡(luò )(例如以太網(wǎng))和其他設備之間進(jìn)行通訊。它定義了一種控制器能認識使用的消息結構,而不管它們是通過(guò)何種網(wǎng)絡(luò )實(shí)現;描述的是控制器請求訪(fǎng)問(wèn)其它設備的過(guò)程,如何回應來(lái)自其它設備的請求,以及怎樣偵錯并記錄;制定了消息域格局和內容的公共格式。
MODBUS通訊實(shí)現有兩種傳輸模式(ASCII或RTU),ABB公司的50系列PLC產(chǎn)品采用的是RTU(遠程終端單元)模式,在消息中的每個(gè)8Bit字節包含兩個(gè)4Bit的十六進(jìn)制字符。這種方式的主要優(yōu)點(diǎn)是:在同樣的波特率下,可比ASCII方式傳送更多的數據。
1、代碼系統:
· 8位二進(jìn)制,十六進(jìn)制數0...9,A...F
· 消息中的每個(gè)8位域都是一個(gè)兩個(gè)十六進(jìn)制字符組成每個(gè)字節的位
· 1個(gè)起始位
· 8個(gè)數據位,最小的有效位先發(fā)送
· 1個(gè)奇偶校驗位,無(wú)校驗則無(wú)
· 1個(gè)停止位(有校驗時(shí)),2個(gè)Bit(無(wú)校驗時(shí))
· 錯誤檢測域 CRC(循環(huán)冗長(cháng)檢測)
2、基于RS485的RTU模式MODBUS通訊格式為:
它定義了在這些網(wǎng)絡(luò )上連續傳輸的消息段的每一位,以及決定怎樣將信息打包成消息域和如何解碼。
3、其查詢(xún)回應周見(jiàn)下圖:
(1)查詢(xún) 查詢(xún)消息中的功能代碼告之被選中的從設備要執行何種功能。數據段包含了從設備要執行功能的任何附加信息。例如功能代碼03是要求從設備讀保持寄存器并返回它們的內容。數據段必須包含要告之從設備的信息:從何寄存器開(kāi)始讀及要讀的寄存器數量。錯誤檢測域為從設備提供了一種驗證消息內容是否正確的方法。
評論