Explorar el Código

docs: 记录PLC真机首次读取验证

main
suyu hace 1 mes
padre
commit
bf0829d97e
Se han modificado 1 ficheros con 8 adiciones y 0 borrados
  1. +8
    -0
      docs/ai/handoff.md

+ 8
- 0
docs/ai/handoff.md Ver fichero

@@ -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)` 的结构变换和非连续范围拒绝。


Cargando…
Cancelar
Guardar