並行安裝 pylon 與 Framegrabber SDK#
本主題說明如何在不同情境中連結並行使用 pylon 與 Framegrabber SDK。
執行階段規則#
pylon、完整的 Framegrabber SDK 以及諸如 HALCON 等 GenTL 消費端可以共用同一台電腦。Framegrabber SDK 執行階段的兩種行為決定了該設定是否可行:
- 每個擷取卡一次只能由一個處理程序使用。 處理程序透過以下方式存取擷取卡並不重要: ProducerCL.cti, ProducerCXP.cti或 Camera Link 序列路徑。第二個開啟該...
Interface已投入使用的幀擷取卡發生錯誤而無法運作。 - 在單一處理程序中,所有 Framegrabber SDK 元件必須來自相同的安裝。在初始化期間,producer 會檢查內部模組(例如 fglib5.dll、siso_hal.dll 或 haprt.dll)是否已經從不同的目錄載入。如果是,producer 會回報錯誤,並且不會使用混合版本執行。因此,將個別的 .cti 或 .dll 檔案從一個安裝複製到另一個安裝是無效的。
為了確保系統運作穩定,每個程序應從單一安裝位置載入其產生程式與執行時元件,且每個幀擷取卡應僅由一名指定使用者使用。
pylon 對 CoaXPress 與 VisualApplets 的支援#
當您在 pylon 中安裝 CoaXPress 支援時,pylon 安裝程式會將Framegrabber SDK 中的部分內容複製到 <pylon-dir>/Runtime/x64/producerCXP 子資料夾(及其 32 位元版本)。此子集僅包含使用Framegrabber SDK 的 GenTL 產生器,以及支援 CXP-12 擷取卡(CXP-12 介面卡、imaWorx CXP-12 Quad 、imaFlex CXP-12 Quad 及 Penta)的幀擷取器所需的檔案。該資料夾中的許多函式庫 bin Framegrabber SDK 完整安裝套件中的資料夾,會被 pylon 安裝程序所使用。
為了讓 pylon 尋找並使用 GenTL Producer,必須設定環境變數 GENICAM_GENTL64_PATH (或針對 32 位元應用程式的 GENICAM_GENTL32_PATH (適用於 32 位元應用程式)必須設定。當您安裝支援 CoaXPress 的 pylon 時,pylon 會新增 <pylon-dir>/Runtime/x64/producerCXP/bin 設定為 GENICAM_GENTL64_PATH. 現有的項目將予以保留。在同時安裝了完整版Framegrabber SDK 的電腦上,該變數將列出兩個 Basler 產生者目錄。該 BASLER_FG_SDK_DIR 此環境變數用以識別完整的安裝。
因此,取用者會找到兩次 CXP 傳輸,因為它們會列舉路徑中的每個目錄。一個複本來自 pylon,另一個複本來自完整安裝。同一個擷取卡可能會透過這兩個 producer 出現,並且不清楚處理程序使用的是哪個執行階段。載入來自兩個安裝之元件的處理程序會未通過 執行階段規則 中的版本檢查。請只保留提供 GenTL 取用者服務之安裝的路徑項目。如需詳細資訊,請參閱 建議組態。
pylon 對 Basler擷取卡的支援有限,僅提供由 acquisition applets 所提供的功能。
如果您想在 pylon 中使用以 Visual Applets 設計的自訂 Applets,建議的方式是安裝 pylon 但不包含 CoaXPress 支援,並另外安裝支援您所使用擷取卡的 Framegrabber SDK 版本。Framegrabber SDK 的安裝程式將會修改變數 GENICAM_GENTL64_PATH 並將其設定為 <Framegrabber SDK installation directory>/bin。如果 pylon 已經安裝並支援 CoaXPress,請確保 GENICAM_GENTL64_PATH 且 <Framegrabber SDK installation directory>/bin,而不是 <pylon-dir>/Runtime/x64/producerCXP/bin。透過這種方式,pylon 可以尋找並使用隨 Framegrabber SDK 一起交付以支援 CoaXPress 的 GenTL Producer。
如需有關 GenTL 介面的一般資訊,請參閱 使用 GenTL 介面。在 GenTL 中使用 VisualApplets Applet 下方的 設計考量 和 執行階段組態 章節包含供 VisualApplets 使用者參閱的重要資訊。
支援 Basler Camera Link 相機#
當您同時使用 Basler Camera Link 相機與擷取卡時,pylon 可作為相機的組態工具,而 Framegrabber SDK 則用於影像擷取。pylon 與 Framegrabber SDK 之間的連結是 Camera Link 序列介面程式庫 clsersis。
pylon 針對 Camera Link 不會使用 GenTL。當 clsersis.dll 存在於 CLSERIALPATH 目錄中時,pylon 會載入該程式庫並作為獨立的 CLProtocol 用戶端運作。它會載入 BaslerClProtocol.dll 並透過 CLAllSerial 取得序列連線。此行為沒有明確的設定。如需有關序列連線的詳細資訊,請參閱 序列連接是如何建立的。pylon 以這種方式初始化的擷取卡無法同時透過 ProducerCL 開啟。若要防止這種存取,請將 clsersis.dll 移出 CLSERIALPATH 目錄。如需詳細資訊,請參閱 建議組態.
這兩款產品中已知的問題可能會使此設定過程變得複雜。Basler 建議您安裝 pylon 7.5 版以及Framegrabber SDK 5.11.2 版或更新版本。此版本組合已通過測試與驗證。
建議組態#
| 目標 | 組態 |
|---|---|
| 搭配完整 Framegrabber SDK 的 GenTL 取用者 | 設定 GENICAM_GENTL64_PATH 設定為 CLSERIALPATH 目錄中。之後沒有其他應用程式可以初始化擷取卡。您可以還原此變更。保留 BaslerClProtocol.dll。ProducerCL 會在其內部序列介面中使用該程式庫。 |
| pylon CXP,無完整 Framegrabber SDK | 使用已安裝的 pylon 套件。設定 GENICAM_GENTL64_PATH 設定為 |
| 已安裝完整的 pylon CXP 與 Framegrabber SDK | 指向 GENICAM_GENTL64_PATH 至 bin 完整 Framegrabber SDK 安裝的目錄,而非精簡版套件。這樣生產器、執行階段和 applet 就會來自同一個安裝。 |
| 搭配 Camera Link 相機的 pylon | 保留 clsersis.dll 資料夾內的 CLSERIALPATH 目錄。當 pylon 正在使用該幀擷取卡時,請勿透過 ProducerCL 開啟該幀擷取卡。 |
程序在啟動時會讀取環境變數。在您變更這些變數之後,以及每次安裝 pylon 或Framegrabber SDK 之後,請關閉所有影像擷取應用程式。請確認 GENICAM_GENTL64_PATH. 接著再次啟動目標消費者。