通用采集读
x/iotRead组件:v0.37.0+ 统一采集入口。按 driver 切换协议后端(modbus / s7 / eip / snmp / opcua / mc / fins / dlt645 / iec104),配置项透传给对应协议的读节点。输出统一为 iot_points.Data,与具体协议解耦--换后端只改 driver 与该协议的连接/点位配置,链上下游不变。
需要额外引入扩展库: rulego-components-iot (opens new window)
# 配置
| 字段 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| driver | string | 采集协议后端:modbus / s7 / eip / snmp / opcua / mc / fins / dlt645 / iec104 | 无(必填) |
| ...(透传) | - | 所选协议的连接/点位配置,原样传给对应读节点 | - |
各 driver 对应的实际节点与配置:
| driver | 实际节点 | 关键配置 |
|---|---|---|
| modbus | x/modbusRead | server / unitId / points(addr=Modicon) |
| s7 | x/s7Read | server / rack / slot / points |
| eip | x/eipRead | server / slot / points |
| snmp | x/snmpRead | server / points(addr=OID) |
| opcua | x/opcuaRead | server / policy / points(addr=NodeID) |
| mc | x/mcRead | server / points(addr=软元件) |
| fins | x/finsRead | server / transport / points(addr=DM/CIO) |
| dlt645 | x/dlt645Read | server / addr(表地址) / points(addr=DI) |
| iec104 | x/iec104Read | server / commonAddr / points(addr=IOA) |
# 输出
统一契约 iot_points.Data(与直连各协议读节点一致):
[
{"name": "temp", "value": 23.5, "timestamp": 1789999999000000000},
{"name": "humidity", "value": null, "timestamp": 1789999999000000000, "error": "timeout"}
]
1
2
3
4
2
3
4
单点失败仅在该点标记 error,不导致整批失败。
# 示例
{
"id": "read",
"type": "x/iotRead",
"configuration": {
"driver": "modbus",
"server": "tcp://192.168.1.100:502",
"unitId": 1,
"points": [{"name": "temp", "addr": "40001", "type": "FLOAT32"}]
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 关联组件
- 统一写入入口:x/iotWrite
- 落盘统一入口:x/tsdbWrite(配置 measurement 后可直接接收采集点数组)
在 GitHub 上编辑此页 (opens new window)
上次更新: 2026/08/01, 05:05:14