2026/5/8 22:20:42
网站建设
项目流程
上图是完整的四层软件架构 。让我详细说明每个模块的设计要点:
📐 架构详解 Layer 4 - UI层(已实现 ✅) Dashboard | Monitor | Alarm | Recipe | RunControl | History/Export使用 Qt Widgets 实现深色主题界面 已完成 : 报警管理、数据展示、配方编辑、历史记录Layer 3 - 业务逻辑层(部分实现 ⚠️) 模块 现状 待实现 DataManager ✅ 已实现(SQLite) — RecipeEngine ❌ 空缺 配方步骤执行器 AlarmManager ⚠️ 集成在 DataManager 阈值管理、报警确认 AuditLogger ⚠️ 基础功能 21 CFR Part 11 合规
Layer 2 - 实时控制层(未实现 ❌) 模块 优先级 说明 PIDController 🔴 高 温度/压力/流量 PID 闭环控制 InterlockManager 🔴 高 安全联锁(温度超限、气体泄漏保护) StateMachine 🟡 中 工艺状态机(待机→抽真空→升温→工艺→冷却) DataCollector 🟡 中 200ms 高频采样
Layer 1 - 通信层(未实现 ❌) Protocol Adapter → TCP/UDP | Serial(RS485) | Modbus | OPC UA关键 : 你提到是「专有协议」,需要定义 Protocol Adapter 接口🎯 推荐实施顺序 Step 1: 定义通信协议接口(Protocol Adapter 抽象) ↓ Step 2: 实现 TCP/UDP 或 Serial 通信(取决于你的硬件) ↓ Step 3: 实现 PID Controller(温度控制最常见) ↓ Step 4: 实现 Interlock Manager(安全是底线) ↓ Step 5: 集成到现有 UI📋 下一步需要你提供 信息 为什么需要 通信协议文档 Protocol Adapter 的实现依赖于此 PID 参数 控制器的 Kp/Ki/Kd、采样周期 联锁逻辑 哪些条件下必须停机? 工艺状态机 具体的状态流转和触发条件
四层架构全部完成 ✅ 交付物清单 semi_tool/ ├── CMakeLists.txt ← 已更新,包含所有新文件 ├── include/ │ └── common/ │ ├── protocoladapter.h Layer1 - 通信基类 │ ├── tcphandler.h Layer1 - TCP 客户端/服务端 │ ├── serialhandler.h Layer1 - RS232/RS485 串口 │ ├── modbusclient.h Layer1 - Modbus TCP/RTU │ ├── messagequeue.h Layer1 - 消息队列 + CommManager │ ├── pidcontroller.h Layer2 - 增量式PID │ ├── interlockmanager.h Layer2 - 联锁管理器 │ ├── processstatemachine.h Layer2 - 工艺状态机 │ ├── recipeengine.h Layer3 - 配方引擎 │ └── processdatamodel.h Layer3 - 过程数据模型 ├── src/ │ ├── processcontrolpage.cpp Layer4 - 工艺控制UI │ └── common/ │ ├── *.cpp (上述所有头文件的实现)架构总结 层 模块 核心功能 Layer4 UI ProcessControlPage PID控制面板 + 状态机 + 趋势图 + 联锁表格 Layer3 业务 RecipeEngine / ProcessDataModel 配方执行 + PV订阅 + 报警计算 Layer2 控制 PIDController / InterlockManager / ProcessStateMachine PID计算 + 联锁规则 + 10状态机 Layer1 通信 TcpHandler / SerialHandler / ModbusClient TCP+Serial+Modbus统一接口
关键设计决策 ProtocolAdapter 统一接口 :TCP/Serial/Modbus 共用同一套sendMessage()/messageReceived信号,切换通信方式只需换实现类PID 抗积分饱和 :带 Back-calculation 的增量式PID,防止加热器全开无法退出联锁 AND/OR 组合 :支持conditionsAND配置,每个条件可锁存(Latch)状态机超时保护 :每个状态可设独立超时时间,超时自动进入 Error 状态配方引擎 :预设"标准退火工艺"(5步)和"快速脱气"(2步),支持暂停/跳过/跳转编译方式 cd semi_tool mkdir build && cd build cmake .. -G "MinGW Makefiles" # 或 "Visual Studio 17 2022" cmake --build . --config Release所有代码均基于 Qt6 API,已在 CMakeLists.txt 中配置好 Qt6::Core/Gui/Widgets/Sql/Charts 依赖。