半导体设备上位机 Qt 实现计划

项目概述

将半导体设备上位机UI原型转换为完整的Qt/C++可运行应用程序。

技术栈:

  • Qt 6.x (Qt Widgets, Qt Charts, Qt SQL)
  • C++17
  • QCustomPlot (图表)
  • SQLite (数据存储)
  • CMake 构建系统

数据方案:

  • 模拟数据生成器:200ms刷新频率,模拟传感器波动
  • SQLite数据库:存储配方、运行记录、报警历史、审计日志

项目结构

复制代码
semi_tool/
├── CMakeLists.txt
├── main.cpp
├── SemiTool.pro
├── include/
│   ├── mainwindow.h
│   ├── loginwindow.h
│   ├── dashboardpage.h
│   ├── monitorpage.h
│   ├── recipepage.h
│   ├── alarmpage.h
│   ├── historypage.h
│   ├── runcontrolpage.h
│   ├── exportpage.h
│   └── common/
│       ├── navigator.h
│       ├── kpiwidget.h
│       ├── sensorwidget.h
│       ├── statemachinewidget.h
│       └── chartwidget.h
├── src/
│   ├── main.cpp
│   ├── mainwindow.cpp
│   ├── loginwindow.cpp
│   ├── dashboardpage.cpp
│   ├── monitorpage.cpp
│   ├── recipepage.cpp
│   ├── alarmpage.cpp
│   ├── historypage.cpp
│   ├── runcontrolpage.cpp
│   ├── exportpage.cpp
│   └── common/
│       ├── navigator.cpp
│       ├── kpiwidget.cpp
│       ├── sensorwidget.cpp
│       ├── statemachinewidget.cpp
│       └── chartwidget.cpp
├── data/
│   └── recipes.json
└── docs/
    └── 软件开发文档.md

模块详细设计

1. 登录窗口 (LoginWindow)

  • UI组件: 用户名输入、密码输入、权限级别下拉
  • 功能: 三级权限(Operator/Engineer/Admin)、登录验证、审计日志写入
  • 信号: loginSuccess(UserInfo)

2. 主窗口 (MainWindow)

  • 布局: 顶部导航栏 + 中心内容区
  • 导航: 流程图入口 + 各功能模块按钮
  • 功能: 页面切换、状态栏显示

3. 腔室总览仪表盘 (DashboardPage)

  • KPI卡片: 腔室压力、温度、RF功率、工艺进度
  • 腔室示意图: SVG风格腔室图形
  • 快捷操作: 启动/暂停/停止按钮
  • 实时曲线: 温度/压力/RF功率迷你图

4. 工艺监控页 (MonitorPage)

  • 状态机可视化: 6步工艺流程指示器
  • 实时曲线图: QCustomPlot 多曲线显示
  • 传感器表格: 实时数据 + 偏差指示
  • 报警状态: 当前活跃报警列表

5. 配方管理页 (RecipePage)

  • 配方列表: 侧边栏配方库
  • 步骤表格: 可编辑的工艺参数表
  • 曲线预览: 配方参数曲线
  • 操作: 新建/编辑/保存/导出

6. 报警管理页 (AlarmPage)

  • 统计面板: CRITICAL/WARNING/INFO 数量
  • 活跃报警: 带闪烁效果的报警卡片
  • 阈值配置: 可编辑的报警参数表
  • 历史记录: 报警事件查询表格

7. 历史数据页 (HistoryPage)

  • 查询条件: 时间范围、配方、结果筛选
  • Run记录表: 分页显示的工艺记录
  • 趋势图: 历史良率/膜厚趋势

8. 运行控制页 (RunControlPage)

  • 状态机: 当前工艺步骤高亮
  • 控制按钮: 启动/暂停/中止/跳过
  • 运行日志: 实时滚动的日志窗口
  • 核心参数: 大字体参数显示

9. 数据导出页 (ExportPage)

  • 单Run导出: CSV/Excel/PDF 格式选择
  • 批量报表: 日/周/月报生成
  • GMP报告: 审计追踪、权限变更等

通用组件设计

KPI卡片 (KPIWidget)

复制代码
属性:标题、数值、单位、设定值、偏差百分比
状态:正常(绿)/警告(黄)/异常(红)

传感器行 (SensorWidget)

