研华 ECU-1251TL 配置 IEC104 主站实战:从零到链路打通
研华 ECU-1251TL 配置 IEC104 主站实战:从零到链路打通

研华 ECU-1251TL 配置 IEC104 主站实战:从零到链路打通

前言

前两篇讲完了 IEC104 规约原理和模拟器仿真环境搭建。这一篇进入实战核心——怎么用研华 ECU-1251TL 边缘网关当 IEC104 主站,去连模拟器(从站)把数据读出来。

这篇文章记录了我从零配置到链路打通的完整过程,包括工程层级、参数详解、踩过的坑。如果你也在用研华 EdgeLink Studio 配 IEC104,这篇能帮你少走弯路。


一、ECU-1251TL 是什么

ECU-1251TL 是研华(Advantech)的工业级边缘智能网关,定位是”边缘计算 + 协议网关”。它干两件事:

  1. 协议采集:当主站,通过 Modbus / IEC104 / DNP3 / BACnet 等协议去读现场设备
  2. 数据上送:把采到的数据通过 MQTT / IEC104 从站等方式往云端或调度中心送

关键点:ECU-1251TL 原生支持 IEC 60870-5-101/104 协议。这是研华官网明确写的,不是所有网关都支持电力规约,这点选型时要注意。

在我这个虚拟项目里,ECU-1251TL 的角色是 IEC104 主站(TCP 客户端),去连我那台跑模拟器的从站(TCP 服务端,监听 2404),把 70 个点的数据读出来。


二、EdgeLink Studio 工程层级

研华的组态软件叫 EdgeLink Studio,工程结构是三级层级:

对应到 IEC104:

  • 协议服务:选 IEC-104(和 Modbus/DNP3 平级的大类)
  • 设备:一个从站装置,对应一个公共地址 CA
  • Tag 点:一个个 IOA,对应具体的数据点

注意:IEC104 在 EdgeLink 里没有独立的”通道”层概念,TCP 连接参数(IP、端口、t1~t3)直接配在设备属性里。


三、配置步骤详解

3.1 第一步:新建 IEC-104 设备

在 EdgeLink Studio 左侧设备树里:

  1. 找到 数据中心 → I/O 点 → TCP
  2. 右键 → 添加设备
  3. 在弹出的设备类型选择对话框里,找到 IEC 60870-5-104(和 Modbus、DNP3、BACnet 平级的独立大类)
  4. 选中它,填设备名(我填的”110kV小型变电站”)

⚠️ 第一个坑:IEC-104 是独立的协议大类,不是 Modbus 的子项。如果你在驱动列表里找不到 IEC-104,可能是安装 EdgeLink 时版本太老,没有 IEC60870 驱动,请按照最新版本studio。

3.2 第二步:配置设备参数

设备建好后,填连接参数。这是最关键的一步:

参数我填的值说明
名称110kV小型变电站自定义
设备类型IEC 60870-5-104必须选这个
IP/域名192.168.10.33从站(模拟器)的 IP
端口号2404IEC104 标准端口
单元号1就是公共地址 CA,对应模拟器 COA

然后是那串神秘的参数 t1:t2:t3:k:w:OA:DA:ST,一行填完:

逐个解释:

参数含义
t115发送→确认超时(秒),发出 I 帧后多久没 ACK 就重传
t210确认→发送超时(秒),收到后多久内必须回 ACK
t320空闲测试超时(秒),多久没数据就发 TESTFR 心跳
k12最大未确认 I 帧数(发送窗口)
w8触发 S 帧确认的阈值
OA1主站地址(Originator Address)
DA1从站公共地址(= 模拟器 COA)
ST1扫描时间(秒,总召周期)

OA 和 DA 是最容易搞混的两个

  • OA = 主站自己的地址,填 1(或 0,看主站规约)
  • DA = 从站的公共地址,必须和模拟器的 COA 一致,我的是 1

⚠️ 第二个坑:DA 和模拟器 COA 对不上,链路能建但数据解析全是错的。这是经典坑。

⚠️ 第三个坑:t1 必须大于 t2。如果 t1 < t2,发送方会在接收方还没来得及确认时就超时重传,导致链路异常。

点”应用”保存设备配置。

3.3 第三步:添加 Tag 点

设备建好后,右键设备 → 添加 Tag 点。这里会弹出一个”新建点”对话框,点”地址”栏的按钮会弹出”默认地址”对话框。

⚠️ 第四个坑(最大的坑):这个”默认地址”对话框弹出来的模板下拉,选项长这样:

  • R:ReadAddr/ReadDataType/ReadCmd
  • W:WriteAddr/WriteCmd
  • R:ReadAddr/ReadDataType/ReadCmd/W:WriteAddr/WriteCmd

乍一看全是 Modbus 风格的命名(ReadAddr、ReadCmd),很容易让人以为”驱动没切对,还是 Modbus”。但这其实是对的——研华 IEC-104 驱动内部就是用这套命名来封装 TI/IOA,模板名里的 ReadAddr 对应 IEC104 的 IOA,ReadDataType 对应 TI 类型。不要被命名风格骗了

地址栏的填法(这一块单独成篇,详见系列第四篇),简单说:

  • 只读点(遥信/遥测/遥脉/SOE):R:组内IOA / TI类型 / n
  • 只写点(设定值):W:组内IOA / TI类型
  • 遥控点(读写+SE):R:回读IOA / 回读TI / n / W:命令IOA / n / SE

