☰
玻璃盘CCD影像筛选机:五工位视觉检测与上位机控制实战解析
2026/10/21 18:37:10 网站建设 项目流程

三年前有个做精密五金件的客户找到我们,难度不高但很烦:一款微型螺丝靠六个人在放大镜下挑外观不良,一天十小时挑不到一万颗,还漏。漏出去的不良品到了客户产线上,一次投诉索赔就够买半台设备。后来我们交付的,就是标题里这套玻璃盘CCD影像筛选机——玻璃盘载着零件高速绕圈,五个工位共五套CCD视觉系统各拍各的,上位机把五路结果汇总判定,经过IO板转换成OK/NG信号,吹气嘴把不良品吹进废料盒。整个过程一秒钟过几十颗料,稳定、快、不眨眼。

这篇文章我就拿这个项目把整条链路讲透。重点放在别人很少讲清楚的几个地方:五个工位为什么这么分、每路相机的视野和光源怎么定、上位机程序到底怎么跟硬件握手、OK/NG信号为什么不能想发就发,以及调试期真正让人头疼的三个坑。如果你正在做视觉筛选机、上位机视觉检测或者类似的自动化项目,这篇文章应该能帮你少走不少弯路。

1. 玻璃盘筛选机的整体工作逻辑:零件在一圈内如何完成五次检测

1.1 玻璃盘怎么把零件“排队送检”

玻璃盘筛选机的核心是一个圆形、平整、高精度的玻璃载盘,由伺服电机或变频电机带动旋转。零件通过振动盘排料后,进入玻璃盘靠近外圈的位置,在离心力和导向板的共同作用下,沿着盘面方向排列成单列,并落入均布在盘面上的载料孔或者标准治具槽里。每个载料位置都相对固定,零件与零件之间保持间距,这就给后续拍照检测提供了“标准化定位”的基础。

这里用玻璃而不是铝盘或钢盘,关键原因是玻璃透明。底部相机可以透过玻璃从下往上拍,背光源可以从上往下打,直接拍出零件的剪影轮廓,这对尺寸检测精度来说价值极大。同时玻璃硬度高、热膨胀系数小,表面平整度能保证零部件在高速旋转中不会因为盘面颠簸发生跳动。有同行过来问“为什么不用黑色亚克力盘”,答案很简单:不透光,背光剪影做不了,且耐磨性差、容易刮花影响检测。

1.2 五个工位的检测项拆分:一台螺丝的体检清单

五套CCD不是均匀围着盘子转圈就行,每一个工位都要有一个明确的检测目标。我们那个项目检测的是微型精密螺丝,算是这类设备最典型的工件之一。我把五个工位做了如下分工:

工位相机朝向检测区域主要检测项
1号位顶部俯视螺丝头部头部成型、裂角、毛刺、头部外径
2号位底部仰视尾部端面尾部变形、端面毛刺、十字槽/一字槽深度
3号位侧方平视螺纹段缺牙、烂牙、崩牙
4号位侧方背光整体轮廓总长、杆部直径、头部厚度
5号位顶部俯视方向/字符区混料、方向标记、批号字符

1号位看正面外观,2号位看背面和端面,3号位抓螺纹质量,4号位做高精度尺寸测量,5号位做方向识别和混料筛选。五个工位的检测顺序就是零件在玻璃盘上走过的物理顺序。零件转一圈,相当于做了一整套从表面到轮廓、从尺寸到字符的全身体检。

1.3 为什么是五套CCD,而不是一套或八套

“五”这个数字一方面来自客户要求的检测项数量,另一方面是成本和稳定性的平衡。

如果只用一套CCD,一个视野要同时覆盖正面、侧面、尾部,意味着视野做得很大,零件在画面里占比小,分辩率不够,打光也顾此失彼。想要靠旋转玻璃盘用同一台相机拍多个角度也不是不行,但节拍会翻倍,而且光源角度很难兼顾所有特征。

反过来做八套甚至十套,精度是够了,但设备和程序复杂度大增。盘上物理空间有限,相机、光源、支架、走线全挤在外面,换型时调光路能把人调崩溃。我们后来的经验是:常规五金小件的视觉筛选,四到六个工位是最合理的区间,五套正好是多数场景的平衡点。

2. 五路相机与光源的选型逻辑:先拆检测项,再定分辨率

