手機(jī)訪問更快捷
更多流量 更易傳播
隨時(shí)掌握行業(yè)動(dòng)態(tài)
網(wǎng)絡(luò)課堂 行業(yè)直播
產(chǎn)品推薦:水表|流量計(jì)|壓力變送器|熱電偶|液位計(jì)|冷熱沖擊試驗(yàn)箱|水質(zhì)分析|光譜儀|試驗(yàn)機(jī)|試驗(yàn)箱
同類產(chǎn)品
水表MODBUS-RTU通訊協(xié)議
本水表使用了MODBUS-RTU通訊協(xié)議,MODBUS協(xié)議詳細(xì)定義了校驗(yàn)碼、數(shù)據(jù)序列等,這些都是特定數(shù)據(jù)交換的必要內(nèi)容。MODBUS協(xié)議在一根通訊線上使用主從應(yīng)答式連接(半雙工),這意味著在一根單獨(dú)的通訊線上信號(hào)沿著相反的兩個(gè)方向傳輸。首先,主計(jì)算機(jī)的信號(hào)尋址到一臺(tái)的終端設(shè)備(從機(jī)),然后,終端設(shè)備發(fā)出的應(yīng)答信號(hào)以相反的方向傳輸給主機(jī)。
MODBUS協(xié)議只允許在主機(jī)(PC,PLC等)和終端設(shè)備之間通訊,而不允許獨(dú)立的終端設(shè)備之間的數(shù)據(jù)交換,這樣各終端設(shè)備不會(huì)在它們初始化時(shí)占據(jù)通訊線路,而于響應(yīng)到達(dá)本機(jī)的查詢信號(hào)。
MODBUS-RTU格式無起始字符和結(jié)尾字符,但需要加等待時(shí)間,等待時(shí)間不少于3.5個(gè)字符發(fā)送時(shí)間。
(1)傳輸方式
信息傳輸為異步方式,并以字節(jié)為單位,在主機(jī)和從機(jī)之間傳遞的通訊信息是10位字格式,包含1個(gè)起始位、8個(gè)數(shù)據(jù)位(最小的有效位先發(fā)送)、無奇偶校驗(yàn)位、1個(gè)停止位。
(2)數(shù)據(jù)幀格式
地址碼 | 功能碼 | 數(shù)據(jù)區(qū) | CRC校驗(yàn)碼 |
1字節(jié) | 1字節(jié) | n字節(jié) | 2字節(jié) |
地址碼:地址碼在幀的開始部分,由一個(gè)字節(jié)(8位二進(jìn)制碼)組成,十進(jìn)制為0~255,在水表中只使用1~247,其它地址保留。這些位標(biāo)明了用戶的終端設(shè)備的地址,該設(shè)備將接收來自與之相連的主機(jī)數(shù)據(jù)。每個(gè)終端設(shè)備的地址必須是的,僅僅被尋址到的終端會(huì)響應(yīng)包含了該地址的查詢。當(dāng)終端發(fā)送回一個(gè)響應(yīng),響應(yīng)中的從機(jī)地址數(shù)據(jù)便告訴了主機(jī)哪臺(tái)終端正與之進(jìn)行通信。
功能碼:功能碼告訴了被尋址到的終端執(zhí)行何種功能。下表列出了該系列儀表用到的功能碼,以及它們的意義和功能。
功能 | 定義 | 操作 |
03H | 讀數(shù)據(jù)寄存器 | 獲得水量操作 |
05H | 閥控操作 | 閥控操作 |
01H | 讀閥門狀態(tài) | 讀閥門狀態(tài) |
數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)包含了終端執(zhí)行特定功能所需要的數(shù)據(jù)或者終端響應(yīng)查詢時(shí)采集到的數(shù)據(jù)。這些數(shù)據(jù)的內(nèi)容可能是數(shù)值、參考地址或者設(shè)置值。例如:功能碼告訴終端讀取一個(gè)寄存器,數(shù)據(jù)區(qū)則需要指明從哪個(gè)寄存器開始及讀取多少個(gè)數(shù)據(jù),內(nèi)嵌的地址和數(shù)據(jù)依照類型和從機(jī)之間的不同內(nèi)容而有所不同。
CRC校驗(yàn)碼:錯(cuò)誤校驗(yàn)(CRC)域占用兩個(gè)字節(jié),包含了一個(gè)16位的二進(jìn)制值。CRC值由傳輸設(shè)備計(jì)算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接收數(shù)據(jù)時(shí)重新計(jì)算CRC值,然后與接收到的CRC域中的值進(jìn)行比較,如果這兩個(gè)值不相等,就發(fā)生了錯(cuò)誤。
生成一個(gè)CRC的流程為:
1、預(yù)置一個(gè)16位寄存器為0FFFFH(全1),稱之為CRC寄存器。
2、把數(shù)據(jù)幀中的個(gè)字節(jié)的8位與CRC寄存器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回CRC寄存器。
3、將CRC寄存器向右移一位,位填以0,位移出并檢測(cè)。
4、如果位為0,重復(fù)第三步(下一次移位);如果位為1,將CRC寄存器與一個(gè)預(yù)設(shè)的固定值(0A001H)進(jìn)行異或運(yùn)算。
5、重復(fù)第三步和第四步直到8次移位。這樣處理完了一個(gè)完整的八位。
6、重復(fù)第2步到第5步來處理下一個(gè)八位,直到所有的字節(jié)處理結(jié)束。
7、最終CRC寄存器的值就是CRC的值。
此外還有一種利用預(yù)設(shè)的表格計(jì)算CRC的方法,它的主要特點(diǎn)是計(jì)算速度快,但是表格需要較大的存儲(chǔ)空間,該方法此處不再贅述,請(qǐng)參閱相關(guān)資料。
通信應(yīng)用格式詳解
(1)功能碼03H:讀寄存器
此功能允許用戶獲得設(shè)備采集與記錄的數(shù)據(jù)及系統(tǒng)參數(shù)。主機(jī)一次請(qǐng)求的數(shù)據(jù)個(gè)數(shù)沒有限制,但不能超出定義的地址范圍。
下面的例子是從01號(hào)從機(jī)讀1個(gè)采集到的基本數(shù)據(jù)(數(shù)據(jù)幀中每個(gè)地址占用2個(gè)字節(jié))。采集的數(shù)據(jù)為總用水量(占用4個(gè)字節(jié)),其地址為00H
主機(jī)發(fā)送 | 發(fā)送信息 | 從機(jī)返回 | 返回信息 | |||
地址碼 | 01H | 地址碼 | 01H | |||
功能碼 | 03H | 功能碼 | 03H | |||
起始地址 | 高字節(jié) | 00H | 字節(jié)數(shù) | 04H | ||
低字節(jié) | 00H | 寄存器數(shù)據(jù) | 高字節(jié) | 00H | ||
寄存器數(shù)量 | 高字節(jié) | 00H | 低字節(jié) | 12H | ||
低字節(jié) | 02H | 寄存器數(shù)據(jù) | 高字節(jié) | D6H | ||
CRC校驗(yàn)碼 | 高字節(jié) | C4H | 低字節(jié) | 87H | ||
低字節(jié) | 0BH | CRC校驗(yàn)碼 | 高字節(jié) | 44H | ||
低字節(jié) | 34H |
附:1、讀寫屬性:“R”只讀,讀參量用03H號(hào)命令;“R/W”可讀可寫,寫參量用10H號(hào)命令。禁止向未列出的或不具可寫屬性的地址寫入。
2、表的通訊地址和通訊速率出廠時(shí)給出,亦可通過本公司提供的軟件讀出。也可以通過協(xié)議設(shè)置。
3、表中所測(cè)讀數(shù)占4個(gè)字節(jié),單位為m3。高位在前,低位在后,若讀出值為0012D687H(1234567),則計(jì)量值為1234567×0.01=12345.67m3。
水表地址碼為水表上8位灰色數(shù)字的兩位。例如:水表上為42316790,modbus地址為:90
2.閥門開控制
主機(jī)發(fā)送 | 發(fā)送信息 | 從機(jī)返回 | 返回信息 | |||
地址碼 | 01H | 地址碼 | 01H | |||
功能碼 | 05H | 功能碼 | 05H | |||
起始地址 | 高字節(jié) | 00H | 高字節(jié) | 00H | ||
低字節(jié) | 00H | 起始地址 | 低字節(jié) | 00H | ||
寄存器數(shù)量 | 高字節(jié) | FFH | ||||
低字節(jié) | 00H | 寄存器數(shù)據(jù) | 高字節(jié) | FFH | ||
CRC校驗(yàn)碼 | 高字節(jié) | 89H | 低字節(jié) | 00H | ||
低字節(jié) | B2H | CRC校驗(yàn)碼 | 高字節(jié) | 44H | ||
低字節(jié) | 34H |
3.閥門關(guān)控制
主機(jī)發(fā)送 | 發(fā)送信息 | 從機(jī)返回 | 返回信息 | |||
地址碼 | 01H | 地址碼 | 01H | |||
功能碼 | 05H | 功能碼 | 05H | |||
起始地址 | 高字節(jié) | 00H | 高字節(jié) | 00H | ||
低字節(jié) | 00H | 起始地址 | 低字節(jié) | 00H | ||
寄存器數(shù)量 | 高字節(jié) | 00H | ||||
低字節(jié) | 00H | 寄存器數(shù)據(jù) | 高字節(jié) | 00H | ||
CRC校驗(yàn)碼 | 高字節(jié) | 48H | 低字節(jié) | 00H | ||
低字節(jié) | 72H | CRC校驗(yàn)碼 | 高字節(jié) | 44H | ||
低字節(jié) | 34H |
4.讀閥門狀態(tài)
主機(jī)發(fā)送 | 發(fā)送信息 | 從機(jī)返回 | 返回信息 | |||
地址碼 | 01H | 地址碼 | 01H | |||
功能碼 | 01H | 功能碼 | 01H | |||
起始地址 | 高字節(jié) | 00H | 高字節(jié) | 00H | ||
低字節(jié) | 00H | 起始地址 | 低字節(jié) | 00H | ||
寄存器數(shù)量 | 高字節(jié) | 00H | ||||
低字節(jié) | 00H | 寄存器數(shù)據(jù) | 高字節(jié) | 00H/FFH | ||
CRC校驗(yàn)碼 | 高字節(jié) | 48H | 低字節(jié) | 00H | ||
低字節(jié) | 72H | CRC校驗(yàn)碼 | 高字節(jié) | 44H | ||
低字節(jié) | 34H |
注:00H 關(guān)閥 FFH開閥
5.讀閥門異常狀態(tài)
主機(jī)發(fā)送 | 發(fā)送信息 | 從機(jī)返回 | 返回信息 | |||
地址碼 | 01H | 地址碼 | 01H | |||
功能碼 | 01H | 功能碼 | 85H | |||
起始地址 | 高字節(jié) | 00H | 高字節(jié) | 00H | ||
低字節(jié) | 00H | 起始地址 | 低字節(jié) | 00H | ||
寄存器數(shù)量 | 高字節(jié) | 00H | ||||
低字節(jié) | 00H | 寄存器數(shù)據(jù) | 高字節(jié) | 01H | ||
CRC校驗(yàn)碼 | 高字節(jié) | 48H | 低字節(jié) | 00H | ||
低字節(jié) | 72H | CRC校驗(yàn)碼 | 高字節(jié) | 44H | ||
低字節(jié) | 34H |
相關(guān)產(chǎn)品
免責(zé)聲明
客服熱線: 15024464426
加盟熱線: 15024464426
媒體合作: 0571-87759945
投訴熱線: 0571-87759942
下載儀表站APP
Ybzhan手機(jī)版
Ybzhan公眾號(hào)
Ybzhan小程序