电子吊秤为何使用和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一般采用以太网口。现在市场上有很多协议转换器,可以轻松的将这些不同的协议相互转换 如: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 总访问量:279462 管理登陆