|
|
@@ -45,6 +45,7 @@ main.cpp -> UI + Services + Infrastructure |
|
|
| `register_address.*` | 定义 `M0~M4000`、`D0~D4000` 地址和值域规则 | |
|
|
| `register_address.*` | 定义 `M0~M4000`、`D0~D4000` 地址和值域规则 | |
|
|
| `register_repository.*` | 定义 M/D 统一读写接口和离线内存实现 | |
|
|
| `register_repository.*` | 定义 M/D 统一读写接口和离线内存实现 | |
|
|
| `active_register_repository.*` | 在虚拟仓库与 PLC 缓存仓库之间切换当前数据源 | |
|
|
| `active_register_repository.*` | 在虚拟仓库与 PLC 缓存仓库之间切换当前数据源 | |
|
|
|
|
|
| `register_monitor_model.*` | 保存当前调试会话的自由监控 M/D 地址集合 | |
|
|
| `hmi_model.*` | 定义页面、控件、布局和寄存器绑定 | |
|
|
| `hmi_model.*` | 定义页面、控件、布局和寄存器绑定 | |
|
|
| `control_logic_model.*` | 定义梯形图表达式树、条件节点和输出线圈 | |
|
|
| `control_logic_model.*` | 定义梯形图表达式树、条件节点和输出线圈 | |
|
|
| `project_model.*` | 聚合 HMI 页面和控制逻辑并执行工程校验 | |
|
|
| `project_model.*` | 聚合 HMI 页面和控制逻辑并执行工程校验 | |
|
|
@@ -97,6 +98,26 @@ HMI 控件和梯形图节点直接绑定 `M0~M4000`、`D0~D4000` 地址,不要 |
|
|
|
|
|
|
|
|
软元件注释、网络注释和命令语视图不属于当前实现。后续如增加注释,应把地址级软元件注释和网络级说明分开建模,不能重新引入“名称、注释、当前值、引用位置”混合的数据点表。 |
|
|
软元件注释、网络注释和命令语视图不属于当前实现。后续如增加注释,应把地址级软元件注释和网络级说明分开建模,不能重新引入“名称、注释、当前值、引用位置”混合的数据点表。 |
|
|
|
|
|
|
|
|
|
|
|
## 自由监控与运行工作台 |
|
|
|
|
|
|
|
|
|
|
|
自由监控是当前调试会话中的寄存器诊断工具,不属于工程模型,也不写入工程 JSON。用户可输入 |
|
|
|
|
|
`M0~M4000` 或 `D0~D4000`,并按连续个数批量添加地址。监控表最多保留 64 个去重地址,M |
|
|
|
|
|
值显示为 `ON/OFF`,D 值按带符号 16 位十进制显示。 |
|
|
|
|
|
|
|
|
|
|
|
`RegisterMonitorService` 负责地址解析、范围展开、去重、增删和通过活动寄存器仓库读取值。 |
|
|
|
|
|
`FreeMonitorWidget` 只投影服务结果,不直接访问虚拟仓库、PLC 缓存或串口。监控地址在离线和 |
|
|
|
|
|
真机运行期间均可增删,因为它们属于调试操作而不是工程结构编辑。 |
|
|
|
|
|
|
|
|
|
|
|
主窗口在进入运行模式后自动打开运行监控工作台: |
|
|
|
|
|
|
|
|
|
|
|
| 模式 | 同时显示 | 统一数据源 | |
|
|
|
|
|
| --- | --- | --- | |
|
|
|
|
|
| 离线运行 | HMI、梯形图仿真轨迹、自由监控 | 虚拟 M/D | |
|
|
|
|
|
| 真机运行 | HMI、自由监控 | PLC 缓存 | |
|
|
|
|
|
|
|
|
|
|
|
真机模式不显示本地梯形图导通轨迹。当前项目不能读取 PLC 内部程序和网络执行轨迹,本地 |
|
|
|
|
|
梯形图也不保证与 PLC 中的程序一致,因此不得把本地条件推演伪装成 PLC 实际运行状态。 |
|
|
|
|
|
|
|
|
## 寄存器与 Modbus RTU |
|
|
## 寄存器与 Modbus RTU |
|
|
|
|
|
|
|
|
`HmiRuntimeService` 和运行界面只访问 `RegisterRepository`。`ActiveRegisterRepository` 在两种数据源之间切换: |
|
|
`HmiRuntimeService` 和运行界面只访问 `RegisterRepository`。`ActiveRegisterRepository` 在两种数据源之间切换: |
|
|
@@ -104,7 +125,14 @@ HMI 控件和梯形图节点直接绑定 `M0~M4000`、`D0~D4000` 地址,不要 |
|
|
- 离线运行使用 `VirtualRegisterRepository` |
|
|
- 离线运行使用 `VirtualRegisterRepository` |
|
|
- 真机运行使用 `PlcRegisterRepository` 的最近一次有效缓存 |
|
|
- 真机运行使用 `PlcRegisterRepository` 的最近一次有效缓存 |
|
|
|
|
|
|
|
|
`PlcCommunicationService` 使用 `QModbusRtuSerialMaster` 异步连接、读取和写入。连接时从 HMI 和梯形图的实际引用中收集 M/D 地址,去重后按区域合并相邻地址进行轮询。M 使用线圈,D 使用保持寄存器;所有 Modbus 地址均为从 `0` 开始的原始地址。 |
|
|
|
|
|
|
|
|
`PlcCommunicationService` 使用 `QModbusRtuSerialMaster` 异步连接、读取和写入。轮询集合由 |
|
|
|
|
|
HMI 引用、梯形图引用和自由监控地址合并而成,去重后按区域合并相邻地址。M 使用线圈,D |
|
|
|
|
|
使用保持寄存器;所有 Modbus 地址均为从 `0` 开始的原始地址。 |
|
|
|
|
|
|
|
|
|
|
|
PLC 连接后可以动态增删自由监控地址。存在读取请求时,新的轮询集合在当前响应处理完成后 |
|
|
|
|
|
应用,旧响应仍按发出时的读取块解析。连接级首次读取完成后,动态增加地址不会撤销真机 |
|
|
|
|
|
运行资格;新增地址自身在首次读回前显示“等待读取”。如果连接首次读取尚未完成,新的完整 |
|
|
|
|
|
轮询集合会共同参与首次读取判定。 |
|
|
|
|
|
|
|
|
HMI 写入只表示异步请求已受理,不乐观修改 PLC 缓存,实际值由后续读回确认。超时、协议错误或断线会停止轮询、保留最后一次有效值并进入故障状态,错误通过运行模式服务交给 UI 展示。 |
|
|
HMI 写入只表示异步请求已受理,不乐观修改 PLC 缓存,实际值由后续读回确认。超时、协议错误或断线会停止轮询、保留最后一次有效值并进入故障状态,错误通过运行模式服务交给 UI 展示。 |
|
|
|
|
|
|
|
|
|