跳转到内容

使用 GenTL Interface#

本主题介绍如何使用 GenTL Producer。

使用 GenTL Producer,您可以执行以下操作:

  • 通过相同的接口 (GenApi) 配置各种标准的 GenICam 兼容相机。支持的标准包括 Camera Link 和 CoaXPress。
  • 查看图像采集系统的层次结构。
  • 开发通用应用程序(GenTL 消费者),而无需考虑所使用的相机标准。

所实现的 GenTL Producer 提供 GenTL 1.5。

GenTL Producer#

Basler Framegrabber SDK 包含两个 GenTL Producer:ProducerCXP.cti(适用于 CXP 采集卡)和 ProducerCL.cti(适用于 Camera Link 采集卡)。

GenTL 配置#

GenTL Producer 在以下目录中为每个发现的采集卡保存配置文件:

  • 在 Windows 下:%Appdata%\basler
  • 在 Linux 下:~/.config/basler

如果删除 *.config 文件,GenTL Producer 将重置为默认配置。

Interface Applets#

接口模块 XML 包含有关 InterfaceApplets 类别节点中 applet 的信息。在 InterfaceApplets> InterfaceApplet 节点中,您可以选择不同的小程序或 .hap 文件(而非当前加载的小程序)。小程序更改将保存在持久性 GenTL 配置文件中。但是,它仅在关闭所有设备并更新设备列表之后,或者在关闭并重新打开接口之后才会生效。选择小程序并更新设备后,请等待几秒钟,然后检查 InterfaceAppletStatus 参数,以查看 applet 是否已加载。

什么时候可以使用 Applet?

  • 在 imaWorx 和 imaFlex 采集卡,只要文件系统中存在小程序(Framegrabber SDK 安装目录、子目录),即可使用该小程序。 DLL 或 Hardware Applets),它就可以使用。如果该 applet 不在其中,请运行包含所需 applet 的 applet 安装程序;或者,如果您需要使用通过 VisualApplets 创建的 applet,请将 applet 文件 (*.hap) 复制到 Framegrabber SDK 安装目录的 Hardware Applets 文件夹中(例如 ...\Basler\FramegrabberSDK5.x.x\Hardware Applets\*.hap)。
  • 在 marathon 采集卡上,一旦小程序被烧录到采集卡中即可使用。如果要使用的小程序尚未烧录到采集卡中,请按照 将小程序烧录到 marathon 采集卡 主题中的说明进行烧录。

有关在 microDiagnostics 中管理小程序的详细信息,请参阅 管理小程序 (microDiagnostics)。

Applet 配置#

在 UserSetControl 接口模块中的类别,您可以加载和保存当前所选小程序的配置文件。为此,请在 *.mcf 文件中提供现有或不存在的 UserSetFile 参数中提供指向现有或不存在的 *.mcf 文件的路径,并执行 UserSetLoad 或 UserSetSave 命令。如果您将路径留空或使用与 *.mcf不同的文件扩展名,命令 UserSetLoad 和 UserSetSave 将不可用。

即: *.mcf 配置文件用于保存小程序的配置,而 *.config 文件用于保存 GenTL Producer 的配置。从 *.mcf 文件中加载的配置在更改小程序或关闭系统后不会持久保留。如果当前加载的小程序与已加载的 *.mcf 文件中的小程序不匹配,GenTL Producer 会首先尝试设置 InterfaceApplet 设置为配置文件中的那个。在这种情况下,您必须关闭设备并更新设备列表(无需关闭系统)才能使配置生效。

伪设备#

在 TransportLayerControl 在接口模块的类别中,您可以找到 DiscoveryMethod 枚举节点。此节点包含 CameraDiscovery, EmulationDiscovery和 MixedDiscovery 值,其中 CameraDiscovery 是 CXP 采集卡的默认值,而 EmulationDiscovery 是 Camera Link 采集卡的默认值。仿真设备对于 Camera Link 采集卡以及处理 **.hap 文件尤为重要。

如果您选择 EmulationDiscovery,系统将自动检测仿真设备并生成基本的远程设备 XML 文件。如果 applet 包含图像生成器,则该图像生成器默认处于激活状态。您可以在远程设备节点中禁用图像生成器,以便从 Camera Link 相机接收图像。每个采集通道对应一个仿真设备。

即: MixedDiscovery 会发现真实相机,但会用仿真设备填充空的采集通道。请将此值用于 .hap CXP 采集卡的文件。

