# 综合平台编程器开发顺序 > 本文规定项目的推荐开发顺序。原则是先建立稳定的数据模型和模块边界,再完成编辑功能,最后接入仿真与真实 PLC。每个阶段完成后都应保证项目可以构建、运行并提交一次 Git 记录。 ## 当前进度 第 1~10 步的软件实现已完成,工程格式继续使用 `1.0`,不保留旧梯形图结构的兼容代码。当前重点是第 11 步中的真机安全验证和第 12 步交付资料。 ## 1. 建立开发基线 - 初始化 Git 仓库,确认 `.gitignore`、编码规则和提交规范。 - 验证 Qt 5.15.2、qmake、MinGW、Qt SerialBus 的构建环境。 - 建立可启动的 Qt Widgets 空工程和独立构建目录。 完成标准:空程序可以通过 qmake 构建并正常启动。 ## 2. 搭建项目分层骨架 - 建立 UI、领域、服务、基础设施和测试目录。 - 明确模块依赖方向,`MainWindow` 只负责界面组织,不承载业务逻辑。 - 在 `docs/architecture.md` 中记录目录职责和核心数据流。 完成标准:各层具有清晰入口,工程仍可独立构建。 ## 3. 定义核心数据模型与接口 - 定义工程、HMI 页面、HMI 控件、结构化控制逻辑和 M/D 地址模型。 - 定义统一的寄存器仓库接口,隔离虚拟寄存器与真实 PLC 寄存器。 - 定义编辑态、离线运行态和真机运行态的状态边界。 完成标准:核心模型不依赖具体 UI、串口或 Modbus 实现。 ## 4. 实现工程管理 - 实现新建、保存、另存为和加载工程。 - 保存 HMI 配置、控制逻辑、M/D 绑定和必要的工程版本信息。 - 使用服务层编排工程操作,基础设施层负责版本化 JSON 转换和原子文件写入。 - 对无效文件、缺失字段和不兼容版本给出明确错误。 完成标准:空工程和示例工程可以保存后重新加载,数据保持一致。 ## 5. 完成主界面与状态管理 - 使用 Qt Designer 搭建工具栏、工程区域、HMI 编辑区、逻辑编辑区、属性区和状态反馈区。 - 实现编辑态与运行态的统一切换入口。 - 根据当前状态限制不可用操作,避免编辑与运行同时发生。 完成标准:主界面结构完整,状态切换行为明确且可见。 ## 6. 实现 HMI 编辑器 - 支持基础控件的添加、选择、移动、删除和属性配置。 - 支持按钮、指示灯、数值显示和数值输入等基础控件。 - HMI 控件只绑定统一寄存器仓库,不直接访问仿真器或串口。 完成标准:能够设计一个基础操作页面,并随工程保存和加载。 ## 7. 实现控制逻辑编辑器 - 使用 `Node / Series / Parallel` 表达式树建立梯形图逻辑模型,支持嵌套串并联关系。 - 支持节点前后串联插入、与节点并联、与整个支路并联、删除和输出线圈配置。 - 初版实现常开、常闭、普通线圈、置位/复位以及 D 值与常量比较。 - 定时器不属于当前原始需求范围,只有在后续需求明确时才新增对应配置和执行逻辑。 - 新增节点类型时使用独立配置类型,不向通用节点结构持续堆叠无关字段。 - 编辑器只生成逻辑模型,不直接修改 HMI 或 PLC。 - 画布按表达式结构自动布线,显示节点或支路选择范围,不允许节点自由拖动,也不保存自由线段。 完成标准:能够表达 `A OR (B AND C)` 等嵌套逻辑,并配置启动、停止和状态保持逻辑。 ## 8. 实现离线仿真运行 - 实现虚拟 M/D 寄存器和固定周期的软件逻辑执行器。 - 将 HMI、虚拟寄存器和控制逻辑形成完整闭环。 - 实现启动、停止、异常和当前运行状态反馈。 - 记录节点、支路和网络导通轨迹,在画布突出导通路径和故障节点。 完成标准:不连接 PLC 时,可以通过 HMI 操作并观察逻辑运行结果。 ## 9. 实现 Modbus RTU 真机通信 - 使用 Qt SerialBus 的 `QModbusRtuSerialMaster` 封装独立通信服务。 - 实现串口配置、连接、断开、M/D 读写、轮询、超时和错误反馈。 - 使用从 `0` 开始的原始 Modbus 地址,通信过程不得阻塞 UI。 - 收集 HMI 和梯形图实际引用地址,按 M/D 分区并合并相邻地址轮询。 - 写请求不乐观更新缓存,等待下一次读回确认 PLC 实际值。 完成标准:软件链路和自动化测试完成后,先在 PLC STOP 状态下稳定读取和写入 `M0`、`D0`,再验证批量轮询。 ## 10. 完成运行模式集成 - 离线模式连接虚拟寄存器并启动软件逻辑执行器。 - 真机模式连接 PLC 寄存器缓存并停止软件逻辑执行器。 - 切换到真机模式时先读取 PLC 数据,不自动下发离线仿真值。 完成标准:两种运行模式可安全切换,数据来源和界面状态不会混淆。 ## 11. 完成稳定性与测试 - 优先为地址边界、M/D 区域约束、HMI 和逻辑配置校验、工程校验以及模式切换规则编写自动化测试。 - 工程文件实现后测试保存加载往返和错误文件处理 - 逻辑执行器实现后测试启动停止保持等代表性场景 不为每个简单访问器单独编写测试 - 通信层验证断线、超时、CRC/协议异常和关键地址读写 真机只做少量安全冒烟测试 - 完成一次离线仿真闭环和一次真机 RUN 联动流程测试 完成标准:核心流程可重复执行,异常有反馈,程序不会崩溃或误写 PLC。 当前待办:自动化回归已覆盖核心领域、编辑、存储、仿真、运行模式、PLC 缓存和主界面;真实串口、接线、STOP 安全写入和 RUN 联动仍需连接 XDH-60T4-E 验证。 ## 12. 完成交付与演示 - 整理规格书、方案书、测试大纲、构建运行说明和演示工程。 - 准备工程创建、HMI 配置、逻辑配置、离线仿真、真机联机和状态反馈的演示流程。 - 最后再评估新增控件、设备适配或插件机制等可选加分项。 完成标准:在干净环境中可以按文档构建,并完整演示验收流程。 ## 建议进度 | 周期 | 阶段 | | --- | --- | | 第 1 周 | 第 1~5 步:基线、架构、模型、工程管理和主界面 | | 第 2 周 | 第 6~8 步:HMI、控制逻辑和离线仿真 | | 第 3 周 | 第 9~10 步:Modbus RTU 和运行模式集成 | | 第 4 周 | 第 11~12 步:测试、修复、文档和演示 | ## 执行纪律 - 不跨阶段提前堆叠功能;发现前置模型不稳定时,先修正前置阶段。 - 每完成一个阶段,都执行构建和对应测试,并更新 `docs/ai/handoff.md`。 - 核心验收功能完成前,不优先开发插件系统、复杂动画和非必要控件。