网关实现环保数采仪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通网关。

  2. 打开VFBOX Studio软件,新建工程:

    • 工程名称:HJ212_To_Modbus
    • 设备类型:选择实际网关型号(如VB303-1200)
  3. 设置网关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卡功能保存历史数据)
posted @ 2026-05-15 11:26  vfbox-2212  阅读(1)  评论(0)    收藏  举报