2.1 像素当量怎么算:检测精度决定视野和分辨率

相机选型最大的误区是上来就问“用多少万像素的相机”,正确顺序是——先明确这个工位要检测的最小特征尺寸,然后反推视野和分辨率。

以1号位测头部外径为例。客户图纸要求头部外径公差正负0.02mm,如果要稳定测到这个精度,一个像素对应到物方的尺寸至少得是公差的四分之一,也就是约0.005mm。假设视野做到10mm宽来覆盖整个头部和周边,那相机水平方向至少需要10÷0.005=2000个像素。500万像素工业相机的水平分辨率是2448像素,刚好满足,再留点余量方便后续移动ROI。所以1号位果断用500万像素。

计算公式统一整理成一句话:

像素当量(mm/pixel)=视场宽度(mm)÷相机水平分辨率(pixel)

然后把“公差÷像素当量”作为精度富裕系数,工程上我一般要求这个系数在3到5之间。系数太小,图像噪声、边缘抖动、零件定位偏差都会直接吃掉你的测量稳定性。

2.2 相机、镜头、光源的搭配选择

这台设备里相机统一用全局快门工业相机。虽然项目名叫CCD影像筛选机,但新做的机型里用的基本都是全局快门CMOS传感器,灵敏度更好、帧率更高,行业沟通中大家还是习惯叫“CCD筛选机”,不用纠结。

镜头这块,4号位因为要做高精度轮廓测量,配的是远心镜头加背光源。远心镜头的好处是物方大小不会因为零件的远近变化而变化,螺丝在盘上如果有一点高度方向的跳动,普通镜头拍出来尺寸会跟着变,远心镜头则很稳定。其他工位用普通工业定焦镜头或微距镜头就够,把景深和光圈调好。

光源的搭配要按检测类型来:

工位光源类型为什么这么选
1号位同轴光或高角度环形光将头部金属反光均匀化,突出裂角和毛刺的差异
2号位低角度环形光让端面槽型产生阴影,便于判断槽深和变形
3号位条形光侧打在螺纹牙型上形成明暗条纹,缺牙烂牙位置会破坏纹理连续性
4号位背光源形成黑白剪影,边缘锐利,最适合亚像素尺寸测量
5号位低角度环形光保证字符和方向标识有足够对比度

这里有个容易被忽略的点:金属零件对光源角度极其敏感。同一个螺丝,光源角度差十度,拍出来的缺陷对比度可能差一倍。所以光源支架一定要选可微调的,装配时反复调角度,调完锁死,固化到换型基准里。

2.3 触发链路与曝光时间:高速过检的关键

玻璃盘高速旋转时,零件在相机视野里是“飞过去”的。如果靠软件里不停地抓帧,很容易漏拍、重拍。所以这套系统的拍照全部是硬触发:玻璃盘转轴位置安装编码器,每转过一个设定的角度就发一个脉冲,脉冲进入IO板后由IO板分发给对应工位的相机触发口。相机硬件收到触发信号后立刻曝光,上位机只负责接收已经拍好的图像。

触发链路的顺序是:

IO板接收编码器脉冲 → 按盘面角度映射到工位 → 输出触发信号给相机 → 相机曝光 → 图像进入上位机处理

硬触发比软触发稳定的原因是它不依赖上位机线程调度。上位机哪怕有一瞬间卡顿,相机该拍还是有硬件信号触发,不会因为软件卡了造成整个节拍的丢失。这是自动化检测设备必须遵守的一条铁律:关键的时序动作不要放在应用程序的线程里裸跑。

3. 上位机程序的两个核心维度:多工位取流与结果判定管线

3.1 线程与队列:五路相机同时干活,结果怎么不乱

上位机程序如果写成:拍一张、处理一张、再拍一张,那五路相机等于串行工作,节拍一定跟不上。我搭的是一个主线程加五个取流线程的结构,每个相机对应一个线程。相机的图像通过回调函数主动上报,取流线程只负责把图像塞进该工位的待处理队列,然后立刻回到等待状态,处理逻辑由独立的处理线程去拿。

这里最关键的是“零件ID”的同步。IO板触发相机时,同时会给上位机一个触发序号,这个序号就是零件在盘上的槽号。图像回调时把这个序号绑定在图像消息上,处理完再带着同一个序号返回结果。实现时用一个字典结构,键是零件ID,值是该零件的各工位判定结果。伪代码大概长这样:

private ConcurrentDictionary<int, PartResult> partDict = new(); void OnImageReceived(int partId, int stationId, Image img) { bool ok = ProcessImage(stationId, img); partDict.AddOrUpdate(partId, id => new PartResult(id, stationId, ok), (id, existing) => { existing.SetStationResult(stationId, ok); return existing; }); }

partId从哪来?IO板每触发一路相机,会在通信缓冲里写一个“当前圈号+槽号”的计数,上位机取图像时同时读取。只要这个ID不重复,五个工位的线程怎么并发处理都不会乱套。这个做法帮我避开了一个大坑:多线程同时写同一个零件的判定结果,如果没有原子保护,统计的良率数据会错得离谱。

3.2 图像处理管线与判据设计

每个工位内部的图像处理流程,本质上是固定的几步:

图像降噪 → 模板定位找到零件 → 提取ROI → 特征提取 → 尺寸测量/缺陷判断 → 输出布尔结果

以1号位为例。因为玻璃盘高速运动,零件在画面中的位置不是绝对固定的,会有几个像素到十几个像素的偏移。如果直接把ROI框固定在图像坐标上,很容易把玻璃盘上的灰尘划痕或旁边的零件框进来。所以第一步一定是模板定位:拿一颗标准件预先存好模板,每帧图像先做模板匹配,找到零件中心,然后基于中心坐标再偏移出检测ROI。

定位之后做缺陷检测用传统的图像处理手段就够,不需要一上来就上深度学习。毛刺、裂角这类特征,在合适的光源下会表现为灰度突变区域,做形态学处理和blob分析就能很稳定地抓到。尺寸测量则用边缘检测后在边缘附近做亚像素插值,取边缘亚像素坐标相减得到尺寸值。判定逻辑不复杂:

bool result = true; double headOD = MeasureHeadDiameter(); if (headOD < spec.HeadODMin || headOD > spec.HeadODMax) result = false; int crackArea = CountBlobPixels(crackRoi); if (crackArea > spec.MaxCrackArea) result = false;

这里要说一个特重要的经验:判据里的阈值不要直接放在公差边界上,要在软件里单独设“警告带”和“判定带”。具体做法我会在第五章展开。

3.3 配方管理与换型

同一个客户往往有几十种规格的螺丝要检测,每种产品的视野位置、ROI坐标、光源亮度、曝光时间、公差范围都不一样。所以上位机必须做“产品配方”。配方文件里保存该产品的全部参数,包括五个工位的ROI、判据、像素当量、触发延时、剔除角度差。

换型时的操作流程是:选择配方 → 一键载入 → 放标准件跑一遍标定 → 确认各工位亮度和尺寸读数在基准范围内 → 开始量产。以前没有配方管理的时候,换一次产品要调半小时,现在五分钟就能完成。对客户来说,这比检测速度快更值钱。

4. IO板通讯与剔除时序:OK/NG信号为什么不能想发就发

4.1 IO点表规划:输入输出都要想清楚

很多第一次做这类项目的人,IO板的输入输出点只规划了“OK信号”和“NG信号”,调试到后面才发现完全不够用。实际项目里IO点表至少要规划这几类:

方向信号名称用途
输入运行/停止外部按钮和PLC联动控制启停
输入复位故障或计数清零后复位
输入来料检测进料口有料信号,控制盘速自动运行
输入安全门状态门打开时禁止运行,保护操作人员
输出OK脉冲判定良品时输出,给分料机构计数
输出NG脉冲判定不良品时输出,触发吹气或拨杆
输出剔除触发针对延时剔除,给电磁阀一个宽度足够的信号
输出运行准备就绪告诉PLC上位机系统和各相机已准备好
输出故障报警相机断线、光源异常、通信错误时报警

IO板选型上,我坚持用带光电隔离的PCIe或USB数字IO板,通道数至少要留百分之三十的余量。现场环境里有电机、电磁阀、变频器,干扰特别多,没有隔离的IO板很容易误触发——一颗良品被莫名吹进废料盒,客户会疯掉的。

4.2 时序计算:从检测完成到剔除吹气差多少毫秒

这是本文最核心的一个公式。玻璃盘转速是固定的,假设某工位完成判定时,不良品零件还需要转动一个角度才会到达剔除点的吹气嘴。那么从“结果产生”到“吹气动作”之间需要延时时间,这个时间必须精确计算。

