|
|
|
@@ -75,7 +75,8 @@ main.cpp -> UI + Services + Infrastructure |
|
|
|
|
|
|
|
`services/HmiEditorService` 负责 HMI 页面的控件添加、删除、移动和属性更新,不依赖 Qt 图元。 |
|
|
|
`ui/HmiEditorWidget` 使用 `QGraphicsScene` 将模型投影为画布项,画布项只保存控件标识,移动结束后 |
|
|
|
才通过编辑服务提交新位置。保存时由 `Project::validate()` 拒绝缺失必需绑定或绑定区域错误的控件。 |
|
|
|
才通过编辑服务提交新位置。草稿保存时 `Project::validate()` 只拒绝已填写但区域错误或非法的绑定; |
|
|
|
进入离线运行前 `Project::validateForRunning()` 要求必需绑定完整。 |
|
|
|
|
|
|
|
`RegisterRepository` 是 HMI、逻辑执行器和运行服务唯一可见的寄存器边界。离线运行使用 |
|
|
|
`VirtualRegisterRepository`;真机运行后续注入由基础设施层实现的 PLC 缓存仓库。仓库读取的是 |
|
|
|
@@ -95,7 +96,8 @@ main.cpp -> UI + Services + Infrastructure |
|
|
|
线圈表达。该结构是后续软件逻辑执行器的确定性求值契约,不需要通用图遍历或连接表。 |
|
|
|
|
|
|
|
`services/LogicEditorService` 负责新增和删除网络、追加串联条件、增加并联条件、设置输出线圈、 |
|
|
|
修改属性和删除节点。空网络可作为编辑占位;非空网络保存时必须同时具备条件和输出线圈。 |
|
|
|
修改属性和删除节点。空网络和未完成网络均可作为编辑草稿保存;进入离线运行前,非空网络必须同时 |
|
|
|
具备条件和输出线圈,且所有节点均已配置。 |
|
|
|
`ui/LogicEditorWidget` 自动排列左右母线、串联级、并联支路和右侧线圈,不允许自由拖动或手动画线, |
|
|
|
也不保存像素坐标。编辑器通过服务提交修改,不访问 HMI、寄存器仓库或 PLC。 |
|
|
|
|
|
|
|
|