Southbound Drivers
设备驱动
南向采集驱动的设计文档、测试报告、优化方案与故障分析 — 覆盖 Modbus、BACnet、OPC UA、S7、EtherNet/IP、Omron FINS、SNMP、IEC 104、DL/T645、Mitsubishi MC、Profinet IO、KNXnet/IP 等工业协议。
驱动支持矩阵
注册来源:
cmd/main.go空白导入 · 测试数据:2026-06-28 ·CGO_ENABLED=0
| 协议 | 注册名 | 状态 | 读 | 写 | 扫描/发现 | 连接管理 | 单元测试 |
|---|---|---|---|---|---|---|---|
| Modbus TCP/RTU | modbus-tcp, modbus-rtu, modbus-rtu-over-tcp |
生产就绪 | 是 | 是 | — | 是 | 33 项,27% 覆盖 |
| BACnet IP | bacnet-ip |
生产就绪 | 是 | 是 | Scan + ScanObjects | 故障隔离 | 80+ 项,59% 覆盖 |
| OPC UA Client | opc-ua |
生产就绪 | 是 | 是 | Scan + ScanObjects | 是 | 25 项,40% 覆盖 |
| Siemens S7 | s7 |
生产就绪 | 是 | 是 | — | 是 | 52 项,42% 覆盖 |
| EtherNet/IP | ethernet-ip |
生产就绪 | 是 | 是 | — | 是 | 60 项,30% 覆盖 |
| Omron FINS | omron-fins |
生产就绪 | 是 | 是 | — | 是 | 12 项,31% 覆盖 |
| SNMP v2c/v3 | snmp |
生产就绪 | 是 | 是 | ScanObjects | 是 | 22 项,45% 覆盖 |
| IEC 60870-5-104 | iec60870-5-104 |
M1 已交付 | 是 | 是 单点遥控 | — | 是 | 16 项,45% 覆盖 |
| DL/T645-2007 | dlt645 |
生产就绪 | 是 | 是 | — | 是 | 24 项,71% 覆盖 |
| Mitsubishi SLMP | mitsubishi-slmp |
生产就绪 | 是 | 是 | — | 是 | 13 项,57% 覆盖 |
| Profinet IO | profinet-io |
生产就绪 | 是 | 是 | — | 是 | 11 项,49% 覆盖 |
| KNXnet/IP | knxnet-ip |
生产就绪 | 是 | 是 | 网关发现 | 是 | 13 项,67% 覆盖 |
主要配置参数
| 驱动 | 关键配置项 |
|---|---|
| Modbus | ip, port, slaveId, timeout,连接类型 TCP/RTU/RTU-over-TCP |
| BACnet | ip, port, deviceId,广播网口、对象实例 |
| OPC UA | endpoint,安全策略/模式,凭证,订阅间隔 |
| S7 | ip, port, rack, slot,PLC 型号 (200Smart/1200/1500/300/400) |
| EtherNet/IP | ip, port, slot,Tag 路径,连接类型 |
| Omron FINS | plcIP/ip, plcPort/port, timeout,源/目的节点地址,TCP/UDP |
| Mitsubishi MC | ip, port, frame_type, network_no, station_no, timeout |
| SNMP | snmpVersion, targetIP, community (v2c),USM 认证/加密 (v3),maxBulkSize |
| DLT645 | connectionType (serial/tcp), port, ip, baudRate, timeout, 表地址 + DI |
| Profinet IO | local_interface, timeout, simulation;设备级 ip, port, slot, subslot, device_name |
| KNXnet/IP | ip, port, mode (TCP/UDP),discovery, discovery_timeout, discovery_multicast |
| IEC 104 | ip, port, commonAddress,T0–T3 定时器,总召唤间隔 |
目录
Modbus
BACnet
- BACnet 设计说明
- BACnet 驱动采集测试验收清单
- BACnet 故障隔离报告
- BACnet 前端功能清单
- BACnet 前端需求
- BACnet 多设备隔离测试计划
- BACnet 点位串流 bug
- API BACnet
OPC UA
S7 协议
Profinet IO
EtherNet/IP
Omron FINS
Mitsubishi MC
SNMP
DL/T 645
IEC 60870-5-104
测试报告
连接管理系统 (2026-06)
ConnectionManager 公共组件
核心特性:
- 统一连接状态机:
Disconnected → Connecting → Connected → Retrying → Dead - 指数退避算法:
backoff = min(base_delay × 2^retry_count, max_delay) + jitter - 冷却期策略:基础冷却 1 分钟,指数增长,最大 1 小时
- 每日清零机制:每日零点自动重置重试计数与冷却次数
适用驱动: S7、Modbus、EtherNet/IP、OPC UA、FINS、SNMP、DL/T645、Profinet IO、KNXnet/IP
采集健康检测
采集成功 = 连接健康 · 采集失败 = 连接异常 · 连续失败达到阈值 → 触发状态变更
| 驱动/型号 | 最大失败次数 | 默认采集周期 | 说明 |
|---|---|---|---|
| S7-200Smart | 3 次 | 60 秒 | 弱 PLC,保护设备 |
| S7-1200/1500 | 5 次 | 10 秒 | 标准 PLC |
| Modbus | 5 次 | 可配置 | 通用设置 |
| EtherNet/IP | 5 次 | 可配置 | Rockwell 系列 |
| OPC UA | 5 次 | 订阅回调触发 | 订阅数据质量判断 |
| FINS | 5 次 | 可配置 | 欧姆龙 PLC |
| SNMP | 5 次 | 可配置 | 网络设备 |
低频采集补偿探测
当采集周期超过 3 倍阈值时,自动触发轻量探测请求:
- S7:读取 M 区 1 字节
- Modbus:读取单个寄存器
- EtherNet/IP:读取单个 Tag
- OPC UA:读取 ServerStatus 节点