网关实现环保数采仪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 准备工作
-
硬件连接
- 使用网线将VFBOX网关网口连接到电脑网口
- 使用网线将环保数采仪连接到网关网口(或通过交换机)
- 给网关供电(DC 12V/24V,注意V+接正极,V-接负极)
- 确认POW电源指示灯常亮
-
电脑网络设置
- 将电脑IP地址设置为 192.168.1.198
- 子网掩码:255.255.255.0
- 确保电脑与网关默认IP(192.168.1.199)在同一网段
-
软件准备
- 从上海仰科官网(www.onker.cn)下载中心下载 VFBOX Studio(编号1001)
- 安装软件并以管理员权限启动
- 下载TCP调试工具(用于测试HJ212数据)
5.2 连通性测试
-
打开CMD命令行,执行:
ping 192.168.1.199确认能ping通网关。
-
打开VFBOX Studio软件,新建工程:
- 工程名称:HJ212_To_Modbus
- 设备类型:选择实际网关型号(如VB303-1200)
-
设置网关IP地址为192.168.1.199,点击"获取硬件ID"和"查看授权",确认通信正常。
5.3 配置网关采集HJ212数据(南向配置)
步骤1:添加HJ212采集设备
- 在VFBOX Studio左侧导航栏,点击"采集设备" → "新建设备"
- 驱动类型选择:HJ212
- 连接类型选择: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实时数据为例:
- 选中HJ212设备,点击"新建标签"
- 标签名称:
COD_Realtime(建议使用英文,避免中文) - 数据类型:Float(浮点型,适合小数数据)
- 读写控制:读
- 地址:
w01018-Rtd(采集CN=2011实时数据包中的COD值) - 描述:"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:下载并验证采集
- 点击工具栏"下载"按钮,将工程下载到网关
- 点击"查看数据",确认各标签的"状态"显示为Good,且"更新时间"为当前时间
- 如状态显示异常,使用
vbtrace.exe 20381 192.168.1.199命令查看HJ212通信日志
5.4 配置Modbus转发(北向配置)
步骤1:启用Modbus Slave服务
- 在VFBOX Studio左侧导航栏,点击"服务" → "Modbus Slave"
- 根据监控平台需求选择模式:
- 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寄存器地址:
- 在Modbus Slave配置界面,选择 4X Holding Registers(保持寄存器,支持读写,适合模拟量)
- 点击"添加"按钮,选择要转发的标签
- 配置寄存器映射表:
| 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:保存并下载工程
- 点击Modbus Slave配置界面的"保存"按钮
- 点击主工具栏"下载"按钮,将完整工程下载到网关
- 网关自动重启运行
六、监控平台对接
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 字节顺序调整
如果监控平台读取的数值不正确(如显示极大或极小的异常值),需要调整字节顺序:
- 在VFBOX Studio中,点击HJ212采集设备 → "属性"
- 找到"寄存器顺序"或"字节顺序"设置
- 尝试调整顺序:1234 → 4321 → 3412 → 2143
- 重新下载工程,测试验证
七、项目调试与排错
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 项目价值
- 协议互通:解决了HJ212环保协议与Modbus工业协议之间的兼容性问题
- 数据整合:将环保监测数据无缝接入企业现有DCS/SCADA系统
- 成本节约:无需更换现有监控平台,保护既有投资
- 实时监管:满足环保部门实时在线监控要求,同时实现企业内部数据统一管理
9.2 VFBOX网关优势
- 工业级可靠性:适应恶劣工业环境,稳定运行
- 配置简便:VFBOX Studio图形化配置,无需编程
- 多协议支持:单台网关可同时采集多种协议,转发到多个平台
- 灵活扩展:支持用户标签运算、数据预处理、多路转发
9.3 扩展应用
本项目方案可扩展应用于:
- 多站点环保数据集中采集(1台网关采集多台数采仪)
- 数据多路转发(同时转发到Modbus平台和MQTT云平台)
- 数据预处理(使用用户标签实现量程转换、报警判断等)
- 历史数据存储(配合SQLite/SD卡功能保存历史数据)

浙公网安备 33010602011771号