网关实现DNP3电表数据采集与Modbus协议转换项目案例
网关实现DNP3电表数据采集与Modbus协议转换项目案例
一、项目概述
1.1 项目背景
某一电力监控系统需要采集部署在现场的DNP3协议智能电表的实时数据,并将这些数据接入使用Modbus TCP/RTU协议的监控平台。由于电表与平台使用的通信协议不一致,因此需要部署协议转换网关,以实现数据的互通。
1.2 项目需求
| 项目要素 | 具体内容 |
|---------|---------|
| 采集设备 | DNP3协议智能电表 |
| 目标平台 | Modbus TCP/RTU监控平台(SCADA/触摸屏/PLC) |
| 采集数据 | 电压、电流、功率、电能、频率等电力参数 |
| 通信接口 | 电表:RS485/网口(DNP3);平台:RS485/网口(Modbus) |
| 实时性要求 | 数据刷新周期 ≤ 2秒 |
| 数据规模 | 单电表约20-30个数据点位 |
1.3 技术方案
本项目采用上海仰科VFBOX系列协议转换网关作为核心设备,实现如下功能:
- 南向采集:通过DNP3 Master协议采集电表数据
- 北向转发:通过Modbus Slave协议转发至监控平台
二、设备选型与硬件连接
2.1 网关选型
根据项目需求,选用了 VB303-1200#128-U-1 网关型号:
| 型号字段 | 含义 | 本项目配置 |
|---------|------|-----------|
| VB303 | 硬件批次 | VB303系列 |
| 1200 | 1个网口 + 2个RS485串口 | 满足电表串口采集 + 平台串口转发 |
| 128 | 可采集128个数据点位 | 满足单电表30点需求,预留扩展 |
| U | 采集协议:DNP3 | 采集DNP3电表 |
| 1 | 转发协议:Modbus | 转发Modbus协议 |
备选型号:如需4G无线远程传输,可选择 VB303-1210#128-U-1(带4G功能)。
2.2 硬件接线图
┌─────────────────────────────────────────────────────────────┐│ 现场配电柜 ││ ┌─────────────┐ ┌─────────────┐ ││ │ DNP3电表 │◄───────►│ VFBOX网关 │◄───────►监控平台 ││ │ (RS485) │ A-A,B-B │ VB303-1200 │ RS485/网口 │(Modbus) ││ │ 站地址:1 │ │ │ ││ └─────────────┘ └─────────────┘ ││ ▲ ▲ ││ │ │ ││ 电源9-30VDC 电源9-30VDC │└─────────────────────────────────────────────────────────────┘2.3 接口参数设置
| 接口 | 连接对象 | 默认参数 | 实际配置 |
|-----|---------|---------|---------|
| COM1 (RS485) | DNP3电表 | 9600,8,N,1 | 根据电表实际参数配置 |
| COM2 (RS485) | Modbus RTU平台 | 9600,8,N,1 | 根据平台实际参数配置 |
| Ethernet1 | Modbus TCP平台 | IP:192.168.1.199 | 根据现场网络配置 |
三、软件配置步骤
3.1 准备工作
- 电脑配置:将电脑IP设置为
192.168.1.198(与网关默认IP同网段) - 软件安装:从仰科官网下载 VFBOX Studio(编号1001) 并安装
- 硬件连接:用网线连接电脑与网关网口,给网关上电
- 连通测试:在CMD中执行
ping 192.168.1.199,确认网络通畅
3.2 新建工程
- 以管理员权限启动VFBOX Studio软件
- 点击 新建工程 → 输入工程名称(如“DNP3_to_Modbus_电表采集”)
- 设备类型选择
VB30X-1200(与实际网关型号一致) - 点击 网关IP地址,输入
192.168.1.199
3.3 配置DNP3采集设备
步骤1:添加DNP3采集设备
- 在左侧导航栏点击 采集设备 → 新建设备
- 在驱动列表中选择 DNP3 Master
- 点击 下一步
步骤2:配置设备连接参数
- 设备名称:输入“DNP3电表_01”
- 选择连接接口:
串口连接:选择COM1,配置波特率、数据位、校验位、停止位(需与电表一致)
网口连接:输入电表的IP地址和端口号(默认20000)
步骤3:配置DNP3协议参数
- 源地址(Source Address):网关作为DNP3主站的地址,如
1 - 目的地址(Destination Address):电表的DNP3从站地址,如
10
步骤4:添加采集数据标签
- 选中设备“DNP3电表_01”,点击 新建标签
- 根据电表的DNP3点表配置各数据点:
| 标签名称 | 数据类型 | DNP3地址 | 描述 | 读写控制 |
|---------|---------|---------|------|---------|
| Voltage_A | Float | 0 | A相电压 | 读 |
| Current_A | Float | 1 | A相电流 | 读 |
| Active_Power | Float | 2 | 有功功率 | 读 |
| Power_Factor | Float | 3 | 功率因数 | 读 |
| Frequency | Float | 4 | 频率 | 读 |
| Total_Energy | Double | 5 | 总电能 | 读 |
DNP3地址说明:具体地址需参考电表厂家提供的DNP3点表文档。DNP3协议支持多种数据类型(Analog Input、Binary Input、Counter等),需根据实际点位类型选择。
- 配置完成后界面示意:
步骤5:下载并验证采集
- 点击 下载 按钮,将工程下载至网关
- 点击 查看数据,确认各标签的“更新时间”为当前时间,状态显示“Good”
- 若数据异常,使用 VBtrace 工具排查:
vbtrace.exe 20369 192.168.1.199(DNP3采集协议端口号为20369)
3.4 配置Modbus转发服务
步骤1:启用Modbus Slave服务
- 点击左侧导航栏 服务 → Modbus Slave
- 配置转发参数:
| 参数项 | 配置值 | 说明 |
|-------|--------|------|
| Modbus Unit(站号) | 1 | 网关作为Modbus从站的地址 |
| 启用 | Yes | 启用Modbus转发功能 |
| 字节顺序 | 1234 | 浮点数字节顺序,根据平台要求调整 |
步骤2:选择转发模式
根据监控平台的接口类型选择:
模式A:Modbus TCP(网口连接)
- 侦听端口:
502(标准Modbus TCP端口) - 监控平台通过网口主动连接网关获取数据
模式B:Modbus RTU(串口连接)
- 选择串口:COM2(避免与采集串口冲突)
- 配置波特率:与监控平台保持一致
步骤3:映射数据到Modbus寄存器
将采集的DNP3数据映射到Modbus标准寄存器区域:
| 采集标签 | Modbus寄存器地址 | 数据区 | 数据类型 | 功能码 |
|---------|----------------|--------|---------|--------|
| Voltage_A | 40001 | 4X Holding Registers | Float | 03H |
| Current_A | 40003 | 4X Holding Registers | Float | 03H |
| Active_Power | 40005 | 4X Holding Registers | Float | 03H |
| Power_Factor | 40007 | 4X Holding Registers | Float | 03H |
| Frequency | 40009 | 4X Holding Registers | Float | 03H |
| Total_Energy | 40011 | 4X Holding Registers | Double | 03H |
地址映射规则:
- Float类型占用2个寄存器(4字节)
- Double类型占用4个寄存器(8字节)
- 地址从40001开始,依次递增
- 在Modbus Slave配置界面,点击 添加 按钮
- 在弹出的标签选择对话框中,依次选择需要转发的采集标签
- 系统自动分配寄存器地址,或手动指定地址
- 点击 OK 保存,点击 保存 图标保存服务配置
步骤4:下载工程并测试
- 点击 下载 将完整工程下载至网关
- 使用Modbus Poll或类似测试工具连接网关:
Modbus TCP:IP=192.168.1.199,Port=502,Unit=1
Modbus RTU:COM口对应网关COM2,配置相同串口参数
- 读取寄存器40001-40014,验证数据与电表实际值一致
四、高级功能配置(可选)
4.1 数据运算处理(用户标签)
若需对原始数据进行换算(如电压变比、电流变比),可使用 用户标签:
- 点击 用户标签 → 新建标签
- 选择源标签(如Voltage_A),设置运算公式:
缩放运算:Voltage_A * 10(电压变比10:1)
条件判断:IF(Voltage_A > 220, 1, 0)(过压报警)
- 将用户标签加入Modbus转发映射
4.2 多电表扩展采集
若现场有多台DNP3电表:
- 选中“DNP3电表_01”,点击 复制设备
- 点击 粘贴,生成“DNP3电表_02”
- 修改新设备的 目的地址(电表DNP3地址)
- 修改各标签的DNP3地址(各电表点表可能相同)
- 在Modbus Slave中为新增标签分配寄存器地址(如40021开始)
4.3 数据备份与工程管理
- 工程备份:定期备份工程文件夹(默认路径
C:\Program Files\VFBOX\Studio\Workbench\project) - 标签导入导出:使用CSV格式批量编辑标签,提高配置效率
- 工程加密:调试完成后可设置工程密码保护
五、常见问题排查
| 问题现象 | 可能原因 | 解决方法 |
|---------|---------|---------|
| 采集数据为1970时间 | 网关未采集到电表数据 | 检查DNP3地址、串口参数;使用vbtrace查看通信报文 |
| Modbus平台读取数据为0 | 寄存器地址映射错误 | 核对平台请求的地址与网关配置是否一致;确认功能码匹配 |
| Float数据值异常 | 字节顺序不匹配 | 在设备属性或Modbus Slave中调整字节顺序(1234/4321/3412/2143) |
| 下载工程提示No Space | 工程目录含无关文件 | 清理工程文件夹内非工程文件;或登录网关删除 /vb/bin/project 下文件 |
| 4G网关无法上网 | APN或SIM卡问题 | 检查WAN指示灯状态;确认SIM卡开通数据业务;核对工程设备类型是否为1110/1210 |
六、项目总结
6.1 方案优势
| 优势 | 说明 |
|-----|------|
| 协议兼容性强 | 单网关同时支持DNP3采集与Modbus转发,无需多台设备 |
| 配置简便 | 图形化VFBOX Studio软件,无需编程即可完成配置 |
| 实时性高 | 扫描间隔可配置至毫秒级,满足电力监控实时性要求 |
| 稳定可靠 | 工业级设计,支持-40℃~70℃宽温运行,看门狗保护 |
| 扩展灵活 | 支持多电表采集、多协议转发、用户标签运算等高级功能 |
6.2 应用场景扩展
本案例方案同样适用于:
- 环保行业:HJ212数采仪 → Modbus/PLC
- 水利行业:SL651水文设备 → Modbus/数据库
- 工业控制:Profinet PLC → Modbus触摸屏
- 电力系统:IEC104/61850 → DNP3/Modbus
查看全文
大怪科学
传感器专家网
四方光电 


评论0条评论