MODBUS協(xié)議詳解
?

1.Modbus簡(jiǎn)介
Modbus是一種串行通信協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣?Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議事實(shí)上的業(yè)界標(biāo)準(zhǔn),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。[1]?Modbus比其他通信協(xié)議使用的更廣泛的主要原因有:
1.?公開發(fā)表并且無著作權(quán)要求
2.?易于部署和維護(hù)
3.?對(duì)供應(yīng)商來說,修改移動(dòng)本地的比特或字節(jié)沒有很多限制
Modbus允許多個(gè) (大約240個(gè)) 設(shè)備連接在同一個(gè)網(wǎng)絡(luò)上進(jìn)行通信,舉個(gè)例子,一個(gè)由測(cè)量溫度和濕度的設(shè)備,并且將結(jié)果發(fā)送給計(jì)算機(jī)。在數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(SCADA)中,Modbus通常用來連接監(jiān)控計(jì)算機(jī)和遠(yuǎn)程終端控制系統(tǒng)(RTU)。

2.?Modbus功能碼說明
2.1.?數(shù)據(jù)模型說明

例:
線圈(DO):電磁閥輸出,MOSFET輸出,LED顯示等。
離散輸入(DI):撥碼開關(guān),類開關(guān)等。
保存寄存器(AO):模擬量輸出值,數(shù)據(jù)參數(shù),變量閥輸出大小,傳感器數(shù)據(jù)。
輸入寄存器(AI):模擬量輸入值,輸入性傳感器。
2.2.?寄存器和地址


2.3.?功能碼說明
?????功能碼可以分為位操作和字操作兩類。位操作的最小單位為BIT,字操作的最小單位為兩個(gè)字節(jié)。
【位操作指令】 ???讀線圈狀態(tài)01H,讀(離散)輸入狀態(tài)02H,寫單個(gè)線圈06H和寫多個(gè)線圈0FH。
【字操作指令】 ???讀保持寄存器03H,寫單個(gè)寄存器06H,寫多個(gè)保持寄存器10H。
?
2.4.??PLC地址和協(xié)議地址區(qū)別
????PLC地址可以理解為協(xié)議地址的變種,在觸摸屏和PLC編程中應(yīng)用較為廣泛。
2.5.?寄存器PLC地址
????寄存器PLC地址指存放于控制器中的地址,這些控制器可以是PLC,也可以使觸摸屏,或是文本顯示器。PLC地址一般采用10進(jìn)制描述,共有5位,其中第一位代碼寄存器類型。第一位數(shù)字和寄存器類型的對(duì)應(yīng)關(guān)系如表1所示。PLC地址例如40001、30002等。
2.6.?寄存器協(xié)議地址
????寄存器協(xié)議地址指指通信時(shí)使用的寄存器地址,例如PLC地址40001對(duì)應(yīng)尋址地址0x0000,40002對(duì)應(yīng)尋址地址0x0001,寄存器尋址地址一般使用16進(jìn)制描述。再如,PLC寄存器地址40003對(duì)應(yīng)協(xié)議地址0002,PLC寄存器地址30003對(duì)應(yīng)協(xié)議地址0002,雖然兩個(gè)PLC寄存器寄存器通信時(shí)使用相同的地址,但是需要使用不同的命令訪問,所以訪問時(shí)不存在沖突。
由于篇幅問題,將文檔PDF共享在gitee!