目錄
簡(jiǎn)介
功能碼簡(jiǎn)述
報(bào)文解析
簡(jiǎn)介
Modbus是一種串行通訊協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)(De facto),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。 Modbus比其他通信協(xié)議使用的更廣泛的主要原因有:
1公開(kāi)發(fā)表并且無(wú)版
2易于部署和維護(hù)
3對(duì)供應(yīng)商來(lái)說(shuō),修改移動(dòng)本地的比特或字節(jié)沒(méi)有很多限制
Modbus允許多個(gè) (大約240個(gè)) 設(shè)備連接在同一個(gè)網(wǎng)絡(luò)上進(jìn)行通信,舉個(gè)例子,一個(gè)由測(cè)量溫度和濕度的裝置,并且將結(jié)果發(fā)送給計(jì)算機(jī)。在數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(SCADA)中,Modbus通常用來(lái)連接監(jiān)控計(jì)算機(jī)和遠(yuǎn)程終端控制系統(tǒng)(RTU)。
功能碼簡(jiǎn)述 報(bào)文分析
1、modbus功能碼簡(jiǎn)述
下表列出MODBUS支持的部分功能代碼:以十進(jìn)制表示。
1.1功能碼說(shuō)明
功能碼可以分為位操作和字操作兩類(lèi)。位操作的最小單位為BIT,字操作的最小單位為兩個(gè)字節(jié)。
【位操作指令】 讀線圈狀態(tài)01H,讀(離散)輸入狀態(tài)02H,寫(xiě)單個(gè)線圈06H和寫(xiě)多個(gè)線圈0FH。
【字操作指令】 讀保持寄存器03H,寫(xiě)單個(gè)寄存器06H,寫(xiě)多個(gè)保持寄存器10H。
1.2寄存器地址分配
表1.2 MODBUS寄存器地址分配
1.3寄存器種類(lèi)說(shuō)明
表1.3 MODBUS寄存器種類(lèi)說(shuō)明
2.報(bào)文解析
ModBusTcp與串行鏈路Modbus的數(shù)據(jù)域是一致的,具體數(shù)據(jù)域可以參考串行modbus。這里給出幾個(gè)ModbusTcp的鏈路解析說(shuō)明,輔助新人分析報(bào)文。
2.1數(shù)據(jù)請(qǐng)求
2.2、數(shù)據(jù)請(qǐng)求回復(fù)