架构设计:产线故障智能诊断系统
文章目录
摘要:本文围绕制造业产线老化测试场景,设计了一套从数据采集到智能决策的故障诊断系统方案。采用分层架构,以规则引擎快速起步、机器学习持续提升、数据闭环不断进化为核心思路,覆盖系统架构、技术选型与分阶段实施路径。
背景
产线老化测试环节每天产生大量测试 Log、维修记录和复测记录,目前对故障的判定高度依赖人工经验。希望构建一套智能诊断系统,能根据测试 Log 自动给出"复测"或"刷维修"的建议,降低对人工经验的依赖,提升产线效率与一致性。
整体思路是:用规则引擎快速起步,用机器学习持续提升,用数据闭环不断进化。先让产线用起来,再逐步变聪明。
系统整体架构
建议采用分层架构,从下到上分为五层:
|
|
各层详细设计与技术选型
1. 数据采集与接入层
这一层负责从产线各系统获取原始数据,是整个系统的基础。
需要采集的数据源:
- 老化测试上抛 Log:测试程序产出的原始日志文件(包含测试项、错误码、错误描述、时间戳等)
- 维修记录:维修工站的操作记录(维修动作、更换部件、维修结果、维修人员等)
- 复测记录:复测的通过/失败结果、复测次数
- 设备配置信息:机型、BIOS 版本、固件版本、硬件 BOM 等
- 产线环境数据(可选):温度、湿度、老化架位置等
技术方案:
- 通过消息队列(如 RabbitMQ / Kafka)对接测试系统,实时接收上抛 Log
- 通过数据库同步(如 Canal / Debezium)或 API 对接 MES 系统,获取维修记录和复测记录
- 对于历史存量数据,通过批量导入工具一次性灌入
2. 数据存储与处理层
数据库选型:
| 数据类型 | 推荐数据库 | 说明 |
|---|---|---|
| 结构化业务数据(工单、设备信息、维修记录) | PostgreSQL / MySQL | 主数据库,存储核心业务数据 |
| 测试 Log 原文及全文检索 | Elasticsearch | 支持 Log 的全文搜索、关键词匹配、相似度检索 |
| 特征化后的 Log 数据 | ClickHouse / PostgreSQL | 存储经过解析、结构化后的 Log 特征字段,用于统计分析 |
| 缓存与实时状态 | Redis | 缓存热点查询结果、设备实时状态 |
数据处理流程:
- Log 解析:将非结构化的测试 Log 解析为结构化字段(错误码、失败测试项、错误关键词等)
- 特征提取:从 Log 中提取关键特征(如失败模块、错误类型、错误频次等)
- 数据关联:将同一台设备的测试 Log、复测记录、维修记录通过设备序列号(SN)关联起来,形成完整的"故障-处置"链路
3. 智能分析引擎层(核心)
这是系统的"大脑",建议采用规则引擎 + 机器学习模型双轨并行的策略。
第一阶段:基于规则引擎(快速上线)
先基于资深工程师的经验,建立判定规则库。规则示例:
|
|
- 规则引擎推荐:Drools(Java 生态)或自研轻量规则引擎
- 规则以配置化方式管理,工程师可在后台新增、修改、启停规则,无需改代码
第二阶段:引入机器学习模型(持续优化)
在积累了足够的"Log → 处置动作 → 最终结果"数据后,训练分类模型:
- 输入特征:错误码、失败测试项、错误关键词、机型、固件版本、历史故障次数、老化时长等
- 输出:建议动作(复测 / 刷维修)+ 置信度
- 推荐算法:XGBoost / LightGBM(表格数据效果好、可解释性强)
- 模型服务:通过 ONNX Runtime 或 TorchServe 部署为 API
第三阶段(进阶):引入大语言模型辅助分析
对于规则覆盖不到的长尾 case,可以接入 LLM(如私有化部署的开源大模型),结合 RAG(检索增强生成)技术,从历史维修案例库中检索相似 case,生成诊断建议。
4. 后端服务层
推荐技术栈:
- 语言/框架:Java(Spring Boot)或 Python(FastAPI),取决于团队技术栈
职责:
- 提供 RESTful API 供前端调用
- 接收测试系统上报的 Log,触发分析引擎
- 管理规则库、模型版本
- 记录每次判定结果及人工反馈(用于模型持续优化)
- 权限管理(操作员、工程师、管理员不同权限)
核心 API 设计示例:
|
|
|
|
5. 前端展示层
推荐技术栈:
- 框架:Vue 3 + Element Plus 或 React + Ant Design
- 部署形态:Web 应用,产线工位通过浏览器或工控机访问
核心功能页面:
- 诊断查询页:扫码/输入 SN → 自动拉取最新 Log → 展示诊断建议(复测 or 刷维修)
- 历史记录页:按 SN、时间、故障类型查询历史诊断记录
- 规则管理页(工程师用):新增/编辑/启停判定规则
- 统计看板:故障类型分布、复测通过率、模型准确率趋势、各机型良率等
- 反馈页:操作员可标记"建议是否正确",形成闭环数据
实施路径建议
建议分三期推进,控制风险。
第一期:数据打通 + 规则引擎(1~2 个月)
- 打通测试系统 Log 上报通道,接入数据库
- 整理历史维修记录,与 Log 做关联分析
- 与资深工程师一起梳理高频故障场景,编写判定规则(先覆盖 70%~80% 的常见 case)
- 开发基础的前端查询页面
目标:产线操作员可通过系统查询,系统给出规则建议,但人工仍做最终确认。
第二期:模型训练 + 闭环优化(2~3 个月)
- 积累第一期运行数据(系统建议 vs 人工最终决策)
- 训练分类模型,与规则引擎结果做加权融合
- 增加反馈机制,持续优化规则和模型
目标:系统建议准确率达到 90% 以上,逐步减少人工复判。
第三期:智能化升级(持续迭代)
- 引入 LLM + RAG 处理长尾 case
- 对接产线自动化设备,实现建议自动执行(如自动触发复测流程)
- 构建知识图谱,实现故障根因分析
目标:减少人工干预,提升产线效率。
关键注意事项
- 数据质量是生命线:Log 格式要标准化,维修记录要结构化录入,垃圾数据进垃圾数据出。
- 先规则后模型:不要一上来就搞 AI,先把规则引擎跑通,让产线先用起来,积累数据后再上模型。
- 保留人工兜底:系统给出建议 + 置信度,低置信度的 case 仍交给人工判断,避免误判造成损失。
- 可解释性很重要:每条建议必须附带理由(命中了哪条规则、参考了哪些历史 case),产线人员才能信任系统。
- 与现有系统集成:需要考虑与 MES、测试程序、维修工站的对接方式,尽量减少产线操作人员的额外操作。
技术栈总结
| 层级 | 推荐技术 |
|---|---|
| 前端 | Vue 3 / React + Element Plus / Ant Design |
| 后端 | Spring Boot (Java) 或 FastAPI (Python) |
| 关系数据库 | PostgreSQL / MySQL |
| 搜索引擎 | Elasticsearch |
| 缓存 | Redis |
| 消息队列 | RabbitMQ / Kafka |
| 规则引擎 | Drools / 自研轻量引擎 |
| 机器学习 | XGBoost / LightGBM + scikit-learn |
| 模型服务 | ONNX Runtime / FastAPI 封装 |
| 大模型(进阶) | 私有化部署开源 LLM + RAG(LangChain) |
下一步计划
- 与产线工程师对齐高频故障场景,输出首版规则清单
- 搭建数据采集通道,完成 Log 与维修记录的 SN 关联
- 搭建最小可用前端,跑通"扫码 → 诊断 → 建议"主流程
- 建立反馈闭环,为后续模型训练积累标注数据
文章作者
上次更新 2026-08-17