基于Modbus协议的数据采集系统设计
2015-09-06朱志伟
朱志伟
(长沙民政职业技术学院电子信息工程学院,湖南长沙410004)
随着工业应用通信的广泛使用,全球著名的施耐德电气有限公司开发了Modbus协议。通过此协议,控制器之间、控制器经由网络和其它设备之间可以通信。它采用主从问答方式工作,是一种真正开放、标准、免收许可费的通信协议。Modbus协议广泛应用于自动控制领域,已经成为我国工业自动化网络协议规范的国家标准之一。Modbus协议分为RTU、ASCII和TCP模式,其中前两种所用的物理硬件接口都是UART(如 RS-232,RS-485)。本文基于 Modbus协议的RTU模式,通过RS-485串行通信总线,实现工业现场的数据采集。
1.Modbus RTU模式
Modbus协议的ASCII模式是对数据的ASCII字符进行传输,而RTU模式传输的是数据的每一个字节。比如RTU模式传输一个十六进制数0xA7,ASCII模式就需要传输字符“A”和字符“7”,对应的ASCII码为0x41和0x37两个字节。所以在相同通信速率下RTU模式比ASCII模式具有更大的数据流量。因此一般情况下,工业自动化控制领域较多地采用RTU模式进行通信。

图1 RTU模式帧序列示意图
无论是ASCII模式还是RTU模式,Modbus信息以帧的方式传输,每帧有确定的起始点和结束点,使接收设备在信息的起点开始读地址,并确定要寻址的设备,以及信息传输的结束时间。RTU模式帧序列如图1所示,典型的RTU消息帧包括至少3.5个字符的开始域,1字节的地址域,0~252个字节的数据域,2个字节的CRC校验,以及至少3.5个字符的结束域。使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。传输的第一个域是从机地址;每个从机不断侦测网络总线,当第一个域(地址域)接收到,每个从机都进行解码以判断是否与本机地址匹配,地址匹配的从机将继续接收后续字节,不匹配的则重新开始等待一个新消息帧的开始。……
