当前位置: 首页 > news >正文

半导体设备HMI软件架构

上图是完整的四层软件架构。让我详细说明每个模块的设计要点:


📐 架构详解

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 / ModbusClientTCP+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 依赖。

http://www.jsqmd.com/news/779224/

相关文章:

  • 2026年最新国内高管求职渠道专业度排行列表:5家机构实测对比 - 得赢
  • Claude Code npm 安装废弃了?新版安装姿势 + 踩坑指南
  • OpenClaw模型路由插件:打破AI模型孤岛,实现智能流程自动化编排
  • 激光雷达:智慧城市的硬核 “感知之眼”
  • 30岁软件测试工程师的出路:不是转管理,而是换赛道
  • 中高端求职猎头服务公司怎么选?职比特实力拆解 - 得赢
  • Java 内存马应急响应与查杀全指南
  • 进阶实战:基于 QiweAPI 构建智能客服机器人(回调与自动化回复)
  • qq邮箱更换电脑登入,需要采用原来手机验证方式-采用短信验证无效,估计是bug——官方网址的不同版本,还有往期怀旧版。
  • 如何在Dev-C++中设置TDM-GCC编译器
  • 基于Claude API的智能代码助手:claudepilot-openclaw项目深度解析
  • 2026年5月中高端求职猎头服务公司选择指南与职比特服务解析 - 得赢
  • 基于开源LLM框架构建领域对话机器人:从ChatPiXiu到实战应用
  • 为什么 Hive 无法通过同步 JDBC 导出百万级数据?
  • 伯远生物:解锁杨树“基因密码”,遗传转化原来这么简单!
  • EasyInstruct框架:模块化指令处理与高质量数据集构建实战
  • 石家庄旅行社去五台山旅游-石家庄去五台山的大巴车(天天发车) - 好物推荐官
  • Cache缓存项目学习3
  • eMule设置IP绑定
  • 基于Git与API自动化的多平台内容分发系统设计与实践
  • 仿生机器人手ExoHand:气动驱动与触觉反馈的工程实践
  • 从资源收藏到实战应用:构建个人提示工程知识体系的系统指南
  • 大厂逼员工用AI:是提效神器,还是裁员前的形式主义套路?
  • 从2E服务写入超长DID说起:一个案例拆解Autosar UDS诊断中‘非主流’的帧交互流程
  • neon源码分析(5)计算层使用slru的一些问题
  • 吴恩达老师课程《AI Prompting for Everyone》
  • 如何通过图解了解 Kubernetes 内部的架构?
  • 桌面应用Docker化:跨平台部署与图形界面容器化实践
  • 2026届最火的五大AI辅助论文平台实测分析
  • 精英的边界:从货币本质到社会进步——关于内卷与正和博弈的底层思考