随着通信技术、集成电路技术的发展,传统的现场检测仪器的智能化和数字化程度在逐渐提升。现场总线作为开放化、数字化、多点通讯的底层控制网络,成为了近代工业控制系统的热门研究项目。将Modbus通讯协议移植到金属管浮子流量计,使得检测仪表更具智能化和网络化,同时为实现数字化组网提供了可行接口。经过调试表明移植后的Modbus通讯协议可以实现基本功能,取得了预期的效果。
浮子流量计是一种经典的变面积式流量计,具有结构简单、直观、压损小、测量范围大、运行可靠、可测中小流量及低雷诺数流量、维护方便、寿命长,对仪表前后直管段长度要求不高等优点。 金属管浮子流量计可以适应高温、高压、强腐蚀、剧毒等多种苛刻环境,较少的可动部件、便于维护,解决了生产中的许多难题。
基于 Modbus 协议的金属管浮子流量计,通过选择低功耗的微处理器和通讯芯片,将具有开放协议的 Modbus 协议移植到传统的金属管浮子流量计中,使得仪表具有现场总线组网功能。
1.金属管浮子流量计整体结构设计
图1是金属管浮子流量计整体结构图。 流量测量过程可概括为: 磁阻传感器将浮子位移信号转化为电信号送给信号处理电路, 经过信号处理电路进行放大滤波后再经由 AD 采样模块采样,最后送给微处理器处理,微处理器经过一系列处理后得到当前流量信息, 送给液晶模块显示或者通过 Modbus 模块将信号远传给其他设备使用。
2.Modbus 模块硬件电路设计
Modbus 通信协议有两种串行传输模式:ASCII 模式和 RTU(远程终端单元)模式,与这两种模式对应的帧格式是ASCII 帧格式和 RTU 帧格式。 本文采用 RTU 帧格式,其数据帧格式为如表 1 所示。
一次发送的数据帧必须是作为一个连续的数据流进行传输。Modbus 的 RTU 模式规定不同数据帧之间的间隔是 3.5 个字节通信时间以上(即起始位和结束符 T1-T2-T3-T4)。
CRC 校验是为了防止传送过程中传输错误,将自己计算的校验码与接收的校验码进行对比, 相同则确认接收正确继续解析报文,否则接收到的是误码并停止解析报文。
Modbus 通讯模块硬件电路比较简单 ,采用 MAXIM(美信 )公司的 Max3072 芯片将数字信号转换为差压信号传输,图 2 为Modbus 通讯模块硬件设计图, 通过 USART 与 CPU 进行数据交互。
Modbus 模块通过两根串口线 RX_485 和 TX_485 与 CPU相连,经过 MAX3072 后转化为差压信号在 485 总线上传输,差压信号幅值在 200mV 左右。
3.Modbus 模块软件设计
Modbus 通讯模块功能是实现流量仪表与主机或其他设备的数据交互,Modbus 模块的信号是通过 RS485 总线进行传输,其状态转换图如图 3 所示。
程序初始化结束后, 首先进入初始状态。 由于 Modbus 协议规定两次帧数据传输的时间间隔不能小于 30μs,因此在进入初始状态后会开启定时器,30μs 以后进入就绪状态。 有数据传输时,进入接收状态,帧数据接收完成后进入帧解析封装状态,若接收数据出错则进入错误状态,封装后再进入发送状态, 若数据正确则直接完成封装进入发送状态,数据发送完成后则再次进入初始状态。 Modbus 模块软件设计流程图如图 4 所示。
4.系统调试
Modbus 通讯模块验证实验的目的是验证流量仪表能否通过 485 总线实现流量信息与控制台的信息交互。 本文应用Modbus 调试助手软件模拟控制台与 Modbus 模块进行通信 ,验证 Modbus 模块能否实现正常通讯。 图 5 是 Modbus 模块与控制台通信的电路连接图。
为验证 Modbus 模块通讯的正确性, 本文通过 Modbus 调试助手往 Modbus 模块下发数据,若能返回正确数据,则证明通讯成功。 图 6 为通过 Modbus 调试助手与 Modbus 模块通讯图。
03(0x03)命令为例进行调试的测试结果图 ,03 命令的能是读取特定寄存器的值。 串口调试助手下发的数据为 “01 03 00 00 00 01 84 0A”, 其中 01 为设备地址,03 为命令码,00 00 为起始地址 ,00 01 为寄存器数量 ,84 0A 为 CRC 校验码。 Modbus 回发数据为 “01 03 02 08 10 BE 48”,其中 01为设备地址,03 为命令码,02 为字节数,08 10 为寄存的值,BE 48 为 CRC 校验码。 测试结果表明,Modbus 模块能正常工作。
5.结束语
选择低功耗的微处理器和通讯芯片, 将具有开放协议的Modbus 协议移植到传统的金属管浮子流量计中,实现了硬件平台设计和软件平台设计,调试结果表明,移植后的 Modbus 协议能够与控制台实现实时通信,使得仪表具有现场总线组网功能。