工业制造、智能装备、质量检测某精密仪器科技有限公司2026/01/05

智能多信号设备质量自动化检测上位机系统

为某精密仪器科技有限公司设计并交付基于 PySide6 框架的工业级设备检测上位机系统,集成模拟量(4–20 mA / 0–10 V)、数字量(DI/DO)、IO 模块及 Modbus RTU/TCP 等多通道信号采集能力,实现设备检测全流程自动化、智能合格判定与 PDF 报告即时生成,将单台设备检测时间从 45 分钟压缩至 14 分钟,不合格品漏检率降至 0.02% 以下,助力产线质量管控完成数字化升级。

智能多信号设备质量自动化检测上位机系统
检测效率提升
单台设备检测时间从 45 分钟缩短至 14 分钟,效率提升 3.2 倍
不合格品漏检率
从人工检测的 1.8% 降至 0.02% 以下,质检精度大幅提升
数据自动化率
检测数据 100% 自动采集,消除人工记录环节
信号通道支持
支持 64 路模拟量 + 128 路数字量 + 32 路 IO + Modbus 设备同时接入
报告生成速度
检测完成后 3 秒内自动生成带二维码的 PDF 质检报告
系统可用率
连续运行 720 小时零故障,可用率达 99.96%
历史数据查询
支持百万级检测记录毫秒级查询,数据保留周期可配置
PySide6
QML
Matplotlib
ReportLab
NumPy

项目背景

某精密仪器科技有限公司主要生产工业传感器模组及执行机构,其产品出厂前需经过严格的电气性能检测,包括模拟量输出精度、数字量逻辑状态、继电器 IO 吸合特性及 Modbus 寄存器数值等多项指标。

原有检测方式依赖工人手持万用表逐点测量,用纸质表格手工记录,不仅效率低下,且极易因疲劳产生误判。随着订单量增长,质量管控压力显著上升,亟需一套覆盖多信号类型、可自动判定合格并留存数据的上位机检测系统。

业务痛点与挑战

\\挑战一:多种信号协议并存\**

设备同时对外暴露模拟量(4–20 mA 电流环、0–10 V 电压)、数字量(24 V 高低电平)、继电器触点 IO 和 Modbus RTU 寄存器四类信号,需要在单一界面内统一管理,且各通道采样频率和容差要求不同。

\\挑战二:实时性与稳定性要求高\\

生产线节拍为每台设备检测不超过 15 分钟,系统需在保证全通道实时刷新(≥10 Hz)的同时维持 GUI 响应流畅,不得出现界面卡顿或采集丢帧。

\\挑战三:判定规则灵活可配\**

不同型号产品的合格阈值差异显著,判定规则需支持工艺工程师在界面中自定义,无需修改代码,且规则变更后立即生效。

\\挑战四:报告合规性与可追溯性\**

质检报告须包含设备序列号、检测时间戳、操作员工号、每项指标实测值与合格范围,并支持激光打印机直接打印,同时存档至本地数据库备查。


系统总体架构

系统分为四层:硬件接口层、通信驱动层、业务逻辑层和展示层,各层职责独立、接口清晰。

graph TB subgraph HW["硬件层"] A1[模拟量采集卡<br/>4-20mA / 0-10V] A2[数字量 DI/DO 模块<br/>24V 逻辑电平] A3[继电器 IO 模块<br/>触点吸合检测] A4[被测设备 Modbus RTU<br/>RS-485 总线] A5[被测设备 Modbus TCP<br/>以太网] end subgraph DRV["通信驱动层 (Python)"] B1[AnalogDriver<br/>PyDAQmx / Serial ADC] B2[DigitalDriver<br/>PySerial GPIO] B3[IODriver<br/>Relay Controller] B4[ModbusRTUDriver<br/>pymodbus RTU] B5[ModbusTCPDriver<br/>pymodbus TCP] end subgraph BIZ["业务逻辑层"] C1[SignalCollector<br/>多线程采集调度] C2[SignalProcessor<br/>滤波 / 校准 / 换算] C3[RuleEngine<br/>合格判定引擎] C4[TaskManager<br/>检测任务流程] C5[ReportBuilder<br/>PDF 报告生成] C6[DataRepository<br/>SQLite 读写] end subgraph UI["展示层 (PySide6)"] D1[实时监控面板] D2[检测任务控制台] D3[规则配置界面] D4[历史查询 & 统计] D5[报告预览 & 打印] end A1 --> B1 A2 --> B2 A3 --> B3 A4 --> B4 A5 --> B5 B1 & B2 & B3 & B4 & B5 --> C1 C1 --> C2 --> C3 C3 --> C4 --> C5 & C6 C4 --> D1 & D2 D3 --> C3 C6 --> D4 C5 --> D5

