网关实现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-BVB303-1200RS485/网口 │(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,配置相同串口参数

  1. 读取寄存器40001-40014,验证数据与电表实际值一致

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

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

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

  1. 点击 用户标签新建标签
  2. 选择源标签(如Voltage_A),设置运算公式:

缩放运算Voltage_A * 10(电压变比10:1)

条件判断IF(Voltage_A > 220, 1, 0)(过压报警)

  1. 将用户标签加入Modbus转发映射

4.2 多电表扩展采集

若现场有多台DNP3电表:

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

4.3 数据备份与工程管理

  1. 工程备份 :定期备份工程文件夹(默认路径 C:Program FilesVFBOXStudioWorkbenchproject
  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
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

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

×
20
完善资料,
赚取积分