网关实现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 准备工作

  1. 电脑配置:将电脑IP设置为 192.168.1.198(与网关默认IP同网段)
  2. 软件安装:从仰科官网下载 VFBOX Studio(编号1001) 并安装
  3. 硬件连接:用网线连接电脑与网关网口,给网关上电
  4. 连通测试:在CMD中执行 ping 192.168.1.199,确认网络通畅

3.2 新建工程

  1. 管理员权限启动VFBOX Studio软件
  2. 点击 新建工程 → 输入工程名称(如"DNP3_to_Modbus_电表采集")
  3. 设备类型选择 VB30X-1200(与实际网关型号一致)
  4. 点击 网关IP地址,输入 192.168.1.199

3.3 配置DNP3采集设备

步骤1:添加DNP3采集设备

  1. 在左侧导航栏点击 采集设备新建设备
  2. 在驱动列表中选择 DNP3 Master
  3. 点击 下一步

( 2 )

步骤2:配置设备连接参数

  1. 设备名称:输入"DNP3电表_01"
  2. 选择连接接口:
    • 串口连接:选择COM1,配置波特率、数据位、校验位、停止位(需与电表一致)
    • 网口连接:输入电表的IP地址和端口号(默认20000)

配置连接参数]( 3 )

步骤3:配置DNP3协议参数

  1. 源地址(Source Address):网关作为DNP3主站的地址,如 1
  2. 目的地址(Destination Address):电表的DNP3从站地址,如 10

配置DNP3地址]( 4 )

步骤4:添加采集数据标签

  1. 选中设备"DNP3电表_01",点击 新建标签
  2. 根据电表的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等),需根据实际点位类型选择。

  1. 配置完成后界面示意:

添加数据标签]( 5 )

步骤5:下载并验证采集

  1. 点击 下载 按钮,将工程下载至网关
  2. 点击 查看数据,确认各标签的"更新时间"为当前时间,状态显示"Good"
  3. 若数据异常,使用 VBtrace 工具排查:
    vbtrace.exe 20369 192.168.1.199
    
    (DNP3采集协议端口号为20369)

3.4 配置Modbus转发服务

步骤1:启用Modbus Slave服务

  1. 点击左侧导航栏 服务Modbus Slave
  2. 配置转发参数:
参数项 配置值 说明
Modbus Unit(站号) 1 网关作为Modbus从站的地址
启用 Yes 启用Modbus转发功能
字节顺序 1234 浮点数字节顺序,根据平台要求调整

启用Modbus Slave]( 6 )

步骤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开始,依次递增

添加转发数据映射]( 7 )

操作步骤

  1. 在Modbus Slave配置界面,点击 添加 按钮
  2. 在弹出的标签选择对话框中,依次选择需要转发的采集标签
  3. 系统自动分配寄存器地址,或手动指定地址
  4. 点击 OK 保存,点击 保存 图标保存服务配置

步骤4:下载工程并测试

  1. 点击 下载 将完整工程下载至网关
  2. 使用Modbus Poll或类似测试工具连接网关:
    • Modbus TCP:IP=192.168.1.199,Port=502,Unit=1
    • Modbus RTU:COM口对应网关COM2,配置相同串口参数
  3. 读取寄存器40001-40014,验证数据与电表实际值一致

四、高级功能配置(可选)

4.1 数据运算处理(用户标签)

若需对原始数据进行换算(如电压变比、电流变比),可使用用户标签

  1. 点击 用户标签新建标签
  2. 选择源标签(如Voltage_A),设置运算公式:
    • 缩放运算Voltage_A * 10(电压变比10:1)
    • 条件判断IF(Voltage_A > 220, 1, 0)(过压报警)
  3. 将用户标签加入Modbus转发映射

4.2 多电表扩展采集

若现场有多台DNP3电表:

  1. 选中"DNP3电表_01",点击 复制设备
  2. 点击 粘贴,生成"DNP3电表_02"
  3. 修改新设备的目的地址(电表DNP3地址)
  4. 修改各标签的DNP3地址(各电表点表可能相同)
  5. 在Modbus Slave中为新增标签分配寄存器地址(如40021开始)

4.3 数据备份与工程管理

  1. 工程备份:定期备份工程文件夹(默认路径 C:\Program Files\VFBOXStudio\Workbench\project\
  2. 标签导入导出:使用CSV格式批量编辑标签,提高配置效率
  3. 工程加密:调试完成后可设置工程密码保护

五、常见问题排查

问题现象 可能原因 解决方法
采集数据为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
posted @ 2026-05-08 10:00  vfbox-2212  阅读(28)  评论(0)    收藏  举报