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