跳至內容
測試伺服器
開發伺服器

設定 CXP-12 介面卡#

本主題將說明如何使用pylon API 、pylon Viewer 或gpioTool 來設定 Basler CXP-12 介面卡。

資訊

本主題涵蓋基本使用情境。有關介面卡軟體功能的詳細資訊,請參閱資料擷取小程式(applets)的PDF 文件。

在以下情況下,設定介面卡特別有用:

限制

在所有小程式中,均無法分配大於 4 GB 的緩衝區。即使小程式允許更大的緩衝區大小,由於驅動程式和韌體的限制,您仍無法分配大於 4 GB 的緩衝區。

您可以透過以下方式計算緩衝區大小:

緩衝區大小 = 影像高度 * 影像寬度 * (像素寬度 / 8)。

對於 RGB 影像:緩衝區大小 = (影像高度 * 影像寬度 * (像素寬度 / 8)) * 3。

可用的區域掃描小程式與預設小程式#

根據介面卡的型號,以下小程式可供使用,並已設定為預設選項:

Applet 名稱 適用於介面卡 介面卡上的預設小程式
Acq_SingleCXP12Area 1C、2C、4C 1C
Acq_DualCXP12Area 2C、4C 2C
Acq_TripleCXP12Area 4C -
Acq_QuadCXP12Area 4C 4C

除了Acquisition Applets 之外,您也可以使用 Enhanced Applets。Enhanced Applets 目前仍處於原型階段,僅能透過您當地的Basler 銷售代表或現場應用工程師提出申請後取得。所有Enhanced Applets 均具備以下額外功能:

可用的線掃描小程式#

根據介面卡的型號,可使用以下小程式。請注意,預設小程式(即預設載入的小程式)始終為區域掃描小程式。因此,若要使用線性掃描小程式,必須先依照「變更小程式」中的說明載入該小程式。

Applet 名稱 適用於介面卡
Acq_SingleCXP12Line 1C、2C、4C
Acq_DualCXP12Line 2C、4C
Acq_TripleCXP12Line 4C
Acq_QuadCXP12Line 4C

說明文件#

以下章節提供 acquisition applets 說明文件的連結:

CXP-12 Interface Card 1C#

GenTL Fglib
Acq_SingleCXP12x1Area PDF Acq_SingleCXP12x1Area PDF
Acq_SingleCXP12Line PDF Acq_SingleCXP12Line PDF
Frame Grabber Test Applet PDF Frame Grabber Test Applet PDF

CXP-12 Interface Card 2C#

GenTL Fglib
Acq_SingleCXP12Area PDF Acq_SingleCXP12Area PDF
Acq_DualCXP12Area PDF Acq_DualCXP12Area PDF
Acq_SingleCXP12Line PDF Acq_SingleCXP12Line PDF
Acq_DualCXP12Line PDF Acq_DualCXP12Line PDF
Frame Grabber Test Applet PDF Frame Grabber Test Applet PDF

CXP-12 Interface Card 4C#

GenTL Fglib
Acq_SingleCXP12Area PDF Acq_SingleCXP12Area PDF
Acq_DualCXP12Area PDF Acq_DualCXP12Area PDF
Acq_TripleCXP12Area PDF Acq_TripleCXP12Area PDF
Acq_QuadCXP12Area PDF Acq_QuadCXP12Area PDF
Acq_SingleCXP12Line PDF Acq_SingleCXP12Line PDF
Acq_DualCXP12Line PDF Acq_DualCXP12Line PDF
Acq_TripleCXP12Line PDF Acq_TripleCXP12Line PDF
Acq_QuadCXP12line PDF Acq_QuadCXP12line PDF
FrameGrabberTest Frame Grabber Test Applet PDF

選擇合適的小程式#

如果您僅使用單通道(1-CXP)攝影機,預設的小程式將始終能正常運作,您無需進行任何變更。

然而,如果您使用的是多通道(例如 2-CXP 或 4-CXP)攝影機,必須根據您的攝影機設定選擇正確的小程式。否則,攝影機可能無法運作,或其效能可能會大幅降低。

應選用哪個小程式,取決於相機的數量、每台相機的通道數,以及所需的 ROI 步長。

ROI 的步長取決於影像預處理的 Parallelism,因此會因相機和擷取卡而異。

CXP-12 Interface Card 1C#

適用於的區域掃描小程式CXP-12 Interface Card 1C#

