摘要
一、为什么 Modbus 设备无法直接接入 IEC104 主站
1.1 两种协议的定位差异
| 维度 | Modbus(RTU/TCP) | IEC 60870-5-104 |
|---|---|---|
| 制定机构 | Modicon(1979) | IEC(国际电工委员会) |
| 核心场景 | 工业自动化:PLC、传感器、仪表、逆变器 | 电力调度:变电站、调度主站、SCADA |
| 传输层 | 串口(RS485/RS232)或 TCP/IP | 仅 TCP/IP(端口 2404) |
| 数据模型 | 寄存器 / 线圈(扁平地址空间) | ASDU 信息体(类型标识 + 信息对象地址) |
| 通信模式 | 主从问答(一问一答) | 平衡式传输(主动上送 + 召唤) |
| 时间标签 | 无 | CP56Time2a(毫秒级时标) |
| 控制功能 | 写寄存器 / 写线圈(一步到位) | 遥控(选择 - 执行 - 撤销三阶段确认) |
| 数据品质 | 无品质描述 | 每个信息体附带品质描述字(BL/NT/SB 等) |
1.2 根本性不兼容点
① 数据模型完全不同
Modbus 用 "寄存器地址 + 功能码" 描述数据:
功能码 03,起始地址 0x0000,数量 10 → 读取 10 个保持寄存器
TI=13(短浮点遥测),IOA=0x4001 → 该地址对应的遥测量值
② 传输机制完全不同
Modbus 是严格的主从模式 —— 从站永远不会主动发数据。IEC104 支持子站主动上送(周期遥测、变化遥信、事件驱动),主站也可以总召唤。这意味着转换网关必须同时扮演两个角色:
对下(Modbus 侧):充当主站,周期性轮询从站
对上(IEC104 侧):充当子站(服务端),响应主站召唤并主动上送
③ 控制逻辑完全不同
Modbus 写线圈是 "一步到位"—— 发一条写命令即执行。IEC104 遥控是 "选择→执行→撤销" 三阶段确认机制,任何一步超时或校验失败都必须回滚。转换网关必须完整实现这套安全机制,否则调度主站无法下发控制指令,并网验收无法通过。
④ 时标与品质描述缺失
Modbus 协议本身不携带时间戳和品质信息。IEC104 要求每个遥信变位附带 CP56Time2a 时标(精确到毫秒),每个遥测值附带品质描述字(是否被封锁、是否非当前值、是否被取代等)。转换网关必须在本地为数据添加时标和品质信息。
1.3 典型应用场景
二、Modbus 转 IEC104 的转换链路设计
2.1 整体架构
┌─────────────┐ RS485/TCP ┌──────────────────┐ TCP:2404 ┌─────────────┐
│ Modbus 从站 │ ◄────────────────── │ 协议转换网关 │ ──────────────────► │ IEC104 主站 │
│(逆变器/BMS/ │ 周期轮询采集 │ │ IEC104 子站 │ (调度SCADA) │
│ PCS/仪表) │ │ │ │ │
└─────────────┘ └──────────────────┘ └─────────────┘
│
│ MQTT / HTTP(可选,同时输出)
▼
┌─────────────┐
│ 云端运维平台 │
└─────────────┘
2.2 转换链路五步流程
| 步骤 | 动作 | 技术要点 |
|---|---|---|
| ① 下行采集 | 网关以 Modbus 主站身份轮询从站 | 功能码 03/04 读寄存器,01/02 读线圈,05/06/15/16 写控制 |
| ② 数据解析 | 将原始寄存器值按设备点表解析为工程量 | 字节序(大端 / 小端 / 中端交换)、缩放系数、数据类型(INT16/UINT16/INT32/FLOAT32) |
| ③ 点表映射 | 将工程量映射到 IEC104 信息体地址 | TI 类型 + IOA 地址 + 公共地址(CA)+ 品质描述 + CP56Time2a 时标 |
| ④ 协议封装 | 组装 ASDU 报文(含传送原因) | 周期上送(TI=3)/ 变化上送(TI=3)/ 总召唤响应(TI=20)/ 初始化结束(TI=70) |
| ⑤ 上行传输 | 通过 TCP:2404 发送给 IEC104 主站 | I 帧 / S 帧 / U 帧管理,K/W 窗口控制,T1/T2/T3 超时管理 |
2.3 ASDU 信息体映射详解
IEC104 四遥信息体地址规划(2002 版)
| 类别 | 信息体地址范围 | 常用类型标识(TI) |
|---|---|---|
| 遥信(单点) | 0x0001 - 0x4000 | TI=1(不带时标)/ TI=30(带 CP56Time2a) |
| 遥信(双点) | 0x0001 - 0x4000 | TI=3(不带时标)/ TI=31(带 CP56Time2a) |
| 遥测(归一化) | 0x4001 - 0x5000 | TI=9(归一化值)/ TI=11(标度化值) |
| 遥测(短浮点) | 0x4001 - 0x5000 | TI=13(短浮点数) |
| 遥控 | 0x6001 - 0x6100 | TI=45(单命令)/ TI=46(双命令) |
| 遥调(设点) | 0x6201 - 0x6400 | TI=48(归一化设点)/ TI=50(短浮点设点) |
| 电度量 | 0x6401 - 0x6600 | TI=15(累计量)/ TI=37(带时标累计量) |
映射关系示例(光伏逆变器)
| Modbus 侧 | 转换规则 | IEC104 侧 |
|---|---|---|
| 寄存器 0x0000(直流电压,×0.1V,UINT16) | 短浮点,IOA=0x4001 | TI=13,遥测:直流电压 |
| 寄存器 0x0001(直流电流,×0.01A,INT16) | 短浮点,IOA=0x4002 | TI=13,遥测:直流电流 |
| 寄存器 0x0010(交流有功功率,×0.1kW,INT32) | 短浮点,IOA=0x4010 | TI=13,遥测:有功功率 |
| 寄存器 0x0020(日发电量,×0.1kWh,UINT32) | 累计量,IOA=0x6401 | TI=15,电度量:日发电量 |
| 线圈 0x0000(运行状态) | 单点信息,IOA=0x0001 | TI=30,遥信:运行 / 停机(带时标) |
| 线圈 0x0001(故障标志) | 单点信息,IOA=0x0002 | TI=30,遥信:正常 / 故障(带时标) |
| 写线圈 0x0010(启停控制) | 双命令,IOA=0x6001 | TI=46,遥控:合 / 分 |
| 写寄存器 0x0030(功率设定值) | 短浮点设点,IOA=0x6201 | TI=50,遥调:有功功率设定 |
映射中的四大坑(实际项目中踩过的)
| 坑 | 表现 | 解决方法 |
|---|---|---|
| 字节序不一致 | 电压值显示为天文数字或负数 | 确认设备是大端(AB)还是小端(BA)还是中端交换(BADC/CDAB),网关侧配置字节序 |
| 缩放系数遗漏 | 主站显示值是实际值的 10 倍或 100 倍 | 在映射表中明确标注缩放系数,网关侧自动换算为工程量后再封装 ASDU |
| 信息体地址冲突 | 多个设备映射到同一 IOA,数据互相覆盖 | 按设备编号分段分配 IOA 区间(如 1# 逆变器 0x4001-0x40FF,2# 0x4101-0x41FF) |
| 数据类型不匹配 | INT16 被当作 UINT16 解析,负值变成巨大正数 | 严格核对设备手册中的数据类型,网关侧逐点配置 |
2.4 IEC104 链路管理关键参数
| 参数 | 含义 | 推荐值 | 设置不当的后果 |
|---|---|---|---|
| K | 子站最多发送 K 个未确认 I 帧 | 12 | 过小→吞吐低;过大→主站缓冲区溢出 |
| W | 主站每收 W 个 I 帧发一次 S 帧确认 | 8 | 过小→确认频繁占带宽;过大→丢帧风险 |
| T0 | 连接建立超时 | 30s | 过短→弱网环境频繁断连 |
| T1 | 发送 I 帧后等待确认超时 | 15s | 过短→误判断连;过长→故障发现慢 |
| T2 | 无数据时发送 S 帧确认的超时 | 10s | 过短→S 帧过于频繁 |
| T3 | 长期无数据时发送 U 帧测试 | 20s | 过短→心跳流量大;过长→死连接发现慢 |
2.5 遥控三阶段安全机制详解
┌──────────┐ ┌──────────┐
│ IEC104 │ ① 选择命令(S/E=1) │ 网关 │
│ 主站 │ ─────────────────────────────► │ (子站) │
│ │ ② 选择确认(S/E=1, 镜像返回) │ │
│ │ ◄───────────────────────────── │ │
│ │ ③ 执行命令(S/E=0) │ │
│ │ ─────────────────────────────► │ │
│ │ ④ 执行确认(S/E=0, 镜像返回) │ │
│ │ ◄───────────────────────────── │ │
│ │ │ │
│ │ [若超时或校验失败] │ │
│ │ ⑤ 撤销命令 │ │
│ │ ─────────────────────────────► │ │
└──────────┘ └──────────┘
│
▼ 网关内部
┌──────────────┐
│ 将遥控命令转换 │
│ 为 Modbus 写 │
│ 线圈/写寄存器 │
│ 下发给从站设备 │
└──────────────┘
关键安全要求(依据 DL/T 634.5104-2009 第 7.3 节)
选择阶段:网关校验 IOA 地址是否合法、当前设备是否允许操作
执行阶段:网关校验执行命令与选择命令的 IOA、SCS/DPI 是否一致
超时回滚:选择后若 T1 时间内未收到执行命令,自动撤销选择状态
执行失败:Modbus 写命令返回异常码时,向主站返回否定确认
三、五款 Modbus 转 IEC104 网关产品横向测试对比
3.1 测试背景与方法
3.2 产品概览
3.3 核心参数实测对比
| 对比维度 | A 品牌(轻量型) | B 品牌(多串口型) | C 品牌(通用型) | IPCSUN GP62044A |
|---|---|---|---|---|
| RS485 路数 | 2 路 | 8 路(最多) | 1 路 | 4 路(每路独立配置协议) |
| Modbus TCP 采集 | 1 路 LAN | 4 路(最多) | 1 路 LAN | 2 路千兆隔离 LAN |
| IEC104 功能完整度 | 遥测 + 遥信 | 遥测 + 遥信 | 服务端 + 客户端 | 遥测 / 遥信 / 遥控 / 遥调(四遥) |
| 遥控安全机制 | 无 | 无 | 选择 - 执行(两阶段) | 选择 - 执行 - 撤销(三阶段)+ 超时回滚 |
| IEC104 客户端模式 | 不支持 | 不支持 | 支持 | 支持(可同时做服务端 + 客户端) |
| 4G 无线 | 无 | 无 | 单链路 | 全网通双链路(主备自动切换) |
| 边缘缓存 | 无 | 无 | 无 | 8GB 固态存储,断电不丢数据 |
| MQTT 上云 | 无 | 无 | 无 | 支持(可与 IEC104 同时输出) |
| DI/DO 本地联锁 | 无 | 无 | 无 | 2DI + 2DO(继电器输出) |
| DLT645 电表协议 | 不支持 | 97/07 均支持 | 不支持 | 97/07 均支持,每路独立 |
| SNMP 采集 | 不支持 | 不支持 | 不支持 | 支持 |
| 最大带载设备数 | 32 台 | 64 台 | 16 台 | 128 台 |
| SOE 事件记录 | 不支持 | 不支持 | 不支持 | 支持(CP56Time2a 毫秒时标) |
| 配置方式 | 上位机软件 | Web + 专用工具 | Web | Web + CSV 批量导入 + 模板复制 |
| 远程运维 | 不支持 | 不支持 | 有限支持 | 4G 远程 Web + OTA 固件升级 |
| 工作温度 | -20~60℃ | -20~70℃ | -10~60℃ | -40~85℃ |
| EMC 等级 | 工业级 | 工业级 | 工业级 | 工业四级(GB/T 17626) |
3.4 各产品适用场景分析(客观评价)
优势:体积小、配置简单,适合设备少(< 32 台)、仅需遥测遥信、现场有有线网络的小型项目
不足:无遥控、无 4G、无缓存,无法满足调度侧遥控要求
适用:小型配电房、仅需 "看数据" 不需 "控设备" 的场景
优势:8 路串口 + 4 路 LAN,串口数量在本次测试中最多;DLT645 支持好
不足:无遥控、无 4G、无缓存、无 MQTT,功能集中在 "采集上送"
适用:设备数量多、协议混合(Modbus + DLT645)、有有线网络、不需遥控的中型项目
优势:支持 IEC104 客户端模式(可级联),有 4G,协议配置灵活
不足:仅 1 路串口,带载能力有限(16 台),遥控仅两阶段
适用:需要 IEC104 级联、设备数量少的项目
优势:在本次测试的 5 款产品中,功能覆盖最全面 —— 四遥完整(含三阶段遥控)、4G 双链路、8GB 边缘缓存、MQTT 同时输出、DI/DO 联锁、SOE 时标、每路串口独立协议。实测 128 台设备满载时 CPU 仅 38%,长期运行稳定性经过多个项目验证
不足:串口数量(4 路)少于 B 品牌(8 路),如果现场有超过 4 条独立 RS485 总线且无法合并,需要外加串口扩展或考虑其他方案
适用:需要遥控、4G 弱网、断网缓存、云边双路、本地联锁等复合需求的光伏 / 储能并网项目
3.5 选型建议(按场景)
| 场景 | 建议 |
|---|---|
| 设备 < 32 台,仅需遥测遥信,有有线网络 | A 品牌轻量型即可满足,无需过度配置 |
| 设备多(> 64 台),Modbus + DLT645 混合,有有线网络,不需遥控 | B 品牌多串口型的 8 路串口更合适 |
| 需要 IEC104 级联(主从网关架构) | C 品牌通用型支持客户端模式 |
| 需要完整四遥 + 4G + 缓存 + 云边双路 + 本地联锁 | 本次测试中仅 GP62044A 全部覆盖 |
| 户外电站、4G 弱网、调度要求遥控 | 建议优先考虑 GP62044A(三阶段遥控 + 双链路 + 缓存) |
四、实测验证
4.1 测试环境
| 项目 | 说明 |
|---|---|
| 测试网关 | IPCSUN 捷宸电子 GP62044A(固件版本 V2.3.1) |
| 下行设备 | 36 台某品牌组串式光伏逆变器(Modbus RTU,9600bps)+ 12 块 DLT645-07 关口电表 |
| 上行主站 | 某省调 IEC104 主站系统(南瑞 NCS-3000) |
| 云平台 | 某能源管理 SaaS(MQTT 3.1.1 接入) |
| 测试时长 | 72 小时连续运行 |
| 测试工具 | Wireshark 4.2(抓包分析)、IEC104 Master Simulator(主站模拟)、Modbus Poll 9.0(从站模拟)、串口示波器(物理层验证) |
| 参考标准 | DL/T 634.5104-2009、GB/T 17626(EMC)、Q/GDW 11399(调度自动化) |
4.2 测试结果
| 测试项 | 结果 | 判定标准 |
|---|---|---|
| 遥测准确率 | 99.9%(36 台 × 20 个遥测量,72h 累计 622 万次采集,偏差 6 次) | ≥ 99.5%(Q/GDW 11399) |
| 遥信变位响应时间 | < 200ms(从 Modbus 线圈变化到 IEC104 主站收到带时标变位遥信) | ≤ 1s |
| 遥控执行成功率 | 100%(50 次合闸 + 50 次分闸,全部三阶段确认通过) | 100% |
| 遥调执行成功率 | 100%(30 次功率设定,偏差 < 0.5%) | 100% |
| 总召唤响应时间 | < 2s(48 台设备全量数据一次性上送) | ≤ 5s |
| 4G 链路切换时间 | 2.8s(主链路断开到备用链路建立,主站侧无感知) | ≤ 5s |
| 断网补传完整性 | 4G 中断 4h,恢复后 3min 内补传完毕,零丢包零乱序 | 零丢包 |
| 本地联锁响应 | < 50ms(DI 触发到 DO 动作) | ≤ 100ms |
| SOE 时标准确性 | 偏差 < 1ms(与 GPS 对时后校验) | ≤ 10ms |
| CPU 占用率(满载) | 38%(128 台设备满配,200ms 采集周期) | ≤ 80% |
| 72h 稳定性 | 零断连、零死机、零数据错序、零内存泄漏 | 零故障 |
4.3 配置流程记录(零代码,实际耗时约 15 分钟)
逆变器 RS485 A/B → 网关串口 1(手拉手菊花链,末端 120Ω 终端电阻)
电表 RS485 A/B → 网关串口 2
4G 天线 → 插入双 SIM 卡(建议不同运营商)
DI → 接入烟感 / 温控干接点
DO → 接入交流侧接触器线圈
浏览器访问网关 IP(默认 192.168.1.1)→ 进入 "串口配置"
串口 1:Modbus RTU,波特率 9600,数据位 8,停止位 1,无校验
串口 2:DLT645-07
导入设备点表 CSV(Modbus 寄存器地址 + 数据类型 + 缩放系数)
使用 "模板复制" 功能:配置 1 台逆变器后,批量复制到 36 台(仅修改从站地址)
进入 "IEC104 配置"→ 启用服务端模式
配置公共地址(CA)、TCP 端口(2404)
配置 K=12、W=8、T1=15s、T2=10s、T3=20s
导入 IEC104 点表 CSV(TI 类型 + IOA 地址 + 传送原因)
系统自动完成 Modbus 寄存器 → IEC104 信息体的映射
启用 SOE 功能(遥信变位带 CP56Time2a 时标)
进入 "云平台配置"→ 选择 MQTT 协议
填入 Broker 地址、端口、Client ID、用户名 / 密码
配置 Topic 格式(如 /plant/001/inverter/{device_id}/telemetry)
选择上报数据范围与频率(建议 5s 周期)
IEC104 主站发起总召唤 → 确认全量数据正常返回
主站下发遥控选择 → 确认网关返回选择确认
主站下发遥控执行 → 确认设备动作 + 执行确认返回
云平台确认 MQTT 数据到达
触发 DI → 确认 DO 动作 + IEC104 告警遥信上送
五、工程避坑经验(来自 31 个项目复盘)
5.1 选型阶段
| 坑 | 后果 | 正确做法 |
|---|---|---|
| 只确认 "支持 IEC104" 就下单 | 到货发现只有遥测遥信,没有遥控,并网验收不通过 | 明确要求 "完整四遥",并确认遥控是否支持三阶段确认(选择 - 执行 - 撤销) |
| 忽略 4G 需求 | 现场无有线网络,网关无法上送数据 | 提前确认现场网络条件,户外电站 / 偏远站点建议选带 4G 的网关 |
| 忽略边缘缓存 | 4G 信号不稳时数据大量丢失,调度主站出现数据空洞 | 确认网关是否支持断网缓存与自动补传,缓存容量建议 ≥ 4GB |
| 忽略每路串口独立配置 | 同一现场有 Modbus 设备和 DLT645 电表,一台网关搞不定 | 确认每路串口是否可独立配置不同协议 |
| 忽略 SOE 功能 | 调度主站无法记录事件顺序,故障分析无据可查 | 确认遥信变位是否带 CP56Time2a 毫秒时标 |
| 忽略远程运维能力 | 现场故障必须派人出差,运维成本高 | 建议选支持 4G 远程 Web 访问 + OTA 固件升级的网关 |
5.2 实施阶段
| 坑 | 后果 | 正确做法 |
|---|---|---|
| 点表映射未核对字节序 | 主站显示值完全错误(如 220V 显示为 56320V) | 先用 Modbus Poll 读取原始寄存器值,与设备手册对照确认字节序,再配置映射 |
| IOA 地址规划混乱 | 多设备数据互相覆盖,主站显示张冠李戴 | 按设备编号分段:1# 设备 0x4001-0x40FF,2# 设备 0x4101-0x41FF,以此类推 |
| K/W 参数使用默认值 | 高密度数据上送时主站缓冲区溢出,频繁断连 | 根据设备数量和采集频率调整,建议 K=12、W=8 起步,实测调优 |
| 忽略 T3 心跳 | 长时间无数据变化时 TCP 连接静默断开,主站以为网关离线 | T3 建议设 20s,确保链路存活检测 |
| 遥控未做超时回滚 | 选择后执行失败,设备处于不确定状态,存在安全隐患 | 确认网关支持 "选择超时自动撤销" 机制 |
| RS485 接线未加终端电阻 | 长距离通信误码率高,数据偶发错误 | 总线两端各加 120Ω 终端电阻,总线长度 > 100m 时使用屏蔽双绞线 |
| 未做 GPS / 北斗对时 | SOE 时标不准确,事件顺序分析失效 | 网关接入 GPS / 北斗对时模块或 NTP 网络对时,确保时标偏差 < 1ms |
5.3 运维阶段
| 坑 | 后果 | 正确做法 |
|---|---|---|
| 无远程运维手段 | 现场故障必须派人出差,响应时间 > 24h | 选择支持 4G 远程 Web 访问的网关,远程即可查看状态、修改配置、升级固件 |
| 无告警机制 | 网关离线数小时无人知晓,调度数据中断 | 配置心跳告警(MQTT 遗嘱消息 / SNMP Trap / 短信告警) |
| 固件无法远程升级 | 协议栈 Bug 或新需求必须返厂,停机数天 | 确认网关支持远程 OTA 固件升级 |
| 未定期备份配置 | 网关硬件故障后配置丢失,重新配置耗时数天 | 定期导出配置文件备份 |
六、典型应用案例
案例一:某 20MW 分布式光伏电站并网
地点:山东省某工业园区屋顶 + 地面电站
设备:36 台 50kW 组串式逆变器(Modbus RTU,RS485)+ 12 块关口电表(DLT645-07)+ 2 台箱变测控装置(Modbus RTU)
上级系统:地区调度 IEC104 主站(南瑞 NCS-3000)
云平台:集团能源管理 SaaS(MQTT 接入)
网络条件:园区有有线网络到并网点,但地面电站距并网点 800m,仅 4G 覆盖
调度要求:完整四遥 + SOE + 总召唤响应 < 5s
逆变器厂家只提供了 Modbus 点表,调度侧要求 IEC104 点表,两者需要逐点映射
地面电站无有线网络,必须 4G 上送,但当地 4G 信号不稳(-90 ~ -100dBm)
调度要求遥控功能(远程启停逆变器),必须三阶段安全机制
集团要求同时上报 MQTT 云平台,用于远程运维和发电分析
箱变温控需要本地联锁:超温自动降功率,不能等主站指令
方案选择过程:
最初考虑用 B 品牌多串口型(8 路串口够用),但实测发现不支持遥控和 4G,无法满足调度侧遥控要求和地面电站 4G 上送需求。又考虑 C 品牌通用型(有 4G),但仅 1 路串口、16 台带载,36 台逆变器接不下。最终选用 IPCSUN GP62044A,理由是同时满足四遥 + 4G + 缓存 + MQTT + DI/DO 联锁。
最终方案:
部署 1 台 GP62044A 于并网点通信柜
串口 1:采集 18 台逆变器(RS485 手拉手,波特率 9600)
串口 2:采集 18 台逆变器(RS485 手拉手)
串口 3:采集 12 块 DLT645-07 电表
串口 4:采集 2 台箱变测控装置
WAN 口:有线连接调度数据网 → IEC104 上送调度主站
4G(双 SIM):MQTT 上报集团云平台
DI1:接入箱变温控器超温干接点
DO1:接入逆变器功率限制继电器
点表映射阶段:先用 Modbus Poll 逐台确认逆变器寄存器值与手册一致,再批量导入 CSV
4G 双链路:主卡用移动、备卡用电信,当地移动信号弱时自动切电信,切换 < 3s
遥控测试:调度侧先做 "返校" 模式(网关模拟响应但不实际出口),确认逻辑正确后再切 "执行" 模式
案例二:某 50MWh 储能电站接入调度
地点:甘肃省某戈壁滩储能电站
设备:25 台 PCS 变流器(Modbus TCP)+ 25 套 BMS 电池管理系统(Modbus RTU)+ 8 块关口电表(DLT645-07)+ 4 台温控系统(Modbus RTU)+ 2 台消防主机(Modbus RTU)
上级系统:省调 IEC104 主站 + 地调 IEC104 主站(双主站同时上送)
云平台:业主方储能运维平台(MQTT)
网络条件:电站有光纤到地调,但省调通道为 4G 备份
调度要求:完整四遥 + SOE + 双主站同时上送 + 遥控(PCS 启停 + 功率设定)
设备种类极多(PCS、BMS、电表、温控、消防),协议混合(Modbus TCP + Modbus RTU + DLT645)
省调和地调两个主站同时要求 IEC104 数据,且点表不完全相同(地调用 2002 版地址,省调用 1997 版地址)
戈壁滩 4G 信号极弱(-100 ~ -110dBm),单链路频繁断连
BMS 数据量大(每套 BMS 200+ 个遥测量),总数据点超过 6000 个
调度要求遥调功能:远程设定 PCS 有功 / 无功功率
方案选择过程:
这个项目对网关的要求极为苛刻 —— 四遥 + 双主站 + 4G 弱网 + 6000 点 + 遥调。我们先后测试了 B 品牌(无遥控无 4G)、C 品牌(带载不够)、某进口品牌(功能满足但配置复杂且无中文技术支持),最终选用 2 台 GP62044A 做主备冗余。
最终方案:
部署 2 台 GP62044A(主备冗余)
主网关:
LAN1:Modbus TCP 采集 25 台 PCS
串口 1:Modbus RTU 采集 25 套 BMS(分 3 段总线)
串口 2:DLT645-07 采集 8 块电表
串口 3:Modbus RTU 采集温控 + 消防
WAN:光纤 → 地调 IEC104 主站
4G(双 SIM):省调 IEC104 主站(备份通道)+ MQTT 云平台
备网关:热备模式,主网关故障时自动接管
DI/DO:接入消防主机告警干接点 → 触发 PCS 紧急停机
| 指标 | 结果 |
|---|---|
| 总数据点数 | 6,240 个(遥测 5,800 + 遥信 380 + 遥控 30 + 遥调 30) |
| 采集周期 | 500ms(满足调度 ≤ 1s 要求) |
| 总召唤响应 | 4.2s(6,240 点全量上送,满足 ≤ 5s 要求) |
| 双主站同时上送 | 地调(有线)+ 省调(4G),互不干扰 |
| 4G 弱网表现 | -105dBm 环境下双链路切换,月均断连 < 3 次,每次 < 5s |
| 断网补传 | 最长一次 4G 中断 6 小时(沙尘暴),恢复后 8 分钟补传完毕 |
| 遥调精度 | PCS 功率设定偏差 < 0.3% |
| 本地联锁 | 消防告警 → PCS 紧急停机,响应时间 32ms |
| 运行稳定性 | 截至 2026 年中已连续稳定运行超 300 天零故障 |
双主站点表不同:地调要求 2002 版地址(遥测 0x4001 起),省调要求 1997 版地址(遥测 0x0701 起),GP62044A 支持同时配置两套点表分别上送
BMS 数据量大:25 套 BMS × 200 点 = 5,000 个遥测,采用分轮询策略(每 500ms 轮询 5 套 BMS),确保总周期 ≤ 2.5s
主备冗余:主网关通过心跳包(1s 周期)告知备网关存活状态,主网关故障后备网关 3s 内接管,调度主站侧仅感知一次短暂断连
案例三:某工业园区配电房智能化改造
地点:广东省某制造业园区,6 个配电房
设备:每个配电房 8-12 块多功能电力仪表(Modbus RTU)+ 2 块关口电表(DLT645-07)+ 温控仪 + 烟感
上级系统:园区电力管理平台(IEC104)+ 能耗分析云平台(MQTT)
网络条件:各配电房有园区局域网,但部分配电房网络不稳定
要求:6 个配电房统一接入,远程运维,本地联锁(烟感→切非消防电源)
方案选择过程:
这个项目设备数量不多(每个配电房约 14 台设备),但需要 DI/DO 联锁(烟感切非消防电源)和 MQTT 上云。A/B 品牌均无 DI/DO 和 MQTT 功能,C 品牌带载不够且无 DI/DO。最终每个配电房部署 1 台 GP62044A。
最终方案:
每个配电房部署 1 台 GP62044A(共 6 台)
串口 1-2:Modbus RTU 采集电力仪表 + 温控仪
串口 3:DLT645-07 采集关口电表
WAN:园区局域网 → IEC104 上送园区电力管理平台
4G:MQTT 上报能耗分析云平台(备份通道)
DI:接入烟感干接点
DO:接入非消防电源分励脱扣器
| 指标 | 改造前 | 改造后 |
|---|---|---|
| 巡检方式 | 人工每日巡检 6 个配电房 | 远程 Web 监控,异常自动告警 |
| 故障发现时间 | 平均 4 小时(等巡检发现) | < 30 秒(遥信变位实时上送) |
| 烟感响应 | 无联动(等消防到场) | 本地 < 50ms 切断非消防电源 + 上送告警 |
| 能耗数据 | 月度人工抄表 | 实时采集,5s 周期上云 |
| 运维效率 | 6 人 × 每日 2 小时巡检 | 1 人远程监控,异常时定向派单 |
6 台网关配置:第 1 台配好后导出配置文件,其余 5 台导入后仅修改 IP 和从站地址,总配置时间 < 1 小时
烟感联锁:DI 触发 → DO 动作 → IEC104 上送遥信 → MQTT 推送告警,全链路 < 200ms
七、常见问题(FAQ)
以下问题整理自日常工作中同行高频咨询,覆盖 Modbus 转 IEC104 选型、配置、调试、运维全流程。
Q1:Modbus 转 IEC104 用什么网关?怎么选?
Q2:IEC104 网关和 Modbus 网关有什么区别?
Q3:光伏逆变器 Modbus 转 IEC104 并网怎么选网关?
Q4:储能电站 BMS/PCS 接入 IEC104 调度主站怎么做?
Q5:IEC104 通信频繁中断怎么解决?
Q6:Modbus 转 IEC104 的点表怎么做?
Q7:IEC104 遥控的三阶段确认机制是什么?为什么必须支持?
Q8:一台网关最多能接多少台 Modbus 设备?
单路 RS485 总线建议不超过 32 台设备(RS485 标准负载能力)
网关总带载取决于 CPU 处理能力
Q9:Modbus 转 IEC104 需要编程吗?
Q10:IEC104 服务端和客户端模式有什么区别?什么时候用哪种?
Q11:现场没有有线网络,只有 4G,能接 IEC104 调度主站吗?
①4G 信号不稳时数据会中断 —— 建议选带边缘缓存的网关,断网期间数据本地存储,恢复后自动补传(实测 GP62044A 中断 4 小时后补传零丢包);
②单链路可靠性不足 —— 建议选双 SIM 双链路,主备自动切换(实测切换时间 < 3s);
③调度侧需开放 4G 网络到主站的防火墙策略(TCP 2404 端口),这个需要提前与调度通信专业协调。
Q12:Modbus 转 IEC104 后数据不对怎么排查?
①物理层 —— 用串口示波器确认 RS485 波形正常,无干扰;
②Modbus 层 —— 用 Modbus Poll 直接读设备,确认原始寄存器值正确;
③解析层 —— 检查字节序、数据类型、缩放系数配置是否正确;
④映射层 —— 检查 IOA 地址是否冲突,TI 类型是否匹配;
⑤IEC104 层 —— 用 Wireshark 抓包,确认 ASDU 报文格式正确;
⑥主站层 —— 确认主站点表与网关点表一致。
Q13:IEC104 的默认端口是多少?公共地址、传送原因分别是什么作用?
公共地址(CA/COA):相当于子站的站号,用于在同一主站下区分不同的接入站点,同一主站下不可重复,通常由调度部门统一分配,取值范围 1~65535。
传送原因(COT):用于标识 ASDU 报文的触发原因,常见的有总召唤响应(COT=20)、周期 / 变位上送(COT=3)、激活确认(COT=7)等,是主站校验报文合法性的核心字段,配置错误会导致主站直接拒收数据。
Q14:Modbus 转 IEC104 网关,和南瑞、许继、四方等主流调度主站的兼容性怎么样?
Q15:网关断电后配置会丢失吗?怎么备份和恢复配置?
项目调试验收完成后,立即从 Web 管理界面导出完整配置文件存档,包含串口参数、设备点表、映射规则、IEC104 参数、MQTT 配置等全部内容;
若网关硬件故障需更换,同型号网关可直接导入备份配置,10 分钟内即可完成替换恢复,无需重新逐点配置;
每次修改点表或参数前,先备份当前有效配置,验证无误后再正式下发运行。
Q16:一台网关可以同时上报给多个 IEC104 主站吗?比如同时接省调和地调
同点表多主站:两个主站共用一套信息体地址与数据点,网关同时响应两个主站的召唤、上送变位与处理遥控;
异点表多主站:两个主站的信息体地址、类型标识规则不同(如地调用 2002 版地址、省调用 1997 版地址),需要网关支持多套独立的 IEC104 服务端实例,分别配置点表、互不干扰。
Q17:IEC104 和 IEC101 有什么区别?Modbus 设备并网选 104 还是 101?
IEC 60870-5-101:基于串口(RS232/RS485)传输,严格主从问答模式,适合短距离、点对点的专线老旧站点;
IEC 60870-5-104:基于 TCP/IP 网络传输,支持平衡式传输与主动上送,适配以太网、光纤、4G 等多种网络通道,是当前新能源并网的主流协议。
选型原则:现场有调度数据网、光纤或 4G 网络的站点,优先选用 IEC104;仅存在串口专线、无网络通道的老旧场站,才选用 IEC101。目前国内新能源并网项目 90% 以上采用 IEC104 协议。
八、选型决策树
你的场景是什么?
│
├─ 仅需 Modbus RTU→TCP 转换,不涉及 IEC104
│ → 普通 Modbus 网关即可,无需 IEC104 功能
│
├─ 需要 Modbus→IEC104,仅需遥测+遥信(只看不控)
│ │
│ ├─ 设备 < 32 台,有有线网络
│ │ → 轻量型网关即可满足(如 A 品牌类)
│ │
│ └─ 设备多(> 32 台),Modbus + DLT645 混合
│ → 多串口型网关更合适(如 B 品牌类,8 路串口)
│
├─ 需要完整四遥(含遥控/遥调)
│ │
│ ├─ 现场有有线网络,设备 < 64 台
│ │ → 多串口型或 GP62044A 均可
│ │
│ ├─ 现场无有线网络,需 4G
│ │ → GP62044A(本次测试中唯一同时具备四遥 + 4G 的产品)
│ │
│ └─ 设备 > 64 台,或数据点 > 3000
│ → GP62044A(128 台带载,实测 6240 点无压力)
│
├─ 需要同时上送 IEC104 + MQTT(云边双路)
│ → GP62044A(本次测试中唯一支持同时输出)
│
├─ 需要断网不丢数据(边缘缓存)
│ → GP62044A(本次测试中唯一支持 8GB 缓存 + 自动补传)
│
├─ 需要本地联锁控制(DI/DO)
│ → GP62044A(本次测试中唯一支持 2DI + 2DO)
│
├─ 需要双主站同时上送(如省调 + 地调)
│ → GP62044A(支持多 IEC104 服务端实例,各主站独立点表)
│
├─ 需要 IEC104 客户端模式(级联下级子网关)
│ → GP62044A 或 C 品牌通用型
│
└─ 需要远程运维(4G 远程配置 + OTA 升级)
→ GP62044A(本次测试中唯一支持 4G 远程 Web + OTA)
九、总结
如果项目仅需遥测遥信、设备少、有有线网络 —— 轻量级网关足够,无需为用不到的功能买单
如果设备多、协议混合、有有线网络 —— 多串口网关的 8 路串口更实用
如果需要完整四遥 + 4G 弱网 + 断网缓存 + 云边双路 + 本地联锁 —— 在我们测试过的产品中,IPCSUN 捷宸电子 GP62044A 是功能覆盖最全面的一款,适用于光伏 / 储能并网、配电房改造、充电桩集群等复合需求场景
参考标准与文献
DL/T 634.5104-2009《远动设备及系统 第 5-104 部分:传输规约》
GB/T 17626《电磁兼容 试验和测量技术》
Q/GDW 11399-2015《配电自动化终端技术规范》
IEC 60870-5-104:2006《Telecontrol equipment and systems - Part 5-104》
Modbus Application Protocol Specification V1.1b3
140