广告招募

当前位置:全球工厂网 > 技术中心 > 所有分类

Modbus tcp和Modbus rtu之间的区别

2025年12月23日 08:57:35      来源:杭州塔石物联网科技有限公司 >> 进入该公司展台      阅读量:2

分享:

Modbus rtu和Modbus tcp两个协议的本质都是MODBUS协议,都是靠MODBUS寄存器地址来交换数据;但所用的硬件接口不一样,Modbus RTU一般采用串口RS232C或RS485/422,而Modbus TCP一般采用以太网口。现在市场上有很多协议转换器,可以轻松的将这些不同的协议相互转换,塔石产品内部就可以把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通信

发送格式为 从站地址 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报文头。

版权与免责声明:
1.凡本网注明"来源:全球工厂网"的所有作品,版权均属于全球工厂网,转载请必须注明全球工厂网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。