综合平台编程器项目的远程存储
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

4.2 KiB

当前开发交接

更新日期:2026-08-19。本文件只保留当前状态和下一步;完成事项合并成结论,不追加按日期排列的开发日志。

当前状态

  • 分支:main
  • 核心软件闭环已经可用:HMI 编辑、结构化梯形图、离线仿真、工程 JSON、自由监控和 Modbus RTU 真机读写均已实现
  • 当前工作区有未提交改动,主要是全项目数量边界、梯形图最大 11 列、无条件输出语义及配套测试和文档;开始工作前先看 git status 和相关 diff,不要重置
  • docs/二次开发/ 是已有未跟踪资料,不能因当前任务删除
  • 当前没有代码阻塞;下一里程碑是实际设备 RUN 联动和交付整理

已实现能力

  • 工程格式为严格的 1.0,保存多 HMI 页面、初始页、报警定义、M/D 注释、多控制逻辑和结构化梯形图;不读取旧 dataPointsstages/branches 格式
  • HMI 现有 8 类控件:Button、Indicator、NumericDisplay、NumericInput、Label、PageJump、AlarmList、ProgressBar
  • 梯形图使用 Node / Wire / Series / Parallel 表达式树和正交网格,不保存自由线段;前 10 列为条件区,输出最多位于第 11 列
  • 梯形图支持 M 触点与上下沿、T/C 触点、普通/置位/复位线圈、TON、CTU/CTD、MOVE、ADD/SUB
  • 只有输出、没有条件的网络按恒真执行;只有条件、没有输出的启用网络不能运行;空网络扫描时跳过
  • 离线执行器按控制逻辑和网络顺序扫描,使用虚拟 M/D,并生成按逻辑 ID 隔离的运行轨迹
  • 真机模式只使用 PLC 读回缓存,停止本地逻辑执行器,不下载本地梯形图,也不显示伪造的 PLC 梯形图轨迹
  • 自由监控属于当前会话,支持 M/D 批量添加、去重、读取和单点写入,不写入工程 JSON
  • PLC 通信使用异步 Qt Modbus RTU;轮询地址来自 HMI、报警、梯形图和自由监控的引用并集,写入后等待轮询确认,不乐观修改缓存
  • 真机进入要求当前连接完成首次读取;通信故障撤销首读资格并退出真机运行,恢复通信后仍停留在编辑态
  • 所有数量上限和超限处理见 docs/用户使用/数量边界确认方案.md,核心常量集中在 app/src/domain/project_limits.h

当前未提交改动

  • 对页面、控件、报警、逻辑、表达式、字符串、JSON、通信参数、轮询规模、日志和撤销历史补齐统一数量限制
  • 单网络条件区从原 256 列收紧为 10 列,输出最多占第 11 列,横线跨度最多 10 列,表达式深度最多 20 层
  • 编辑服务在第 11 个条件加入时原子回退;JSON 加载和领域校验不能绕过边界
  • 无条件输出已经贯通领域校验、编辑服务、JSON 往返、离线执行器、轨迹和画布提示
  • AGENTS.md、本 handoff 和 docs/architecture.md 已按长期规则、动态状态和稳定架构重新分工精简

最近验证

  • 当前数量边界和无条件输出改动已通过:domain_testslogic_editor_service_testsoffline_simulation_service_testsproject_management_testsmain_window_tests
  • Qt Release 主程序已重新构建并链接成功
  • git diff --check 通过;runtime_mode_service_tests.cpp 仅有既存 CRLF 转 LF 提示
  • 真实 PLC 已使用 COM3 / 9600 / 8E1 / 站号 1 验证首次读取、断线恢复和重新首读
  • 2026-08-19 已读取 D4000=0,写入并读回 1,随后恢复并读回 0;没有下载 PLC 程序
  • 当前无条件输出改动只影响领域校验和离线执行器,真机模式不执行该逻辑,因此没有为此重复写 PLC

待完成

  1. 在确认接线、地址和负载安全后,将 PLC 切到 RUN,完成 HMI 与实际设备的完整联动测试
  2. 整理最终演示工程、构建说明和验收记录
  3. 复核当前未提交 diff,并按逻辑拆分提交;不要把 docs/二次开发/ 等来源不明改动混入提交

下一会话起点

  1. 运行 git status --short,确认当前未提交和未跟踪文件仍在
  2. 根据任务读取 docs/architecture.md、数量边界文档或硬件/Modbus 要点,不再从旧开发日志推断现状
  3. 修改代码后运行受影响测试和 Release 构建;涉及真机通信时按 AGENTS.md 做 COM3 读写及恢复验证