4. 视觉检测流程搭建

在CV-X与PLC集成的产线中,视觉检测流程并不是“拍一张照片然后判断OK/NG”这么简单。一个可稳定运行的流程通常包含四个环节:取像、预处理、位置补偿和检测判定。这四个环节不仅决定检测结果是否正确,更直接决定CV-X向PLC输出判定信号的时刻与持续时间。PLC侧的剔除、分拣、计数、报警等动作,全部依赖这个输出时序。因此,理解流程各环节的耗时与触发关系,是集成工程的核心。

一、取像:触发方式决定时序起点

取像环节的关键是“什么时候拍”。CV-X支持多种触发方式,产线上最常用的是外部触发:由PLC或光电传感器给出触发信号,CV-X收到后启动相机曝光。触发信号通常接到CV-X的IN1或IN2端子,通过并行I/O或EtherNet/IP、PROFINET等总线传递。

以一条典型工件检测线为例:工件随传送带运动,光电传感器在检测工位前约50mm处被遮挡,传感器输出上升沿给PLC,PLC再转发触发信号给CV-X。这里存在两个时间量:传感器响应时间(约1~2ms)和PLC扫描周期(若为1ms扫描,最坏情况延迟1ms)。因此从工件到达传感器到CV-X收到触发,可能已有2~3ms延迟。若传送带速度为500mm/s,工件在这段时间内已移动1~1.5mm。这就是为什么触发位置要提前预留,而不是让传感器正对检测工位。

取像参数中,曝光时间直接影响图像亮度和运动模糊。对于运动工件,曝光时间应控制在工件移动量小于1个像素对应尺寸以内。例如视野宽度50mm、相机200万像素(约1600像素宽),单像素对应约0.031mm;若传送带500mm/s,曝光时间应小于0.062ms才能保证移动不超过1像素。实际中常取0.05~0.1ms并配合频闪光源,否则图像拖影会导致边缘检测不稳定。

二、预处理:让图像“可测”

预处理不是美化图像,而是把原始图像转换成检测算法能稳定处理的形式。CV-X中常见的预处理包括:亮度/对比度调整、滤波、二值化、边缘增强和ROI裁剪。

以金属工件表面划痕检测为例:原始图像中划痕与背景灰度差可能只有15~20个灰度级,直接做边缘检测会漏检。此时可先做高斯滤波(3×3或5×5)抑制噪声,再用对比度拉伸把灰度范围从[80,120]映射到[0,255],划痕与背景的差异被放大。随后用固定阈值二值化(例如阈值取128)把划痕区域分离出来。若光照不均,则改用动态阈值或局部阈值,避免工件边缘因反光被误判为划痕。

预处理环节的耗时主要取决于ROI大小和算法复杂度。CV-X的预处理通常在相机内部或控制器内完成,典型耗时在2~10ms量级。若ROI从全幅缩小到1/4,处理时间可近似按面积比例下降。因此,合理设置ROI不仅能提高稳定性,还能缩短从触发到输出的总时间。

三、位置补偿:消除工件摆放差异

工件在传送带上不可能每次都停在完全相同的位置和角度。位置补偿的作用是:先找到工件实际位置和角度,再把检测区域“跟随”过去,使后续测量始终在工件坐标系下进行。

CV-X中常用的位置补偿工具是图案匹配(Pattern Matching)或边缘匹配。以矩形工件为例:在工件上选取一个特征明显的角点或标记作为模板,搜索范围设为±10mm、±5°。运行时,CV-X先在图像中找到模板的实际位置(X、Y)和旋转角度θ,然后把这个偏移量应用到后续所有检测窗口和测量工具上。

这里有一个关键参数:匹配分数阈值。若阈值设得太低(如0.6),可能匹配到错误位置;设得太高(如0.95),工件稍有脏污就匹配失败。实际中常取0.75~0.85,并配合“匹配失败时输出NG”的逻辑,避免用错误位置继续检测。位置补偿的耗时通常在3~15ms,取决于搜索范围和图像复杂度。搜索范围越大、模板越复杂,耗时越长。

四、检测判定:从测量值到PLC信号

检测判定是把测量结果与设定上下限比较,输出OK/NG。CV-X中每个检测工具都有独立的判定条件,例如:尺寸测量(外径、孔距)、缺陷检测(划痕面积、脏污数量)、有无检测(装配是否到位)。所有工具的判定结果汇总后,CV-X通过综合判定输出一个总OK/NG信号。

