上个月在客户现场调试一套西林瓶自动装盘设备甲方反映进瓶段计数不准——传送带走得挺好瓶子一个接一个过去但PLC收到的计数脉冲时多时少有时候明明过去20个瓶子只数到18个有时候又莫名多出几个。对于一套标称速度600瓶/分钟的设备来说计数误差每万瓶超过10个就已经影响批次产量统计的准确性了。前前后后查了三天最终定位到是传感器信号抖动问题。把排查过程和解决方案整理出来供同行参考。一、问题现象设备进瓶段安装了3个光电传感器1个用于来瓶检测判断传送带上是否有瓶1个用于计数每过一瓶计一次数1个用于倒瓶预检配合后续的倒瓶检测系统。甲方反映的异常现象计数传感器偶尔多计明明只过去一个瓶子计数却增加了2计数传感器偶尔漏计传送带上瓶子正常通过计数却没有增加来瓶检测传感器偶尔误报传送带上没有瓶子却显示有瓶这种问题在高速生产线上特别棘手——速度快约10瓶/秒、瓶子间距小约80-100ms传感器信号稍有异常就会造成累计误差。二、信号抖动的原因分析用示波器抓了一下3个传感器的输出信号波形发现了几个问题1. 传感器响应时间不匹配计数传感器用的是某品牌漫反射光电响应时间0.5ms但瓶子通过速度约0.5m/s瓶身宽度约22mm2ml西林瓶。瓶子遮挡传感器的时间约为22mm ÷ 0.5m/s 44ms。理论上44ms的遮挡时间足够传感器稳定输出但示波器显示传感器输出波形存在约2-3ms的“抖动”——在瓶子进入和离开检测区域的瞬间输出信号会快速跳变几次。这是因为漫反射光电在检测透明玻璃瓶时光线穿过瓶壁会发生折射和反射导致接收端光强不稳定。2. 传送带振动引起的误触发传送带运行时有轻微振动约0.1-0.2mm振幅导致瓶子在通过传感器时会发生微小的上下晃动。对于检测距离只有50mm的传感器来说这种晃动足以改变反射光的强度造成信号波动。3. PLC输入滤波参数不当PLC的数字量输入模块默认带有硬件滤波约3-6ms但原程序没有在软件层面做额外的防抖处理。对于高速计数场景硬件滤波时长和信号本身的时长接近容易造成漏计或误计。三、解决方案方案1更换传感器类型硬件层面漫反射光电不适合检测透明玻璃瓶。将计数传感器从漫反射式更换为对射式发射端和接收端分列传送带两侧瓶子通过时直接遮挡光线信号更稳定。对射式的优势在于光线从发射端直线射向接收端瓶子遮挡时信号变化干脆利落不存在反射光强不稳定的问题。实测更换为对射式传感器后信号波形的上升沿和下降沿变得更加陡峭抖动从2-3ms降至0.5ms以内。方案2增加机械防振措施在传感器安装支架上增加了橡胶减震垫并将支架从单点固定改为两点固定减少了传送带振动传导到传感器的幅度。方案3PLC软件防抖处理核心硬件层面的改进解决了大部分问题但对于高速计数场景软件层面的防抖处理仍然必要。以下是西门子S7-1200 PLC的计数传感器防抖处理程序SCL语言pascal// 计数传感器防抖处理功能块 FUNCTION_BLOCK FB_CountDebounce VAR_INPUT sensor_input : BOOL; // 传感器原始输入 debounce_time : TIME : T#5MS; // 防抖时间 END_VAR VAR_OUTPUT count_pulse : BOOL; // 计数脉冲上升沿有效 stable_status : BOOL; // 稳定后的传感器状态 END_VAR VAR input_history : ARRAY[0..4] OF BOOL; // 历史状态5次采样 index : INT : 0; i : INT; stable_count : INT : 0; last_stable : BOOL : FALSE; rising_edge_detected : BOOL : FALSE; END_VAR // 滑动窗口采样每2ms采样一次 input_history[index] : sensor_input; index : (index 1) MOD 5; // 判断稳定状态5次采样中至少4次一致 stable_count : 0; FOR i : 0 TO 4 DO IF input_history[i] TRUE THEN stable_count : stable_count 1; END_IF; END_FOR; IF stable_count 4 THEN stable_status : TRUE; ELSIF stable_count 1 THEN stable_status : FALSE; END_IF; // 中间状态保持上一次的值 // 检测上升沿从FALSE到TRUE的变化 IF stable_status TRUE AND last_stable FALSE THEN rising_edge_detected : TRUE; count_pulse : TRUE; ELSE count_pulse : FALSE; END_IF; last_stable : stable_status;这个防抖逻辑的核心思想是连续5次采样每2ms一次共10ms如果其中至少4次一致才认为传感器状态发生了变化。10ms的防抖时间对于瓶子通过速度约44ms遮挡时间来说足够短不会漏计同时又足够长可以过滤掉2-3ms的信号抖动。方案4高速计数器模块的使用对于计数精度要求更高的场景如计数误差需0.01%建议使用PLC的高速计数器HSC模块。高速计数器硬件自带施密特触发功能可以硬件层面滤除信号抖动且计数频率可达100kHz以上远高于普通数字量输入模块。西门子S7-1200的HSC功能配置要点选择HSC1CPU集成最高频率100kHz计数模式选择“单相计数”配置输入滤波时间建议设为0.5ms在程序中使用CTRL_HSC指令读取计数值四、实测效果采用上述方案后连续运行8小时约28.8万瓶的计数误差测试结果测试条件实际瓶数PLC计数值误差误差率原始配置漫反射无防抖288000287312-688-0.239%更换对射式传感器288000287856-144-0.050%对射式软件防抖288000288012120.004%对射式软件防抖HSC288000287998-2-0.0007%最终方案对射式传感器 软件防抖 HSC计数将计数误差从0.239%降至0.0007%完全满足甲方“每万瓶误差不超过1瓶”的要求。五、其他常见信号干扰问题在排查过程中还遇到过几个典型的信号干扰问题一并记录1. 变频器干扰传送带电机由变频器驱动变频器工作时会产生高频谐波通过空间辐射或电源线传导干扰传感器信号。解决方法传感器信号线使用屏蔽电缆屏蔽层单端接地信号线与动力线分开布线间距≥20cm变频器输出端加装磁环滤波器2. 光源干扰车间顶部的LED照明灯会产生频闪尤其是非恒流驱动的劣质灯具频率通常为100Hz市电整流后可能干扰光电传感器的接收端。解决方法在传感器接收端加装遮光罩选用带环境光抑制功能的传感器调整传感器安装角度避免直射光源3. 静电干扰塑料瓶或干燥环境下的玻璃瓶在传送带上运动时会产生静电静电放电可能干扰传感器信号。解决方法在传送带适当位置安装静电消除器离子风棒设备良好接地接地电阻≤4Ω六、结语进瓶段传感器信号抖动看似是小问题但在高速生产场景下微小的信号异常会被时间放大成显著的计数误差。本文从硬件选型、机械安装、软件防抖、高速计数四个层面给出了完整的解决方案。排查过程中积累了一点体会先硬件后软件、先机械后电气——不要一上来就改程序先把传感器选对、装好、接好很多时候问题就解决了七八成。代码片段已经脱敏处理核心逻辑保留完整。欢迎同行交流指正。
车间调试笔记:自动装盘机进瓶段光电传感器信号抖动的诊断与处理
发布时间:2026/6/18 11:57:08
上个月在客户现场调试一套西林瓶自动装盘设备甲方反映进瓶段计数不准——传送带走得挺好瓶子一个接一个过去但PLC收到的计数脉冲时多时少有时候明明过去20个瓶子只数到18个有时候又莫名多出几个。对于一套标称速度600瓶/分钟的设备来说计数误差每万瓶超过10个就已经影响批次产量统计的准确性了。前前后后查了三天最终定位到是传感器信号抖动问题。把排查过程和解决方案整理出来供同行参考。一、问题现象设备进瓶段安装了3个光电传感器1个用于来瓶检测判断传送带上是否有瓶1个用于计数每过一瓶计一次数1个用于倒瓶预检配合后续的倒瓶检测系统。甲方反映的异常现象计数传感器偶尔多计明明只过去一个瓶子计数却增加了2计数传感器偶尔漏计传送带上瓶子正常通过计数却没有增加来瓶检测传感器偶尔误报传送带上没有瓶子却显示有瓶这种问题在高速生产线上特别棘手——速度快约10瓶/秒、瓶子间距小约80-100ms传感器信号稍有异常就会造成累计误差。二、信号抖动的原因分析用示波器抓了一下3个传感器的输出信号波形发现了几个问题1. 传感器响应时间不匹配计数传感器用的是某品牌漫反射光电响应时间0.5ms但瓶子通过速度约0.5m/s瓶身宽度约22mm2ml西林瓶。瓶子遮挡传感器的时间约为22mm ÷ 0.5m/s 44ms。理论上44ms的遮挡时间足够传感器稳定输出但示波器显示传感器输出波形存在约2-3ms的“抖动”——在瓶子进入和离开检测区域的瞬间输出信号会快速跳变几次。这是因为漫反射光电在检测透明玻璃瓶时光线穿过瓶壁会发生折射和反射导致接收端光强不稳定。2. 传送带振动引起的误触发传送带运行时有轻微振动约0.1-0.2mm振幅导致瓶子在通过传感器时会发生微小的上下晃动。对于检测距离只有50mm的传感器来说这种晃动足以改变反射光的强度造成信号波动。3. PLC输入滤波参数不当PLC的数字量输入模块默认带有硬件滤波约3-6ms但原程序没有在软件层面做额外的防抖处理。对于高速计数场景硬件滤波时长和信号本身的时长接近容易造成漏计或误计。三、解决方案方案1更换传感器类型硬件层面漫反射光电不适合检测透明玻璃瓶。将计数传感器从漫反射式更换为对射式发射端和接收端分列传送带两侧瓶子通过时直接遮挡光线信号更稳定。对射式的优势在于光线从发射端直线射向接收端瓶子遮挡时信号变化干脆利落不存在反射光强不稳定的问题。实测更换为对射式传感器后信号波形的上升沿和下降沿变得更加陡峭抖动从2-3ms降至0.5ms以内。方案2增加机械防振措施在传感器安装支架上增加了橡胶减震垫并将支架从单点固定改为两点固定减少了传送带振动传导到传感器的幅度。方案3PLC软件防抖处理核心硬件层面的改进解决了大部分问题但对于高速计数场景软件层面的防抖处理仍然必要。以下是西门子S7-1200 PLC的计数传感器防抖处理程序SCL语言pascal// 计数传感器防抖处理功能块 FUNCTION_BLOCK FB_CountDebounce VAR_INPUT sensor_input : BOOL; // 传感器原始输入 debounce_time : TIME : T#5MS; // 防抖时间 END_VAR VAR_OUTPUT count_pulse : BOOL; // 计数脉冲上升沿有效 stable_status : BOOL; // 稳定后的传感器状态 END_VAR VAR input_history : ARRAY[0..4] OF BOOL; // 历史状态5次采样 index : INT : 0; i : INT; stable_count : INT : 0; last_stable : BOOL : FALSE; rising_edge_detected : BOOL : FALSE; END_VAR // 滑动窗口采样每2ms采样一次 input_history[index] : sensor_input; index : (index 1) MOD 5; // 判断稳定状态5次采样中至少4次一致 stable_count : 0; FOR i : 0 TO 4 DO IF input_history[i] TRUE THEN stable_count : stable_count 1; END_IF; END_FOR; IF stable_count 4 THEN stable_status : TRUE; ELSIF stable_count 1 THEN stable_status : FALSE; END_IF; // 中间状态保持上一次的值 // 检测上升沿从FALSE到TRUE的变化 IF stable_status TRUE AND last_stable FALSE THEN rising_edge_detected : TRUE; count_pulse : TRUE; ELSE count_pulse : FALSE; END_IF; last_stable : stable_status;这个防抖逻辑的核心思想是连续5次采样每2ms一次共10ms如果其中至少4次一致才认为传感器状态发生了变化。10ms的防抖时间对于瓶子通过速度约44ms遮挡时间来说足够短不会漏计同时又足够长可以过滤掉2-3ms的信号抖动。方案4高速计数器模块的使用对于计数精度要求更高的场景如计数误差需0.01%建议使用PLC的高速计数器HSC模块。高速计数器硬件自带施密特触发功能可以硬件层面滤除信号抖动且计数频率可达100kHz以上远高于普通数字量输入模块。西门子S7-1200的HSC功能配置要点选择HSC1CPU集成最高频率100kHz计数模式选择“单相计数”配置输入滤波时间建议设为0.5ms在程序中使用CTRL_HSC指令读取计数值四、实测效果采用上述方案后连续运行8小时约28.8万瓶的计数误差测试结果测试条件实际瓶数PLC计数值误差误差率原始配置漫反射无防抖288000287312-688-0.239%更换对射式传感器288000287856-144-0.050%对射式软件防抖288000288012120.004%对射式软件防抖HSC288000287998-2-0.0007%最终方案对射式传感器 软件防抖 HSC计数将计数误差从0.239%降至0.0007%完全满足甲方“每万瓶误差不超过1瓶”的要求。五、其他常见信号干扰问题在排查过程中还遇到过几个典型的信号干扰问题一并记录1. 变频器干扰传送带电机由变频器驱动变频器工作时会产生高频谐波通过空间辐射或电源线传导干扰传感器信号。解决方法传感器信号线使用屏蔽电缆屏蔽层单端接地信号线与动力线分开布线间距≥20cm变频器输出端加装磁环滤波器2. 光源干扰车间顶部的LED照明灯会产生频闪尤其是非恒流驱动的劣质灯具频率通常为100Hz市电整流后可能干扰光电传感器的接收端。解决方法在传感器接收端加装遮光罩选用带环境光抑制功能的传感器调整传感器安装角度避免直射光源3. 静电干扰塑料瓶或干燥环境下的玻璃瓶在传送带上运动时会产生静电静电放电可能干扰传感器信号。解决方法在传送带适当位置安装静电消除器离子风棒设备良好接地接地电阻≤4Ω六、结语进瓶段传感器信号抖动看似是小问题但在高速生产场景下微小的信号异常会被时间放大成显著的计数误差。本文从硬件选型、机械安装、软件防抖、高速计数四个层面给出了完整的解决方案。排查过程中积累了一点体会先硬件后软件、先机械后电气——不要一上来就改程序先把传感器选对、装好、接好很多时候问题就解决了七八成。代码片段已经脱敏处理核心逻辑保留完整。欢迎同行交流指正。