超聲波流量計(jì)MODBUS協(xié)議調(diào)試辦法(1)
MODBUS協(xié)議的兩種格式都能支持。通過在菜單窗口M63中,選擇使用MODBUS-RTU還是MODBUS-ASCII格式。默認(rèn)狀態(tài)下支持MODBUS-ASCII格式。
超聲波流量計(jì)/熱能表只能支持MODBUS功能代碼03和06以及16三種功能代碼,分別是讀寄存器和寫單一寄存器以及數(shù)據(jù)塊寫入功能。
例如在RTU方式下讀取1號(hào)設(shè)備的流速,即讀寄存器5,6共2個(gè)寄存器,命令如下:
01 03 00 04 00 02 85 CA (十六進(jìn)制數(shù)字)
設(shè)備號(hào) 功能 起始寄存器 寄存器數(shù)目 效驗(yàn)和
其中85 CA 是16進(jìn)制數(shù)值,是按照CRC-16 (BISYNCH,多項(xiàng)式是x16 + x15 + x2 + 1屏蔽字為0A001H)循環(huán)冗余算法得到的。請(qǐng)參考MODBUS有關(guān)資料了解進(jìn)一步的算法。
返回的數(shù)據(jù)應(yīng)該為(設(shè)定狀態(tài)為模擬運(yùn)行狀態(tài),流速=1.2345678m/s):
01 03 04 06 51 3F 9E 3B 32(十六進(jìn)制數(shù)字)
設(shè)備號(hào) 功能 數(shù)據(jù)字節(jié)數(shù) 數(shù)據(jù)=1.234567 效驗(yàn)和
其中 3F 9E 06 51四個(gè)字節(jié)即為1.2345678的IEEE754格式單精度浮點(diǎn)形式。
再舉例,讀凈累積流量,REG25,REG26兩個(gè)寄存器命令如下:
01 03 00 18 00 02 44 0C(十六進(jìn)制數(shù)字)
返回?cái)?shù)據(jù)應(yīng)該為(設(shè)凈累積器=802609,其4字節(jié)16進(jìn)制表示為 00 0C 3F 31)
01 03 04 3F 31 00 0C A7 ED(十六進(jìn)制數(shù)字,A7 ED為效驗(yàn)和)
當(dāng)凈累計(jì)=0時(shí),返回?cái)?shù)據(jù)為01 03 04 00 00 00 00 FA 33
其中FA 33為效驗(yàn)和。
請(qǐng)注意上面例子中數(shù)據(jù)存放的順序。對(duì)于使用C語言解釋數(shù)值時(shí),可以使用指針直接把所需的數(shù)據(jù)放入相應(yīng)的變量地址中即可,一般常用的存放順序?yàn)榈妥止?jié)在前,例如上面的1.23456m/s例子中,3F 9E 06 51數(shù)據(jù)的存放順序?yàn)?51 06 9E 3F。
在 ASCII方式下讀取1號(hào)設(shè)備的從寄存器1開始的10個(gè)寄存器的命令如下
:01030000000AF2(回車換行)
返回?cái)?shù)據(jù)為 :0103280000000000000000000000000000000000000000D4
其中“:”是ASCII方式下的引導(dǎo)符,“F2”和“D4” 是雙字節(jié)效驗(yàn)和。求法是把除“:”及行尾的回車換行以外的所有字符順序進(jìn)行單字節(jié)加法,不計(jì)進(jìn)位,然后求補(bǔ)碼得到的。例如上面的命令中 01h+03h+00h+00h+00h+0Ah=0Eh, 其補(bǔ)碼=0-0Eh=F2。而返回?cái)?shù)據(jù)的效驗(yàn)和等于 1+3+28h=2Ch,其補(bǔ)碼=0-2Ch=D4h。
在MODBUS-RTU狀態(tài)下,每次最多能夠讀出125個(gè)寄存器。而在MODBUS-ASCII狀態(tài)下每次只能讀出61個(gè)寄存器。如果多于這些數(shù)目,流量計(jì)就會(huì)返回出錯(cuò)信息。
有關(guān)MODBUS協(xié)議細(xì)節(jié)請(qǐng)參考有關(guān)資料。
在調(diào)試MODBUS協(xié)議時(shí),推薦使用一種免費(fèi)調(diào)試軟件MODSCAN,這個(gè)軟件可以在互聯(lián)網(wǎng)上搜索到。當(dāng)出現(xiàn)問題時(shí),如果能夠接受到效驗(yàn)和正確的數(shù)據(jù)包則說明通訊本身是不存在問題的。
在默認(rèn)狀態(tài)下通信的設(shè)置速率一般是9600、無效驗(yàn)、8數(shù)據(jù)位、1個(gè)停止位。
- 上一篇:便攜式丨手持式超聲波流量計(jì)應(yīng)用在什么領(lǐng)域 2020/4/28
- 下一篇:超聲波流量計(jì)通訊故障問題解析 2020/4/13