热式气体流量计的通讯??樯杓朴胪ㄑ读?/h1>
点击次数:2466 发布时间:2021-01-25 16:18:56
摘要:西门子 SITRANS FUS 超声波流量的表头支持 4-20mA 电流信号输出和 RS232 文本日志输出,都无法与水利部门采 用 Modbus 协议的取水监测设备进行通信。针对此问题,本文自主设计并实现了一种支持Modbus 协议的通讯模块,能够实时解析 流量计表头 232 端口输出的文本信息,并将其转换成 Modbus 协议报文,与取水监测设备进行通信。该通讯??榫哂薪峁辜虻ァ⒖赏卣剐郧?、成本低的优点。
1 概述
西门子 SITRANS FUS 外夹式热式气体流量计的标准表头支 持 4- 20mA 电流信号输出,而水利部门的取水监测设备应用层 采用的是 Modbus 协议,物理层采用的是 RS485 标准,无法与SITRANS FUS 流量计的表头通信。针对这一问题,本文自主设 计并实现了一种支持 Modbus 协议的通信??椋沟贸髁考票硗酚肴∷嗖馍璞缚梢砸?Modbus 协议进行通讯。
2 系统架构
图 1 为本文设计的 Modbus 通讯模块与取水流量监测设备、 热式气体流量计表头组成的系统架构示意图。该??橥ü齋ITRANS FUS热式气体流量计表头的 232 接口与流量计表头通信;通过 485 接口,以 Modbus 协议与水利部门的取水监测设备通信。通讯??榻?strong>热式气体流量计的信息解析并封装成 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 软件发出的请求。通讯??槟诓渴褂肕odbus 的输入寄存器(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 通讯模块与取水流量监测设备、 热式气体流量计表头组成的系统架构示意图。该??橥ü齋ITRANS FUS热式气体流量计表头的 232 接口与流量计表头通信;通过 485 接口,以 Modbus 协议与水利部门的取水监测设备通信。通讯??榻?strong>热式气体流量计的信息解析并封装成 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 软件发出的请求。通讯??槟诓渴褂肕odbus 的输入寄存器(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 进行通讯。
? 2016 金湖凯铭仪表有限公司 版权所有 地址:江苏省金湖县理士大道61号
网址:http://4emd1.jjsdt.cn/ 邮编:211600
联系人:黄婧 电话:0517-86801009 手机:15195518515 网站地图 ICP备案号:苏ICP备15042790号-2
金湖凯铭仪表有限公司专业生产销售:电磁流量计,超声波流量计,涡轮流量计,涡街流量计,热式气体质量流量计,磁翻板液位计,超声波液位计,压力(差压)变送器等系列仪表。
联系人:黄婧 电话:0517-86801009 手机:15195518515 网站地图 ICP备案号:苏ICP备15042790号-2
金湖凯铭仪表有限公司专业生产销售:电磁流量计,超声波流量计,涡轮流量计,涡街流量计,热式气体质量流量计,磁翻板液位计,超声波液位计,压力(差压)变送器等系列仪表。