Modbus RTU/TCP协议解析
Posted Terabimsoft
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Modbus RTU/TCP协议解析相关的知识,希望对你有一定的参考价值。
Modbus通信协议由Modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约。由于其免费公开发行,使用该协议的厂家无需缴纳任何费用,Modbus通信协议采用的是主从通信模式(即Master/Slave通信模式),其在分散控制方面应用极其广泛,从而使得Modbus协议在全球得到了广泛的应用。
Modbus通信协议具有多个变种,其具有支持串口(主要是RS-485总线),以太网多个版本,其中最著名的是Modbus RTU,Modbus ASCII和Modbus TCP三种。其中Modbus RTU与Modbus ASCII均为支持RS-485总线的通信协议,其中Modbus RTU由于其采用二进制表现形式以及紧凑数据结构,通信效率较高,应用比较广泛。而Modbus ASCII由于采用ASCII码传输,并且利用特殊字符作为其字节的开始与结束标识,其传输效率要远远低于Modbus RTU协议,一般只有在通信数据量较小的情况下才考虑使用Modbus ASCII通信协议,在工业现场一般都是采用Modbus RTU协议,一般而言,大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。
在此我们着重讨论Modbus RTU协议,而Modbus TCP协议则是在RTU协议上加一个MBAP报文头,由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码,用一句比较通俗的话说就是:Modbus TCP协议就是Modbus RTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK.虽然这句话说得不是特别准确,但是也基本上把RTU与TCP之间的区别说得比较清楚了。
Modbus RTU 无 01 03 01 8E 00 04 25 DE
Modbus TCP 00 00 00 00 00 06 00 无 03 01 8E 00 04 无
Modbus RTU与Modbus TCP读指令对比
RTU 无 01 10 01 8E 00 01 02 00 00 A8 7E
TCP 00 00 00 00 00 09 00 无 10 01 8E 00 01 02 00 00 无
Modbus RTU与Modbus TCP写指令对比
文章转自互联网,侵删
以上是关于Modbus RTU/TCP协议解析的主要内容,如果未能解决你的问题,请参考以下文章
我的Modbus Slave/Client开发历程(Rtu/AscII/Tcp)