产品目录
蒸汽流量计
涡街流量计
孔板流量计
压缩空气流量计
气体流量计
热式气体质量流量计
旋进旋涡流量计
金属管浮子流量计
气体罗茨流量计
电磁流量计
涡轮流量计
椭圆齿轮流量计
水流量计
液体流量计
超声波流量计
磁翻板液位计
浮子液位计
浮球液位计
玻璃管液位计
雷达液位计
超声波液位计
投入式液位计
压力变送器
差压变送器
液位变送器
温度变送器
热电偶
热电阻
双金属温度计
相关产品
联系我们

联系电话:13655235852
服务热线:0517-86801009
公司传真:0517-86801007
公司邮箱:1464856260@qq.com
公司地址:江苏省金湖县理士大道61号
一种基于Modbus协议的压缩气体流量计通讯模块设计
摘要:西门子 SITRANS FUS 超声波流量的表头支持 4-20mA 电流信号输出和 RS232 文本日志输出,都无法与水利部门采 用 Modbus 协议的取水监测设备进行通信。针对此问题,本文自主设计并实现了一种支持Modbus 协议的通讯模块,能够实时解析 流量计表头 232 端口输出的文本信息,并将其转换成 Modbus 协议报文,与取水监测设备进行通信。该通讯模块具有结构简单、可 拓展性强、成本低的优点。
1 概述
西门子 SITRANS FUS 外夹式压缩气体流量计的标准表头支 持 4- 20mA 电流信号输出,而水利部门的取水监测设备应用层 采用的是 Modbus 协议,物理层采用的是 RS485 标准,无法与SITRANS FUS 流量计的表头通信。针对这一问题,本文自主设 计并实现了一种支持 Modbus 协议的通信模块,使得超声波流量计表头与取水监测设备可以以 Modbus 协议进行通讯。
2 系统架构
图 1 为本文设计的 Modbus 通讯模块与取水流量监测设备、 压缩气体流量计表头组成的系统架构示意图。该模块通过SITRANS FUS压缩气体流量计表头的 232 接口与流量计表头通信;通过 485 接口,以 Modbus 协议与水利部门的取水监测设备通信。通讯模块将压缩气体流量计的信息解析并封装成 Modbus报文,提供给取水监测设备读取。硬件方面,采用成熟的STM32F407 开发板,带有 232 接口和 485 接口,本文主要实现软件部分的功能。

3 软件设计
3.1 软件架构
Modbus 通讯模块的软件架构如图 2 所示,分为硬件层、硬件抽象层,中间层和应用层。中间层包括一个实时操作系统FreeRTOS 和一个针对嵌入式环境开发的轻量级 Modbus 协议库Freemodbus。在应用层,主要创建了三个任务,232_Task 负责读 取和解析流量计表头输出的文本信息,Modbus_Task 负责存储 解析后的流量计数据到 Modbus 寄存器表,以及以 Modbus 协议与取水监测设备通信,LED_Task 是一个辅助任务,主要用来提示程序运行状态。

3.2 软件流程图
图 3 为 Modbus 通讯模块的软件流程图,创建的三个任务都是以 FreeRTOS 系统的消息(Message)来驱动。

4 测试与通讯联调
Modbus 通讯模块如图 4 所示。为保证供电稳定,使用了电源切换装置给主板供电,共有主副两路 5V 电源。

在 PC 上使用权威工具测试软件 Modbus poll,作为 Modbus主机对通讯模块进行测试。通讯模块作为 Modbus 从机响应Modbus Poll 软件发出的请求。通讯模块内部使用Modbus 的输入寄存器(Input Register)存储流量计数据。Modbus Poll 发送的测试命令字节流为:01 04 00 00 0014 F0 05。其中 0x01 为 Modbus 从机地址,0x04 功能码为读取 输入寄存器命令,0x0000 为读取寄存器的起始地址,0x0014(20)为读取寄存器的个数,0xF0 0x05 为 CRC 校验码。

