ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

高速产线视觉检测丢图:信号控制器与相机光源时序协同是关键

高速产线视觉检测丢图:信号控制器与相机光源时序协同是关键 凌晨一点产线电话打过来检测系统又开始丢图了。这种电话我接过太多次。赶过去一看操作工说相机坏了要换电工说软件卡了要重启等真把图像序列调出来——第37行图像莫名消失后一张图上缺陷位置凭空挪了十几毫米。高速薄膜产线BOPET、隔膜、光学膜这类卷材上丢图两个字背后往往不是相机单点故障而是信号控制器、相机、光源三者之间的硬件时序没有真正协同起来。这篇文章就围绕这个主题展开。我会把丢图的现象拆开讲清楚说明高速产线为什么特别容易踩坑再给出一套信号控制器相机光源协同设计的思路和现场排查链路。做机器视觉系统集成、卷材产线设备维护、或者刚从普通项目转到高速产线项目的朋友应该都能从里面找到能直接拿去用的东西。1. 丢图的现场画像三种现象、三种代价先统一口径。我发现很多项目会议上说的丢图根本不是同一个问题。不把现象分清楚就去查十有八九白忙一整晚。1.1 现象一触发计数对不上序列里少了一段最典型的表现检测软件里图像序号跳变。比如前一张是第2173帧下一张直接跳到第2178帧中间5帧凭空消失或者图像本身没少但某一段的缺陷在物理位置上发生偏移明明横向划伤应该在三号工位出现实际到了四号工位才被算法标出来。这通常意味着触发链路出了问题。要么编码器在某个时刻丢了脉冲要么触发信号在传输途中被吃掉一个边沿。线速度越快单位距离内的脉冲数越多单个脉冲的周期越短被干扰吞掉的概率就越大。1.2 现象二帧计数满但图像里行距不均第二种情况更隐蔽。软件统计上帧数一张没少但画面中同一段缺陷在不同图像里的纵向位置对不上或者复卷后同一缺陷被重复计数。问题出在触发脉冲的抖动——每个脉冲之间的时间间隔不均匀。物料一直以恒定速度走触发行距应该完全均匀现在忽长忽短图像拼接后自然会扭曲。低速产线里几微秒的抖动根本看不出来高速产线里同样几微秒的抖动反映在几百米每分钟的料面上就是几个毫米的偏差。1.3 现象三图像亮度忽明忽暗暗图被判无效第三种我见得最多的伪丢图图像一张不少但亮度忽高忽低暗到一定程度后检测软件按无效图直接丢弃最后统计出来也是丢图。这种十有八九是光源频闪窗口与相机曝光窗口错位。LED光源从收到触发电平到真正达到峰值亮度中间有驱动电路和LED自身的响应延迟。曝光窗口开得太早光源还没亮起来开得太晚光源已经衰减了。错位程度受温度、电流、老化影响不是固定值所以表现为时好时坏、忽亮忽暗。1.4 丢图的代价不只是漏检很多人觉得丢图的代价就是漏检一个缺陷其实不止。漏检本身意味着不良品流向后道工序这是最直接的损失。但更头疼的是误报——系统因为图像序列不完整频繁把正常产品判成异常触发停机或复卷整条线白跑几十分钟。最隐蔽的是坐标错乱检测到了缺陷但位置信息不对后道分切、剔除设备按错误坐标动作把好产品切了这才是真正意义上的赔了夫人又折兵。所以先给丢图定性分类永远比动手拆设备重要。2. 为什么高速产线特别容易丢图三条问题主线很多人一开始的思路是相机帧率不够换更贵的相机。但在高速薄膜产线上更换高速相机之后依然丢图的项目我见过不止一个。问题往往出在另外三条主线上。2.1 主线一编码器和触发链路信号在源头就没给够增量式编码器是高速产线最常用的测速/定长器件。低速时编码器每转输出几百上千个脉冲每个脉冲周期有充足的边沿余量速度提上去后脉冲频率从几百赫兹跳到几十千赫兹单个脉冲周期被压缩到几十微秒甚至更短。在这个尺度下几个风险同时放大联轴器轻微打滑或磨损导致脉冲间歇性丢失码盘表面污染、轴承晃动让波形产生毛刺长距离传输线的分布电容把信号边沿磨钝接收端无法正确判读变频器或伺服驱动器产生的共模干扰叠加在信号线上任何一个因素都会表现为该有的触发没来。而相机是忠实执行者——没收到触发就不曝光自然就没有这帧图。2.2 主线二软件环节介入微秒级时序本身就是隐患再强调一遍这个观点微秒级时序事件绝对不能经过软件中转。PLC和上位机的IO刷新周期是按毫秒甚至几十毫秒计算的。你用PLC的输出点去触发相机先不说扫描周期的不确定性单是输出刷新那一刻的抖动就足以让高速产线上的触发间隔面目全非。有人觉得我用软件触发程序写精一点就行。这个思路在30米/分钟的产线上可能没问题在300米/分钟以上的产线上就是给自己埋雷。我在现场用示波器测过软件触发的时间误差能达到几十毫秒这个量级的抖动对于行频要求四万赫兹的视觉系统来说完全是灾难性的。2.3 主线三相机带宽与光源亮度硬件能力被逼到临界就算触发信号干干净净到了相机第二道坎在相机本身的数据带宽。线扫相机行频达到几十千赫兹时每秒数据量动辄上百MB甚至数百MB。如果选的是千兆网口相机GigE理论带宽只有125MB/s实际有效带宽还要打折一旦数据吞吐超过上限相机内部缓存溢出帧就丢了。另一道坎是光源亮度。高速产线要求极短的曝光时间曝光越短光源必须在更短时间内提供足够的光能量。普通常亮光源在短曝光下根本喂不饱相机图像发暗、信噪比下降算法识别率跟着崩。2.4 先记住一个原则把触发链路做成纯硬件闭环针对上面三条主线做高速产线视觉检测的第一原则就一句话编码器→信号控制器→相机和光源控制器整条触发链路必须全部走硬件信号中间不经过任何软件轮询。软件只负责事后统计和逻辑判断比如这个产品跑完了没有计数对不对不负责哪个微秒触发一下相机。把这个原则立住再谈后面的参数配置丢图问题至少解决一半。3. 信号控制器的真实职责时基整形、分频分配与电平转换既然不能靠软件也不能直接靠PLC中间就得有专门的硬件把编码器信号变成多路精确的触发信号。这就是信号控制器在这套架构里不可替代的原因。3.1 输入侧先解决信号脏的问题信号控制器接在编码器和相机/光源之间第一件事是整形。它接收编码器的差分A/B/Z信号或单端脉冲内部经过硬件滤波和施密特整形把边沿变缓、幅度不足、带毛刺的波形重新恢复成标准的方波。我见过很多次丢脉冲其实是接收端判读问题不是编码器真的没输出。脉冲经过几十米线缆衰减后幅度下降、边沿变缓直接接相机IO口的时候相机端TTL电平阈值判不定一个脉冲就被漏掉了。信号控制器在这里相当于一个中继放大器把信号质量恢复到干净状态。另外控制器内部可以对脉冲宽度做最小时长过滤。比如设定低于2微秒的毛刺一律忽略能有效筛掉变频器启动瞬间的干扰噪声但前提是这个时长必须小于正常触发周期的一半否则会把有效脉冲一起滤掉。3.2 输出侧分频、多路分配、脉宽与延时可调信号控制器真正值钱的是输出侧能力。多路同步分配很关键。一条产线上往往不止一台相机可能有上表面相机、下表面相机、左右边部相机三四路甚至更多。信号控制器把一路编码器输入同时分配给所有相机每路的触发时刻必须严格对齐否则同一物理位置在不同相机图像里会错位。分频/倍频是另一项核心功能。编码器的脉冲当量每脉冲对应多少毫米和目标触发间隔比如每0.2mm触发一次往往不是整数比。信号控制器可以按N/M比例做任意分频输入4096个脉冲期间按设定规律输出特定数量的触发本质上是PLL锁相环加可编程计数器在工作。脉宽和延时可调也很重要。不同相机制造商对最小触发脉宽有要求有的2微秒有的需要5微秒以上输出脉宽必须能灵活设定。各路输出延时独立可调是为了补偿光源响应时间和相机触发延迟这部分到第4章详细说。3.3 电平转换把PLC的24V和相机的5V放在一起现场设备电平混乱是常态PLC输出大概率是24V相机触发输入一般接受5V TTL或RS422差分光源控制器可能又是另一个规格。信号控制器通常提供多种输入电平选项输出侧也可以配置为TTL、差分或开集电极把乱七八糟的信号家族统一到一套时序体系里。这个点虽然不起眼但项目集成阶段省不少事。没有它你得自己做电平转换电路还得考虑隔离、浪涌、反向保护调试周期大幅拉长。3.4 选型看哪几个指标我选信号控制器时主要看四个指标指标为什么关键输入信号类型必须支持RS422差分、24V、NPN/PNP、TTL中至少两种最好全部支持输出通道数按最终相机光源数量规划至少留1-2路备用脉宽/延时分辨率分辨率至少到微秒级纳秒级更好50ns和1us的实际效果差很远分频能力要支持任意比例N/M分频纯整数分频在很多场景下不够用另外建议选带LED状态指示或通讯诊断口的型号方便现场快速确认触发信号到底有没有到控制器、有没有输出出去。这个功能看着小排查问题时的效率提升是数量级的。4. 相机与光源怎么协同硬件触发、频闪时序与三方握手信号控制器把触发信号分发出去之后真正的临门一脚在相机和光源的配合上。这一章讲细一点。4.1 相机端触发模式、曝光窗口和行频是三个台阶触发模式必须用硬件外触发。Basler、海康、华睿这些工业相机通常都有Line0/Line1输入配置为Trigger Source外部触发源、Trigger ModeOn之后只要有外部脉冲进来就曝光绝对不靠软件指令。这一步没有任何妥协余地。曝光时间要按运动模糊反推。运动模糊量等于线速度乘以曝光时间。按500米/分钟算线速度是8333毫米/秒曝光20微秒时物料在曝光期间移动了约0.167毫米。你横向分辨率如果按0.2-0.25毫米/像素算这个模糊量接近一个像素对边缘检测类缺陷影响明显。想控制在1/3像素以内曝光就得压到8-10微秒级别。注意曝光越短对光源要求越高两者必须放在一起决策不能单独拍脑袋定。行频要匹配触发频率。线扫相机的行频line rate必须大于实际触发频率。比如算出来触发频率是41.7kHz相机行频上限只有34kHz那必然有脉冲来了但相机还没准备好触发直接丢失。选型时留20%-30%的余量比较稳妥。带宽是另一个硬指标。单台4096像素线扫相机在41.7kHz行频下数据量是4096×41700≈1.71亿像素/秒8bit灰度就是约171MB/s千兆网口GigE的125MB/s理论带宽根本扛不住。两台相机拼接就是342MB/s必须选CameraLink Full/HS、10GigE或CoaXPress接口。很多项目在选型阶段没算这笔账现场丢图丢到怀疑人生其实数据链路从一开始就是堵死的。4.2 光源端频闪不是为了省电是为了短曝光下的亮度高速产线一定会用频闪模式Strobe。频闪光源平时以很低的待机电流维持收到频闪触发信号后驱动电路在极短时间内输出几安培甚至十几安培的峰值电流把LED瞬时亮度推到额定值的10倍以上。这背后是能量守恒到达传感器的光能量 光照度 × 曝光时间。曝光从500微秒压到20微秒缩短了25倍要保持图像灰度不变光源瞬时亮度就必须提高25倍。普通常亮光源只能提供1倍亮度而频闪光源通过过载驱动能提供10-20倍。配合0.2%左右的占空比频闪持续几十微秒周期几十微秒LED的平均发热其实不大所以能长期稳定工作。这里有个坑需要特别留意LED从触发到真正亮起来有响应延迟。驱动电路的开关时间和LED结电容的充放电时间叠加后通常在几十纳秒到几微秒之间。大功率光源、多路并联光源延迟更大。这个延迟必须在信号控制器里用输出延时参数补偿掉。4.3 三方握手的正确时序所谓信号控制器相机光源协同核心就是把三者的时序对齐成下面这个顺序编码器输出物理位置脉冲信号控制器收到后立即整形、分频控制器给光源控制器发频闪触发光源开始建立亮度提前发光控制器给相机发触发脉冲相机开始曝光曝光窗口结束前光源始终维持高亮度曝光结束后光源熄灭或回到待机状用一张表格表达这个时序关系事件触发时序目的信号控制器收到编码器脉冲T0系统参考零点光源频闪触发输出T0 延时1提前点亮覆盖LED响应延迟相机触发输出T0 延时2曝光窗口落在光源稳定区间光源熄灭曝光结束余量避免拖尾影响下一行注意延时1和延时2的差值就是光源建立稳定亮度的时间。现场调这个参数时最直观的现象是调小了图像整体偏暗且边缘有拖影调合适了图像亮度稳定、边界锐利。我个人的经验是先用大延时把光源对到稳得不能再稳再逐步缩减观察图像亮度开始明显下降的那个临界点往回调20%-30%作为工作点。4.4 面阵与线扫什么场景用哪种高速薄膜产线的主流是线扫相机因为连续幅面扫描、横向大幅宽、纵向分辨率靠行频堆叠效率最高。面阵相机频闪灯的方案更适合固定点位检测、小视野高精度测量比如定位打标、螺母有无、字符检测这类场景。这块容易出问题的反而是选型思维有人拿面阵相机的帧率去套线扫相机的行频觉得行频几十千赫兹一定够忽略了同一帧内不同行之间存在时间差图像畸变在高速运动下会被放大。记住薄膜产线连测带检优先线扫点位拍照才考虑面阵。5. 从症状到根因一套可复现的现场排查链路就算做好了协同设计现场还是会遇到问题。下面这套排查链路是我这几年跑现场总结出来的顺序照着走绝大多数丢图能在半小时内定位。5.1 先做分诊这台设备丢的到底是哪种图别急着拿示波器先看检测软件和相机自带的统计信息回答三个问题相机侧统计的触发计数和软件收到的图像帧数一致吗不一致问题在相机之后的链路带宽、缓存、采集卡。触发计数本身连续吗有没有某个区间的计数直接跳变有问题在触发源编码器、信号控制器之前。图像都在但亮度忽高忽低问题在光源频闪与相机曝光的对齐。这三个问题能直接帮你把排查范围砍掉一大半。5.2 示波器伺候从编码器到控制器输出逐级测工具上示波器必须至少两通道最好四通道加一支电流探头。差分编码器信号要用差分探头或同时测A和A-两路。排查顺序从上游往下游走第一步示波器探头夹在信号控制器输入端观察编码器原始波形。看三件事脉冲幅度是否达标、边沿是否陡峭、有没有连续时间段内脉冲缺失。这一步能直接判定编码器本身和传输线路质量。第二步探头移到信号控制器输出端看整形后的触发脉冲。这里重点看脉宽是否一致、频率是否符合设定、有没有间歇性缺脉冲。如果输入端波形干干净净但输出端缺脉冲说明控制器参数配置有问题滤波门槛过高、分频系数计算错误。5.3 相机诊断工具与日志区分没触发和没传完相机厂商SDK一般都带诊断界面能看到触发电平的计数、实际采集的帧数、丢帧统计。Basler有pylon Viewer海康有MVS用起来都不复杂。方法很简单设定一个固定触发次数比如手动给1000个触发脉冲然后看相机统计收到触发1000次、实际输出图像997幅。差3幅说明相机在接收触发和输出图像之间丢了帧问题不在信号控制器而在相机行频上限或带宽不足。反过来统计显示收到触发997次——说明触发链路上游已经有3个触发没送到问题往编码器和控制器方向查。5.4 双通道对时看触发和频闪是否真正错位如果触发计数全对、图像也不缺但亮度不稳定大概率是光源时序错位。用示波器两个通道分别接相机触发信号和光源频闪控制信号有电流探头更好直接看LED实际电流波形重叠显示对比边沿位置。重点看两点光源电流从开始上升到峰值的这段建亮时间是多少相机触发边沿落在光源波形的哪个位置。正确状态是相机曝光窗口完全被光源高电平区间覆盖且两边都留有余量。这个检查为什么要做因为LED的光输出会随温度漂移。产线刚启动时机箱是冷的跑两小时后温度上来了LED响应变慢原本对齐的时序会悄悄错位。所以我每次调完时序都会让产线满载跑一小时再复查一遍波形。5.5 一张速查表常见故障、原因与动作症状可能原因快速动作图像行距突变、缺陷位置偏移编码器丢脉冲、联轴器打滑检查机械连接、示波器看编码器波形触发计数跳变传输线屏蔽不良、控制器滤波过强检查线缆屏蔽接地、调低滤波门槛相机收到触发但图像帧数少行频上限不够、带宽不足核对行频与接口带宽降行频或换接口图像暗、亮度不稳定光源频闪与曝光错位调信号控制器延时参数多相机同一缺陷坐标不一致各路输出延时不一致检查控制器各路延时配置并校准变频器启动瞬间丢图电磁干扰改用RS422差分传输、加强屏蔽接地排查中我有个习惯一次只改一个变量。调了光源延时就不要再动控制器分频比验证编码器波形时不要把光源参数也一起调了。同时改两个参数就算问题解决了你也不知道是哪个起的作用将来再出问题还得重新查一遍。6. 用一条500米/分钟的产线实例把参数算清楚理论说了不少拿一条典型的BOPET薄膜产线走一遍完整计算这套方法才真正落地。假设条件是车速500米/分钟幅宽2米最小缺陷要求0.5mm横向分辨率按0.2mm/像素设计。6.1 触发频率与编码器分频的计算先换算线速度500米/分钟 8333毫米/秒按0.2mm触发一次的节奏触发频率8333 ÷ 0.2 41667Hz ≈ 41.7kHz这就是信号控制器输出触发的目标频率也是相机行频的下限。再看编码器。如果现场测量轮直径100mm周长314.16mm编码器4096线/转那么每脉冲对应的距离是314.16 ÷ 4096 ≈ 0.0767mm要让输出间隔变成0.2mm需要大约2.61个输入脉冲产生一个触发这个比例用整数分频做不到得靠控制器的N/M任意分频功能来凑。如果测量轮还没做我会直接把参数设计成干净比例测量轮周长做成204.8mm编码器配2048线/转每脉冲正好0.1mm两个脉冲输出一个触发就是0.2mm触发频率正好41667Hz。所以在项目前期先算好这些比例再去定测轮和编码器能给后面省大量调试时间。6.2 相机行频、曝光与接口带宽怎么选横向0.2mm精度在2米幅宽上意味着需要10000像素。目前主流4K线扫相机是4096像素所以通常会选2台4K相机拼接每台覆盖1米幅宽每像素对应0.244mm1000mm÷4096。行频要求是41.7kHz以上选相机时就要找行频上限60kHz以上的型号留出30%余量。曝光时间按运动模糊要求来0.244mm像素尺寸如果按1/3像素控制模糊量曝光要压到0.244 ÷ (3×8333) ≈ 9.8微秒实际项目里常常取12-20微秒配合频闪光源把模糊控制在0.5-0.7像素以内对大多数检测算法够用。这个平衡要靠现场试验确认但计算过程就是这个路子。带宽这块前面算过单台4K相机在41.7kHz下行频时数据量约171MB/s两台就是342MB/s。GigE接口直接排除建议CoaXPress或CameraLink HS或者10GigE加采集卡。这一步是选型红线谁都绕不过去。6.3 光源亮度从500us曝光改到20us能量去哪补如果方案原本按500微秒曝光设计光源选的是常亮LED现在迫于运动模糊要压到20微秒曝光亮度需求就提高了25倍。LED频闪的典型做法是把350mA额定电流的LED在频闪窗口内驱动到3-6A能获得10-17倍的瞬时亮度提升。算一下20微秒曝光、41.7kHz触发频率频闪窗口如果按50微秒算占空比只有50微秒 ÷ 24微秒周期 ≈ 0.2%这个占空比对应的平均功耗不高散热压力可控所以大电流过载是可持续的。如果10-17倍还不够25倍的目标就需要增加光源长度、换成更高光密度的光源类型或者把曝光时间放宽到25微秒左右来平衡。实际调光时不要直接盯着流明值算就以图像灰度均值为准把相机对准产线中间区域目标是灰度均值稳定在180-220之间同时看同一位置连续几百帧的灰度标准差。标准差大说明频闪时序还有微调空间。6.4 信号控制器的落地配置把上面算好的参数落到信号控制器上一份典型配置长这样配置项设定值备注输入信号RS422差分A/B/Z编码器侧分频模式N/M任意分频按编码器与目标间隔换算输出通道1相机触发上升沿脉宽20微秒覆盖相机最小触发脉宽需求输出通道2光源频闪脉宽40微秒比通道1提前5微秒补偿LED建亮时间输出延时精度纳秒级便于细调注意这里的提前量不是一次就能定死的。第一次上电先用大提前量确认图像不暗再逐步减小直到亮度和边缘质量出现劣化趋势留出余量作为最终值。这一步就是前面说的三方握手在参数层面的落地。6.5 实操体会预防丢图比补救丢图重要最后说一点个人体会。以上所有计算和配置都是为了一个目标让整条触发链路从编码器到相机曝光窗口每个环节都留有余量。编码器分辨率留余量、控制器输出通道留余量、相机行频留余量、带宽留余量、光源亮度留余量五层余量叠起来产线才算真正稳了。我自己的习惯是项目验收前主动把车速从零到最大来回拉几次在每个速度段停留几分钟同步盯着触发计数和图像帧数的差值记录哪个速度点开始出现计数偏差。这个数据比任何测试报告都值钱它能直接告诉你系统在哪个工况下开始逼近临界点方便提前调整而不是等客户那边半夜打电话。另外一个小技巧尽量在信号控制器或多相机采集方案里加上触发计数校验机制比如每收到指定数量的触发就向检测软件上报一次心跳值。软件只要发现实际计数和预期计数对不上立刻报警。这样丢图就能从事后查记录变成事中发现处理成本低得多。说到底高速产线视觉检测这个事相机的像素和算法固然重要但真正决定系统稳不稳的往往是那些没人爱讲的基础时序。把信号控制器相机光源当成一根完整的链条去设计别让任何一个环节拖后腿丢图这种半夜电话才能真的少起来。
返回列表