2. 工业相机采集系统架构解析
工业相机采集系统不是“相机加电脑”这么简单,它是一条从光信号到图像数据的完整链路,每一层都有明确的物理接口、电气边界和数据边界。理解这些层级关系,是后续做量产维护、故障定位和系统扩容的前提。本节按“光—电—数据—软件”的顺序,把系统拆成七个可独立观察、可独立替换的层级,并说明它们之间的接口边界在哪里。
一、七个层级与它们的接口边界
从被检测物体出发,系统依次经过:光源(照明层)→ 镜头(成像层)→ 相机(光电转换层)→ 线缆(传输层)→ 采集卡(数据汇聚层)→ 工控机(计算与存储层)→ 软件栈(应用层)。触发与同步信号则横向贯穿相机、采集卡和工控机,属于“控制面”,与图像数据的“数据面”并行。
接口边界可以这样记:光源与镜头之间是光边界,决定对比度和均匀性;镜头与相机之间是光学接口,由 C/CS 或 F 口决定法兰距;相机与线缆之间是电气接口,由 GigE、USB3、Camera Link、CoaXPress 等协议决定;线缆与采集卡之间是物理连接,涉及阻抗、屏蔽和长度;采集卡与工控机之间是总线接口,如 PCIe x4/x8;工控机与软件栈之间是驱动与 API 边界,如 GenICam、GigE Vision、USB3 Vision。维护时,先判断故障落在哪一段边界,再决定换件还是调参。
二、数据面与控制面的分工
图中把系统分成两条面:数据面负责图像从光到软件的搬运,控制面负责“什么时候曝光、什么时候取图”。很多现场问题其实是控制面问题,却被误判成数据面故障。例如相机丢帧,如果触发频率高于曝光加读出时间,属于控制面时序冲突;如果线缆误码导致重传,属于数据面传输问题。维护时先看触发信号是否稳定,再看带宽和丢包计数,能少走很多弯路。
以 GigE Vision 为例,相机通过网线直连工控机网卡或交换机,带宽上限 1 Gbps,实际有效载荷约 110 MB/s。若相机分辨率 500 万像素、8 bit 灰度,单帧约 5 MB,理论帧率上限约 22 fps;若开 12 bit 或彩色 Bayer,数据量翻倍,帧率相应下降。这个估算就是判断“带宽是否够用”的第一道边界。
三、触发与同步的接口边界
触发信号通常从光电传感器、PLC 或编码器进入相机的 Trigger In 引脚,或先进入采集卡的触发输入再分发。硬触发用电气信号,延迟低、抖动小;软触发由软件发命令,延迟大但灵活。同步则解决多相机、相机与光源、相机与运动轴的配合问题。常见做法是:编码器输出 A/B 相给采集卡,采集卡按位置分频后触发相机,同时输出闪光信号给光源控制器,保证“到位即亮、亮完即拍”。
接口边界上要注意:触发信号是 3.3 V 还是 24 V,是否需要光耦隔离,共地还是差分。接错电平可能不触发,也可能损坏输入口。维护记录里应写明触发源类型、电平、极性(上升沿/下降沿)和滤波时间。
四、软件栈的层级与调用关系
软件栈从下到上依次是:驱动层(网卡驱动、采集卡驱动)→ 传输层(GigE Vision / USB3 Vision / Camera Link 协议栈)→ 标准接口层(GenICam 提供统一参数访问)→ SDK 层(厂商 API,如取流、设参、事件回调)→ 应用层(图像处理、结果判定、通信上传)。维护时,参数写不进去先查 GenICam 节点是否可写,取流失败先查驱动和 IP 配置,再查防火墙和巨帧。
五、量产维护中的边界检查表
把上面的层级落成可执行的检查项,便于产线快速定位。下表字段均为示例,实际阈值按项目规格填写。
| 层级 | 检查对象 | 示例判据 | 常见异常 |
|---|---|---|---|
| 光源 | 亮度、频闪同步 | 亮度波动 < 5% | 频闪不同步、亮度衰减 |
| 镜头 | 法兰距、光圈、对焦 | 成像清晰、无暗角 | 松动、进灰、光圈漂移 |
| 相机 | 曝光、增益、温度 | 温度 < 50 ℃,无丢帧 | 过热降帧、坏点增多 |
| 线缆 | 长度、弯折、屏蔽 | GigE ≤ 100 m | 误码、重传、间歇断连 |
| 采集卡 | PCIe 链路、缓存 | 无溢出计数 | 带宽不足、驱动异常 |
| 触发同步 | 电平、极性、抖动 | 抖动 < 1 µs | 漏触发、多触发 |
| 软件栈 | 驱动版本、SDK 日志 | 无报错、帧率稳定 | 参数写失败、取流超时 |
这张表的价值在于:当产线出现“图像偶尔丢失”时,可以按层级逐项排除,而不是盲目更换相机。多数情况下,问题集中在光源同步、线缆接触和触发极性这三处边界上。把边界定义清楚,维护才有章法。