发现模式概述#

发现模式定义了如何检测相机或伪设备。您可以通过 API DiscoveryMethod 部分中的 Interface 节点来配置设备:

模式 描述 节点路径
仿真发现 (CL 的默认值) 为每个采集通道创建伪设备(即虚拟设备),以模拟远程设备。 Interface.DiscoveryMethod
混合发现 使用 GenCP 或 CLP 搜索真实相机。如果未检测到真实相机,则回退至伪设备。 Interface.DiscoveryMethod
相机发现(CXP 的默认设置) 仅搜索真实相机,不使用伪设备。 Interface.DiscoveryMethod

兼容性状态#

Compatibility Status 类别用于告知接口和设备的状态。

接口兼容性状态(例如:采集卡)#

  • Interface Driver Version: 显示接口驱动程序的版本号。
  • Interface Producer Version: 显示当前 GenTL Producer 的版本号。
  • 接口 PCIe 状态(Interface PCIe Status):
    • 如果实际速度达到或超过所需速度,此功能将显示检测到的 PCIe 速度,例如 Gen3x8
    • 如果实际速度不匹配或低于所需速度,此功能将显示 Warning: Gen2x1 detected, but Gen3x8 possible
  • 接口电源状态(Interface Power Supply Status):
    • Connected: 采集卡的电源连接器已连接。
    • Warning: PCI-Power connector missing: 采集卡的电源连接器未连接。

在 pylon Viewer 中,接口的 Compatibility Status 如下所示:

pylon Viewer 接口兼容性状态

其他设备的兼容性状态(例如:相机)#

  • 设备像素格式状态(Device Pixelformat Status):
    • Supported: 相机支持此 Pixel Format。
    • Warning: Not supported: 相机不支持此 Pixel Format。
  • 设备自动 ROI 控制状态(Device Automatic ROI Control Status):
    • Deactivated: 已通过 Device Transport Layer -> Image Format Control 禁用自动 ROI。
    • Activated: 自动 ROI 已启用(默认)。
    • Warning: ROI truncated according to stepping: 功能已激活,并且 ROI 大小已调整。如果相机的步长与 applet 的步长不同且无法设置请求的值,则 ROI 大小将设置为下一个较低的匹配值。
  • 设备抽头几何结构状态:
    • Supported: 已找到匹配的抽头几何结构(tap geometry)。
    • Warning: Driver does not support tap geometry setting: 驱动程序不支持抽头几何结构设置。
    • 警告:Applet 不支持请求的几何结构: 相机需要不受支持的抽头几何结构。当前 1X1Y 是默认值。仅当 1X2YE 相机要求且 applet 支持时才进行设置。使用 1X_1Y 模式,您可以定义整个图像作为一个数据流传输。对于大多数相机,此模式是默认模式。随着传感器越来越大,需要更快的读出速度。为实现这一点,请使用 1X_2YE 模式。在 1X_2YE 模式下,传感器同时按两个子帧进行读出。

在 pylon Viewer 中,设备的 Compatibility Status 如下所示:

pylon Viewer 设备兼容性状态

自动 ROI 和 FORMAT#

在 ImageFormatControl 类别中,您可以找到 AutomaticFormatControl, AutomaticROIControl, AutomaticTapGeometryControl和 OutputPacketFormats 节点。如果 AutomaticFormatControl, AutomaticROIControl和 AutomaticTapGeometryControl 处于活动状态,GenTL Producer 会尝试在 applet 中设置正确的格式和 ROI,以匹配相机设置。这与 microEnable 6 采集卡的 applet 相关。

Basler 的 ProducerCL.cti GenTL Producer 允许通过 Camera Link (CL) 连接访问相机 XML 文件,并使用 GenCP 或 CLP(Camera Link 协议)。对于连接到图像采集卡的第三方 Camera Link 设备,这尤其有用,因为大多数 GenTL Producer 不为这些设置提供 XML 访问权限。

信息

Basler 相机不兼容 GenCP,但支持 CLP,允许直接访问相机的 XML 并通过 GenTL Producer 进行完整配置。这为 Camera Link 设置提供了增强的控制和灵活性。

Basler CLP 自动配置#