复制代码
属性:传感器名称、当前值、单位、范围条
自动刷新:200ms

状态机 (StateMachineWidget)

复制代码
节点状态:已完成(绿)/当前(蓝+发光)/待执行(灰)
箭头连接线

曲线图 (ChartWidget)

复制代码
封装 QCustomPlot
支持:温度/压力/功率多曲线
刷新:实时数据追加

实施计划

阶段1:项目框架 (Day 1)

  • \] 创建 CMakeLists.txt 项目配置

  • \] 创建 MainWindow 主框架

阶段2:登录模块 (Day 1)

  • \] LoginWindow 登录窗口

  • \] 权限级别控制

阶段3:核心页面 (Day 2-3)

  • \] DashboardPage 仪表盘 + KPI组件

  • \] RunControlPage 运行控制 + 状态机

  • \] RecipePage 配方管理 + 表格编辑

  • \] HistoryPage 历史查询 + 分页

  • \] ExportPage 导出页面

  • \] 报表生成

  • \] 软件架构文档

  • \] 使用说明文档

关键实现细节

1. 模拟数据生成

复制代码
class SimulatedDataGenerator : public QObject {
    // 每200ms生成模拟传感器数据
    // 温度:340-360°C 范围波动
    // 压力:10-15 mTorr 范围波动
    // RF功率:500W ±5%
};

2. 状态机模拟

复制代码
enum ProcessState {
    Idle,           // 空闲
    Pumping,        // 抽真空
    Heating,        // 加热
    Processing,    // 主工艺
    Cooling,        // 冷却
    Venting,        // 充气
    Complete        // 完成
};

3. 配方数据模型

复制代码
struct RecipeStep {
    int stepNumber;
    QString name;
    int duration;        // 秒
    double temperature;  // °C
    double pressure;     // mTorr
    double rfPower;      // W
    double gasFlow1;     // sccm SiH4
    double gasFlow2;     // sccm NH3
};

struct Recipe {
    QString name;
    QString version;
    QList<RecipeStep> steps;
    // ...
};

编译与运行

复制代码
# 创建构建目录
mkdir build && cd build

# 配置 CMake
cmake .. -G "MinGW Makefiles"

# 编译
cmake --build .

# 运行
./SemiTool.exe

依赖项

  • Qt 6.x (Core, Widgets, Charts, SQL)
  • QCustomPlot (用于高性能图表)
  • CMake 3.16+
  • C++17 编译器

验收标准

  1. ✅ 程序可正常编译运行
  2. ✅ 登录验证功能正常
  3. ✅ 8个功能页面完整呈现
  4. ✅ 实时曲线动态更新
  5. ✅ 状态机模拟运行
  6. ✅ 配方编辑保存功能
  7. ✅ 报警闪烁效果
  8. ✅ 数据导出功能
  9. ✅ 完整的开发文档
相关推荐
Amazinqc3 小时前
Mysql数据库数据软隔离的并发死锁情况
数据库·mysql·死锁
m0_738120723 小时前
渗透测试——Djinn1靶场详细渗透提权过程讲解(绕过黑名单限制,命令执行反弹shell,pyc反编译,代码白盒分析,python沙盒逃逸)
开发语言·python·php
DianSan_ERP3 小时前
京东订单接口集成中如何处理消费者敏感信息的安全与合规问题?
前端·数据库·后端·团队开发·运维开发
原来是猿3 小时前
TCP Echo Server 深度解析:从单进程到线程池的演进之路(中)
linux·服务器·数据库
web守墓人3 小时前
【go语言】go语言实现go-torch, 完成Lenet-5的搭建,训练,以及pth和onnx模型导出
开发语言·后端·golang
TEC_INO4 小时前
Linux50:ROCKX+RV1126视频流检测人脸
开发语言·前端·javascript
treesforest4 小时前
IP地址段查询完全指南:从单IP查到IPv4段批量归属地查询
网络·数据库·网络协议·tcp/ip·网络安全·运维开发
平凡但不平庸的码农4 小时前
Go 语言常用标准库详解
开发语言·后端·golang
下载居4 小时前
Node.js(Javascript运行环境) 26.1
开发语言·javascript·node.js
范什么特西4 小时前
第一个Mybatis
java·开发语言·mybatis