"); //-->
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 TCPModbus 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协议的说明,很直观的了解到两者的差异,有无校验、报文头差异、以及地址码差异等。简单就了解了相关特点。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
嵌入式操作系统VxWorks中的网络通信
ModBUS协议通讯的应用
基于8位机嵌入式TCP通信速度研究方案
基于RS485接口Modbus协议的PLC与多机通讯
基于Modbus协议的触摸屏-PLC-变频器通信控制系统
ModBus协议在工业控制系统中的应用
LA1032逻辑分析仪总线分析插件之MODBUS协议分析
基于Modbus协议与MCX314的自动钻孔系统设计
Modbus协议
基于DSP和触摸屏的串行通信系统研究
基于树莓派的多串口多总线服务器设计
ModbusTCP协议及通信报文解读
基于Cortex-M3的MODBUS协议实现及其应用
基于Modbus协议与MCX314的自动钻孔系统设计
嵌入式Modbus/TCP网关的设计与实现
基于DSP和触摸屏的串行通信系统研究
Modbus应用方案
基于8位机嵌入式TCP通信速度研究方案
基于Modbus协议实现PLC与智能仪表的通讯
modbus协议参考手册
基于MODBUS协议的无线数据采集管理系统
小智科普丨一文详解Modbus协议