update panel
This commit is contained in:
+85
-85
@@ -1,85 +1,85 @@
|
||||
# ReinLoop V1.0 — 收敛有界
|
||||
|
||||
基于 Modbus 通讯的压力控制 GUI,支持 PID / 强化学习 / 手动三种控制模式。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
pressure_control_gui/
|
||||
├── main.py # 应用入口
|
||||
├── PcControl.py # Modbus 通讯类
|
||||
│ # MT2AM8Client - MT2-AM8 模块 TCP(AI 读压力/流量,AO 写电机)
|
||||
│ # Easy521ModbusClient - PLC TCP(读压力/流量,备用)
|
||||
│ # MotorModbusRTUClient - 电机 RTU(直接写位置,备用)
|
||||
│ # PressureModbusRTUClient - 压力变送器 RTU(备用)
|
||||
├── controllers.py # 增量式 PID 控制器
|
||||
├── api.py # Express Server API 配置
|
||||
├── styles.py # 全局 QSS 样式表
|
||||
├── ind_collector.py # PRBS 辨识数据采集
|
||||
├── get_V.py # 容积测量
|
||||
├── license_utils.py # 许可证签发与校验
|
||||
├── core/
|
||||
│ ├── control_engine.py # 控制主循环(PID / RL / 手动),含 EMA 压力滤波
|
||||
│ ├── connection_manager.py# 连接管理器(封装 MT2AM8Client)
|
||||
│ ├── model_manager.py # RL 模型管理
|
||||
│ ├── data_collector.py # 数据采集与云端上传
|
||||
│ └── identification.py # 系统辨识与容积测量管理
|
||||
├── ui/
|
||||
│ ├── main_window.py # 主窗口(布局与信号槽绑定)
|
||||
│ ├── connection_tab.py # 连接设置页(Modbus TCP)
|
||||
│ ├── control_tab.py # 控制设置页
|
||||
│ ├── debug_tab.py # 模型调试页(高级参数:死区/限幅/模拟量映射)
|
||||
│ ├── status_bar.py # 底部状态栏
|
||||
│ └── plot_window.py # 数据绘图窗口
|
||||
├── src/ # SVG 图标资产
|
||||
├── model_config/ # RL 模型配置文件
|
||||
├── ind_data/ # 辨识数据本地输出目录
|
||||
└── tool/ # 本地调试与诊断工具
|
||||
```
|
||||
|
||||
## 环境要求
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
## 运行
|
||||
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
|
||||
## 控制模式
|
||||
|
||||
| 模式 | 说明 |
|
||||
|------|------|
|
||||
| **PID** | 增量式 PID,参数可在线调整,死区/限幅可配置 |
|
||||
| **RL** | 强化学习模型实时预测 Kp/Ki,需先加载模型 |
|
||||
| **手动** | 直接设定阀门开度百分比 |
|
||||
|
||||
控制周期由 PID 的 `dt` 参数决定(默认 0.1s),QTimer 驱动主线程执行,每周期末自动 sleep 补足时长保证精确周期。
|
||||
|
||||
## 硬件连接
|
||||
|
||||
GUI 主程序使用 **MT2-AM8 模拟量模块**(艾莫迅),通过 Modbus TCP 统一 IO:
|
||||
|
||||
- **MT2-AM8 模块**:Modbus TCP,默认 `192.168.1.12:502`,模块地址 1
|
||||
- AI(输入寄存器 0x00~0x03):读压力传感器(4-20mA → 0-4095 → kPa)、读流量计
|
||||
- AO(保持寄存器 0x00~0x03):写电机伺服驱动器(0-10V 模拟量控制行程)
|
||||
- 模拟量映射范围、压力/流量量程可在界面中配置
|
||||
|
||||
### PcControl.py 中其他可用通讯类
|
||||
|
||||
以下类在 GUI 主循环中**未直接使用**,但可供独立脚本(如 `get_V.py` 的 `main()`)或调试调用:
|
||||
|
||||
| 类 | 协议 | 默认参数 | 用途 |
|
||||
|---|---|---|---|
|
||||
| `Easy521ModbusClient` | Modbus TCP | `192.168.1.88:502` | 读 PLC 压力寄存器 504(32-bit float)、写线圈控制 |
|
||||
| `MotorModbusRTUClient` | Modbus RTU | `/dev/cu.usbserial-BG02B0IX`,站号 4,115200 | 通过 RS-485 直接读写电机驱动器寄存器 |
|
||||
| `PressureModbusRTUClient` | Modbus RTU | `/dev/cu.usbserial-D30JITMY`,站号 1,9600 | 读压力变送器保持寄存器(备用) |
|
||||
|
||||
## 数据上传
|
||||
|
||||
控制数据(Episode)、辨识数据和容积测量结果通过 Express Server 的上传接口保存,
|
||||
服务地址与设备目录配置在 `api.py`。许可证、模型和公司/产线等管理操作由
|
||||
ControlPanel 完成,不由客户端工具执行。
|
||||
# ReinLoop V1.0 — 收敛有界
|
||||
|
||||
基于 Modbus 通讯的压力控制 GUI,支持 PID / 强化学习 / 手动三种控制模式。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
pressure_control_gui/
|
||||
├── main.py # 应用入口
|
||||
├── PcControl.py # Modbus 通讯类
|
||||
│ # MT2AM8Client - MT2-AM8 模块 TCP(AI 读压力/流量,AO 写电机)
|
||||
│ # Easy521ModbusClient - PLC TCP(读压力/流量,备用)
|
||||
│ # MotorModbusRTUClient - 电机 RTU(直接写位置,备用)
|
||||
│ # PressureModbusRTUClient - 压力变送器 RTU(备用)
|
||||
├── controllers.py # 增量式 PID 控制器
|
||||
├── api.py # Express Server API 配置
|
||||
├── styles.py # 全局 QSS 样式表
|
||||
├── ind_collector.py # PRBS 辨识数据采集
|
||||
├── get_V.py # 容积测量
|
||||
├── license_utils.py # 许可证签发与校验
|
||||
├── core/
|
||||
│ ├── control_engine.py # 控制主循环(PID / RL / 手动),含 EMA 压力滤波
|
||||
│ ├── connection_manager.py# 连接管理器(封装 MT2AM8Client)
|
||||
│ ├── model_manager.py # RL 模型管理
|
||||
│ ├── data_collector.py # 数据采集与云服务器上传
|
||||
│ └── identification.py # 系统辨识与容积测量管理
|
||||
├── ui/
|
||||
│ ├── main_window.py # 主窗口(布局与信号槽绑定)
|
||||
│ ├── connection_tab.py # 连接设置页(Modbus TCP)
|
||||
│ ├── control_tab.py # 控制设置页
|
||||
│ ├── debug_tab.py # 模型调试页(高级参数:死区/限幅/模拟量映射)
|
||||
│ ├── status_bar.py # 底部状态栏
|
||||
│ └── plot_window.py # 数据绘图窗口
|
||||
├── src/ # SVG 图标资产
|
||||
├── model_config/ # RL 模型配置文件
|
||||
├── ind_data/ # 辨识数据本地输出目录
|
||||
└── tool/ # 本地调试与诊断工具
|
||||
```
|
||||
|
||||
## 环境要求
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
## 运行
|
||||
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
|
||||
## 控制模式
|
||||
|
||||
| 模式 | 说明 |
|
||||
|------|------|
|
||||
| **PID** | 增量式 PID,参数可在线调整,死区/限幅可配置 |
|
||||
| **RL** | 强化学习模型实时预测 Kp/Ki,需先加载模型 |
|
||||
| **手动** | 直接设定阀门开度百分比 |
|
||||
|
||||
控制周期由 PID 的 `dt` 参数决定(默认 0.1s),QTimer 驱动主线程执行,每周期末自动 sleep 补足时长保证精确周期。
|
||||
|
||||
## 硬件连接
|
||||
|
||||
GUI 主程序使用 **MT2-AM8 模拟量模块**(艾莫迅),通过 Modbus TCP 统一 IO:
|
||||
|
||||
- **MT2-AM8 模块**:Modbus TCP,默认 `192.168.1.12:502`,模块地址 1
|
||||
- AI(输入寄存器 0x00~0x03):读压力传感器(4-20mA → 0-4095 → kPa)、读流量计
|
||||
- AO(保持寄存器 0x00~0x03):写电机伺服驱动器(0-10V 模拟量控制行程)
|
||||
- 模拟量映射范围、压力/流量量程可在界面中配置
|
||||
|
||||
### PcControl.py 中其他可用通讯类
|
||||
|
||||
以下类在 GUI 主循环中**未直接使用**,但可供独立脚本(如 `get_V.py` 的 `main()`)或调试调用:
|
||||
|
||||
| 类 | 协议 | 默认参数 | 用途 |
|
||||
|---|---|---|---|
|
||||
| `Easy521ModbusClient` | Modbus TCP | `192.168.1.88:502` | 读 PLC 压力寄存器 504(32-bit float)、写线圈控制 |
|
||||
| `MotorModbusRTUClient` | Modbus RTU | `/dev/cu.usbserial-BG02B0IX`,站号 4,115200 | 通过 RS-485 直接读写电机驱动器寄存器 |
|
||||
| `PressureModbusRTUClient` | Modbus RTU | `/dev/cu.usbserial-D30JITMY`,站号 1,9600 | 读压力变送器保持寄存器(备用) |
|
||||
|
||||
## 数据上传
|
||||
|
||||
控制数据(Episode)、辨识数据和容积测量结果通过 Express Server 的上传接口保存,
|
||||
服务地址与设备目录配置在 `api.py`。许可证、模型和公司/产线等管理操作由
|
||||
ControlPanel 完成,不由客户端工具执行。
|
||||
|
||||
Reference in New Issue
Block a user