From 49b7a17bdbd27abd13b5bd625bd1db5b22bc7ca4 Mon Sep 17 00:00:00 2001 From: suyu <1643689728@qq.com> Date: Thu, 13 Aug 2026 17:25:38 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=A1=A5=E5=85=85HMI=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=A8=A1=E5=BC=8F=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ai/handoff.md | 7 +++++++ docs/architecture.md | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/docs/ai/handoff.md b/docs/ai/handoff.md index 22606e1..346969c 100644 --- a/docs/ai/handoff.md +++ b/docs/ai/handoff.md @@ -20,12 +20,14 @@ - 已增加运行监控工作台:离线仿真同时显示 HMI、梯形图轨迹和自由监控,真机运行只显示 HMI 和自由监控 - 自由监控支持 `M0~M4000`、`D0~D4000` 地址输入、连续批量添加、去重、删除、清空和最多 64 项限制 - 自由监控读取活动寄存器仓库,离线使用虚拟 M/D,真机使用 PLC 缓存,通信故障保留并标记最后有效值 +- HMI 按钮支持 TouchWin 同类的置 ON、置 OFF、取反和瞬时 ON,默认瞬时 ON - PLC 轮询集合已扩展为 HMI、梯形图和自由监控地址的并集,连接后可动态增删监控地址 - 已在真实 `COM3 / 9600 / 8E1 / 站号 1` 上完成只读联机验证,项目通信服务可完成 M/D 首次读取并进入真机运行前置状态 ## 关键决策 - 工程格式继续使用 `1.0`,当前文件只保存 HMI 和梯形图表达式树,不保留 `dataPoints` 结构及兼容代码 +- 按钮操作是工程 `1.0` 的必填字段,不兼容或迁移缺少该字段的旧按钮数据 - 不读取旧的 `stages/branches` 结构,不添加旧格式迁移和兼容层 - 梯形图编辑结构而不是自由线段,避免悬空线、环路和多个输出路径 - 网格仅作为编辑投影,不进入工程格式;服务层把连续范围操作转换为规范化表达式树 @@ -82,6 +84,11 @@ HMI 控件在离线运行工作台中显示为空白。现在每次同步运行 Qt Release 应用已完成干净构建,并执行了启动与正常退出冒烟验证。`git diff --check` 无空白错误。 +本轮参照 TouchWin 按钮业务新增四种位操作:置 ON、置 OFF、取反、瞬时 ON。按钮操作 +使用领域枚举并写入工程 `1.0` JSON;运行服务按 Pressed/Released 事件生成写值,瞬时 ON +按下写 1、释放写 0,其他模式释放不重复写入。属性面板只在选中按钮时显示操作模式,新建 +按钮默认瞬时 ON。相关服务、离线闭环、JSON 往返与主窗口测试已覆盖。 + ## 待完成事项 1. 在 PLC STOP 状态确认 COM2 参数和 RS-485 A/B 接线 diff --git a/docs/architecture.md b/docs/architecture.md index ddb596f..818b47f 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -55,6 +55,10 @@ main.cpp -> UI + Services + Infrastructure `Project::validate()` 允许未绑定控件、待配置节点和未完成网络作为编辑草稿保存。`Project::validateForRunning()` 额外拒绝未绑定 HMI、待配置节点、空条件和缺少输出的网络。 +HMI 按钮操作作为工程 `1.0` 的强类型字段保存,支持 `置 ON`、`置 OFF`、`取反` 和 +`瞬时 ON`。新建按钮默认使用瞬时 ON;按钮按下和释放事件由 UI 转交运行服务解释,UI +不直接决定写入值。当前版本不迁移缺少按钮操作字段的旧工程文件。 + ## 结构化梯形图 网络条件采用递归表达式: