1、Modbus簡介
Modbus通信協議由Modicon公司(現已經為施耐德公司并購,成為其旗下的子品牌)于1979年發明的,是全球最早用于工業現場的總線規約。由于其免費公開發行,該協議免費使用,Modbus通信協議采用的是主從通信模式(Master/Slave)。在控制方面應用廣泛,促進Modbus協議在全球得到了很好的發展。
Modbus通信協議具有多個變種,具有支持串口(主要是RS-485總線),以太網多個版本,其中最著名的是ModbusTCP,ModbusASCII和ModbusRTU三種。其中ModbusRTU與ModbusASCII均為支持RS-485總線的通信協議。
2、ModbusRTU
ModbusRTU由于其采用二進制表現形式以及緊湊數據結構,通信效率較高,應用比較廣泛。而ModbusASCII由于采用ASCII碼傳輸,并且利用特殊字符作為其字節的開始與結束標識,其傳輸效率低于ModbusRTU協議,一般只有在通信數據量較小的情況下才考慮使用ModbusASCII通信協議。在工業現場一般都是采用ModbusRTU協議,通俗來說,基于串口通信的Modbus通信協議都是指ModbusRTU通信協議。
RTU協議中的指令由功能碼(一個字節),起始地址(兩個字節),地址碼(一個字節),數據(N個字節),校驗碼(兩個字節)五個部分組成,其中數據又由數據長度(兩個字節,表示的是寄存器個數,假定內容為M)和數據正文(M乘以2個字節)組成。
而RTU協議是采用3.5個字節的空閑時間作為指令的起始和結束,一般而言,只有當從機返回數據或者主機寫操作的時候,才會有數據正文,而其他時候比如主機讀操作指令的時候,沒有數據正文,只需要數據長度即可。
3、ModbusTCP
ModbusTCP協議則是在ModbusRTU協議上加一個MBAP報文頭,由于TCP是基于可靠連接的服務,RTU協議中的CRC校驗碼就不再需要,所以在ModbusTCP協議中是沒有CRC校驗碼,這個MBAP報文頭共七個字節長度,除了第五、六個字節外,其余的基本上都是不變。
表中指令說明:從地址碼為01(TCP協議單元標志為00)的模塊0x18E(018E)寄存器地址開始寫(10)一個(0001)寄存器,具體數據長度為2個字節(02),數據正文內容為0000(0000)。
4、結語
通過上述的關于ModbusRTU協議和ModbusTCP協議的說明,很直觀的了解到兩者的差異,有無校驗、報文頭差異、以及地址碼差異等。簡單就了解了相關特點。
審核編輯:湯梓紅
-
通信協議
+關注
關注
28文章
915瀏覽量
40439 -
MODBUS
+關注
關注
28文章
1820瀏覽量
77310 -
TCP
+關注
關注
8文章
1378瀏覽量
79301 -
RTU
+關注
關注
0文章
417瀏覽量
28764
發布評論請先 登錄
相關推薦
評論