网关实现环保数采仪HJ212协议转Modbus协议项目案例

描述

一、项目背景

在环保监测领域,环保数采仪(污染源自动监控数据采集传输仪)是连接现场监测设备和环保监控平台的关键设备。数采仪通常采用国家标准的 HJ212协议 (《污染物在线监控(监测)系统数据传输标准》)进行数据上报。然而,许多企业的内部监控平台、DCS系统或SCADA系统采用的是工业领域广泛应用的 Modbus协议

本案例介绍如何使用 VFBOX系列协议转换网关 ,实现环保数采仪的HJ212协议数据转换为Modbus协议数据,从而将环保监测数据无缝接入企业现有的Modbus监控平台。


二、项目需求分析

2.1 现场设备情况

  • 环保数采仪 :支持HJ212-2017协议,通过网口(TCP方式)向指定IP和端口发送数据包
  • 监控平台 :支持Modbus TCP/RTU协议,需要读取环保监测数据
  • 监测参数 :COD(化学需氧量)、氨氮、总磷、总氮、pH值、流量等实时数据和小时/日平均数据

2.2 协议转换需求

| 项目 | 源端(采集侧) | 目标端(转发侧) |

|:---|:---|:---|

| 通信协议 | HJ212-2017 | Modbus TCP/RTU |

| 通信方式 | TCP Server(网关侦听) | TCP Server(网关作为从站)/ RTU |

| 数据类型 | 实时数据(CN=2011)、小时数据(CN=2051)、日数据(CN=2061) | 4X Holding Registers(保持寄存器) |

| 数据格式 | 字符串键值对(如w01018-Rtd=45.160) | 16位/32位数值 |


三、系统架构设计

┌─────────────────┐      HJ212协议     
┌──────────────────┐      Modbus协议     
┌─────────────────┐



│                 │ ────────────────── > │                  │ ────────────────── > │                 │



│  环保数采仪    
│   (TCP Client)      │   VFBOX网关     
│   (TCP/RTU Slave)   │  监控平台/SCADA │



│  (现场设备)    
│                     │  (协议转换)     
│                     │  (上位机系统)  
│



│                 │  发送实时/小时数据   │                  │  转发寄存器数据      │                 │



└─────────────────┘                     └──────────────────┘                     └─────────────────┘






                                              │ 配置管理






                                        ┌──────────────────┐



                                        │ 
VFBOX Studio    │



                                        │  (配置软件)     
│



                                        │  电脑IP:192.168.1.198│



                                        └──────────────────┘

四、硬件选型

根据项目需求,选择 VFBOX VB303系列网关 ,具体型号示例:

VB303-1200#128-2-1

  • VB303 :硬件批次
  • 1200 :1个网口 + 2个RS485串口
  • # :连接符
  • 128 :最多采集128个数据点位
  • 2 :采集协议为HJ212环保协议
  • 1 :转发协议为Modbus协议

选型说明 :由于HJ212协议通过网口传输,Modbus转发也通过网口(Modbus TCP)或串口(Modbus RTU),1网口配置即可满足需求。如需要同时连接其他设备,可选择2网口型号(VB303-2400)。

网关硬件参数

| 参数 | 默认值/说明 |

|:---|:---|

| 电源 | DC 9-30V |

| 网口1(Ethernet1) | 默认IP:192.168.1.199 |

| 串口(COM1/COM2) | 波特率9600,8N1 |

| 工作温度 | 工业级,-20℃~+60℃ |


五、项目实施步骤

5.1 准备工作

  1. 硬件连接
    • 使用网线将VFBOX网关网口连接到电脑网口
    • 使用网线将环保数采仪连接到网关网口(或通过交换机)
    • 给网关供电(DC 12V/24V,注意V+接正极,V-接负极)
    • 确认POW电源指示灯常亮
  2. 电脑网络设置
    • 将电脑IP地址设置为 192.168.1.198
    • 子网掩码:255.255.255.0
    • 确保电脑与网关默认IP(192.168.1.199)在同一网段
  3. 软件准备
    • 从上海仰科官网(www.onker.cn)下载中心下载 VFBOX Studio(编号1001)
    • 安装软件并以管理员权限启动
    • 下载TCP调试工具(用于测试HJ212数据)

5.2 连通性测试

  1. 打开CMD命令行,执行:
ping 192.168.1.199

确认能ping通网关。

  1. 打开VFBOX Studio软件,新建工程:
    • 工程名称:HJ212_To_Modbus
    • 设备类型:选择实际网关型号(如VB303-1200)
  2. 设置网关IP地址为192.168.1.199,点击"获取硬件ID"和"查看授权",确认通信正常。

5.3 配置网关采集HJ212数据(南向配置)

步骤1:添加HJ212采集设备

  1. 在VFBOX Studio左侧导航栏,点击"采集设备" → "新建设备"
  2. 驱动类型选择:HJ212
  3. 连接类型选择: TCP Server (网关作为服务端侦听数采仪连接)

