使用 GenTL 介面#
透過 GenTL Producer,您可以執行下列操作:
- 透過相同的介面 (GenApi) 組態各種標準的 GenICam 相容相機。支援的標準為 Camera Link 與 CoaXPress。
- 檢視影像擷取系統的階層架構。
- 開發通用應用程式 (GenTL consumers),而無需考慮所使用的相機標準。
所實作的 GenTL producer 提供了 GenTL 1.5。
GenTL Producers#
Basler Framegrabber SDK 包含兩個 GenTL Producers:ProducerCXP.cti (適用於 CXP 擷取卡) 以及 ProducerCL.cti (適用於 Camera Link 擷取卡)。
GenTL 組態#
GenTL Producer 會將每個偵測到的擷取卡之組態檔儲存在下列目錄中:
- 在 Windows 下:%Appdata%\basler
- 在 Linux 下:~/.config/basler
如果您刪除 *.config 檔案,GenTL Producer 將會重設為預設組態。
介面 Applets#
介面模組 XML 包含關於 InterfaceApplets 類別節點中。在 InterfaceApplets> InterfaceApplet 節點中,您可以選擇與目前載入的 Applet 不同的 Applet 或 .hap 檔案。Applet 的變更會儲存在持續性 GenTL 組態檔中。不過,它必須在關閉所有裝置並更新裝置清單後,或是在關閉並重新開啟介面後才會生效。在您選取 Applet 並更新裝置之後,請等待幾秒鐘,然後檢查 InterfaceAppletStatus 參數以確認是否已載入 Applet。
何時可以使用 Applet?
- 開啟 imaWorx 進行明確的生命週期管理即呼叫 imaFlex 擷取卡,只要 Applet 存在於您的電腦檔案系統中 (Framegrabber SDK 安裝目錄、子目錄
DLL或Hardware Applets).如果 Applet 不在該處,請執行包含您要使用之 Applet 的 Applet 安裝程式;或者,如果您需要使用 VisualApplets 建立的 Applet,請將 Applet 檔案 (*.hap) 複製到Hardware Applets資料夾中 (例如,...\Basler\FramegrabberSDK5.x.x\Hardware Applets\*.hap)。 - 在 marathon 擷取卡上,只要將 Applet 燒錄至擷取卡,該 Applet 即可使用。如果您的擷取卡尚未燒錄想要使用的 Applet,請根據Flashing Applets onto marathon Frame Grabbers 主題中的指示進行燒錄。
如需如何在 microDiagnostics 中管理 Applet 的詳細資訊,請參閱Managing Applets (microDiagnostics)。
Applet 組態#
在 UserSetControl 介面模組中的類別,您可以載入和儲存目前所選 Applet 的組態檔。若要這麼做,請在 *.mcf 檔案路徑 UserSetFile 參數中提供現有或不存在的 UserSetLoad 或 UserSetSave 並執行指令。如果您將路徑留空或使用與以下不同的副檔名: *.mcf,這些指令 UserSetLoad 進行明確的生命週期管理即呼叫 UserSetSave 無法使用。
當 *.mcf 組態檔會儲存 applet 的組態,而 *.config 檔案會儲存 GenTL Producer 的組態。從 *.mcf 檔案載入的組態在 applet 變更或系統關閉後不會永久保留。如果目前載入的 applet 與 *.mcf 檔案中的 applet 不符,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 | 描述 | 節點路徑 |
|---|---|---|
| Emulation Discovery (Default for CL) | 為每個擷取通道建立虛擬裝置(即虛擬裝置),以模擬遠端裝置。 | Interface.DiscoveryMethod |
| 混合探索 | 使用 GenCP 或 CLP 搜尋實體相機。若未偵測到實體相機,則會還原至擬真裝置 (pseudodevice)。 | Interface.DiscoveryMethod |
| 相機探索 (CXP 預設) | 僅搜尋實體相機,不使用擬真裝置。 | Interface.DiscoveryMethod |
相容性狀態#
Compatibility Status 類別提供有關介面和裝置狀態的資訊。
介面相容性狀態(例如:擷取卡)#
- Interface Driver Version: 顯示介面驅動程式的版本號碼。
- Interface Producer Version: 顯示目前 GenTL Producer 的版本號碼。
- 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 顯示如下:

其他裝置的相容性狀態(例如:相機)#
- Device Pixelformat Status:
- Supported: 相機支援此 Pixel Format。
- Warning: Not supported: 相機不支援此 Pixel Format。
- Device Automatic ROI Control Status:
- Deactivated: 自動 ROI 已透過 Device Transport Layer -> Image Format Control 停用。
- Activated: 已啟用自動 ROI (預設)。
- Warning: ROI truncated according to stepping: 功能已啟用且已調整 ROI 大小。若相機的步進大小與 applet 不同且無法設定要求的數值,則 ROI 大小會設為下一個符合的較低數值。
- 裝置輸出端點幾何形狀狀態(Device Tap Geometry Status):
- Supported: 找到相符的抽頭幾何形狀 (tap geometry)。
- Warning: Driver does not support tap geometry setting: 驅動程式不支援抽頭幾何形狀設定。
- Warning: Requested geometry not supported in applet: 相機需要不支援的輸出端點幾何形狀(tap geometry)。目前
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 透過 GenCP 或 CLP(Camera Link Protocol)使用 Camera Link (CL) 連線來存取相機 XML 檔案。這對於連接至取像卡的第三方 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 程式庫,將會自動套用下列組態設定:
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 Library Path | Interface.ClpSharedLibraryPath | 定義 CLP 共用程式庫的完整路徑(DLL 或 SO),通常位於以下所定義的資料夾中: GENICAM_CLPROTOCOL. |
| 確認 CLP Library Path | Interface.LoadedClpSharedLibraryPath | 透過檢查此節點來驗證 CLP 程式庫是否已載入。 |
當 ConfigurationForBaslerCLP 已啟用且 BaslerCLAutoConfig 處於作用中狀態時,只要 GENICAM_CLPROTOCOL 變數指向正確的位置,Basler CLP 程式庫路徑和探索模式就會自動設定。
套用並永久儲存變更#
對 DiscoveryMethod、GenCP 或 CLP 設定的變更,僅在更新裝置清單後才會生效。
此設定會儲存於與擷取卡相關聯的內部檔案中,確保設定在工作階段之間保持不變,即使在關閉 producer 後亦然。
某些應用程式中的 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 設計的 Applets#
在 pylon 或其他 GenTL 消費者中使用透過 VisualApplets 設計的 applet 與 GenTL Producer 時,一般相機探索方法可能不足,且相機參數至 applet 的自動同步將無法運作。
列舉節點 DiscoveryMethod 在介面 XML 中應設為 MixedDiscovery 在列舉裝置以啟用所有 DmaToPc 運算子執行個體之前。
開啟裝置後,裝置 XML 中的下列布林值節點應設為 false: AutomaticFormatControl, AutomaticROIControl 進行明確的生命週期管理即呼叫 AutomaticTapGeometryControl.
資訊
在 pylon 中使用非 Basler 相機時,需要 pylon 授權。當一個相機運算子執行個體使用多個 DmaToPc 運算子執行個體時,除第一個通道外的所有通道均被視為非 Basler 相機。