举例,读 Group-3 标度化遥测的第 1 个点(110kV 母线 Uab):

意思是:读 M_ME_NB_1 类型(TI=11 标度化遥测)组内 IOA=1 的点,Read Command 填 n。

每个点还要配:

  • 数据类型:遥测选 Analog,遥信选 Digital,遥控选 Command
  • 量程:最高/最低量程按工程实际填(如电压 0~120000V)
  • 读写属性:遥测遥信选只读,遥控选读写
  • 缩放类型:Linear(线性)

3.4 第四步:下载工程

70 个点全配完后:

  1. 点工具栏的”下载”按钮,把工程下到 ECU-1251TL
  2. 等下载完成
  3. 在工程里查看实时数据,或用 ECU 自带的监控界面看

四、链路验证:怎么判断真的通了

下载完不等于通,要验证。按这个顺序看:

4.1 看 TCP 连接是否建立

ECU 端应该能看到一条到模拟器 IP:2404 的 TCP 连接(ESTABLISHED)。如果连不上:

  • 模拟器是否启动了监听
  • 端口 2404 是否被占用
  • 防火墙是否放行

4.2 看 STARTDT 是否完成

TCP 通了之后,ECU(主站)应该自动发 STARTDT act,模拟器回 STARTDT con。如果链路通但没数据,八成是 STARTDT 没成功——检查 ECU 的 IEC104 驱动里有没有”启用数据传输”或类似的开关。

4.3 触发总召

STARTDT 完成后,触发总召(ECU 一般会按 ST 参数周期性自动总召,也可手动触发)。模拟器应该把所有点回一遍(COT=20 响应总召)。

4.4 看实时数据

在 EdgeLink 的监控界面或 SCADA 端看实时数据,70 个点应该都有值。如果部分点有部分没有,查 TI 类型和组内 IOA 是否对齐。


五、踩坑总结

这一路配下来,我踩了 4 个坑,全部记录如下:

坑 1:以为 ECU 只支持 Modbus

现象:第一次配点时用的 Modbus 模板,就以为 ECU-1251TL 只能跑 Modbus。

真相:研华官网明确写 ECU-1251TL 支持 IEC60870-101/104。Modbus 只是我当时选的驱动,不是 ECU 的能力上限。

教训不要凭一次配置的截图就推断设备的能力边界,先查官方协议支持矩阵。

坑 2:以为”默认地址”模板是 Modbus 残留

现象:切到 IEC-104 设备后,新建点弹出的”默认地址”模板还是 ReadAddr/ReadCmd 这种 Modbus 风格命名,以为驱动没切对。

真相:研华 IEC-104 驱动内部就是用这套命名封装 TI/IOA,模板名不代表底层协议。

教训不要凭命名风格判断底层协议。命名是厂商的封装选择,和协议本身是两码事。判断驱动类型要看设备属性里的 Driver 字段实际值。

坑 3:IOA 用全局编号而不是组内编号

现象:第一版配置表把 70 个点按全局 1~70 连续编号,结果数据对不上。

真相:模拟器(和很多实际装置)是按 TI 类型分组、每组内 IOA 从 1 独立起编。不同组的 IOA=1 物理含义不同,靠 TI 区分。

教训通用协议规范 ≠ 具体产品实现。IEC104 规约说 IOA 是 3 字节全局地址,但具体产品可能按组管理。配置时以产品实际行为为准。

坑 4:读写 Tag 的 Write Command 填错

现象:遥控点用读写+SE 格式,Write Command 填了 TI 类型名(C_SC_NA_1),官方说明里却填 n。

真相:对照官方 5 个例子,规律是——

  • 带 R 读部分的 Tag(只读/读写/读写+SE)→ Read Cmd 和 Write Cmd 都填 n
  • 纯 W 写 Tag(只写/只写+SE)→ Write Cmd 填 TI 类型名

教训官方说明要逐字对照例子,不要凭印象填,也不要留”如果报错再换”的尾巴。规律看透了就一次填对。


六、最终结果

四个坑全踩过、全填平之后:

  • ✅ TCP 链路建立
  • ✅ STARTDT 完成
  • ✅ 总召数据完整上送
  • ✅ 70 个点全部读通

链路打通那一刻,看实时数据刷刷上来,前面踩的坑都值了。


七、小结

步骤关键点
选设备类型IEC 60870-5-104 是独立大类,不在 Modbus 下
配设备参数DA=模拟器COA,t1>t2,OA/DA 别搞反
配 Tag 点地址用组内 IOA,TI 类型选对
Write Command读写 Tag 填 n,只写 Tag 填 TI 类型名
下载验证看 TCP 连接 → STARTDT → 总召数据

下一篇我会给出完整的 70 个 Tag 地址表,可以直接复制到 EdgeLink 地址栏,以及 Tag 地址格式的逐条解读。


系列文章导航

  • 第一篇:IEC 60870-5-104 电力远动规约详解
  • 第二篇:IEC104 模拟器仿真环境搭建与 110kV 变电站点位设计
  • 第三篇:研华 ECU-1251TL 配置 IEC104 主站实战(本文)
  • 第四篇:研华 IEC104 驱动 Tag 地址格式详解与 70 点配置表