上上个月接了个项目,给一家电子厂做组装件的外观检测。要求很简单:产品在流水线上匀速走过,相机拍照检测,发现瑕疵就踢出去。听起来不难对吧?但客户提了一个硬性要求——节拍不能低于每秒一个。
一秒一个,意味着从产品进视野到拍完照、出结果,只有不到一秒钟的时间。如果用传统的”到位停止-拍照-检测-放行”方式,光是伺服从运动到静止再加速的时间就得去掉大半秒,根本来不及。客户自己算过,用停止拍照的方式,节拍顶天做到3秒一个,产能跟不上。
这时候就得用”飞拍”了——产品不停,相机在运动过程中完成拍照。飞拍又叫”动态拍照”或”跟随拍照”,核心思路是:PLC控制伺服让产品匀速通过拍照工位,在预定位置给相机一个硬件触发信号,相机在运动过程中完成曝光,PLC再根据编码器位置计算出拍照瞬间产品的位置,把坐标发给视觉系统做检测。
听起来简单,实际调起来我差点把头发薅光。第一个坑就是相机触发时机。相机触发有两种方式:一种是PLC通过高速输出口给脉冲触发,一种是用相机自身的软触发(软件命令触发)。软触发有延迟,大概几毫秒到十几毫秒不等,对于跑速在每秒四五百毫米的产线来说,这几毫秒的延迟就意味着位置偏差了十几毫米,直接导致拍出来的产品不在视野中心,检测结果全偏。最后没法子,只能用PLC的高速输出口给相机硬触发信号,延迟控制在微秒级,这才把位置偏差控制在1mm以内。
第二个坑是曝光时间。产品跑得快,曝光时间必须短,不然拍出来全是拖影——运动模糊。理论上曝光时间要控制在100微秒以内才能保证图像清晰。但曝光时间短了又需要光源补光。客户之前的LED环形灯亮度不够,我们在相机视野上下两排加了两条高亮条形光源,总功率干到150瓦,这才把曝光时间压到50微秒。光这一项就多花了两千多块,但效果立竿见影。
第三个坑是PLC程序的写法和扫描周期的影响。飞拍最怕的就是扫描周期抖动——如果PLC这一圈扫描跑了5ms,下一圈跑了8ms,那么触发信号的时序就会乱。普通的梯形图里写比较指令,靠扫描循环去判断位置,延迟和抖动都很严重。我用了S7-1200的中断功能来做位置比较触发——在位置到达的瞬间立即触发硬件中断输出信号,完全不受主程序扫描周期的影响。这样做触发精度才能保证在微秒级。
实际做下来效果怎么样?项目检测的是PCB板上连接器的针脚——有没有歪针、断针、氧化。原来人工目检一个人只能看大概600片/小时,眼睛还容易疲劳漏检。改造后产线速度设在3600片/小时,飞拍检测的误判率在千分之三左右,基本达到了客户的预期。最关键的是,产线不用每次停下来等拍照了,整线效率直接翻了六倍。客户算了一笔账,一条产线一年能省出两个质检员的工资,大半年就收回成本了。
几个技术细节给想试飞拍的兄弟参考:
编码器分辨率要够。 我用的是2500线增量编码器,四倍频后就是10000脉冲/转,配合合适的轮径,每个脉冲对应的位移在0.01mm左右,足够用了。如果精度要求更高的场景,可以直接用伺服电机的编码器反馈,分辨率更高,也不用额外安装编码器。
相机触发模式必须设成硬件触发。 相机的触发模式有好几种,飞拍必须用硬件触发(Hardware Trigger),而且触发延迟参数要确认——不同品牌差异很大。我试过一款国产相机标称触发延迟小于1ms,实测接近8ms,根本没法做高速飞拍。后来换了一款进口的工业相机才搞定。
光源一定要稳定。 如果是频闪光源,要和相机曝光同步,不然亮的时候相机没拍、拍的时候灯没亮,拍出来就是一片黑。我们用的高亮常亮LED环形光源,省了这个同步的麻烦。
数据要做FIFO环形缓冲。 产品一个接一个地过,相机拍照的结果要按顺序对应到每一个产品上。我在PLC里建了一个环形缓冲区数组,产品到了哪个位置、拍了没有、检测结果是OK还是NG,全部按队列排队。这样做的好处是即使产线上同时有几个产品在拍照区间里排队,数据也不会搞混。
飞拍这个技术说实话在高端设备上已经很常见了——贴片机、印刷机、包装机都在用。但对于我们做中小型项目的自动化工程师来说,以前总觉得这玩意儿门槛高不敢碰。其实现在PLC和视觉系统的性能已经不是瓶颈了,关键是时序配合和参数调试要细致。我第一次调飞拍前后折腾了快两周才稳定下来,第二次再做类似项目就觉得顺手多了。说到底还是那句话:第一次搞新东西肯定踩坑,踩完了下次就会了。
你们做过飞拍吗?有没有被触发延迟坑过的经历?来评论区交流交流。