公式如下:

t(ms) = Δθ × 1000 / (6 × N)

其中Δθ是检测工位到剔除点的角度差,N是玻璃盘每分钟转速。

举个例子。玻璃盘转速N=90转/分钟,4号位检测完成后,零件还要转60度才到剔除点:

t = 60 × 1000 / (6 × 90) = 111.1ms

也就是说,上位机从拍完图到判定出结果并通知IO板,必须在111ms内完成,否则吹气就会晚,把下一颗料给误吹了。

这里有一个实操中的关键设计:真正的延时输出由IO板硬件实现,而不是上位机软件里设一个延时再输出。上位机在判定结果产生的那一刻,只做一件事——把结果写入IO板的输出锁存寄存器,之后IO板自行根据已经配置好的延时值,在指定时间触发输出。这样即使上位机后一秒卡了、线程被阻塞了,IO板硬件仍然能把NG信号准确发出去。标题里说的“上位机工控电脑采用IO板转换通讯输出OK/NG”,完整含义就是这套“软件判定+硬件输出”的配合逻辑。

4.3 输出信号宽度与握手设计

IO输出的脉冲宽度不能太短。PLC或者电磁阀的响应时间一般有几毫秒到几十毫秒,你输出一个2ms的脉冲过去,对方还没反应过来信号就没了。我习惯将OK和NG脉冲宽度设定在50ms左右,既能保证可靠识别,又不会因为太宽占用下一个节拍的判定周期。

如果需要PLC参与分拣或记录,还要做信号握手。上位机输出NG信号后,不要立即复位,要等PLC回一个“已收到NG信号”的输入信号后,才允许将这路输出复位。否则就会出现PLC还没读到NG电平、上位机已经把信号撤了的情况。这种握手逻辑,虽小,但在客户现场能省掉许多玄学的“偶发漏判”问题。

5. 调试期反复周旋的三个坑:运动模糊、打光漂移、临界误判

5.1 转速一上去,图像就糊了

项目初期,玻璃盘转速提上去之后,拍出来的图像整个是花的,螺纹牙型拖影严重,根本没法判断。原因很直接:运动模糊。

算一下就知道怎么回事。玻璃盘直径600mm,零件在靠近外圈半径280mm处,转速90转/分钟,线速度大约是:

v = 2π × 280 × 90 / 60 ≈ 2637mm/s

如果曝光时间是1ms,那零件在曝光期间移动了约2.64mm——大部分零件的直径都没这么大,图像自然是糊的。要获得清晰的图像,运动模糊位移至少要控制在0.02mm量级,反推曝光时间:

t = 0.02 / 2637 ≈ 7.6μs

这种级别的曝光时间,靠常规常亮LED光源根本不够。解决方案是上频闪光源:相机曝光的同时,光源控制器给出一个极短的超高亮光脉冲,把瞬间亮度拉到常亮的几十倍甚至上百倍。于是画面里只有那个极短的瞬间被照亮,运动被“冻结”了。这套方案的关键是光源控制器必须支持外触发模式,由相机曝光信号同步触发闪光。

调试期我踩过另一个连带坑:频闪光源的瞬间电流很大,所有光源控制器接到同一个电源上时,电压跌落导致五路光源亮度不一致。后来把每路光源单独用一路带隔离的供电,问题才消失。

5.2 打光一致性漂移:早上判OK晚上判NG的元凶

设备上线第一周,我们接到客户投诉:同一批零件,早上检测良率百分之九十八,到了下午良率掉到百分之九十,而且被误判NG的零件肉眼看着明明就是好的。

排查后发现,问题不在算法,而在光路一致性漂移。LED光源会随着使用时间发热导致亮度衰减,而且车间光线从早到晚也在变化,玻璃盘表面还会不断积累灰尘。同一颗零件,早上拍出来的对比度和下午拍出来的对比度会有明显差异,原先设定好的灰度阈值就失效了。

解决思路分三块:

  • 物理上,给检测区域加遮光罩,把环境光的影响挡到最低;
  • 软件里,每个工位ROI内统计灰度均值和对比度,如果偏差超出设定范围,上位机直接弹警示“光源状态异常”;
  • 管理上,要求客户每班开班前用一块标准件跑一遍标定程序,软件自动比较当前亮度和基准亮度的差异,超出范围就锁定设备不允许启动。