最大相機數量 單通道攝影機的數量 雙通道攝影機的數量 4 頻道攝影機的數量 Applet ROI 步長 [px]
1 1 Acq_SingleCXP12x1Area x: 4
y: 1

適用於的線掃描小程式CXP-12 Interface Card 1C#

最大相機數量 單通道攝影機的數量 雙通道攝影機的數量 4 頻道攝影機的數量 Applet ROI 步長 [px]
1 1 Acq_SingleCXP12Line x: 4
y: 1

CXP-12 Interface Card 2C#

適用於的區域掃描小程式CXP-12 Interface Card 2C#

最大相機數量 單通道攝影機的數量 雙通道攝影機的數量 4 頻道攝影機的數量 Applet ROI 步長 [px]
2 1 Acq_DualCXP12Area x: 8
y: 1
2 2 Acq_DualCXP12Area x: 8
y: 1
1 1 Acq_SingleCXP12Areaa x: 16
y: 1
1 1 Acq_SingleCXP12Area x: 16
y: 1

適用於的線掃描小程式CXP-12 Interface Card 2C#

最大相機數量 單通道攝影機的數量 雙通道攝影機的數量 4 頻道攝影機的數量 Applet ROI 步長 [px]
2 1 Acq_DualCXP12Line x: 8
y: 1
2 2 Acq_DualCXP12Line x: 8
y: 1
1 1 Acq_SingleCXP12Lineb x: 16
y: 1
1 1 Acq_SingleCXP12Line x: 16
y: 1

CXP-12 Interface Card 4C#

適用於的區域掃描小程式CXP-12 Interface Card 4C#

最大相機數量 單通道攝影機的數量 雙通道攝影機的數量 4 頻道攝影機的數量 Applet ROI 步長 [px]
4 1 Acq_QuadCXP12Area x: 8
y: 1
4 2 Acq_QuadCXP12Area x: 8
y: 1
4 3 Acq_QuadCXP12Area x: 8
y: 1
4 4 Acq_QuadCXP12Area x: 8
y: 1
3 1 Acq_TripleCXP12Areac x:16/8/8
y:1
3 2 Acq_TripleCXP12Areac x:16/8/8
y:1
3 3 Acq_TripleCXP12Areac x:16/8/8
y:1
3 1 Acq_TripleCXP12Aread x:16/8/8
y:1
3 1 1 Acq_TripleCXP12Area x:16/8/8
y:1
3 2 1 Acq_TripleCXP12Area x:16/8/8
y:1
2 1 Acq_DualCXP12Areac x: 16
y: 1
2 2 Acq_DualCXP12Areac x: 16
y: 1
2 1 1 Acq_DualCXP12Area x: 16
y: 1
2 1 Acq_DualCXP12Areae x: 16
y: 1
2 2 Acq_DualCXP12Area x: 16
y: 1
1 1 Acq_SingleCXP12Areac x: 32
y: 1
1 1 Acq_SingleCXP12Areaf x: 32
y: 1
1 1 Acq_SingleCXP12Area x: 32
y: 1

適用於的線掃描小程式CXP-12 Interface Card 4C#

最大相機數量 單通道攝影機的數量 雙通道攝影機的數量 4 頻道攝影機的數量 Applet ROI 步長 [px]
4 1 Acq_QuadCXP12Line x: 8
y: 1
4 2 Acq_QuadCXP12Line x: 8
y: 1
4 3 Acq_QuadCXP12Line x: 8
y: 1
4 4 Acq_QuadCXP12Line x: 8
y: 1
3 1 Acq_TripleCXP12Lineg x:16/8/8
y:1
3 2 Acq_TripleCXP12Lineg x:16/8/8
y:1
3 3 Acq_TripleCXP12Lineg x:16/8/8
y:1
3 1 Acq_TripleCXP12Lineh x:16/8/8
y:1
3 1 1 Acq_TripleCXP12Line x:16/8/8
y:1
3 2 1 Acq_TripleCXP12Line x:16/8/8
y:1
2 1 Acq_DualCXP12Lineg x: 16
y: 1
2 2 Acq_DualCXP12Lineg x: 16
y: 1
2 1 Acq_DualCXP12Line x: 16
y: 1
2 1 1 Acq_DualCXP12Linei x: 16
y: 1
2 2 Acq_DualCXP12Line x: 16
y: 1
1 1 Acq_SingleCXP12Line x: 32
y: 1
1 1 Acq_SingleCXP12Line x: 32
y: 1
1 1 Acq_SingleCXP12Line x: 32
y: 1

變更 Applet#