Modbus Poll 通讯测试结果如图 5 所示:Tx = 24140,Err =0,ID = 1,F = 04,SR = 1000ms,Log = on。 其中 ,Tx 为Modbus Poll 发送命令次数,也就是说在测试期间 Modbus Poll软件共发送读输入寄存器命令 24140 次(发送间隔为 1s,测试时间为 6.7 小时);Err 为通讯错误数,Err = 0 表明 Modbus 通讯模块正确响应次数为 24140 次(错误数为 0)。
5 结论
本文针对 FUS 压缩气体流量计无 Modbus 通讯接口,无法与取 水监测设备通讯的问题,自主设计并实现了一种基于微处理器STM32F407 的低成本 Modbus 通讯模块。在通讯模块的主控芯 片 上 移 植 了 开 源 代 码 库 FreeModbus 和 开 源 操 作 系 统FreeRTOS,实现了对流量计表头输出文本的解析,以及与Modbus 主机的通讯,从而实现了给 FUS 压缩气体流量计表头增加Modbus 通讯的功能。测试结果表明,该通讯模块工作稳定可靠,具备了在较高通讯频率下正确响应 Modbus 主机请求的能力,达到了实用要求。该通讯模块也具备一定的可拓展性,可应用 在公司其它 FUS 压缩气体流量计上,并且很容易通过 485 总线与DCS 系统或 PLC 进行通讯。
1 概述
西门子 SITRANS FUS 外夹式压缩气体流量计的标准表头支 持 4- 20mA 电流信号输出,而水利部门的取水监测设备应用层 采用的是 Modbus 协议,物理层采用的是 RS485 标准,无法与SITRANS FUS 流量计的表头通信。针对这一问题,本文自主设 计并实现了一种支持 Modbus 协议的通信模块,使得超声波流量计表头与取水监测设备可以以 Modbus 协议进行通讯。
2 系统架构
图 1 为本文设计的 Modbus 通讯模块与取水流量监测设备、 压缩气体流量计表头组成的系统架构示意图。该模块通过SITRANS FUS压缩气体流量计表头的 232 接口与流量计表头通信;通过 485 接口,以 Modbus 协议与水利部门的取水监测设备通信。通讯模块将压缩气体流量计的信息解析并封装成 Modbus报文,提供给取水监测设备读取。硬件方面,采用成熟的STM32F407 开发板,带有 232 接口和 485 接口,本文主要实现软件部分的功能。

3 软件设计
3.1 软件架构
Modbus 通讯模块的软件架构如图 2 所示,分为硬件层、硬件抽象层,中间层和应用层。中间层包括一个实时操作系统FreeRTOS 和一个针对嵌入式环境开发的轻量级 Modbus 协议库Freemodbus。在应用层,主要创建了三个任务,232_Task 负责读 取和解析流量计表头输出的文本信息,Modbus_Task 负责存储 解析后的流量计数据到 Modbus 寄存器表,以及以 Modbus 协议与取水监测设备通信,LED_Task 是一个辅助任务,主要用来提示程序运行状态。

3.2 软件流程图
图 3 为 Modbus 通讯模块的软件流程图,创建的三个任务都是以 FreeRTOS 系统的消息(Message)来驱动。

4 测试与通讯联调
Modbus 通讯模块如图 4 所示。为保证供电稳定,使用了电源切换装置给主板供电,共有主副两路 5V 电源。

在 PC 上使用权威工具测试软件 Modbus poll,作为 Modbus主机对通讯模块进行测试。通讯模块作为 Modbus 从机响应Modbus Poll 软件发出的请求。通讯模块内部使用Modbus 的输入寄存器(Input Register)存储流量计数据。Modbus Poll 发送的测试命令字节流为:01 04 00 00 0014 F0 05。其中 0x01 为 Modbus 从机地址,0x04 功能码为读取 输入寄存器命令,0x0000 为读取寄存器的起始地址,0x0014(20)为读取寄存器的个数,0xF0 0x05 为 CRC 校验码。

Modbus Poll 通讯测试结果如图 5 所示:Tx = 24140,Err =0,ID = 1,F = 04,SR = 1000ms,Log = on。 其中 ,Tx 为Modbus Poll 发送命令次数,也就是说在测试期间 Modbus Poll软件共发送读输入寄存器命令 24140 次(发送间隔为 1s,测试时间为 6.7 小时);Err 为通讯错误数,Err = 0 表明 Modbus 通讯模块正确响应次数为 24140 次(错误数为 0)。
5 结论
本文针对 FUS 压缩气体流量计无 Modbus 通讯接口,无法与取 水监测设备通讯的问题,自主设计并实现了一种基于微处理器STM32F407 的低成本 Modbus 通讯模块。在通讯模块的主控芯 片 上 移 植 了 开 源 代 码 库 FreeModbus 和 开 源 操 作 系 统FreeRTOS,实现了对流量计表头输出文本的解析,以及与Modbus 主机的通讯,从而实现了给 FUS 压缩气体流量计表头增加Modbus 通讯的功能。测试结果表明,该通讯模块工作稳定可靠,具备了在较高通讯频率下正确响应 Modbus 主机请求的能力,达到了实用要求。该通讯模块也具备一定的可拓展性,可应用 在公司其它 FUS 压缩气体流量计上,并且很容易通过 485 总线与DCS 系统或 PLC 进行通讯。