现代工业有从分散管理逐步走向集中控制的趋势,其中网络协议为工业联网提供了便利。ModBus网络协议是其中的一种,以其成熟、稳定可靠、方便灵活等诸多优点广泛应用于各类控制器、仪器仪表和PLC之间的通信。磁致伸缩位移传感器经常应用于ModBus网络中,本设计实现了传感器ModBus协议接口,具有广泛的实用价值。
ModBus协议遵循主从架构(Master/Slave )。磁致伸缩位移传感器向ModBus网络发送查询信息,网络上的从设备接收查询信息,并查询消息、帧的设备地址是否是本仪器的设备地址。如果从机确认是发送给本机的查询信息,则作出相应响应,通过ModBus网络发送相关数据。否则将不作响应,主从设备消息结构图如图1所示。
信号传输以RS232、RS4221485或Modem等物理连接方式。协议规定了仪器串口波特率,停止位,校验方式等参数,同一网络上的参数应一致。挂接在ModBus网络上的仪表之间定义了消息和内容的共同格式。按照传输模式来划分,ModBus分为ASCII模式和RTU模式。ASCII模式下消息传送以需要传送字符的ASCII码形式传输。消息以冒号(:)字符为传输起始标志,以回车符作为传输结束符。在RTU模式下,协议规定消息帧之间必须有不低于3.5个字符的间隔时间,其消息帧结构如表1所示。
表中T1-T2-T3-T4是代表四个字符传送的时间间隔。本发送模式的优点是传送效率较高,适用于需要传输大量数据的场合。
从ModBus消息帧结构可以看出,设备地址为8位二进制来表示。Modbus协议还定义了常用功能代码,为通信提供参考依据。协议预留了部分功能代码,供用户自定义功能,其代码范围为65M72。本设计选用RTU传输模式,自定义6569功能代码,分别表示不同的命令功能,具体实现如图2所示。
ModBus协议为了增加数据传输的稳定性,采用了两种错误校验方法。首先对于每个字符采用奇偶校验,保证每个字节传送的正确性。其次在每帧数据结束后针对本帧数据做LRC校验或CRC校验。从设备将计算得出的校验值与接收到的校验值进行比对。校验值一致则说明接收正确,否则将向ModBus网络发送接收错误消息。