教程

pylon:面向实时与高性能的USB 3.0视觉系统

针对Windows和Linux优化系统

在本教程中,您将学习如何在pylon中设置单台相机,以便在应用中实现性能最大化。重点在于优化USB3 Vision设置,这需要仔细考虑到相机、主控制器和线缆。

快速入门 - 通过5个步骤实现稳定的数据流

  1. 在pylon Viewer中打开相机:确保连接、驱动程序和固件正常工作

  2. 正确配置驱动程序和系统:当前的主机控制器驱动程序、适当的操作系统设置(例如实时优先级项)

  3. 有针对性的带宽控制:合理限制和妥善分配可用USB带宽 → 避免数据丢失

  4. 优化数据流传输参数:最大传输单元大小、USB请求块(URB)数量以及缓冲区大小 → 实现高效传输,最小化CPU负载

  5. 使用监控和错误分析:开始连续采集;针对丢帧、重同步或内存问题的数量进行统计 → 尽早发现设置中的瓶颈

Tip

充分发挥系统性能需满足的要求

  • USB 3.0线缆:采用工业级质量;高质量组件可减少传输错误,提高系统稳定性

  • 高质量的主机控制器(USB控制器):使用最新的驱动程序;过时或劣质的控制器通常会导致带宽瓶颈、重同步错误和丢帧。

  • 充足的PC内存(RAM):对于大批量数据传输尤为重要

下面将为您介绍可以设置哪些参数,使pylon中的视觉设置发挥最大性能。这些相机设置适用于Windows和Linux,本文还将单独列出Linux的其他系统参数。

适用于USB 3.0相机的理想设置

相机的设置对数据传输的稳定性和性能有重大影响。我们的目标是优化调整带宽,避免出现错误。

pylon Viewer中的这两个参数对带宽和稳定性有特别的影响:

  • 设备链路传输量限制模式:可激活或禁用整个带宽控制
    建议:如果主机控制器带宽受限,则应选择
    已激活

  • 设备链接传输量限制:确定相机为数据传输分配的最大可用带宽
    降低此值可避免性能瓶颈。

在pylon中,前往所有功能树,并选择控制帧速率作为常规任务。在“设备控制”条目中可找到相机参数。

为Windows设置USB3参数

在pylon的数据流参数下配置以下五个USB3参数。正确的设置可提高视觉系统的性能和稳定性,降低CPU负载。

  • 最大传输大小 (MaxTransferSize)
    图像传输流数据包大小(相当于GigE的巨型帧)。数值越大即表示性能越高,CPU负载越小;最大值 = 4 MB,具体取决于USB主机控制器

  • 最大排队URB数量 (NumMaxQueuedUrbs)
    URB = USB请求块,即可同时处理的USB请求
    用于优化相机和主控制器之间的设置。
    尝试使用更大的值 = 更少的抖动、更稳定的数据传输(限制因素:PC可用的内存);默认设置 = 64

  • 最大缓冲区数 (MaxNumBuffer)
    图像缓冲区数量 - 如果图像处理暂时性需要更长时间,则应增加缓冲区数量;默认 = 10

  • 排队缓冲区数量 (NumQueuedBuffers)
    显示缓冲区数量和图像采集的稳定程度;数值下降可能预示存在丢帧

  • 传输循环线程优先级 (TransferLoopThreadPriority/b>) 处理USB传输的线程的优先级。如需获得最高性能:

前往所有功能树,并选择检查相机是否丢失图像数据作为常规任务。您可以在数据流参数条目中找到USB3参数。

优化Linux下的USB3 Vision设置

相机设置与在Windows下的操作相同。不过,在Linux中还有一些相关的额外系统参数:

  • 接收线程优先级
    在传输图像时,应为线程分配实时优先级。

  • 增加USB-FS内核空间

    • 防止内核内存在USB传输时出现瓶颈

    • 尤其适用于:传输量大的情景

  • 增加文件句柄限制/文件描述符

    • 适用于大数据包传输场景

    • 根据系统和工作负载进行定制

在Linux下设置各种系统参数

现场演示:调整选项

在现场演示中,您将了解如何在pylon Viewer中设置各种参数,使系统以出色状态稳定运行。如需进行设置,应使用以管理员权限启动的pylon Viewer。

该配置包括一台Windows PC、一台USB3相机和pylon软件。

故障排除和成功执行监控

pylon可提供多个统计参数,可在早期阶段指出问题:

  • 失败缓冲区计数: 损坏或丢弃的图像;表明已出现错误(例如带宽瓶颈)

  • 丢失帧计数: 相机已采集图像但未进行传输,例如因相机内部缓冲区过快填满 → 表明帧速率过高,主控制器带宽不足

  • 重同步计数: 严重错误 → 主机控制器重置连接→ 后果:相机缓冲区中存储的所有图像丢失
    原因:主机控制器严重过载、线缆故障、供电不良

适合进行精确分析:打开pylon Viewer → 全部功能 → 数据流参数 → 观察统计值

前往pylon中的所有功能树,并选择检查相机是否丢失图像数据作为常规任务。您可以在数据流参数条目中找到统计参数。

右键点击参数(位于屏幕右侧“功能”下),即可访问产品文档,其中包含详细说明和源代码片段。即使没有互联网连接,您也可以随时通过pylon Viewer访问这些内容。

Basler产品文档

经过优化的USB3 Vision系统

USB3 Vision系统的性能和可靠性始终取决于多个层面能否以出色方式相互配合。

  • 高品质的硬件:工业USB3线缆以及当前的主机控制器

  • 经过优化的相机设置:带宽控制、数据包大小和延迟

  • 在pylon中正确的USB3参数:传输大小、USB请求块(URB)、缓冲区管理、线程优先级

  • 通过统计参数进行系统监控:失败缓冲区计数、丢失帧计数、重同步计数

  • Linux下的其他优化项:实时线程、内核空间和文件句柄限制

通过适当配置,单相机设置可实现稳定、无损耗和高性能的实时图像传输。

适用于USB 3.0系统的产品

您想实施类似的视觉方案吗?这些产品将能助您一臂之力。

您需要获得什么支持?

我们很乐意提供产品选择建议,并助您为应用找到合适的解决方案。