步骤2:配置侦听端口

  • 输入网关侦听的端口号(如 10212
  • 关键 :此端口必须与环保数采仪上配置的"目标端口"完全一致
  • 绑定IP地址保持默认(0.0.0.0或网关IP)

步骤3:分析HJ212数据包,确定采集地址

在正式配置前,先用TCP调试工具测试确认数采仪发送的数据格式:

实时数据示例(CN=2011)

##0457QN=20210320163113904;ST=32;CN=2011;PW=123456;MN=81733553213013;Flag=4;CP=&&DataTime=20210320013500;w00000-Rtd=181.682,w00000-Flag=N;w21001-Rtd=45.160,w21001-Flag=N;w21011-Rtd=1.970,w21011-Flag=N;w21003-Rtd=53.131,w21003-Flag=N;w01018-Rtd=194.200,w01018-Flag=N;w01001-Rtd=7.500,w01001-Flag=N&&8F81

小时数据示例(CN=2051)

##0596QN=20210320163118367;ST=32;CN=2051;PW=123456;MN=81733553213013;Flag=4;CP=&&DataTime=20210320160000;w00000-Cou=176.923,w00000-Min=292.286,w00000-Avg=294.872,w00000-Max=297.287,w00000-Flag=N;w21001-Cou=8.151,w21001-Min=46.070,w21001-Avg=46.070,w21001-Max=46.070,w21001-Flag=N&&...

数据地址解析规则

| 数据类型 | 配置地址格式 | 示例 |

|:---|:---|:---|

| 实时数据(CN=2011) | 参数名-Rtd | w01018-Rtd(COD实时值) |

| 小时数据(CN=2051) | 参数名-类型,2051 | w01018-Avg,2051(COD小时均值) |

| 日数据(CN=2061) | 参数名-类型,2061 | 01-Avg,2061 |

注意 :HJ212协议中,w01018代表COD,w21003代表总磷,w21011代表总氮,w01001代表pH值,w00000代表流量。具体参数代码需根据环保设备实际配置确定。

步骤4:新建采集标签

以采集COD实时数据为例:

  1. 选中HJ212设备,点击"新建标签"
  2. 标签名称:COD_Realtime(建议使用英文,避免中文)
  3. 数据类型: Float (浮点型,适合小数数据)
  4. 读写控制:
  5. 地址:w01018-Rtd(采集CN=2011实时数据包中的COD值)
  6. 描述:"COD实时浓度"

常用标签配置示例

| 标签名称 | 数据类型 | 地址 | 说明 |

|:---|:---|:---|:---|

| COD_Rtd | Float | w01018-Rtd | COD实时值 |

| COD_Avg | Float | w01018-Avg,2051 | COD小时均值 |

| NH3N_Rtd | Float | w21001-Rtd | 氨氮实时值 |

| NH3N_Avg | Float | w21001-Avg,2051 | 氨氮小时均值 |

| TP_Rtd | Float | w21003-Rtd | 总磷实时值 |

| TN_Rtd | Float | w21011-Rtd | 总氮实时值 |

| PH_Rtd | Float | w01001-Rtd | pH实时值 |

| Flow_Rtd | Float | w00000-Rtd | 流量实时值 |

| Flow_Cou | Float | w00000-Cou,2051 | 流量小时累计 |

步骤5:下载并验证采集

  1. 点击工具栏"下载"按钮,将工程下载到网关
  2. 点击"查看数据",确认各标签的"状态"显示为 Good ,且"更新时间"为当前时间
  3. 如状态显示异常,使用vbtrace.exe 20381 192.168.1.199命令查看HJ212通信日志

5.4 配置Modbus转发(北向配置)

步骤1:启用Modbus Slave服务

  1. 在VFBOX Studio左侧导航栏,点击"服务" → "Modbus Slave"
  2. 根据监控平台需求选择模式:

Modbus TCP :通过网口转发,侦听端口502(默认)

Modbus RTU :通过RS485/RS232串口转发

步骤2:配置Modbus TCP参数

  • 启用:Yes
  • 站号(Unit ID): 1 (根据监控平台要求设置,范围1-247)
  • 侦听端口:502
  • 字节顺序:根据监控平台选择(默认1234)

步骤3:配置Modbus RTU参数(如需要)

  • 启用:Yes
  • 站号:1
  • 串口选择:COM1(确保未在采集设备中使用)
  • 波特率:9600(与监控平台匹配)

步骤4:添加转发数据到寄存器

将采集的HJ212数据映射到Modbus寄存器地址:

  1. 在Modbus Slave配置界面,选择 4X Holding Registers (保持寄存器,支持读写,适合模拟量)
  2. 点击"添加"按钮,选择要转发的标签
  3. 配置寄存器映射表:

| Modbus地址 | 标签名称 | 数据类型 | 监控平台读取地址 |

|:---|:---|:---|:---|

| 40001 | COD_Rtd | Float | 40001(占用2个寄存器) |

| 40003 | NH3N_Rtd | Float | 40003 |

| 40005 | TP_Rtd | Float | 40005 |

| 40007 | TN_Rtd | Float | 40007 |

| 40009 | PH_Rtd | Float | 40009 |

| 40011 | Flow_Rtd | Float | 40011 |

| 40013 | COD_Avg | Float | 40013 |

| 40015 | Flow_Cou | Float | 40015 |

寄存器地址说明

  • 4X区地址范围:40001-49999(十进制),对应协议地址0000H-270FH
  • Float类型占用2个连续寄存器(4字节)
  • 网关使用PLC地址模式,从1开始计数

步骤5:保存并下载工程

  1. 点击Modbus Slave配置界面的"保存"按钮
  2. 点击主工具栏"下载"按钮,将完整工程下载到网关
  3. 网关自动重启运行

六、监控平台对接

6.1 Modbus TCP连接参数

监控平台(如组态王、WinCC、力控等)配置以下连接参数:

| 参数 | 值 |

|:---|:---|

| 设备IP | 192.168.1.199(网关IP) |

| 端口号 | 502 |

| 协议类型 | Modbus TCP |

| 从站地址 | 1 |

6.2 寄存器读取配置示例

以读取COD实时值为例:

  • 寄存器类型:4X Holding Register(或Holding Register)
  • 起始地址:40001(或0,取决于平台地址模式)
  • 数据长度:2(Float占2个寄存器)
  • 数据类型:浮点型(注意字节顺序匹配)

6.3 字节顺序调整

如果监控平台读取的数值不正确(如显示极大或极小的异常值),需要调整字节顺序:

  1. 在VFBOX Studio中,点击HJ212采集设备 → "属性"
  2. 找到"寄存器顺序"或"字节顺序"设置
  3. 尝试调整顺序:1234 → 4321 → 3412 → 2143
  4. 重新下载工程,测试验证

七、项目调试与排错

7.1 常见问题排查

| 现象 | 排查方法 |

|:---|:---|

| 网关采集不到HJ212数据 | 1. 检查数采仪IP和端口是否与网关侦听端口一致
2. 关闭电脑防火墙和杀毒软件
3. 使用TCP调试工具确认数采仪是否发送数据
4. 检查MN号、PW密码是否匹配 |

| 监控平台读不到Modbus数据 | 1. 确认网关和监控平台网络连通(ping测试)
2. 检查Modbus站号、端口是否正确
3. 使用Modbus Poll工具测试网关从站功能
4. 查看网关授权是否支持Modbus Slave功能 |

| 数据值显示异常 | 1. 检查数据类型是否匹配(Float/Short/Word)
2. 调整字节顺序
3. 确认寄存器地址未重叠 |

| 下载工程提示Password错误 | 工程设备类型与网关实际型号不匹配,重新新建工程选择正确型号 |

| No Space错误 | 工程目录下存在无关文件,清理工程文件夹后重新下载 |

7.2 使用VBtrace诊断

打开VFBOX Studio → 工具 → 命令行,输入:

# 查看HJ212采集通信(端口20381)



vbtrace.exe 20381 192.168.1.199



 



# 查看Modbus转发通信(端口20305)



vbtrace.exe 20305 192.168.1.199

通过Trace输出可以查看:

  • 网关是否接收到HJ212数据包
  • 数据解析是否正确
  • Modbus主站是否发起请求
  • 响应数据内容

八、项目效果验证

8.1 数据采集验证

在VFBOX Studio中点击"查看数据",确认:

  • 所有标签"状态"列显示 Good
  • "更新时间"显示为当前系统时间(非1970年)
  • "当前值"显示正确的环保监测数值

8.2 数据转发验证

使用Modbus Poll(或类似工具)连接网关:

  • IP:192.168.1.199,端口:502,站号:1
  • 读取40001开始的10个寄存器
  • 确认读取到的Float值与VFBOX Studio中显示一致

8.3 系统运行稳定性

  • 网关7×24小时连续运行,无故障中断
  • 数采仪数据更新后,Modbus端实时同步(延迟<1秒)
  • 网关掉电重启后自动恢复运行,数据保持连续

九、项目总结

9.1 项目价值

  1. 协议互通 :解决了HJ212环保协议与Modbus工业协议之间的兼容性问题
  2. 数据整合 :将环保监测数据无缝接入企业现有DCS/SCADA系统
  3. 成本节约 :无需更换现有监控平台,保护既有投资
  4. 实时监管 :满足环保部门实时在线监控要求,同时实现企业内部数据统一管理

9.2 VFBOX网关优势

  • 工业级可靠性 :适应恶劣工业环境,稳定运行
  • 配置简便 :VFBOX Studio图形化配置,无需编程
  • 多协议支持 :单台网关可同时采集多种协议,转发到多个平台
  • 灵活扩展 :支持用户标签运算、数据预处理、多路转发

9.3 扩展应用

本项目方案可扩展应用于:

  • 多站点环保数据集中采集(1台网关采集多台数采仪)
  • 数据多路转发(同时转发到Modbus平台和MQTT云平台)
  • 数据预处理(使用用户标签实现量程转换、报警判断等)
  • 历史数据存储(配合SQLite/SD卡功能保存历史数据)
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分