3. 机器视觉系统组成与ctrlX集成接口

一套可落地的机器视觉系统,并不是“买一台相机接上电脑”这么简单。它由成像链、传输链、计算链和通信链四段构成:工业相机负责把光信号转为数字图像,镜头决定视野与分辨率,光源决定被检特征能否被稳定“看见”,图像采集卡或标准协议接口负责把图像数据搬进计算单元,而 ctrlX CORE 则承担视觉结果与运动控制、PLC 逻辑之间的协同。理解这条链路上每一环的物理连接与通信配置,是后续做视觉引导、定位、测量和缺陷检测的前提。

成像链:相机、镜头与光源的匹配关系

工业相机按传感器类型分为 CCD 与 CMOS,当前主流为 CMOS 全局快门或卷帘快门。全局快门在拍摄运动工件时不会产生果冻效应,是视觉引导场景的首选。相机关键参数包括分辨率、像元尺寸、帧率、快门方式和接口类型。例如一台 500 万像素、像元 3.45 μm 的相机,若配 8 mm 焦距镜头,工作距离 300 mm,则单像素对应实际尺寸约为 3.45 μm × 300 mm ÷ 8 mm ≈ 0.129 mm,即视野宽度约 0.129 mm × 2448 ≈ 316 mm。这个估算决定了系统能否分辨目标特征——若需检测 0.5 mm 的缺陷,至少需要 4 个像素覆盖,当前配置刚好满足下限,实际应留 2 倍余量。

镜头选择要同时看焦距、光圈、畸变和接口。焦距决定视野,光圈影响景深与进光量,畸变影响测量精度。远心镜头在精密测量中可消除透视误差,但视野通常较小。光源则按结构分为环形光、条形光、背光、同轴光和穹顶光:背光用于轮廓与尺寸测量,环形光用于表面划痕,同轴光用于高反光金属表面。光源控制器需与相机曝光同步,常用频闪模式提高亮度并延长 LED 寿命。

传输链:GigE Vision 与 USB3 Vision 的物理与协议差异

GigE Vision 基于千兆以太网,使用标准 RJ45 网线与交换机,单链路理论带宽 1 Gbps,实际有效约 100 MB/s,适合中低帧率、高分辨率场景,线缆最长可达 100 m,且支持 PoE 供电。USB3 Vision 基于 USB 3.0,理论 5 Gbps,实际约 400 MB/s,适合高帧率小视野场景,但线缆通常不超过 3 m,且对主机控制器和供电稳定性敏感。两者都遵循 GenICam 标准,通过 XML 描述文件暴露相机参数,因此上位机软件可统一调用。

若相机分辨率高、帧率快,单路 GigE 带宽不足时,可采用双链路聚合或改用 10GigE、CoaXPress。图像采集卡主要用于 Camera Link 或 CoaXPress 相机,它把高速串行数据解串后通过 PCIe 写入主机内存,适合多相机同步和高吞吐场景。在 ctrlX 架构中,若视觉算法运行在 ctrlX CORE 的实时 Linux 上,则优先选择 GigE Vision 相机,直接通过网口接入,避免额外采集卡。

机器视觉系统组成与 ctrlX 集成接口 成像链 光源(环形/背光/同轴) 镜头(焦距/光圈/畸变) 工业相机(CMOS/全局快门) 传输链 GigE Vision(RJ45,≤100m,PoE) USB3 Vision(≤3m,5Gbps) 图像采集卡(Camera Link/CXP) 计算链 ctrlX CORE(实时 Linux) 视觉算法(定位/测量/检测) 结果输出(坐标/判定/偏差) 通信链:ctrlX CORE 与视觉设备/控制器的连接 GigE 相机 192.168.1.10 ctrlX CORE 192.168.1.1 ctrlX DRIVE / PLC EtherCAT / OPC UA 图像数据流:相机 → ctrlX CORE → 算法处理 → 结果下发 控制数据流:ctrlX CORE → EtherCAT/OPC UA → 驱动器/PLC

ctrlX CORE 与视觉设备的物理连接