在介面卡上執行的程式小程式定義了其功能。對於某些攝影機設定,您可能需要變更預設的程式小程式。

若要在 pylon 中變更介面卡所使用的小程式,請設定 InterfaceApplet 將參數設為要載入的小程式的名稱,例如: Acq_DualCXP12Area:

pylon:變更 Applet

使用介面卡觸發 Basler boost CXP-12 攝影機#

資訊

本節內容僅適用於您希望透過介面卡來觸發攝影機的情況。通常,攝影機是透過其 I/O 連接器來觸發的。如需更多資訊,請參閱「觸發式影像擷取」。

有關此處提及的參數之詳細說明,請參閱您所使用的區域掃描小程式的文件。

硬體觸發(外部)#

啟用外部觸發功能後,您可以將觸發輸入訊號傳送至介面卡,而介面卡會將這些訊號轉發至 Basler Boost 攝影機。

若要設定介面卡以支援外部硬體觸發:

  1. 將相機中的 AreaTriggerMode 參數設為 External.
  2. 將相機中的 TriggerInSource 將參數設定至所需的「Front GPI」輸入線。
    例如,若要使用 GPI0(介面卡上的第 11 和 12 腳位)進行外部觸發,請將該參數設定為 FrontGpiTriggerSource0.
  3. 將相機中的 TriggerCameraOutSelect 將該參數設定為對應的「繞過」選項。
    舉例來說,如果您選擇了 FrontGpiTriggerSource0)之間時,請將該記憶體 operator 上的 TriggerCameraOutSelect 參數設為 BypassFrontGpi0.
  4. 將相機中的 TriggerState 參數設為 Active.
  5. 如有需要,請依照以下說明設定觸發訊號。

所有觸發訊號都將轉發至相機的原始訊號 CxpTrigger0 進行明確的生命週期管理即呼叫 CxpTrigger1. 這些訊號可應用於各種用途。最常見的應用情境是影像擷取。請參閱 以下為範例.

硬體觸發(內部)#

啟用內部觸發功能後,介面卡會以指定的頻率在內部產生觸發訊號。所有外部觸發訊號均將被忽略。

若要將介面卡設定為內部硬體觸發模式:

  1. 將相機中的 AreaTriggerMode 參數設為 Generator.
  2. 將相機中的 TriggerOutputFrequency 將參數設定為所需的觸發輸出頻率。例如,若將該參數設定為 8,介面卡每秒將產生 8 個觸發訊號。
  3. 將相機中的 TriggerCameraOutSelect 參數設為所需的輸出線路,例如 PulseGenerator0.
  4. 將相機中的 TriggerState 參數設為 Active.

現在,每當您開始進行影像擷取時,介面卡便會以指定的頻率產生觸發訊號。

所有觸發訊號都將轉發至相機的原始訊號 CxpTrigger0 進行明確的生命週期管理即呼叫 CxpTrigger1. 這些訊號可應用於各種用途。最常見的應用情境是影像擷取。請參閱 以下為範例.

範例:利用觸發訊號進行影像擷取#

若要使用介面卡所產生的外部或內部觸發訊號來擷取影像:

  1. 在相機上,將 TriggerSelector 參數設為 FrameStart.
  2. 將相機中的 TriggerMode 參數設為 On.
  3. 將相機中的 ExposureMode 參數設為 Timed.
  4. 將相機中的 TriggerSource 參數設為 CxpTrigger0 或 CxpTrigger1.

現在,每當介面卡接收或產生觸發訊號時,攝影機便會擷取一張影像。

資訊

您可以將觸發訊號用作任何可由訊號源控制的 Basler Boost 相機功能的訊號來源。例如,設定 CounterTriggerSource 參數設為 CxpTrigger0 讓您能夠控制 Counter 透過介面卡使用此功能。

在介面卡上執行去拜爾處理#

透過CXP-12 Interface Card 1C ,您可以在介面卡上執行去拜耶運算。這可減輕相機與主機的運算負擔。

若要這樣做:

  1. 啟動「pylon Viewer 」,並建立與介面卡及攝影機的連線。
  2. 請使用功能樹進行以下設定:
    • 在相機上,將 Pixel Format 選項設定為拜耳像素格式,例如拜耳 RG 12。
    • 請導航至「裝置傳輸層」,並停用「自動格式控制」選項。
      這樣一來,您便能獨立於攝影機所使用的像素格式,自行設定輸出格式。
    • 在介面卡上,將OutputFormat選項設定為相應的 RGB 像素格式。
      位元深度必須是拜耳像素格式位元深度的三倍。例如,拜耳 RG 12(相機)= 36 位元色彩(介面卡)。