这个总判定信号通过并行I/O或总线送到PLC。以并行I/O为例:CV-X的OUT1可配置为“综合判定OK”,OUT2为“综合判定NG”,OUT3为“检测完成”。PLC在收到“检测完成”上升沿后,读取OK/NG状态,再执行后续动作。这里必须注意信号持续时间:CV-X的输出脉冲宽度可设为1~100ms,若PLC扫描周期为1ms,脉冲宽度至少应大于2个扫描周期(即≥2ms),否则可能漏读。实际中常设为5~10ms,兼顾可靠性和节拍。

整个流程的总耗时 = 触发延迟 + 曝光时间 + 预处理时间 + 位置补偿时间 + 检测判定时间 + 输出延迟。以典型配置估算:触发延迟2ms + 曝光0.1ms + 预处理5ms + 位置补偿8ms + 检测判定3ms + 输出延迟1ms ≈ 19.1ms。若产线节拍为200ms/件,这个耗时完全可接受;但若节拍压缩到50ms/件,就必须优化ROI、减少工具数量或提高处理优先级。

CV-X 视觉检测流程与PLC信号时序关系 ① 取像 外部触发 / 曝光 ② 预处理 滤波 / 二值化 / ROI ③ 位置补偿 图案匹配 / 坐标跟随 ④ 检测判定 测量 / 比较 / 综合OK-NG 时间轴(示例估算,单位 ms) 0 2 7 15 18 19 触发延迟 2ms 预处理 5ms 位置补偿 8ms 检测判定 3ms 输出延迟 1ms PLC侧信号 PLC输出触发 上升沿 → CV-X IN1 CV-X输出 OUT1=OK / OUT2=NG / OUT3=检测完成(脉冲5~10ms) 关键时序约束 • 触发提前量:传感器到检测工位距离 ≥ 传送带速度 × (触发延迟 + 曝光时间) • 输出脉冲宽度 ≥ 2 × PLC扫描周期,推荐5~10ms;总流程耗时需小于产线节拍

五、各环节对PLC输出时序的影响

把上述流程串起来看,PLC最终收到的“检测完成”信号,其出现时刻等于触发时刻加上所有环节耗时。如果某个环节耗时波动,输出时刻就会抖动。例如位置补偿的图案匹配,若工件表面反光导致匹配分数在阈值附近波动,匹配算法可能多迭代几次,耗时从8ms变成15ms,输出就晚了7ms。对于高速产线,这7ms可能意味着工件已经离开剔除工位。

因此,工程上常做两件事:一是固定耗时,把位置补偿的搜索范围尽量缩小,或改用“先粗匹配再精匹配”的两级策略,减少最坏情况耗时;二是用PLC做时间补偿,在PLC程序中根据编码器位置或传送带速度,动态调整剔除动作的延迟时间,而不是固定延时。这样即使CV-X输出有±5ms抖动,剔除位置仍能对准。

实操建议:调试时先用CV-X的“时间测量”功能记录每个环节的实际耗时,连续采集30次,观察最大值和波动范围。若最大总耗时接近产线节拍的80%,就应优化ROI或减少检测工具数量,留出余量。

六、一个可复用的流程配置清单

以下清单可直接用于CV-X流程搭建时的检查,字段和判断依据均围绕本节四个环节:

环节 关键配置项 示例值 判断依据
取像 触发方式 / 曝光时间 / 触发提前量 外部触发,0.1ms,提前50mm 图像无拖影,工件完整在视野内
预处理 滤波 / 二值化阈值 / ROI 高斯3×3,阈值128,ROI=1/4幅 目标与背景分离清晰,处理时间≤5ms
位置补偿 匹配模板 / 搜索范围 / 分数阈值 角点模板,±10mm/±5°,0.8 匹配稳定,失败时输出NG
检测判定 测量工具 / 上下限 / 输出脉冲 外径±0.05mm,脉冲10ms PLC能可靠读取,无误判

完成上述配置后,用一件合格品和一件已知缺陷品分别运行,观察CV-X的判定结果与PLC接收到的信号是否一致。若合格品偶尔被判NG,优先检查位置补偿的匹配分数和预处理阈值;若PLC偶尔读不到信号,优先检查输出脉冲宽度和PLC扫描周期。把这两个方向分开排查,能快速定位问题出在视觉侧还是通信侧。