自动判定系统架构:四层结构与数据流转
自动判定系统听起来挺玄乎,说白了就是把人的判断力,拆成几个清晰的功能模块。我个人习惯,先把整个系统的骨架搭出来。一共四层:数据采集、特征提取、决策、执行。每一层干自己的活,又互相配合。
你想想看,一条产线上传感器、摄像头那么多。如果所有数据都堆到一个模块里处理,不乱才怪。分层架构的核心思想就一条:各司其职,接口清晰。
我在项目中发现,很多新手工程师喜欢把所有逻辑写在一个大循环里。刚开始调试没问题,一上线就崩。为什么?因为耦合太紧,改一处要牵动全身。
1. 数据采集层
这一层是系统的眼睛和耳朵。传感器、工业相机、PLC、扫码枪,都归它管。原始数据从这里进入系统。我见过很多项目采集层做得稀烂,后面三层再牛也白搭。
核心要求就三个:全、准、快。
- 全:所有相关测点别遗漏。装配线上的扭矩值、温度、振动,一个都不能少。
- 准:采集频率要够,精度要达标。别拿10Hz的采样去抓100Hz的振动特征,那叫盲人摸象。
- 快:数据时效性。尤其是高速产线,数据晚到一秒,结果就是灾难。
2. 特征提取层
原始数据太糙,直接扔给决策层它看不懂。特征提取层就是做“翻译”的。把一维波形变成具体数值,把图像变成缺陷尺寸。
常用的提取方法就这些:
| 数据类型 | 常用特征 | 提取方法 |
|---|---|---|
| 振动信号 | RMS、峰值因子、峭度 | 时域统计、FFT、包络分析 |
| 图像 | 边缘梯度、面积、纹理 | Sobel算子、模板匹配、直方图 |
| 温度曲线 | 斜率、稳态偏差、超调量 | 微分拟合、滑动窗口 |
| 电流波形 | 谐波分量、相位差 | 傅里叶变换、小波变换 |
特征不是越多越好。我见过有人一口气提了80个特征,决策层反而糊涂了。这叫“维度灾难”。做特征筛选是必修课。
3. 决策层
这是整个系统的“大脑”。特征提取层送来的数值,在这里一锤定音:Pass,还是Fail?
决策逻辑有几种主流方式:
- 阈值判断法:最简单,最常用。特征值超出上下限就算Fail。适合单指标判定。
- 加权评分法:多个特征加权求和。权重靠工程经验和实验标定。
- 机器学习模型:SVM、随机森林、神经网络。适合复杂非线性关系。我建议先从简单模型开始。
- 规则引擎:if-then-else逻辑树。透明、可解释,适合有行业标准的场景。
4. 执行层
决策做完了,得落地。执行层就是动手的。动作包括:
- 分拣挡板动作(Fail产品推入NG料道)
- 报警灯闪烁或蜂鸣器响起
- 在MES系统里打上NG标记
- 触发相机再次拍照复核
执行层我遇到最多的故障是“误动作”或“不动作”。尤其是气动分拣机构,气压波动会导致执行延迟。所以做自动判定系统,我一定会在执行层加反馈确认——气缸到底推没推到位?传感器必须回报信号。
5. 四层之间的数据交互
各层不是孤岛。它们通过数据总线通信。我推荐用消息队列或者共享内存,而不是直连函数调用。为什么?因为产线要求高可靠性,一层崩溃不能带崩其他层。
数据流的典型时序是这样的:
- 采集层收到编码器触发信号,采集一组数据,打上时间戳,塞入队列。
- 提取层从队列拉数据,计算特征,写入共享内存。
- 决策层读取特征,运行判定逻辑,输出结果到结果队列。
- 执行层监听结果队列,看到新结果立刻执行动作,并反馈执行状态。
每层之间用一个超时阈值来保证系统健壮。我一般设100ms,超了就报错。这样做的好处是,就算某层卡死,其他层也能独立恢复。
好了,架构就是这样。不复杂,但每个细节都需要责任心。下一块咱们会深入讲特征提取层的具体算法实现。不过那是后面的事了,先把这四层结构吃透,后面的路就好走多了。