核心功能模块

多通道信号采集模块

采集模块采用生产者-消费者模型,每类信号协议对应一个独立的采集线程(Producer),采集到的原始数据写入各自的 \queue.Queue\;信号处理线程(Consumer)从队列取数并进行滤波、量程换算和时间戳对齐,最终汇聚到统一的 \SignalFrame\ 数据结构。

sequenceDiagram participant MT as MainThread (GUI) participant SC as SignalCollector participant AD as AnalogDriver participant MD as ModbusDriver participant SP as SignalProcessor participant RE as RuleEngine MT->>SC: start_session(task_config) SC->>AD: start_sampling(rate=50Hz) SC->>MD: start_polling(interval=100ms) loop Every 100ms AD-->>SC: raw_analog_frame[] MD-->>SC: modbus_registers{} SC->>SP: enqueue(raw_frame) SP->>SP: 滤波 / 换算 / 对齐 SP-->>SC: processed_frame SC->>RE: evaluate(processed_frame) RE-->>SC: channel_results[] SC-->>MT: emit signal_updated(frame) end MT->>SC: stop_session() SC->>SP: flush() SP->>RE: final_evaluate() RE-->>MT: emit task_completed(report_data)

\\模拟量采集(Analog)\\

  • 支持 4–20 mA 和 0–10 V 双模式,自动量程识别
  • 采样率最高 1 kHz,GUI 刷新频率 50 Hz(消抖聚合)
  • 每通道独立配置工程量换算公式(线性/非线性查表)
  • 移动均值滤波(窗口可配 5–50 点)消除工频干扰

\\数字量采集(Digital I/O)\\

  • DI 通道检测 24 V 高/低电平,带去抖时间配置(默认 5 ms)
  • DO 通道支持点动脉冲(持续时间、频率可配)
  • 继电器 IO 通过电流检测电路判断触点吸合,阈值可调

\\Modbus 通信\\

| 参数 | RTU 配置 | TCP 配置 |

|------|----------|----------|

| 速率 / 地址 | 9600–115200 bps,1–247 站号 | IP + Port 自由配置 |

| 功能码支持 | FC01/02/03/04/05/06/15/16 | 同左 |

| 轮询间隔 | 50–5000 ms 可配 | 同左 |

| 超时重试 | 3 次,超时 500 ms | 同左 |

| 数据类型 | INT16/UINT16/INT32/FLOAT32/BIT | 同左 |

规则引擎(合格判定)

规则引擎将每条判定规则抽象为 \Rule\ 对象,支持以下判定类型:

  • \\范围判定\\:\min ≤ value ≤ max\,支持绝对值和百分比容差
  • \\逻辑判定\\:数字量应为 HIGH / LOW / PULSE
  • \\顺序判定\\:多个信号必须按照预定时序先后触发
  • \\关联判定\\:信号 A 触发后,信号 B 必须在 T 毫秒内响应
  • \\统计判定\\:连续 N 帧均值 / 标准差需在范围内

规则以 JSON 格式持久化,工艺工程师通过图形界面(无需代码)增删改,变更即时写入数据库并热加载到运行中的引擎。

flowchart LR IN[/输入 SignalFrame/] --> LOAD[加载当前型号规则集] LOAD --> EVAL{逐规则评估} EVAL --> |PASS| NEXT[下一条规则] NEXT --> EVAL EVAL --> |FAIL| MARK[标记失败通道<br/>记录实测值 & 偏差] MARK --> SUMMARY[汇总结果] NEXT --> |全部通过| SUMMARY SUMMARY --> JUDGE{整体判定} JUDGE --> |所有规则通过| PASS[✓ 合格] JUDGE --> |存在失败规则| FAIL[✗ 不合格<br/>列出失败项] PASS & FAIL --> REPORT[写入检测记录]

实时监控面板(QML UI)

实时监控面板是操作人员日常使用最频繁的界面,包含以下区域:

  • \\波形区\\:基于 \Matplotlib FigureCanvas\ 内嵌,各通道波形独立子图,支持暂停/恢复滚动、截图保存
  • \\数值区\\:每通道当前值大字显示,颜色随状态变化(绿色=正常、黄色=接近限值、红色=超限)
  • \\状态栏\\:通信连接状态、采样计数、当前帧率实时刷新
  • \\控制区\\:启动/停止检测、紧急停止、型号切换、操作员登录