現在,介面卡將對相機的原始影像資料進行去拜爾處理,並輸出 RGB 影像資料。

資訊

請務必在上述第 3 步中設定正確的 RGB 像素格式。否則,將無法正確擷取影像。

使用相機上未提供的輸出格式#

Basler Boost 相機可輸出多種像素格式的影像資料,例如 Bayer RG 8 或 RBG 8。如需更多資訊,請參閱「像素格式」主題。

如果相機不支援您所需的像素格式,且您也希望避免在主機上進行影像轉換,您可以嘗試使用介面卡所提供的其中一種像素格式。

此介面卡提供以下格式:

Gray8bit Gray10bit Gray12bit 灰階 16 位元
24 位元色彩 30 位元色彩 36 位元色彩 48 位元色彩
Bayergr8 Bayergr10 Bayergr12 Bayergr16
Bayerrg8 Bayerrg10 Bayerrg12 Bayerrg16
Bayergb8 Bayergb10 Bayergb12 Bayergb16
Bayerbg8 Bayerbg10 Bayerbg12 Bayerbg16

若要使用相機上未提供的輸出格式:

  1. 在相機上,將 PixelFormat 將參數設定為所需的相機像素格式,例如: Mono12.
  2. 在介面卡上,設定 AutomaticFormatControl 參數設為 false.
    這讓您可以獨立於相機所使用的像素格式,自行設定輸出格式。
  3. 在介面卡上,設定 Format 將參數設定為所需的輸出格式,例如: Gray16bit.

根據上述範例數值,介面卡將根據 12 位元相機影像資料,輸出 16 位元影像資料。如以下所示,系統將插入填充位元(零)。

基於 12 位元相機影像資料的 16 位元影像資料

使用gpioTool#

透過 gpioTool 命令列工具,您可以設定介面卡所接收或傳送的觸發訊號之物理屬性:

  • 您可以將輸入線路設定為接收單端或差分訊號。
  • 您可以將輸入線配置為上拉或下拉模式運作。
  • 您可以指定輸出訊號是否應進行反相。

gpioTool 已包含在pylon Software Suite 中。

要啟動此工具:

  1. 開啟「命令提示字元」視窗(Windows )或「終端機」視窗(Linux )。
  2. 切換至您的 Pylon 安裝目錄中的bin目錄:

    • Windows (64 位元):%programfiles%\Basler\pylon x\Runtime\x64\pylonCXP\bin
    • Windows (32 位元):%programfiles%\Basler\pylon x\Runtime\Win32\pylonCXP\bin
    • Linux:/opt/pylon/lib/pylonCXP/bin
  3. 請使用以下所述的選項啟動gpioTool 。

選項#

下列選項可供使用:

gpioTool -b [board_index]
         -g
         -v
         -s [bank]:[settings]
         -h

-b [board_index]
請指定您要存取系統中的哪一張 CXP-12 介面卡。此參數對於所有選項皆為必填,惟以下情況除外: -h.
的數值範圍為 [board_index] 此處為系統中所有已安裝之 CXP-12 介面卡的索引編號。若系統中僅有一張 CXP-12 介面卡,請設定 [board_index] 至 0.

-b [board_index] -g
顯示指定之 CXP-12 介面卡的當前 GPIO 銀行設定。

-b [board_index] -v
以詳盡輸出方式顯示當前的 GPIO 銀行設定。

-b [board_index] -s [bank]:[settings]
請設定指定之 CXP-12 介面卡上的 GPIO 銀行。
[bank] 指定 GPIO 銀行的索引號。在 CXP 介面卡 1C 上,僅提供一個 GPIO 銀行(前端 GPIO)。因此,請務必設定 [bank] 至 0.
[settings] 設定相關選項。請參閱 下方.

-h
顯示說明。

設定#

關於 [settings] 參與 -b [board_index] -s [bank]:[settings], 可使用以下設定:

場景設定 Value 結果
[signal] se 將輸入線配置為接收單端訊號。
[signal] ds 設定輸入線路以接收差分訊號。
[pull-up-down] pu 將輸入線配置為上拉模式運作。j
[pull-up-down] pd 將輸入線配置為下拉模式運作。k
[inversion] ni 停用輸出線的反轉功能。
[inversion] 位於 啟用輸出線的反相功能。

