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 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 信号触发曝光,实现“运动到位—触发拍照—结果回传—补偿执行”的闭环。
# 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 规划,确保“触发—曝光—光源—采集”四者时序一致。