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