v2.2.0
约 1037 字大约 3 分钟
2026-05-19
日期:2026-05-18 类型:Feature / Architecture / Resilience
变更概述
针对工业通讯网关在恶劣网络环境(如切换 WIFI、短暂断网、网线松动等)下的稳定性要求,本次更新对 UniCon 驱动系统进行了连接自愈与网络韧性的深度升级:
- 全局网络状态监控 (INetworkMonitor):引入硬件级网络状态变更感知,规避套接字断开事件的“虚假存活”迟滞。
- 底层事件驱动断线感知:各协议驱动全面挂载底层客户端事件(MQTT Disconnected, OPC UA Faulted/Closed 等),从“轮询心跳检测”升级为“主动事件触发”的毫秒级故障响应。
- 故障自愈 Watchdog 智能流控:结合网络可用性,在断网时智能挂起重连定时器,降低 CPU 开销,并在网络恢复瞬间实现毫秒级自动重连自愈。
- 全套接字异常防护降级:S7 和 Modbus 等传统无事件协议,在传输层捕获 any I/O 或套接字异常时即刻驱动状态机流转为 Faulted。
[v2.2.0] - 2026-05-18
Added / Changed / Fixed
- INetworkMonitor & NetworkMonitor: Added cross-platform system-level network status monitoring leveraging .NET's
NetworkChangeAPI. - DriverBase Self-Healing Watchdog: Upgraded base driver class to reactively pause reconnection schedules under a network outage and immediately resume/wakeup on network restoration.
- MqttDriver: Integrated reactive connection monitoring by hooking the underlying client's
DisconnectedAsyncevent. - OpcUaDriver: Integrated
CommunicationStatetransition checks and hooked SessionFaulted/Closedchannels to instantly transit driver toFaultedstate. - OpcUaPubSubDriver: Added
ConnectionLostevents to transport layers (MqttPubSubTransportandUdpPubSubTransport) to instantly react to protocol/socket exceptions. - S7Driver & ModbusDriver: Instrumented read, write, and batch communication scopes to transition the driver state to
Faultedimmediately upon physical client/socket loss. - Resilience Tests: Implemented a comprehensive suite of unit tests in
ResilienceTests.csvalidating network-down pausing and network-restored instant wakeup behaviors.
Key Changes
- Reduced reconnect recovery latency under restored networking to milliseconds.
- Reduced host machine CPU, socket port, and network thrashing during extended outages via passive pause mechanism.
- Handled all event subscriptions cleanly in
Disposescopes to prevent memory leaks.
------details-----
🔍 Task Details
📌 Current Task Board: 驱动连接自愈与网络韧性升级
🎯 最终目标
- 实现全局网络状态感知并深度整合至所有驱动中,使驱动能够监听物理和协议客户端事件(Mqtt, OpcUa, Modbus, S7, OpcUaPubSub),保障在断网/网络切换时的秒级故障自愈,且在断网期间挂起重连以免资源浪费。
📂 涉及文件 (Strictly Locked)
📝 Steps
------details end------
