上图是完整的四层软件架构。让我详细说明每个模块的设计要点 架构详解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 UIProcessControlPagePID控制面板 状态机 趋势图 联锁表格Layer3 业务RecipeEngine / ProcessDataModel配方执行 PV订阅 报警计算Layer2 控制PIDController / InterlockManager / ProcessStateMachinePID计算 联锁规则 10状态机Layer1 通信TcpHandler / SerialHandler / ModbusClientTCPSerialModbus统一接口关键设计决策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 依赖。