電子吊秤為何使用和Modbus Rtu而不用Modbus TCP(來源:上海本熙測控設備科技有限公司)
很多用戶訂購帶RS485接口的電子吊秤,并且要求支持MODBUS協議,但在支持協議的種類上,一般我們只提供MODBUS RTU的電子吊秤,而并不提供MODBUS TCP協議,原因是電子吊秤是標準化程度非常高的稱重產品,數據輸出格式相對簡單,一般情況下MODBUS RTU已經能滿足大部分場景下的使用需求,而MODBUS TCP相對來說與其區別在理論上不是很大,但是在硬件支持上區別很大,增加了制造成本,并且需求MODBUS電子吊秤的市場及其有限,所以很少有廠家提供MODBUS TCP協議電子吊秤。
以下就講講Modbus TCP和Modbus Rtu的區別如下:
概念不同:MODBUS是一種標準的工業控制數據交換協議,可以用RTU和ASCII兩種方式進行協議數據的互傳,RTU是通過二進制數據方式直接傳送數據,而TCP是通過將每字節二進制數據轉換為固定兩位十六進制字符串,再依次串聯在一起,以TCP碼形式進行數據傳送,一般用得最多的還是RTU方式。
通信方式不同: 以太網,對應的通信模式是MODBUS TCP。異步串行傳輸(各種介質如有線RS-232-/422/485/;光纖、無線等),對應的通信模式是MODBUS RTU或MODBUS ASCII。高速令牌傳遞網絡,對應的通信模式是Modbus PLUS。
Modbus rtu和 Modbus tcp兩個協議的本質都是 MODBUS協議,都是靠MODBUS寄存器地址來交換數據;但所用的硬件接口不一樣,Modbus RTU一般采用串口RS232C或RS485/422,而Modbus TCP一般采用以太網口?,F在市場上有很多協議轉換器,可以輕松的將這些不同的協議相互轉換 如:Intesisbox可以把 modbus rtu轉換成 Modbus tcp,實際上Modbus協議包括ASCII、RTU、TCP。
標準的Modicon控制器使用RS232C實現串行的Modbus。Modbus的ASCII、RTU協議規定了消息、數據的結構、命令和就答的方式,數據通訊采用Maser/Slave方式。
Modbus協議需要對數據進行校驗,串行協議中除有奇偶校驗外,ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗,ModbusTCP模式沒有額外規定校驗,因為TCP協議是一個面向連接的可靠協議。
TCP和RTU協議非常類似,只要把RTU協議的兩個字節的校驗碼去掉,然后在RTU協議的開始加上5個0和一個6并通過TCP/IP網絡協議發送出去即可。
Modbus RTU和Modbus TCP是Modbus通信中比較好用的兩個協議,兩者協議很相似。下面以讀取多個保持寄存器為例說一下,先說一下Modbus RTU通信,
發送格式為 從站地址 01(表示從站地址) 功能碼 03 (讀單/多個保持寄存器) 數據起始地址 00 00 (表示從40001開始) 數據個數 00 02(表示讀兩個字) CRC檢驗碼 xx xx(這里的CRC校驗碼為C4 0B)
連起來就是 01 03 00 00 00 02 C4 0B 發送過去之后,從站會返回數據,數據格式為 01 03 04 01 02 03 04 5B 3C 其中 01 從站地址 03 功能碼讀 04 數據字節數 01 02 03 04 數據內容 5B 3C CRC校驗碼。
而Modbus TCP協議則是在Modbus RTU協議上加一個MBAP報文頭,由于TCP是基于可靠連接的服務,RTU協議中的CRC校驗碼就不再需要,所以在Modbus TCP協議中是沒有CRC校驗碼,這個MBAP報文頭共七個字節長度,除了第五、六個字節外,其余的基本上都是不變。例如用Modbus TCP完成上面的操作則是發送 00 01 00 00 00 06 ff 03 00 00 00 02 即可,第五、六個字節為00 06 表示00 06之后有6個字節。具體操作見圖
返回值則是00 01 00 00 00 07 ff 03 04 01 02 03 04 。其中前7個字節是MBAP報文頭,03 功能碼讀,04 數據字節數 01 02 03 04表示數據內容。所以Modbus TCP協議其實就是Modbus RTU協議去掉CRC校驗碼,去掉前面的從站地址碼,然后在最前面加上7個字節的長度的MBAP報文頭。
Modbus TCP是基于以太網的基礎上演變來的,物理接口就決定了它通訊速率和校驗方式。
掃一掃 微信咨詢
©2024 上海本熙測控設備科技有限公司 版權所有 備案號:滬ICP備15023781號-3 技術支持:化工儀器網 sitemap.xml 總訪問量:283247 管理登陸