综合平台编程器项目的远程存储
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

7.7 KiB

当前开发交接

更新日期:2026-08-25。本文件只保留当前工作区状态、最近验证和下一步,不记录历史开发流水账;稳定架构和业务细节分别以 docs/architecture.md 及对应专题文档为准。

当前状态

  • 分支:main
  • 核心闭环可用:HMI 编辑、结构化梯形图、离线仿真、工程 JSON、运行监控、自由监控和 Modbus RTU 真机读写均已实现
  • 梯形图条件区已经统一为显式模型:可见横线保存为 Wire,明确断路保存为 Gap,输出固定在第 11 列
  • 工程 JSON 继续严格使用 1.0,不增加版本迁移或早期同版本草稿兼容分支
  • HMI 进度条控件已经完整移除,编辑器、运行投影和工程 JSON 均不再支持该类型
  • 返回编辑态后会拒绝退出前排队的离线扫描轨迹,梯形图不会重新显示旧的绿色导通状态
  • 新建工程名称为空或全是空白时会禁用确认按钮,取消输入时继续安全保留当前工程,不再静默接受无效名称
  • 第一次保存和工程另存为会用当前工程名称预填 .json 文件名,并兼容 Windows 非法字符与保留设备名
  • PLC 通信配置支持刷新当前可用串口及按当前站号自动搜索:搜索异步遍历可用串口和全部受支持串口参数,找到后自动回填并进入正式连接,搜索可随时取消
  • HMI/梯形图复制粘贴、数量边界收紧和全局对话框标题栏调整仍保留在当前未提交工作区
  • 当前没有代码阻塞,Release 功能测试、性能测试和主程序构建均已通过

工作区状态

  • 当前未提交功能改动包含 HMI/梯形图复制粘贴、数量边界收紧、对话框标题栏调整、显式 Wire / Gap 梯形图连接模型、离线轨迹退出时序修复、HMI 进度条控件移除,以及 PLC 自动搜索
  • PLC 自动搜索新增服务层搜索契约、独立 Qt Modbus RTU 探测实现、配置对话框进度/取消交互、主窗口依赖注入、候选覆盖测试和离屏对话框流程测试
  • Git 忽略的 json/ 本地示例工程已同步当前格式;综合测试工程删除了进度条对象和关联说明,电机正反转工程无需内容调整
  • .gitignoreAGENTS.md、未跟踪脚本和测试大纲文档属于工作区已有内容,没有被本轮回退
  • build/ 只保存本地构建和测试输出,不纳入 Git

本轮变更结论

  • 条件区每一段可见、可选择和可删除横线都持久化为 Wire(columnSpan);没有横线的位置使用 Gap(columnSpan) 明确占位
  • 有输出的网络必须由 Node / Wire / Gap 显式占满前 10 列;直接添加输出生成 Wire(10) + Output,一个触点后添加输出生成 Node + Wire(9) + Output
  • 删除触点会在原位置留下单格 Gap;删除横线只断开选中的网格,支持在 Gap 上补横线或原位插入触点
  • 并联各支路必须显式等宽,短支路补线保存为真实 Wire;母线、节点和输出自身端子、并联竖线仍由结构派生
  • Gap 可以保存草稿,但运行校验会拒绝;执行器不再把 condition=null + output 解释为隐式恒真网络
  • JSON 继续严格读写 formatVersion: "1.0",新增 kind: "gap" 表达式;早期依赖隐式输出连线或隐式并联补线的同版本草稿不会自动迁移
  • RuntimePanelController 只在仍处于离线运行且执行器状态为 Running 时接收扫描轨迹;返回编辑态后的过期排队回调会被丢弃
  • HMI 控件枚举、注册描述、专用配置模型、编辑服务比较/默认值、JSON 字段、画布绘制、属性表单、添加动作和工具栏图标中的进度条代码均已删除
  • 严格 1.0 工程只接受当前注册表中的 7 类 HMI 控件;包含已移除控件类型的工程会按不支持类型拒绝加载,不做同版本迁移
  • HMI 编辑和工程管理测试样例已移除该控件,并保留未知 HMI 类型加载失败的通用回归覆盖
  • 自动搜索固定使用界面当前站号,按优先级遍历每个可用 PC 串口的 60 组受支持串口参数;不穷举 1~247 站号
  • 每组参数只读 D0,不写 PLC;正常回复或合法 Modbus 异常回复都视为参数匹配,找到后先释放搜索串口再交给原正式连接流程
  • 搜索期间配置表单和确认按钮禁用,自动搜索按钮切换为停止命令;取消、无串口和全部失败都有明确结果,找到后自动回填端口、波特率、数据位、校验位和停止位
  • 端口下拉框右侧提供刷新按钮;窗口打开和手动刷新时都只保留系统当前实际存在的串口,不再把已经拔掉的上次配置端口重新加入列表

