From bf0829d97e0685bbbdbc6e3cd1f09f1ea856300a Mon Sep 17 00:00:00 2001 From: suyu <1643689728@qq.com> Date: Thu, 13 Aug 2026 13:22:54 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=AE=B0=E5=BD=95PLC=E7=9C=9F=E6=9C=BA?= =?UTF-8?q?=E9=A6=96=E6=AC=A1=E8=AF=BB=E5=8F=96=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ai/handoff.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/ai/handoff.md b/docs/ai/handoff.md index b8870cd..3b8a49d 100644 --- a/docs/ai/handoff.md +++ b/docs/ai/handoff.md @@ -17,6 +17,7 @@ - 真机模式要求首次读取完成,不复制离线值,不运行 PC 软件逻辑执行器 - 通信错误停止轮询并保留最后一次有效缓存,状态栏和日志显示错误 - 主窗口静态控件已迁入 `main_window.ui`,PLC 参数由独立配置对话框收集后再发起连接 +- 已在真实 `COM3 / 9600 / 8E1 / 站号 1` 上完成只读联机验证,项目通信服务可完成 M/D 首次读取并进入真机运行前置状态 ## 关键决策 @@ -46,6 +47,13 @@ `main_window_tests` 还覆盖 PLC 配置参数往返、独立配置弹窗入口,以及主窗口不再内嵌串口参数控件。 +2026-08-13 真机排查发现 `QModbusRtuSerialMaster::connectDevice()` 在当前 Windows +串口驱动上会同步触发 `ConnectedState`。旧实现随后再次写入 `Connecting`,导致已经发出的 +读取响应因服务状态不是 `Connected` 而被丢弃,首次读取标志永远不能完成。现已把 +`Connecting` 状态设置移动到 Qt 连接调用之前,并在真实 PLC 上验证首轮 `M0~M2`、`D0` +读取约 288 ms 完成,缓存值为 `M0=1`、`M1=1`、`M2=0`、`D0=0`。主窗口现在会显示 +连接、首读完成和具体中文通信故障,生产代码中的业务错误提示已统一为中文,JSON 字段和协议标记保持不变。 + 本轮已完整删除统一数据点业务,包括领域模型、服务、主窗口 Dock、属性区下拉框、JSON 字段和独立测试工程。当前开发阶段不保留 `dataPoints` 旧结构的迁移或兼容逻辑。主窗口测试明确验证已删除控件不存在,PLC 轮询测试改为验证从 HMI 实际绑定收集地址。 本轮梯形图编辑重构还验证了:固定网格渲染、水平/垂直正交布线、工具栏直接建立并联支路,以及连续范围 `A AND ((B AND C) OR D)` 的结构变换和非连续范围拒绝。