Southbound Drivers
设备驱动
南向采集驱动的设计文档、测试报告、优化方案与故障分析 — 覆盖 Modbus、BACnet、OPC UA、S7、EtherNet/IP、Omron FINS、SNMP、IEC 104、DL/T645、Mitsubishi MC、Profinet IO、KNXnet/IP、EtherCAT 等工业协议。
驱动支持矩阵
注册来源:
cmd/main.go空白导入 · 测试数据:2026-07-12 ·CGO_ENABLED=0· 详见 南向驱动测试报告
| 协议 | 注册名 | 状态 | 读 | 写 | 扫描/发现 | 连接管理 | 单元测试(-short 覆盖) |
|---|---|---|---|---|---|---|---|
| Modbus TCP/RTU | modbus-tcp, modbus-rtu, modbus-rtu-over-tcp |
生产就绪 | 是 | 是 | — | 是 | 65.9% |
| BACnet IP | bacnet-ip |
生产就绪 | 是 | 是 | Scan + ScanObjects | 故障隔离 | 66.1% |
| OPC UA Client | opc-ua |
生产就绪 | 是 | 是 | Scan + ScanObjects | 是 | 47.9% |
| Siemens S7 | s7 |
生产就绪 | 是 | 是 | — | 是 | 61.3% |
| EtherNet/IP | ethernet-ip |
生产就绪 | 是 | 是 | — | 是 | 62.2% |
| Omron FINS | omron-fins |
生产就绪 | 是 | 是 | — | 是 | 43.3% |
| SNMP v2c/v3 | snmp |
生产就绪 | 是 | 是 | ScanObjects | 是 | 63.7% |
| IEC 60870-5-104 | iec60870-5-104 |
M1 已交付 | 是 | 是 单点遥控 | — | 是 | 60.2% |
| DL/T645-2007 | dlt645 |
生产就绪 | 是 | 是 | — | 是 | 76.5% ✅ |
| Mitsubishi SLMP | mitsubishi-slmp |
生产就绪 | 是 | 是 | — | 是 | 70.7% ✅ |
| Profinet IO | profinet-io |
生产就绪 | 是 | 是 | — | 是 | 55.9% |
| KNXnet/IP | knxnet-ip |
生产就绪 | 是 | 是 | 网关发现 | 是 | 77.2% ✅ |
| EtherCAT | ethercat |
M1 已交付 | PDO + SDO | PDO + SDO | 是 | 是 | 87.8% ✅ |
ConnectionManager(公共组件):87.4% · 主驱动包 22/22 PASS(2026-07-12)
主要配置参数
| 驱动 | 关键配置项 |
|---|---|
| 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 定时器,总召唤间隔 |
| EtherCAT | local_interface, cycle_time_us, simulation;设备级 position, vendor_id, product_code, tx_pdo_size, rx_pdo_size |
目录
BACnet
权威: BACnet 设计说明(架构)· BACnet 前端需求(UI PRD)· 驱动采集验收清单(验收)
- BACnet 设计说明
- BACnet 驱动采集测试验收清单
- BACnet 故障隔离报告 — 历史归档
- BACnet 前端功能清单 — 索引
- BACnet 前端需求
- BACnet 多设备隔离测试计划 — 索引
- BACnet 点位串流 bug — 历史归档
- API BACnet
Modbus
权威: 边缘网关 Modbus 优化
- Modbus 优化 — 批量读索引
- Modbus 优化最终报告 — 历史归档
- Modbus 优化报告 — 历史归档
- Modbus 心跳优化 — 索引
- Modbus 智能探测
- 边缘网关 Modbus 优化
OPC UA
S7 协议
Profinet IO
EtherNet/IP
Omron FINS
Mitsubishi MC
SNMP
DL/T 645
IEC 60870-5-104
EtherCAT
测试报告
连接管理系统 (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、EtherCAT
采集健康检测
采集成功 = 连接健康 · 采集失败 = 连接异常 · 连续失败达到阈值 → 触发状态变更
| 驱动/型号 | 最大失败次数 | 默认采集周期 | 说明 |
|---|---|---|---|
| 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 次 | 可配置 | 网络设备 |
| EtherCAT | 5 次 | 周期可配置 | PDO 周期性数据交换 |
低频采集补偿探测
当采集周期超过 3 倍阈值时,自动触发轻量探测请求:
- S7:读取 M 区 1 字节
- Modbus:读取单个寄存器
- EtherNet/IP:读取单个 Tag
- OPC UA:读取 ServerStatus 节点
- EtherCAT:读取从站 TxPDO 状态