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 分层架构重构原则

采用 南向采集 -> 缓存 -> 影子设备 -> 边缘计算 -> 北向上报 的分层处理,并引入影子设备作为唯一内部数据模型中心:

  1. 采集层 (Collection Layer):
    • 驱动适配: 统一封装 Serial, TCP, UDP 等物理通道。
    • 协议适配: 适配 Modbus, S7, BACnet 等工业协议,增加 HeartbeatInterval, BufferSize, Qos 等控制参数。
    • 优化策略: 实现 RTT 统计、MTU 协商状态机与 Gap 合并策略。
  2. 缓存层 (Buffer Layer):
    • 使用零拷贝环形缓冲 (Ring Buffer) 存储原始报文。
    • 实现 ACK 压缩与重复包过滤。
  3. 边缘计算层 (Edge Computing Layer):
    • 执行 TSL 物模型解析、公式计算、数据清洗。
    • 动态调整采集策略 (如降级、加速)。
  4. 影子设备核心层 (Shadow Core Layer):
    • Real Shadow Store:内存存储 + 本地 WAL 持久化。
    • Virtual Shadow Engine:跨设备公式依赖计算。
    • Edge Compute Engine:差值/步长/滑动平均/阈值计算。
    • Atomic Dispatcher:版本推进 + QoS ACK 机制。
  5. 北向上报层 (Northbound Layer):
    • 数据标准化 JSON/MQTT 上报。
    • 提供 COLLECT_CTRL 指令通道,支持参数热更新(已实现简单的双向控制功能的基础上优化)。
    • 统一鉴权、限流、审计机制。