4. 机器视觉系统基础

在西门子PLC与机器视觉协同的工程中,PLC负责逻辑与时序,视觉系统负责“看”和“判断”,两者之间的边界往往落在图像采集这一环。如果采集环节不稳定,后续的算法、标定、通信做得再好,也会因为一张模糊、过曝或错位的图像而失效。本节围绕图像采集流程、曝光与增益、触发模式、视觉软件环境搭建以及与PLC的接口认知展开,目标是让读者能独立完成一套可复现的采集链路配置。

一、图像采集流程:从光子到可处理图像

图像采集不是“按一下拍照”这么简单,它是一条从物理世界到数字矩阵的链路。典型流程为:光源照射目标 → 镜头成像 → 传感器光电转换 → 模拟/数字转换 → 相机内部预处理(去噪、白平衡、伽马)→ 通过接口(GigE、USB3、Camera Link)传输到视觉软件 → 软件端完成解码与缓存。任何一个环节的参数不匹配,都会在最终图像上表现为亮度异常、拖影、噪点或丢帧。

以常见的GigE工业相机为例,若分辨率设为2448×2048、像素格式为Mono8,则单帧数据量约为5 MB。在千兆网下理论带宽约125 MB/s,实际有效带宽约100 MB/s,因此连续采集时帧率上限约为20 fps。若强行设置30 fps,就会出现丢帧或传输超时。这个计算说明:采集流程的稳定性不仅取决于相机,还取决于接口带宽、曝光时间与帧率的匹配关系。

二、曝光与增益:亮度控制的两个旋钮

曝光时间决定传感器感光时长,增益决定信号放大倍数。两者都能提高图像亮度,但代价不同。曝光时间增加会提升信噪比,但过长会导致运动模糊;增益增加会放大信号,同时放大噪声,且容易在亮部产生饱和。工程上应优先用曝光时间满足亮度,再用增益做小幅补偿。

一个可参考的调试顺序是:先固定增益为0 dB,逐步增加曝光时间,直到目标区域灰度均值达到120~160(8位图像,0~255范围);若此时曝光时间已接近运动模糊上限,再以1~3 dB步进增加增益,并观察暗部噪声是否可接受。例如,某检测任务中目标以200 mm/s运动,相机视场对应像素当量为0.1 mm/pixel,则目标在图像上移动速度为2000 pixel/s。若曝光时间设为500 μs,运动模糊约为1 pixel,属于可接受范围;若设为2 ms,模糊约4 pixel,边缘检测将明显变差。

图像采集链路与曝光/增益作用位置 光源 照射目标 被测目标 反射光 镜头 成像 传感器 光电转换 相机内部处理 A/D、去噪、伽马 曝光时间 / 增益 作用点 曝光:控制感光时长 → 亮度↑,过长→运动模糊 增益:放大信号 → 亮度↑,过大→噪声↑、饱和 接口传输 GigE / USB3 / Camera Link 视觉软件 解码、缓存、预处理 算法处理 定位、测量、判断 PLC 结果/触发 触发模式:连续采集 / 软触发 / 硬触发(PLC数字量或编码器) 硬触发将采集时刻与机械位置绑定,是PLC与视觉协同的关键接口

三、触发模式:决定“什么时候拍”

触发模式分为连续采集、软触发和硬触发。连续采集适合静态或低速场景;软触发由软件命令控制,时序精度受操作系统调度影响,通常在毫秒级;硬触发由外部电信号驱动,精度可达微秒级,是PLC与视觉协同的首选。

在西门子PLC系统中,硬触发通常由PLC的数字量输出(如Q0.0)或编码器信号提供。例如,当传送带上的工件到达光电传感器位置时,PLC输出一个24 V上升沿信号,经光耦隔离后接入相机的Trigger In。相机设置为上升沿触发,曝光时间500 μs,则每次触发采集一帧。若传送带速度恒定,还可利用编码器脉冲分频触发,实现“等间距采集”,避免因速度波动导致图像位置漂移。

需要特别注意的是触发信号的电平标准与隔离。PLC的24 V信号不能直接接入相机通常的3.3 V或5 V触发输入,必须经过电平转换或光耦模块。同时,触发线应远离动力线,避免变频器干扰造成误触发。

四、视觉软件环境搭建

视觉软件环境搭建包括相机驱动、SDK、运行时和项目配置。以常见的Halcon或VisionPro为例,步骤通常为:安装相机厂商驱动(如GigE Vision驱动)→ 安装视觉软件及许可 → 在软件中搜索相机并设置IP(同网段、巨帧)→ 配置采集参数(曝光、增益、触发)→ 保存为采集配置文件。若使用西门子生态,还需确认视觉软件是否支持与PLC的通信库,如Profinet、Modbus TCP或OPC UA。

环境搭建中容易忽略的是网络配置。GigE相机建议使用独立网卡,关闭节能模式,设置巨帧(Jumbo Frame)为9 KB,并将相机与PLC置于同一交换机或通过工业交换机隔离。若相机与PLC共用网络,需规划VLAN或QoS,避免视觉图像流挤占PLC实时通信带宽。

五、与PLC协同的接口认知

PLC与视觉系统的接口分为三类:触发接口、结果接口和状态接口。触发接口负责“何时拍”,结果接口负责“拍到了什么”,状态接口负责“系统是否正常”。

结果接口常见形式有:数字量I/O(如OK/NG信号)、Profinet IO、Modbus TCP寄存器、OPC UA变量。以Profinet为例,视觉系统作为IO设备,PLC作为控制器,双方约定输入/输出字节长度。例如,PLC发送1字节触发命令和1字节配方号,视觉返回1字节结果(0=OK,1=NG,2=超时)和4字节测量值。这种映射需要在视觉软件和PLC硬件组态中保持一致。

状态接口包括相机在线、触发超时、图像质量异常等。PLC应能读取这些状态并做出反应,如报警、停机或切换备用工位。一个实用的做法是:在PLC中为视觉系统分配一个状态字,每一位代表一种异常,视觉软件周期性写入,PLC在OB1中解析并触发相应处理。

调试建议:首次联调时,先用连续采集确认图像质量,再切换硬触发确认触发时刻与工件位置对齐,最后接入结果接口验证OK/NG逻辑。每一步都应在PLC变量表中监控对应信号,避免“视觉说OK、PLC收到NG”的映射错误。

综合来看,图像采集流程是基础,曝光与增益决定图像质量,触发模式决定采集时机,软件环境决定系统能否稳定运行,而PLC接口则是协同的桥梁。这五个环节环环相扣,任何一处参数或配置不当,都会在最终结果上暴露出来。工程实践中,建议将采集参数、触发配置和接口映射整理成一份配置记录表,便于复现和排障。