天天看點

ModbusTCP轉ModbusRTU實作思路

Modbus通訊協定在工業産品中非常常見,很多傳感器以及控制子產品,比如氣體傳感器、局放傳感器,以及電機驅動器,都通過序列槽傳輸,并且支援ModbusRTU協定。

有時候我們的控制器也許隻支援以太網總線,或者為了友善管理,通過ModbusTCP來與支援ModbuRTU的裝置配合使用這時候就需要一個方案,使得ModbusTCP資料和ModbusRTU資料能夠互相轉換。在這裡提供一個思路,已經将其轉化為實際子產品,運用到項目中。

轉發丢包率小于1/10000;

ModbusTCP轉ModbusRTU實作思路

ModbusTCP與ModbusRTU差別:

Modbus通訊協定和TCP/UDP協定的差別:

1、Modbus協定是一種已廣泛應用于當今工業控制領域的通用通訊協定。通過此協定,控制器互相之間、或控制器經由網絡(如以太網)可以和其它裝置之間進行通信。Modbus協定使用的是主從通訊技術,即由主裝置主動查詢和操作從裝置。一般将主要裝置方所使用的協定稱為Modbus Master,從裝置方使用的協定稱為Modbus Slave。典型的主裝置包括工控機和工業控制器等;典型的從裝置如PLC可程式設計控制器等。Modbus通訊實體接口可以選用序列槽(包括RS232和RS485),也可以選擇以太網口。

2、而Modbus TCP協定則是在RTU協定上加一個MBAP封包頭,由于TCP是基于可靠連接配接的服務,RTU協定中的CRC校驗碼就不再需要,是以在Modbus TCP協定中是沒有CRC校驗碼,用一句比較通俗的話說就是:Modbus TCP協定就是Modbus RTU協定在前面加上五個0以及一個6,然後去掉兩個CRC校驗碼位元組就OK.雖然這句話說得不是特别準确,但是也基本上把RTU與TCP之間的差別說得比較清楚了。

ModbusTCP轉ModbusRTU實作思路

wirshark分析modbus封包,過濾方式:mbtcp.len==3;

繼續閱讀