检测任务控制台

检测任务遵循严格的状态机流程,防止操作员跳过关键步骤。

stateDiagram-v2 [*] --> IDLE : 系统启动 IDLE --> READY : 扫描条码 / 输入 SN READY --> CONNECTING : 点击"开始检测" CONNECTING --> SAMPLING : 所有通道连接成功 CONNECTING --> ERROR : 连接超时 / 设备离线 SAMPLING --> EVALUATING : 采集时长达到配置值 EVALUATING --> PASS : 全部规则通过 EVALUATING --> FAIL : 存在失败规则 PASS --> REPORTING : 自动生成报告 FAIL --> REPORTING : 自动生成报告(含失败明细) REPORTING --> PRINTING : 用户确认打印 PRINTING --> IDLE : 打印完成 / 跳过 ERROR --> IDLE : 重置

报告生成与打印

报告由 \ReportLab\ 生成标准 A4 PDF,内容包括:

  • 企业 LOGO、报告编号(UUID 前 8 位)、生成时间戳
  • 被测设备型号、序列号、批次号
  • 检测结论(醒目大字 \\合格 / 不合格\\
  • 全部通道实测值、合格范围、偏差、单项结论(表格形式)
  • 波形截图(PNG 内嵌,采集结束时自动截取)
  • 操作员工号、审核员(如配置)
  • 底部二维码(编码报告编号,可追溯)

报告通过系统默认打印机直接输出,同时自动归档至 \reports/YYYYMM/\ 目录。

统计分析模块

统计面板提供以下分析维度:

  • \\日/周/月良率趋势折线图\\(按型号过滤)
  • \\各型号合格率对比柱状图\\
  • \\失败原因 Pareto 图\\(自动计算累计占比)
  • \\通道偏差分布直方图\\(正态分布拟合叠加)
  • \\班组绩效看板\\(操作员检测数量与良率)
  • 支持时间范围、型号、操作员三维度交叉筛选

技术实现亮点

\\1. 多线程与 Qt 信号槽解耦\\

采集线程不直接操作 GUI,所有数据更新通过 Qt 信号(\pyqtSignal\)传递到主线程,彻底避免线程安全问题。自定义 \WorkerThread\ 基类封装了启停逻辑与异常捕获,子类只需实现 \run\_loop()\ 方法。

\\2. 动态插件架构\\

每种信号驱动实现 \IDriver\ 抽象接口,通过 Python 动态导入机制(\importlib\)按需加载。新增一种采集卡只需新建一个驱动文件并在配置 JSON 中注册,无需修改主程序。

\\3. 波形渲染性能优化\\

Matplotlib 渲染千点以上时容易卡顿,方案采用 \blit=True\ 动画模式,只重绘变化的数据线而非整个图形区,刷新耗时从 80 ms 降至 8 ms,保证 50 Hz 刷新帧率不丢帧。

\\4. 规则热加载\\

规则引擎使用 \watchdog\ 监听规则文件变化,触发后在后台线程重新编译规则集,通过读写锁(\threading.RLock\)无缝切换,运行中修改规则无需重启程序。

\\5. 异常自恢复\\

通信驱动层内置指数退避重连机制,Modbus 从站离线后最多尝试 5 次重连(间隔 1/2/4/8/16 秒),重连成功后自动恢复采集,期间 GUI 显示离线警告但不中断检测任务,待重连后补采。

项目成效与总结

本项目历经 12 周从需求到上线,为某精密仪器科技有限公司交付了一套高可靠、易扩展的设备质量检测上位机系统。系统在正式投产后首月即实现单台检测时间缩短至 14 分钟,日检测产能突破 300 台,不合格品漏检率下降至 0.02% 以下,质检数据全部电子化留存,彻底告别纸质台账。

从技术角度,本项目验证了 PySide6 在工业上位机场景的成熟度:Qt 的多线程安全信号槽机制有效解决了采集-展示解耦难题,pymodbus 的异步接口保证了 Modbus 通信不阻塞 GUI,ReportLab 的 PDF 生成能力满足了报告合规性要求。插件化驱动架构也为后续扩展 EtherCAT、PROFIBUS 等协议预留了扩展点。

需要类似项目建议?

您可以把设备协议、现场约束和时间要求告诉我们,我们会先评估可复用部分和交付边界。

联系我们