这三块叠加后,光源漂移导致的误判基本消掉了。

5.3 临界品误判:漏判比误判严重得多,判据必须偏向NG

所谓临界品,就是尺寸或缺陷刚好卡在公差边界一带的零件。图像算法受噪声、边缘像素、零件微小抖动影响,同一颗临界品可能这次测出来超差,下次测出来合格。这种波动在高速检测中非常常见。

和客户沟通后我意识到,筛选机这个场景里,客户对“漏判”的容忍度远低于“误判”。一颗不良品漏出去,流到客户终端,可能导致整个批次被退货;而一颗良品被误判NG,不过就是多废一颗料,成本可控。

所以判据设计必须主动偏向NG。具体做法是将判定线从规格边界向内收紧:

判定NG的尺寸上限 = 规格上限 - 缓冲值;判定NG的尺寸下限 = 规格下限 + 缓冲值

缓冲值一般取该尺寸测量波动的三倍标准差。比如测头部外径,标准差的统计结果在0.003mm左右,缓冲值就设为0.01mm。落进缓冲带的零件,软件按NG处理,不犹豫。这个方法牺牲了一部分误判率,但换来了可观的漏判率下降,在客户那里是值钱的。

又因为NG本身是合理的,我还会在软件里做一个“可疑品复检”的算法路由:如果检测结果落在警告带(而不是判定带),上位机把该零件标记为可疑,到剔除点时不直接吹掉,而是送入一个独立缓存盒,待人工复检。这样既保住了漏判底线,又不会浪费太多良品。

6. 验收时客户最在意的三个数字:漏判率、误判率与UPH

6.1 三项指标的现场计算口径

项目验收时,客户盯着的就三个数字:漏判率、误判率、UPH。

漏判率的实测方法是:提前准备一批已知缺陷样件,涵盖裂角、缺牙、毛刺、尺寸超差等类别,每类做二十到五十颗,混进正常批次里,让设备在满速状态下反复跑十轮,统计有多少颗缺陷品被判成OK。漏判率就是被判成OK的缺陷品数除以缺陷品总数。

误判率的实测方法更容易理解:拿一批百分百确认过是良品的零件,跑完整流程,统计被吹进废料盒的数量占比。

UPH的计算则是一个理论值和实测值结合的过程:

UPH ≈ 盘速(圈/分钟)× 盘面有效载料位 × 60 × 有效送料系数

例如90转/分钟、120个载料位,送料机构不可能做到百分之百满,有效送料系数一般取0.85左右,那么UPH≈90×120×60×0.85=550800颗/小时。

不同行业的验收标准差异很大。普通五金件通常漏判控制到0.1%以下、误判0.5%以下就算合格;用在汽车关键安全件上,漏判率要求收敛到几十ppm级别,那就需要在剔除位后增加几套复检机位。

6.2 数据统计与NG图像追溯

工程上最怕的是“知道有不良,但说不清不良出在哪一步、长什么样”。所以上位机必须做三件事:实时统计、NG图像存档、批次报表导出。

每颗NG料被判定时,软件自动把触发序号、工位号、NG原因、时间戳以及该工位的原图一起存入本地数据库。对客户来说,每天早上上班打开软件就能看到昨天的直方图和缺陷分布,质量部门拿去跟来料批次做复盘非常方便。

这里分享一个细节:NG图保存格式不要存原始大图,全部压缩成JPEG,按零件ID命名。曾经有个客户一天生产五十万颗,不良率百分之三,也就是一万五千张图,如果存原始BMP图,一天能吃掉几GB硬盘,一个月磁盘就满了。

6.3 最后聊两句维护上的体会

验收结束后,我在机台控制柜门上贴了一张标签,内容很简单:“每班开班前,用标准件跑一遍标定;每周用酒精清洁玻璃盘和光源透镜;光源控制器参数改动后必须重新跑全工位标定。”这张标签背后全是调试期换来的教训。

玻璃盘CCD筛选机这种设备,硬件选型、软件算法、时序配合各占三分,剩下的一分全在日常维护管理的细节里。设备再稳定,玻璃盘脏了、光源老化、标准件被磕碰,检测精度一样会悄悄掉下去。把这些规则固化到SOP里,比买再贵的相机都管用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询