IEC 104 读
x/iec104Read组件:v0.37.0+ IEC 60870-5-104 电力远动主站,发起**总召唤(GI)**批量采集子站遥信/遥测/遥脉,结果以统一契约 iot_points.Data 列表写回 msg.Data,成功走 Success 链、失败走 Failure 链。
需要额外引入扩展库: rulego-components-iot (opens new window)
# 配置
| 字段 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| server | string | 子站地址 host:port,IEC 104 默认端口 2404 | 127.0.0.1:2404 |
| commonAddr | int | ASDU 公共地址(站址) | 1 |
| timeout | int | 总召唤等待超时(秒) | 5 |
| points | array | 默认点位表(addr=IOA)。若 msg.Data 带点位列表则优先使用(按需读) | 见下方 |
# 点位表字段
| 字段 | 说明 | 示例 |
|---|---|---|
| name | 点位名称 | 断路器1 |
| addr | 信息体地址(IOA) | 100、16385 |
| type | 类型标识(可选,仅说明用) | M_SP_NA_1、M_ME_NC_1 |
各字段支持 ${msg.xx} / ${metadata.xx} 模板。
# 采集模型
读时发起总召唤(GI),子站上送全数据后按 IOA 取值。支持 9 种 ASDU 类型:单点/双点遥信、标度化/短浮点遥测、累积量等。连接级失败自动重连重试。
# 输入/输出
- 输入(可选):
msg.Data带点位列表 JSON 则优先使用(动态采集) - 输出:
[{"name","value","timestamp","error"}](timestamp 为纳秒;error 仅单点失败时存在)
[
{"name": "断路器1", "value": true, "timestamp": 1789999999000000000},
{"name": "A相电压", "value": 220.5, "timestamp": 1789999999000000000}
]
1
2
3
4
2
3
4
# 示例
定时采集(前置 schedule 端点):
{
"id": "iec104_read",
"type": "x/iec104Read",
"configuration": {
"server": "192.168.1.10:2404",
"commonAddr": 1,
"timeout": 5,
"points": [
{"name": "断路器1", "addr": "1", "type": "M_SP_NA_1"},
{"name": "A相电压", "addr": "16385", "type": "M_ME_NC_1"}
]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
按需读(msg.Data 带点位列表,优先于配置):
[{"name": "频率", "addr": "16400", "type": "M_ME_NC_1"}]
1
# 关联组件
- 写入:x/iec104Write
- 统一采集入口:x/iotRead(driver=iec104)
- 转时序点落盘:x/tsdbWrite(配置 measurement)
在 GitHub 上编辑此页 (opens new window)
上次更新: 2026/08/01, 05:05:14