diff --git a/docs/ai/handoff.md b/docs/ai/handoff.md index 66305c7..3ac8164 100644 --- a/docs/ai/handoff.md +++ b/docs/ai/handoff.md @@ -18,7 +18,7 @@ - 通信错误停止轮询并保留最后一次有效缓存,状态栏和日志显示错误 - 通信故障立即撤销当前连接的首读资格;真机运行中发生故障会自动返回编辑态,重新进入真机前必须重新连接并完成新一轮首读 - PLC 故障态可直接“重新配置”,连接前自动清理旧串口会话,不再要求用户先手动点击断开 -- PLC 日志区分串口未打开、串口已打开但 PLC 无响应、USB 转串口从电脑移除、已建立通信后的超时和 Modbus 协议异常 +- PLC 日志区分连接阶段串口无法打开与已连接后的本地串口意外中断;后者自动转为已断开并禁用重复断开操作 - 主窗口静态控件已迁入 `main_window.ui`,PLC 参数由独立配置对话框收集后再发起连接 - 已增加运行监控工作台:离线仿真同时显示 HMI、梯形图轨迹和自由监控,真机运行只显示 HMI 和自由监控 - 自由监控支持 `M0~M4000`、`D0~D4000` 地址输入、连续批量添加、去重、删除、清空和最多 64 项限制 @@ -94,10 +94,9 @@ Qt Release 应用已完成干净构建,并执行了启动与正常退出冒烟 配置”,用户确认后自动断开并清理旧会话,再发起新连接。旧连接未完成的异步回复使用连接代次 隔离,不能污染重连后的新会话。 -PLC 错误分类已拆到独立基础设施模块:连接阶段串口未打开、串口已打开但 PLC 首次无响应、 -电脑侧 USB 转串口移除、已建立有效通信后的超时、Modbus 协议异常、读写错误和配置错误使用 -不同中文日志。PLC 侧 A/B 断开但 USB 转串口仍在时,日志报告本地串口仍打开且 PLC 通信超时; -电脑侧 USB 转串口移除时,日志报告转换器已从电脑移除。 +PLC 错误分类已拆到独立基础设施模块。连接阶段无法打开串口时直接报告端口不存在或被占用, +保持未连接状态;已连接后收到 `ConnectionError` 或意外进入 `UnconnectedState` 时统一报告本地 +串口连接已中断,自动清理并转为未连接状态,不再依赖错误瞬间的 Windows COM 口枚举结果。 本轮新增自动化测试覆盖故障自动退回编辑态、首读资格撤销、故障后禁止重新进入真机、故障态 直接重连清理旧会话、主窗口重新配置入口和五类核心通信错误。`plc_runtime_tests`、 diff --git a/docs/architecture.md b/docs/architecture.md index 84c2b22..a36af36 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -144,10 +144,10 @@ HMI 写入只表示异步请求已受理,不乐观修改 PLC 缓存,实际 编辑态,PLC 最后一次有效缓存仍保留用于日志和故障诊断,但不能作为再次进入真机运行态的依据。 重新进入真机运行必须重新连接 PLC,并在当前连接中重新完成首次读取。 -通信服务结合 Qt Modbus 错误、串口是否曾成功打开、配置端口是否仍存在以及当前连接是否收到过 -有效响应,区分以下故障:串口未打开导致的连接失败、串口已打开但 PLC 首次无响应、USB 转 -串口从电脑移除、已建立通信后的超时、Modbus 协议异常、读写失败和串口参数错误。故障态允许 -直接重新配置;用户确认连接后,运行模式服务先清理旧串口会话,再使用新参数连接。 +通信服务根据 Qt Modbus 错误和串口是否曾成功打开区分连接阶段失败与运行中连接中断。连接阶段 +无法打开串口时直接保持未连接状态;已经连接后收到 `ConnectionError` 或意外进入 +`UnconnectedState` 时,统一报告本地串口连接中断,自动清理会话并进入未连接状态。错误日志 +独立保留,不会为了显示故障而继续把串口会话表示为已连接。 ## 运行模式边界