ModBus RTU与ModBus TCP通信协议详解

1、modbus简介
modbus通信协议由modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约。由于其免费公开发行,该协议免费使用,modbus通信协议采用的是主从通信模式(master/slave)。在控制方面应用广泛,促进modbus协议在全球得到了很好的发展。
modbus通信协议具有多个变种,具有支持串口(主要是rs-485总线),以太网多个版本,其中最著名的是modbus tcp , modbus ascii和modbus rtu三种。其中modbus rtu与modbus ascii均为支持rs-485总线的通信协议。
2、modbus rtu
modbus rtu由于其采用二进制表现形式以及紧凑数据结构,通信效率较高,应用比较广泛。而modbusascii由于采用ascii码传输,并且利用特殊字符作为其字节的开始与结束标识,其传输效率低于modbus rtu协议,一般只有在通信数据量较小的情况下才考虑使用modbus ascii通信协议。在工业现场一般都是采用modbus rtu协议,通俗来说,基于串口通信的modbus通信协议都是指modbus rtu通信协议。
rtu协议中的指令由功能码(一个字节),起始地址(两个字节),地址码(一个字节),数据(n个字节),校验码(两个字节)五个部分组成,其中数据又由数据长度(两个字节,表示的是寄存器个数,假定内容为m)和数据正文(m乘以2个字节)组成。
而rtu协议是采用3.5个字节的空闲时间作为指令的起始和结束,一般而言,只有当从机返回数据或者主机写操作的时候,才会有数据正文,而其他时候比如主机读操作指令的时候,没有数据正文,只需要数据长度即可。
3、modbus tcp
modbus tcp协议则是在modbus rtu协议上加一个mbap报文头,由于tcp是基于可靠连接的服务,rtu协议中的crc校验码就不再需要,所以在modbus tcp协议中是没有crc校验码,这个mbap报文头共七个字节长度,除了第五、六个字节外,其余的基本上都是不变。
表中指令说明:从地址码为01(tcp协议单元标志为00)的模块0x18e(01 8e)寄存器地址开始写(10)一个(00 01)寄存器,具体数据长度为2个字节(02),数据正文内容为00 00(00 00)。
4、结语
通过上述的关于modbus rtu协议和modbus tcp协议的说明,很直观的了解到两者的差异,有无校验、报文头差异、以及地址码差异等。简单就了解了相关特点。


手持吸尘器十大排名最新情况,口碑绝佳的手持吸尘器都在这里
小米或已经在测试80W无线快充
可穿戴式汗液传感器的研究进展及发展趋势
无线数字会议系统在远程工作中的应用与挑战
零序电流互感器的安裝以及特性的简单介绍
ModBus RTU与ModBus TCP通信协议详解
新规则引领希望 无人机开始涌入商业市场
realme将在明年发布100款以上的AIoT产品
NFT链游平台系统开发:NFT数字藏品交易系统开发
苹果唯一敌手:三星机海战术“围剿苹果” 力压HTC
新专利公布,福特F-150或采用全轮转向技术
CAN总线在停车场灯光智能控制系统中的应用解析
家庭影院套装的分频数
RS485接口定义图
详解AC/DC基础之正激式
疯狂的汽车降价战!行业自洽还是一降到底?让子弹飞一会儿
英特尔第八代酷睿评测,全面四核的i5
苹果第三财季实现营收533亿美元,研发费用占比高达7%
席卷全球的新冠疫情,让“AI+生物计算”备受关注
沃尔沃XC40 纯电版举行车主交车仪式