新闻中心

PRESS CENTER 纵横智控
你的位置: 首页 新闻 技术应用
纵横智控

Modbus RTU与Modbus TCP

2020-10-19 16:54:38 阅读: 发布人:纵横智控

Modbus通信协议由Modicon公司于1979年发明的,是全球最早用于工业现场的总线规约。由于其免费公开发行,使用该协议的厂家无需缴纳任何费用,因此Modbus协议在全球得到了广泛的应用。

Modbus通信协议具有多个变种,其中最常见的是Modbus RTU和Modbus TCP协议。

这两种协议很相似,下面以读取多个保持寄存器为例说明一下它们之间的区别:

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是基于以太网的基础上演变来的,物理接口就决定了它通讯速率和校验方式。

以上就是Modbus RTU与Modbus TCP协议之间的基本区别,描述得比较清楚了,希望能解决大家的疑惑。


热门产品