4. AI视觉核心
在工业视觉AI联动PLC的系统中,视觉算法是“眼睛”和“大脑”,PLC是“手”和“脚”。要让PLC在正确的时间执行正确的动作,前提是视觉算法能够稳定输出结构化、可判定的结果。工业现场常见的深度学习视觉任务可以归纳为四类:图像分类、目标检测、图像分割和异常检测。它们并不是互相替代的关系,而是对应不同的判定粒度和输出形式,最终都要映射为PLC可读的信号。
一、四类核心任务的本质区别
图像分类回答的是“这张图整体是什么”,输出一个类别标签和置信度;目标检测回答的是“图里有什么、在哪里”,输出多个边界框、类别和置信度;图像分割回答的是“每个像素属于什么”,输出像素级掩膜,适合测量面积、轮廓和缺陷边界;异常检测回答的是“这张图是否偏离正常”,通常只需要正常样本即可训练,适合缺陷样本稀少、形态多变的场景。
从与PLC联动的角度看,分类和异常检测通常输出一个布尔量或等级量,检测输出目标数量与位置,分割输出面积、宽度、角度等几何量。理解这一点,才能在设计通信点位时不至于把“检测框坐标”直接塞进PLC寄存器却无法使用。
二、方法流程:从图像到PLC信号
无论使用哪类算法,工业落地流程基本一致,可以概括为“采集—预处理—推理—后处理—映射—通信”六步。其中后处理和映射是视觉工程师与PLC工程师最容易产生分歧的环节,必须提前约定。
- 采集:确定触发方式(硬触发/软触发)、曝光时间、光源频闪同步。硬触发通常由PLC或编码器给出,能保证图像与工件位置严格对应。
- 预处理:ROI裁剪、去噪、归一化、尺寸缩放。工业上常把ROI缩小到工件区域,既提速又减少干扰。
- 推理:在GPU或边缘AI盒子上运行模型,输出原始张量。需关注单帧耗时是否满足节拍。
- 后处理:NMS去重、置信度过滤、掩膜面积计算、坐标反变换回原图。
- 映射:把结果转成PLC可读的BOOL、INT、REAL,并做阈值判定和防抖。
- 通信:通过Profinet、EtherNet/IP、Modbus TCP或IO信号完成握手,PLC据此驱动气缸、伺服或剔除机构。
三、典型工业场景与参数示例
不同任务在产线上的参数关注点差异很大。下表给出常见场景的对照,便于选型和调试时快速定位。
| 任务类型 | 典型场景 | 关键输出 | PLC信号形式 | 常见节拍要求 |
|---|---|---|---|---|
| 图像分类 | 表面等级判定、材质区分 | 类别 + 置信度 | BOOL / INT等级 | 30~80 ms |
| 目标检测 | 装配计数、抓取定位 | 框坐标 + 类别 + 数量 | INT坐标 + BOOL到位 | 50~150 ms |
| 图像分割 | 缺陷面积测量、涂胶轨迹 | 掩膜面积、轮廓宽度 | REAL面积 / 角度 | 80~200 ms |
| 异常检测 | 稀有缺陷、纹理异常 | 异常分数 + 热力图 | BOOL + REAL分数 | 40~120 ms |
四、与PLC联动的配置示例
以下是一个典型的检测结果映射配置片段,视觉侧把结果写入共享寄存器,PLC侧按约定地址读取。实际项目中地址需与PLC工程师共同确认。
# 视觉结果 → PLC 寄存器映射(示例)
vision.result.ok -> DB100.DBX0.0 # BOOL OK/NG
vision.result.count -> DB100.DBW2 # INT 目标数量
vision.result.x_mm -> DB100.DBD4 # REAL X坐标(mm)
vision.result.y_mm -> DB100.DBD8 # REAL Y坐标(mm)
vision.result.area_mm2 -> DB100.DBD12 # REAL 缺陷面积(mm²)
vision.result.score -> DB100.DBD16 # REAL 异常分数
vision.heartbeat -> DB100.DBX20.0 # BOOL 心跳
plc.trigger.capture -> DB100.DBX21.0 # BOOL 拍照触发
plc.ack.done -> DB100.DBX21.1 # BOOL 结果已取走
调试建议:先用手动触发验证单帧结果,再接入PLC自动节拍。重点观察“拍照触发—结果写入—PLC取走—允许下一次拍照”的握手时序,避免图像覆盖或结果错位。
五、常见误区与复盘
- 误区一:用分类模型做定位。分类只能给出整图标签,无法输出坐标,强行用于抓取会导致PLC无法计算偏移量。
- 误区二:忽略后处理耗时。模型推理很快,但NMS、掩膜面积计算和坐标反变换可能占用大量时间,导致总节拍超标。
- 误区三:异常检测当万能。异常检测对“未见过”的缺陷敏感,但对缺陷类型无法细分,若PLC需要按缺陷类型分流,仍需分类或检测配合。
- 误区四:不做防抖。连续帧结果抖动会让PLC频繁动作,必须加入连续N帧确认或滑动平均。
- 误区五:通信无握手。视觉写、PLC读若无确认信号,容易出现旧结果被重复使用,造成误剔除或漏剔除。
核心结论:分类、检测、分割、异常检测分别对应“整体判定、位置数量、像素几何、偏离正常”四种输出粒度。工业落地的关键不是选最先进的模型,而是让输出稳定、可量化、可握手地进入PLC。先明确PLC需要什么信号,再反推视觉任务和参数,才能让AI视觉真正成为产线可用的执行环节。