1.Modbus通訊協(xié)議概述
Modbus協(xié)議是應(yīng)用于金屬管浮子流量計電子控制器上的一種通用協(xié)議。通過此協(xié)議,控制器相互之間控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其他設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控,減少了人力成本,提高了生產(chǎn)效率。
Modbus協(xié)議采用主從工作方式,允許一臺主機和多臺從機通信,每臺從機地址由用戶設(shè)定,地址范圍為1~255。通信采用命令,應(yīng)答方式,每一-種命:令幀都對應(yīng)一-個應(yīng)答幀。命令幀由主機發(fā)出,所有從機都將收到報文,但只有被尋址的從機才會響應(yīng)命令,返回相應(yīng)的應(yīng)答幀。如果命令幀中尋址地址為0,則視為全局廣播,所有從機把它當(dāng)一條命令執(zhí)行,不返回應(yīng)答幀。
2.Modbus網(wǎng)絡(luò)通訊傳輸模式
Modbus網(wǎng)絡(luò)通訊可以設(shè)置為兩種傳輸模式:ASCII模式或RTU(RenoteTeminalUnit)模式。筆者介紹的流量計采用的是RTU模式。RTU模式主要優(yōu)點是:在同樣的波特率下可比ASCII方式傳送更多的數(shù)據(jù)。
RTU模式中字節(jié)的格式如下:
編碼系統(tǒng):8位二進(jìn)制,十六進(jìn)制0-9,A-F。
數(shù)據(jù)位:1個起始位;8個數(shù)據(jù)位;奇/偶校驗時1個停止位,無奇偶校驗時2個停止位。
錯誤校驗區(qū):循環(huán)冗余校驗(CRC)。
開始和終止都需要至少35個字符時間的停頓間隔。
3.Modbus功能碼
Modbus定義的功能代碼范圍為1~127,不同功能的設(shè)備往往只使用其中的一部分。在主機要求傳輸中,功能代碼告訴從機要執(zhí)行一一個什么動作。在從機響應(yīng)傳輸中,如果從機發(fā)送的功能代碼與主機發(fā)送的功能代碼相同,則表明從機已執(zhí)行所要求的功能;如果不同則表明從機沒有執(zhí)行所要求的功能,返回了一個錯誤信息。
金屬管浮子流量計設(shè)計在通訊過程中用03H(讀取內(nèi)部寄存內(nèi)容和10H(刷新多個寄存器內(nèi)容)兩個功能。 |