最近验证

  • 2026-08-25 PLC 自动搜索完成后,11 个 Release 功能测试目标全部通过;plc_connection_dialog_tests 覆盖开始、取消、进度、参数回填和端口刷新,plc_runtime_tests 覆盖 180 组候选优先级、去重和边界
  • 2026-08-24 修复新建工程空名称静默失败后,10 个 Release 功能测试目标全部通过,Release 主程序重新编译并链接成功
  • 2026-08-24 删除 HMI 进度条后重新 qmake、构建并通过 10 个 Release 功能测试目标:Domain、Alarm、HMI 编辑、梯形图编辑、离线仿真、工程管理、寄存器监控、运行模式、运行面板控制器和 PLC Runtime 全部通过
  • 新增真实 RuntimePanelController + LogicEditorWidget 无界面回归测试,确认退出前排队的 scanCompleted 在编辑态不会恢复绿色轨迹
  • 独立 Release 性能目标通过:100 个控制逻辑扫描约 0.207 ms,4001 个 M 寄存器完整读写约 0.048 ms;CSV 位于 build/tests/release/performance_tests/benchmark.csv
  • Qt Release 主程序重新构建并链接成功:build/release/release/integrated_platform.exe
  • 工程管理测试覆盖 Gap 严格 1.0 往返、Wire(10) 恒真输出、拒绝加载 condition=null + output 的隐式连线草稿,以及拒绝未知 HMI 控件类型
  • json/full_hmi_ladder_test.jsonjson/motor_forward_reverse.json 均已使用当前 JsonProjectStorage 实际加载成功,并通过领域校验
  • 2026-08-25 使用新搜索器按站号 1 对本机 COM1/COM2/COM3 完成 180 组参数的只读 D0 尝试,设备未返回 Modbus 响应并正确报告未找到;本次没有写寄存器,不需要恢复原值,也不能作为成功联机证据

待完成

  1. 人工确认 HMI 工具栏和属性面板不再出现进度条入口或空白属性行,再操作直接输出、触点后输出、横线选中、单格断线、断路补线、断路插入触点、删除触点和保存重载,并确认离线仿真返回编辑态后不保留绿色轨迹
  2. 需要继续使用的早期隐式连线 1.0 草稿应在当前编辑器中重新保存为显式 Wire / Gap 结构,本项目不提供自动迁移
  3. 在确认 PLC 已上电、RS-485 接线正确、COM2 已配置为 Modbus RTU 从站且站号正确后,人工验收自动搜索能找到配置并自动完成正式连接
  4. 提交时区分本轮显式连接模型、PLC 自动搜索与工作区其他已有改动,避免混入无关未跟踪文件

下一会话起点

  1. 先运行 git status --short,保留工作区全部现有修改,不回退来源不明的文件
  2. PLC 设备条件就绪后先在配置窗口保持正确站号,点击自动搜索,确认进度、停止、未找到提示,以及找到后参数回填和正式连接
  3. 人工验收 HMI 时确认“更多控件”菜单只保留页面跳转、报警列表和报警配置;验收梯形图时重点确认选中有线网格仍显示横线,删除后只有目标格变为断路,补线后恢复运行资格
  4. 修改代码后运行 pwsh -NoLogo -NoProfile -File .\scripts\run_qt_tests.ps1 -Configuration Release -Suite All、Release 主程序构建和 git diff --check