使用 GenTL Interface#
使用 GenTL Producer,您可以执行以下操作:
- 通过相同的接口 (GenApi) 配置各种标准的 GenICam 兼容相机。支持的标准包括 Camera Link 和 CoaXPress。
- 查看图像采集系统的层级结构。
- 开发通用应用程序 (GenTL consumer),而无需考虑所使用的相机标准。
已实现的 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 类别节点中 applets 的信息。在 InterfaceApplets> InterfaceApplet 节点中,您可以选择与当前加载的小程序不同的 .hap 文件。小程序更改将保存在持久性 GenTL 配置文件中。但是,它只有在关闭所有设备并更新设备列表之后,或者在关闭并重新打开接口之后才会生效。选择小程序并更新设备后,请等待几秒钟,然后检查 InterfaceAppletStatus 参数以查看是否已加载该 applet。
何时可以使用 Applet?
- 在 imaWorx 和 imaFlex 采集卡,只要计算机的文件系统(Framegrabber SDK 安装目录、子目录)中存在小程序,它就可用。
DLL或Hardware Applets),即可使用该 applet。如果该 applet 不存在,请运行包含您要使用的 applet 的 applet 安装程序;或者,如果您需要使用通过 VisualApplets 创建的 applet,请将 applet 文件 (*.hap) 复制到Hardware Applets文件夹中(例如,位于您的 Framegrabber SDK 安装目录下...\Basler\FramegrabberSDK5.x.x\Hardware Applets\*.hap)。 - 在 marathon 采集卡上,只要将小程序烧录到采集卡上,它就可用。如果要使用的小程序尚未烧录到采集卡上,请根据 Flashing Applets onto marathon Frame Grabbers 主题中的说明进行烧录。
有关如何在 microDiagnostics 中管理小程序的详细信息,请参阅 Managing Applets (microDiagnostics)。
Applet 配置#
在 UserSetControl 接口模块中的类别中,您可以加载和保存当前所选小程序的配置文件。为此,请在 *.mcf 命令中提供指向现有或不存在的 UserSetFile 参数并执行 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 节点来配置设备:
| Mode | 描述 | 节点路径 |
|---|---|---|
| 模拟发现(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
- 接口电源状态:
- Connected: 采集卡的电源连接器已连接。
- Warning: PCI-Power connector missing: 采集卡的电源连接器未连接。
在 pylon Viewer 中,接口的 Compatibility Status 如下所示:

其他设备的兼容性状态(例如,相机)#
- 设备 Pixel Format 状态:
- Supported: 相机支持此 Pixel Format。
- Warning: Not supported: 相机不支持此 Pixel Format。
- 设备自动 ROI 控制状态:
- 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: 驱动程序不支持抽头几何结构设置。
- Warning: Requested geometry not supported in applet: 相机需要不支持的抽头几何结构。当前
1X1Y是默认值。仅在相机需要且 applet 支持时设置1X2YE。通过1X_1Y模式,您可以定义将整个图像作为一个数据流传输。此模式是大多数相机的默认模式。随着传感器尺寸越来越大,需要更快的读出速度。为实现这一点,请使用1X_2YE模式。在1X_2YE模式下,传感器同时以两个子帧进行读出。
在 pylon Viewer 中,设备的 Compatibility Status 如下所示:

自动 ROI 和 FORMAT#
在 ImageFormatControl 类别中,您可以找到 AutomaticFormatControl, AutomaticROIControl, AutomaticTapGeometryControl,和 OutputPacketFormats 节点。如果 AutomaticFormatControl, AutomaticROIControl,和 AutomaticTapGeometryControl 处于活动状态,则 GenTL Producer 会尝试在 applet 中设置正确的格式和 ROI,以匹配相机设置。这对于 microEnable 6 采集卡的 applet 相关。
访问 Camera Link XML#
Basler 的 ProducerCL.cti GenTL Producer 通过 Camera Link (CL) 连接(使用 GenCP 或 CLP (Camera Link Protocol))提供对相机 XML 文件的访问。这对于连接到图像采集卡的第三方 Camera Link 设备尤其有用,因为大多数 GenTL producer 不为这些设置提供 XML 访问。
信息
Basler 相机不支持 GenCP,但支持 CLP,允许通过 GenTL Producer 直接访问相机的 XML 并进行完整配置。这为 Camera Link 设置提供了增强的控制和灵活性。
Basler CLP 自动配置#
即: ConfigurationForBaslerCLP 此功能可在兼容库可用时,为 Basler Camera Link 相机启用自动 XML 发现和优化配置。默认情况下,此功能处于启用状态。激活时,它会验证 Basler 专用的 CLP 库 BaslerClProtocol.dll 可用。如果 GENICAM_CLPROTOCOL 环境变量可访问且检测到 Basler CLP 库,将自动应用以下配置:
DiscoveryMethod参数Mixed在接口初始化期间。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 中的 Interface Node Access
在某些应用(例如 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.
命名分层元素和算子实例#
可在 applet 中访问的参数由 VisualApplets 设计中的算子层级结构构成。虽然会对参数名称进行处理以符合 GenICam 要求,但根据 GenApi 要求来为算子实例和层级元素命名将有助于更好地理解生成的节点名称。
在 GenTL 中使用通过 VisualApplets 设计的 Applet#
当将使用 VisualApplets 设计的 applet 与 pylon 或其他 GenTL consumer 中的 GenTL producer 配合使用时,常规的相机发现方法可能不够用,并且相机参数到 applet 的自动同步将无法工作。
枚举节点 DiscoveryMethod 在接口 XML 中应设置为 MixedDiscovery 以便在枚举设备之前启用所有 DmaToPc 算子实例。
打开设备后,设备 XML 中的以下布尔节点应设置为 false: AutomaticFormatControl, AutomaticROIControl 和 AutomaticTapGeometryControl.
信息
在 pylon 中使用非 Basler 相机时,需要 pylon 许可证。当将多个 DmaToPc 算子实例用于相机算子实例时,除第一个通道外的所有通道均被视为非 Basler 相机。