西林瓶自动装盘机中倒瓶检测算法的优化:从光电对射到激光测距的工程实践
摘要】在制药产线自动装盘环节中,倒瓶是导致卡机、爆瓶和产线停机的常见故障。本文结合某型双通道自动装盘机(以江苏力旷智能科技Epoch-DS600为硬件平台)的倒瓶检测模块改造项目,对比了传统光电对射方案与改进型激光测距方案的技术差异,给出了硬件选型、信号处理算法及现场测试数据。相关方法可推广至其他瓶装产品的在线检测场景。
一、问题的提出
在高速自动装盘机(运行速度600-700瓶/分钟)中,倒瓶检测的准确性直接影响产线的连续运行率。传统方案多采用两组对射式光电传感器(一高一低)来判断瓶身姿态:当两个传感器的遮光时间差超出正常范围时判为倒瓶,触发气吹剔除。
但在实际应用中,该方案存在三个典型问题:
传感器安装高度敏感:不同瓶型(2ml/7ml/10ml)的高度差异可达30mm以上,固定安装的对射传感器需要人工反复调整位置
透明瓶误判率高:对于无色西林瓶或口服液瓶,红外对射传感器的透光率波动大,导致遮光时间不稳定
抗干扰能力弱:现场粉尘、水滴、震动会使传感器信号出现毛刺,产生大量误剔除
因此,需要一种对瓶型适应性更强、抗干扰能力更好的倒瓶检测方案。
二、硬件方案对比与选型
2.1 原光电对射方案参数
| 项目 | 参数 |
|---|---|
| 传感器型号 | 欧姆龙EE-SPX613(对射式) |
| 检测距离 | 0-500mm |
| 响应时间 | ≤1ms |
| 输出方式 | NPN 暗通/亮通可选 |
| 安装方式 | 上下两组,固定间距80mm |
缺点:对于10ml口服液瓶(瓶高75mm),两组传感器的遮光时间差极小,倒瓶与直立瓶的特征难以区分。
2.2 改进型激光测距方案
选用基恩士LR-Z系列激光测距传感器(CMOS感光元件),单侧安装,通过测量瓶身表面到传感器的距离变化来判断姿态。
| 项目 | 参数 |
|---|---|
| 传感器型号 | 基恩士LR-ZB250AN |
| 检测距离 | 35-250mm(可调) |
| 光斑直径 | 约2mm |
| 响应时间 | 1.5ms / 10ms / 50ms可选 |
| 输出 | 模拟量(4-20mA)+ 开关量 |
| 重复精度 | 0.5mm |
安装方式:水平安装在传送带一侧,高度位于瓶身高度的1/2处(对于多规格瓶型,选取最小瓶高的中位)。直立瓶通过时,传感器测得的距离稳定在某个基准值D_ref;倒瓶时,瓶身倾斜使测量点偏离,距离值跳变为D_ref ± ΔD,且ΔD>10mm。
三、信号处理算法设计
3.1 原始数据采集
激光测距传感器以模拟量(4-20mA)接入PLC的AI模块,量程对应35-250mm。PLC以5ms周期采样,读取原始距离值D_raw。
3.2 滑动中值滤波
由于瓶身表面可能有轻微凹凸或标签反光,原始数据存在±1~2mm的噪声。采用滑动中值滤波算法(窗口长度N=5):
pascal
// 伪代码,基于西门子SCL语言 FUNCTION MedianFilter : REAL VAR_INPUT rawValue : REAL; END_VAR VAR_STATIC buffer : ARRAY[0..4] OF REAL; index : INT := 0; i, j : INT; temp : REAL; END_VAR buffer[index] := rawValue; index := (index + 1) MOD 5; // 冒泡排序取中值 FOR i := 0 TO 3 DO FOR j := i+1 TO 4 DO IF buffer[i] > buffer[j] THEN temp := buffer[i]; buffer[i] := buffer[j]; buffer[j] := temp; END_IF; END_FOR; END_FOR; MedianFilter := buffer[2]; // 中值 END_FUNCTION
3.3 姿态判别逻辑
定义:
D_base:空载时测量到的传送带表面距离(标定时获取)D_bottle:直立瓶通过时的稳定测量值(根据瓶型自动学习)阈值
TH_H= D_bottle + 8mm,TH_L= D_bottle - 8mm
状态机:
text
状态0(待检测): 若 D_filtered 在 [D_bottle-2, D_bottle+2] 范围内,且持续时间 > 10ms → 判为直立瓶,计数+1,进入状态1 若 D_filtered > TH_H 或 < TH_L,且持续时间 > 15ms → 判为倒瓶,触发倒瓶标志,进入状态2 状态1(直立瓶后处理): 保持20ms后返回状态0,防止同一个瓶重复计数 状态2(倒瓶后处理): 置位剔除输出(Q点),延时20-40ms(根据传送带线速度计算),输出持续20ms后复位,返回状态0
3.4 自适应基准学习
为解决不同瓶型的自动适配,程序增加自学习功能:
当操作员在HMI上按下“学习瓶型”按钮后,连续通过20个正常直立瓶,程序自动记录这20个D_filtered的平均值作为新的D_bottle,并更新TH_H和TH_L。
学习完成后,HMI提示成功,并存储到配方中。
四、现场测试数据对比
在某药企2ml西林瓶产线上,将原光电对射方案与改进后的激光测距方案进行对比测试,各运行8小时(约30万瓶),数据如下:
| 指标 | 光电对射方案 | 激光测距方案 |
|---|---|---|
| 实际倒瓶数(人工统计) | 347瓶 | 351瓶 |
| 正确剔除数 | 298瓶 | 348瓶 |
| 漏剔数 | 49瓶 | 3瓶 |
| 误剔数(把直立瓶当作倒瓶) | 86瓶 | 2瓶 |
| 剔除准确率 | 85.9% | 99.1% |
| 误剔除导致的生产停顿次数 | 12次 | 0次 |
注:漏剔的3瓶经检查均为瓶身严重倾斜但未完全倒下的边界情况,进一步优化阈值后降至1瓶。
五、工程实施注意事项
传感器选型:对于透明瓶或深色瓶,建议选用CMOS激光传感器(如基恩士LR-Z、欧姆龙B5WC),避免红外对射的透光问题。普通漫反射光电不适用于倒瓶检测。
安装位置:传感器应安装在传送带直段,距离瓶口至少30mm,避免瓶盖反光干扰。同时要避开灯检机的强光源照射方向。
防护等级:制药车间存在清洗消毒需求,传感器至少需要IP67防护等级,建议加装不锈钢护罩。
PLC扫描周期:当传送带线速度为0.5m/s时,瓶间最小间隔约80ms。PLC的AI采样周期应≤10ms,否则容易漏采峰值。建议使用支持高速采样的专用模块或使用PLC的中断功能。
与剔除装置的时序配合:倒瓶被检测到后,需要精确计算到达气吹位置的时间。公式为:
text
T_delay = L / v - T_plc - T_valve
其中L为传感器到气吹口的距离(mm),v为传送带速度(mm/s),T_plc为程序扫描周期(ms),T_valve为电磁阀动作时间(通常15-25ms)。延时误差应控制在±5ms以内。
六、总结
从光电对射升级到激光测距方案后,倒瓶剔除准确率从86%提升到99%以上,产线因倒瓶导致的停机次数降为零。该方案已在多台自动装盘机上验证,并适配了2ml/7ml西林瓶及10ml口服液瓶等多种规格。算法程序可移植到西门子、三菱、罗克韦尔等主流PLC平台。
本项目的硬件平台为江苏力旷智能科技Epoch-DS600自动装盘机,但文中所述检测原理和算法具有普适性。