ctrlX CORE 通常配备多个以太网口,其中 XF10 等端口可用于设备网络。推荐将视觉相机与 ctrlX CORE 放在同一子网,例如 ctrlX CORE 设为 192.168.1.1,相机设为 192.168.1.10,子网掩码 255.255.255.0。若使用 PoE 相机,需确认交换机或 PoE 注入器能提供足够功率,典型 GigE 相机功耗约 3~5 W,PoE 802.3af 可满足。USB3 Vision 相机则直接接入 ctrlX CORE 的 USB 3.0 端口,但需注意供电电流不超过端口上限,长距离时使用带供电的主动延长线。

物理连接完成后,需要在 ctrlX CORE 上确认网卡状态与相机发现。可通过 ctrlX 的 Web 界面或 SSH 登录,使用 ip addr 查看网口地址,用 ping 192.168.1.10 验证链路连通。若相机支持 GigE Vision,还可使用 arv-tool-0.8 或厂商工具扫描设备。发现相机后,需在 ctrlX 应用中加载 GenICam XML 描述文件,使相机参数以标准节点形式暴露。

通信配置:从图像采集到控制协同

在 ctrlX AUTOMATION 中,视觉结果通常通过两种方式进入控制层:一是 ctrlX CORE 内部应用直接读取相机图像并运行算法,把结果写入 ctrlX Data Layer;二是通过 OPC UA 或 EtherCAT 把结果发送给 PLC 或驱动器。Data Layer 是 ctrlX 的核心数据总线,视觉应用可将“目标 X 坐标”“目标 Y 坐标”“角度偏差”“OK/NG 判定”等变量注册为节点,例如 vision/result/x、vision/result/angle。PLC 侧通过订阅这些节点即可获得实时结果。

若使用 EtherCAT 与 ctrlX DRIVE 协同,则需在 ctrlX CORE 的 EtherCAT 主站中配置过程数据对象,把视觉偏差映射为驱动器的位置补偿量。此时要注意周期匹配:相机帧率若为 30 fps,则视觉结果更新周期约 33 ms,而 EtherCAT 周期通常为 1 ms 或 2 ms,因此视觉结果需经过缓存或插值,避免控制抖动。对于高动态场景,可让相机工作在触发模式,由 ctrlX CORE 的 digital output 或 PLC 信号触发曝光,实现“运动到位—触发拍照—结果回传—补偿执行”的闭环。

配置示例:GigE 相机接入 ctrlX CORE
# 1. 设置 ctrlX CORE 网口地址
ip addr add 192.168.1.1/24 dev eth0

# 2. 设置相机 IP(以厂商工具为例)
# 相机默认 192.168.1.10,子网 255.255.255.0

# 3. 验证连通
ping 192.168.1.10

# 4. 扫描 GigE Vision 设备
arv-tool-0.8

# 5. 在 ctrlX 应用中加载相机 XML
# 路径:/var/opt/ctrlx/vision/camera.xml

选型与配置中的关键判断

实际项目中,接口选择往往由带宽和距离共同决定。若相机为 500 万像素、30 fps、8 bit 灰度,单帧数据量约 5 MB,30 fps 即 150 MB/s,已超过单路 GigE 有效带宽,此时应选 USB3 Vision 或双链路 GigE。若传输距离超过 5 m,USB3 不再可靠,应改用 GigE 或 CoaXPress。若现场有多台相机且需要硬同步,则优先选择支持触发与同步信号的型号,并通过 ctrlX CORE 的 digital I/O 分发触发脉冲。

光源与相机的同步同样影响成像稳定性。频闪模式下,光源控制器接收相机曝光信号或 ctrlX CORE 的触发输出,在曝光窗口内点亮 LED。若光源常亮,运动工件会产生拖影,导致边缘模糊。因此,在配置通信时,应把触发信号纳入 ctrlX CORE 的 I/O 规划,确保“触发—曝光—光源—采集”四者时序一致。

常见问题:相机能被 ping 通但无法采集图像,通常是因为防火墙拦截了 GigE Vision 的 GVCP/GVSP 端口,或相机 IP 与主机不在同一子网。ctrlX CORE 上需放行 UDP 3956 及动态端口,并确认网卡 MTU 设置为 1500 或更高(若支持巨帧)。USB3 Vision 相机若频繁掉线,应检查线缆屏蔽与供电,避免与高功率设备共用 USB 控制器。