1. 项目现状分析
1.1 当前架构
当前项目采用三级架构:
- 通道(Channel):对应一个采集驱动,管理多个设备
- 设备(Device):具体的设备实例,包含多个点位
- 点位(Point):设备的具体数据点
核心组件:
ChannelManager:管理所有采集通道及其设备CommunicationManageTemplate:管理设备运行状态- 多协议驱动:支持Modbus、BACnet、OPC UA、S7等协议
1.2 现有功能
- 设备状态管理(在线、离线、不稳定等状态)
- 定时数据采集
- 基本的设备指标收集
- 多协议支持
- 设备扫描和点位发现
1.3 存在的问题
- 缺乏设备级别的智能适配机制
- 采集参数固定,无法根据设备特性动态调整
- 没有统一的设备画像结构
- 并发采集策略不够优化
- 批量采集效率有待提高
- 缺乏RTT自适应和MTU动态协商机制
- 心跳保活机制不完善,死链检测慢
- 固定MTU限制大数据块传输
- 地址分散导致请求碎片化
- 异常恢复时间长
1.4 性能瓶颈分析与优化目标
| 维度 | 当前痛点 | 优化目标 | 关键技术 |
|---|---|---|---|
| 延迟 (Latency) | 静态超时/间隔策略导致长尾延迟;网络抖动引起重传风暴。 | 99th 百分位延迟 < 10ms | RTT 动态自适应窗口;EWMA 预测算法;QoS 优先级队列 |
| 吞吐 (Throughput) | 固定 MTU (如 Modbus 250B) 限制大数据块传输;地址分散导致请求碎片化。 | 自适应 MTU (最大支持 4096B) | 智能 MTU 动态协商;Gap 空洞合并算法;零拷贝环形缓冲 |
| 稳定性 (Stability) | 缺乏心跳保活机制,死链检测慢;异常恢复时间长。 | 故障检测 < 3s;自动重连恢复 | 智能业务心跳 (Traffic-Aware Heartbeat);链路层状态机 |
1.5 分层架构重构原则
采用 南向采集 -> 缓存 -> 影子设备 -> 边缘计算 -> 北向上报 的分层处理,并引入影子设备作为唯一内部数据模型中心:
- 采集层 (Collection Layer):
- 驱动适配: 统一封装 Serial, TCP, UDP 等物理通道。
- 协议适配: 适配 Modbus, S7, BACnet 等工业协议,增加
HeartbeatInterval,BufferSize,Qos等控制参数。 - 优化策略: 实现 RTT 统计、MTU 协商状态机与 Gap 合并策略。
- 缓存层 (Buffer Layer):
- 使用零拷贝环形缓冲 (Ring Buffer) 存储原始报文。
- 实现 ACK 压缩与重复包过滤。
- 边缘计算层 (Edge Computing Layer):
- 执行 TSL 物模型解析、公式计算、数据清洗。
- 动态调整采集策略 (如降级、加速)。
- 影子设备核心层 (Shadow Core Layer):
- Real Shadow Store:内存存储 + 本地 WAL 持久化。
- Virtual Shadow Engine:跨设备公式依赖计算。
- Edge Compute Engine:差值/步长/滑动平均/阈值计算。
- Atomic Dispatcher:版本推进 + QoS ACK 机制。
- 北向上报层 (Northbound Layer):
- 数据标准化 JSON/MQTT 上报。
- 提供
COLLECT_CTRL指令通道,支持参数热更新(已实现简单的双向控制功能的基础上优化)。 - 统一鉴权、限流、审计机制。