即: ConfigurationForBaslerCLP 该功能可在兼容库可用时,为 Basler Camera Link 相机启用自动 XML 发现和优化的配置。默认情况下,此功能处于启用状态。激活后,它会验证 Basler 特定的 CLP 库 BaslerClProtocol.dll 是否可用。如果 GENICAM_CLPROTOCOL 环境变量可访问且检测到 Basler CLP 库,将自动应用以下配置:

  1. DiscoveryMethod 设为 Mixed 在接口初始化期间。
  2. ClpSharedLibraryPath 在接口初始化时设置为 Basler 特定的 CLP 库路径。

当 Basler CLP 库可用时,此自动设置简化了对 Camera Link 设备的 XML 访问。

协议选择:GenCP 与 CLP#

在以下章节中,您将了解如何在采集卡配置中选择 GenCP 和 CLP 发现模式。您设置 GenCP 还是 CLP 取决于您的相机。

GenCP 配置#

  • GenCP 是相机发现的默认协议。
  • 要启用 GenCP,请将 DiscoveryMethod 在 Mixed Discovery 层中设置为 Camera Discovery 或 Interface 。

CLP 配置#

有关 CLP 配置,请按照以下步骤操作:

步骤 节点路径 操作
设置发现方法 Interface.DiscoveryMethod Select Mixed Discovery 或 Camera Discovery.
指定 CLP 库路径 Interface.ClpSharedLibraryPath 定义 CLP 共享库的完整路径(DLL 或 SO),通常位于由 GENICAM_CLPROTOCOL.
确认 CLP 库路径 Interface.LoadedClpSharedLibraryPath 通过检查此节点来验证 CLP 库是否已加载。

当 ConfigurationForBaslerCLP 启用且 BaslerCLAutoConfig 处于活动状态时,Basler CLP 库路径和发现模式将自动设置,前提是 GENICAM_CLPROTOCOL 变量指向正确的位置。

应用并保存更改#

对 DiscoveryMethod、GenCP 或 CLP 设置的更改只有在更新设备列表后才会生效。

配置保存在与采集卡关联的内部文件中,确保设置在各个会话之间保持不变,即使在关闭 producer 之后也是如此。

某些 Consumer 中的接口节点访问

在某些应用程序(如 HALCON)中, Interface 节点仅在检测到至少一台设备时才可用。如果 DiscoveryMethod 设为 Camera Discovery 使用了错误的协议(例如使用 CLP 而非 GenCP),可能会导致无法检测到设备,从而阻止更改发现方法。

如果发生这种情况,请找到与采集卡序列号关联的采集卡配置文件:

  • 在 Windows 上:%AppData%\basler
  • 在 Linux 上:~/.config/basler

在此文件中修改发现方法设置,或者将其删除以重置配置。

针对 GenTL 的 VisualApplets 设计注意事项#

在设计用于 pylon 或其他 GenTL consumer 中的 GenTL producer 的 applet 时,有一些事项需要考虑。

为 Applet 文件命名#

文件名直接用于枚举节点 InterfaceApplets 接口 XML 中,并且必须符合 GenICam 对 Name 属性。

GenICam 标准 2.1.1 版本规定了以下要求:

Each node has a Name attribute. The Name must be unique within the camera description
file. Names can be composed of alphanumeric characters [A-Za-z0-9]. The schema also
allows the use of the underscore ‘_’, but not as a leading character.

为分层元素和 operator 实例命名#

可在 applet 中访问的参数由 VisualApplets 设计中的算子层级结构构成。虽然系统会对参数名称进行处理以符合 GenICam 的要求,但如果根据 GenApi 的要求来命名算子实例和层级元素,将有助于更好地理解生成的节点名称。

在 GenTL 中使用通过 VisualApplets 设计的 Applet#

当在 pylon 或其他 GenTL 消费者中将 VisualApplets 设计的 applet 与 GenTL Producer 配合使用时,常规的相机发现方法可能不够充分,并且相机参数与 applet 之间的自动同步将无法生效。

枚举节点 DiscoveryMethod 在接口 XML 中,应当设置为 MixedDiscovery 在枚举设备之前,以启用所有的 DmaToPc 算子实例。

打开设备后,设备 XML 中的以下布尔节点应设置为 false: AutomaticFormatControl, AutomaticROIControl 和 AutomaticTapGeometryControl.

信息

在 pylon 中使用非 Basler 相机时,需要购买 pylon 许可证。当将多个 DmaToPc 算子实例用于相机算子实例时,除第一个通道外的所有通道均被视为非 Basler 相机。