ModBus RTU與ModBus TCP通訊協議詳解

成都億佰特發表於2023-02-24

1、Modbus簡介

    由Modicon公司(現已經為施耐德公司併購,成為其旗下的子品牌)於1979年發明的,是全球最早用於工業現場的匯流排規約。由於其免費公開發行,該協議免費使用,Modbus通訊協議採用的是主從通訊模式(Master/Slave)。在控制方面應用廣泛,促進Modbus協議在全球得到了很好的發展。

Modbus通訊協議

Modbus通訊協議具有多個變種,具有支援串列埠(主要是 ),乙太網多個版本,其中最著名的是Modbus TCP , Modbus ASCII和Modbus RTU三種。其中Modbus RTU與Modbus ASCII均為支援RS-485匯流排的通訊協議。

 

2、Modbus RTU

由於其採用二進位制表現形式以及緊湊資料結構,通訊效率較高,應用比較廣泛。而ModbusASCII由於採用ASCII碼傳輸,並且利用特殊字元作為其位元組的開始與結束標識,其傳輸效率低於Modbus RTU協議,一般只有在通訊資料量較小的情況下才考慮使用Modbus ASCII通訊協議。在工業現場一般都是採用Modbus RTU協議,通俗來說,基於串列埠通訊的Modbus通訊協議都是指Modbus RTU通訊協議。

RTU協議中的指令由功能碼(一個位元組),起始地址(兩個位元組),地址碼(一個位元組),資料(N個位元組),校驗碼(兩個位元組)五個部分組成,其中資料又由資料長度(兩個位元組,表示的是暫存器個數,假定內容為M)和資料正文(M乘以2個位元組)組成。

   

Modbus RTU

而RTU協議是採用3.5個位元組的空閒時間作為指令的起始和結束,一般而言,只有當從機返回資料或者主機寫操作的時候,才會有資料正文,而其他時候比如主機讀操作指令的時候,沒有資料正文,只需要資料長度即可。

3、Modbus TCP

        Modbus TCP協議則是在Modbus RTU協議上加一個MBAP報文頭,由於TCP是基於可靠連線的服務,RTU協議中的CRC校驗碼就不再需要,所以在Modbus TCP協議中是沒有CRC校驗碼,這個MBAP報文頭共七個位元組長度,除了第五、六個位元組外,其餘的基本上都是不變。

    

Modbus TCP

表中指令說明:從地址碼為01(TCP協議單元標誌為00)的模組0x18E(01 8E)暫存器地址開始寫(10)一個(00 01)暫存器,具體資料長度為2個位元組(02),資料正文內容為00 00(00 00)。

4、結語

透過上述的關於Modbus RTU協議和Modbus TCP協議的說明,很直觀的瞭解到兩者的差異,有無校驗、報文頭差異、以及地址碼差異等。簡單就瞭解了相關特點。

 


 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016116/viewspace-2936946/,如需轉載,請註明出處,否則將追究法律責任。

相關文章