您必須以以下格式輸入設定: [signal],[pull-up-down],[inversion]. 範例: ds、pu、ni

此外,您也可以設定 [settings] 設為 default. 這 重設設定 某個 GPIO 銀行的。

範例#

gpioTool -b 0 -s 0:ds,pu,ni

此指令會將介面卡配置如下:

  • -b 0: 設定板卡 0 上的 GPIO。
  • -s: 開始進行實際的設定。
  • 0:: 設定 GPIO 銀行 0(前端 GPIO)。
  • ds,pu,ni: 將前端 GPIO 設定為接收差分訊號 (ds)、以上拉模式 (pu) 運作,並將輸出訊號以非反相形式 (ni) 傳送。

重設設定#

若要將開發板和 GPIO 銀行重設為預設設定,請啟動 gpioTool 與 [settings] 設定為 default:

gpioTool -b [board_index] -s [bank]:default

範例: gpioTool -b 0 -s 0:default

範例程式碼#

// Select the Acq_SingleCXP12Area applet
camera.GetTLParams().InterfaceApplet.SetValue(Acq_SingleCXP12Area);
// Configure the interface card for external triggering
camera.GetTLParams().AreaTriggerMode.SetValue(AreaTriggerMode_External);
camera.GetTLParams().TriggerInSource.SetValue(TriggerInSource_FrontGpiTriggerSource0);
camera.GetTLParams().TriggerCameraOutSelect.SetValue(TriggerCameraOutSelect_BypassFrontGpi0);
camera.GetTLParams().TriggerState.SetValue(TriggerState_Active);
// Configure the interface card for internal triggering
camera.GetTLParams().AreaTriggerMode.SetValue(AreaTriggerMode_Generator);
camera.GetTLParams().TriggerOutputFrequency.SetValue(8);
camera.GetTLParams().TriggerCameraOutSelect.SetValue(TriggerCameraOutSelect_PulseGenerator0);
camera.GetTLParams().TriggerState.SetValue(TriggerState_Active);
// Use the external or internal trigger signals for image acquisition
camera.TriggerSelector.SetValue(TriggerSelector_FrameStart);
camera.TriggerMode.SetValue(TriggerMode_On);
camera.ExposureMode.SetValue(ExposureMode_Timed);
camera.TriggerSource.SetValue(TriggerSource_CxpTrigger0);
// Perform debayering on the interface card (Bayer RG 12 --> RGB 36 bit)
camera.PixelFormat.SetValue(PixelFormat_BayerRG12);
camera.GetTLParams().AutomaticFormatControl.SetValue(false);
camera.GetTLParams().Format.SetValue(Format_Color36bit);
// Configure the interface card to output 16-bit mono image data based on
// 12-bit mono image data from the camera
camera.PixelFormat.SetValue(PixelFormat_Mono12);
camera.GetTLParams().AutomaticFormatControl.SetValue(false);
camera.GetTLParams().Format.SetValue(Format_Gray16bit);

此範例程式碼僅提供 C++ 版本。

您也可以 use the pylon Viewer 來輕鬆設定參數。


  1. 僅在您需要鏡像解析度超過 8K 像素的影像時才建議使用。否則,請使用 DualCXP12Area。

  2. 僅在您需要將解析度超過 21840 像素的影像進行鏡像處理時才建議使用。否則,請使用 DualCXP12Line。

  3. 僅在您需要鏡像解析度超過 8K 像素的影像時才建議使用。否則,請使用 QuadCXP12Area。

  4. 不建議使用,請改用 DualCXP12Area。

  5. 僅在您需要鏡像處理像素數超過 8K 的影像時才建議使用。否則,請使用 TripleCXP12Area(僅限單通道相機)。

  6. 僅在您需要鏡像寬度超過 21840 像素的影像時才建議使用。否則,請使用 DualCXP12Area。

  7. 僅在您需要鏡像解析度超過 8K 像素的圖像時才建議使用。否則,請使用 QuadCXP12Line。

  8. 不建議使用,請改用 DualCXP12Line。

  9. 僅在您需要鏡像處理超過 8K 像素的影像時才建議使用。否則,請使用 TripleCXP12Line(僅限單通道相機)。

  10. 在大多數應用中,您需要設定此模式。介面卡會啟用一個 10 kΩ 的上拉電阻,以接收來自 NPN 電晶體(開集極、開漏極)的訊號。

  11. 介面卡會啟用一個 10 kΩ 的下拉電阻,以接收來自 PNP 電晶體(開放式發射極、開放式源極)的訊號。