Operator CXPDualCamera

Operator Library: Hardware Platform

此運算子代表 CXP 雙通道相機與 VisualApplets 之間的影像資料介面。

適用於硬體平台
mE5 marathon VCX-QP
mE5 ironman VQ8-CXP6D
mE5 ironman VQ8-CXP6B

該運算子在其輸出 O 上提供影像資料。此輸出始終存在。

除了此標準輸出連接埠之外,如果您的設計需要,您還可以指定各種選配連接埠。

在運算子實例化期間會出現以下彈出對話方塊:

在此,您可以指定透過 CXP 電纜進行通用輸入和輸出的選配連接埠,以及往返相機的選配觸發連接埠。

您可以定義特定 GPI(通用輸入)、特定 GPO(通用輸出)、觸發輸入連接埠以及觸發輸出連接埠的可用性。

如果您將連接埠可用性設為「0」(預設值),則運算子中將不存在該連接埠。如果您將連接埠可用性設為 1,則該特定連接埠將在運算子介面中可用。

該運算子使用 2 個類型為 CameraPort 的資源。

[重要] 修改影像寬度與影像高度

您可以將寬度和高度修改為相機特定的設定。不過,運算子連接埠 O 上的最大影像寬度 必須可被 連接埠 O 的 Parallelism 整除。

確保最大影像寬度可被連接埠 O 的 Parallelism 整除!

[重要] Parallelism 的值

連接埠 O 上的 Parallelism 至少需要設定為最小值(在 MinimalParallelism 參數中規定)。不允許使用較小的 Parallelism 值。最小 Parallelism 是由 VisualApplets 根據您為該運算子其他參數定義的值計算得出的。這樣一來,始終可以接收傳入的資料。

[重要] 虛擬像素 (Dummy Pixels)

輸出資料可能包含虛擬像素 (dummy pixel)。發生這種情況是因為運算子可能會將 Parallelism 轉換兩次。首先,運算子在內部轉換為它計算出的最小 Parallelism,並作為參數 MinimalParallelism 中的唯讀值提供。這會導致內部影像寬度可被 MinimalParallelism 整除,且由於 Parallelism 轉換可能會新增虛擬值。其次,如果第一次 Parallelism 轉換產生的填充影像寬度不是 O.Parallelism 的倍數,運算子會將 Parallelism 轉換為 O.Parallelism,這可能會新增更多虛擬值。因此,輸出資料是否包含虛擬像素取決於 MinimalParallelism 參數、影像寬度和 O.Parallelism。每次 Parallelism 轉換都可能會新增虛擬像素。額外的虛擬像素包含未定義的資料值,並會導致影像寬度偏離實際影像寬度。

範例:如果 MinimalParallelism 為 12,O.Parallelism 為 32,且傳輸的影像寬度為 128 像素,則由於 MinimalParallelism 參數中定義的內部 Parallelism 為 12,運算子會在內部建立寬度為 132 的影像行。對於輸出,資料向量會轉換為 Parallelism 32(O.Parallelism),這會導致影像行寬度為 160 像素。

由於虛擬像素的存在,預期的輸出影像寬度為:

[重要] Bit Width and Format Type

連接埠 O(影像連接埠)上的 Bit Width 取決於選定的格式類型(參數 FormatType):

  • 如果 FormatType = Gray:Bit Width 可以是任何值(VAF_Gray 和 FL_NONE)。
  • 如果 FormatType = RGB:Bit Width 是 3 的倍數(VAF_Color 和 FL_RGB)
  • 如果 FormatType = RGBA:Bit Width 是 4 的倍數(VAF_Gray 和 FL_NONE)
  • 如果 FormatType = RAW:Bit Width 為 32(VAF_Gray 和 FL_NONE)

I/O Properties

Property Value
Operator Type M
輸入連結 - TriggerI (選填),由擷取卡透過 CXP 通道傳送至相機的觸發訊號。此連接埠通常用於觸發線形掃描相機。
- GPIx (選填),由擷取卡透過 CXP 通道傳送至相機的通用輸入 [x]。可用的選項有 GPI0、GPI1、GPI2、GPI3、GPI4、GPI5、GPI6 以及 GPI7。
輸出連結 - O,影像資料輸出
- TriggerO (選填),由相機透過 CXP 通道傳送至擷取卡的觸發訊號。
- GPOx (選填),由相機透過 CXP 通道傳送至擷取卡的通用輸出 [x]。可用的選項有 GPO0、GPO1、GPO2、GPO3、GPO4、GPO5、GPO6 以及 GPO7。

支援的 Link 格式

Link Parameter Output Link - O Input Link - TriggerI (選填) Output Link - TriggerO (選填) Input Link - GPIx (選填) Output Link - GPOx (選填)
Bit Width any 1 1 1 1
Arithmetic unsigned unsigned unsigned unsigned unsigned
Parallelism any1 1 1 1 1
Kernel Columns 1 1 1 1 1
Kernel Rows 1 1 1 1 1
Img Protocol {VALT_IMAGE2D, VALT_LINE1D} (default: VALT_IMAGE2D) VALT_SIGNAL VALT_SIGNAL VALT_SIGNAL VALT_SIGNAL
Color Format {VAF_GRAY, VAF_COLOR}

VAF_GRAY = FL_NONE

VAF_COLOR = FL_RGB

(如果 Color Format 為 VAF_GRAY,則 Color Flavor 為 FL_NONE;如果 Color Format 為 VAF_COLOR,則 Color Flavor 為 FL_RGB。)

VAF_GRAY VAF_GRAY VAF_GRAY VAF_GRAY
Color Flavor {FL_NONE, FL_RGB}

VAF_GRAY = FL_NONE

VAF_COLOR = FL_RGB

(如果 Color Format 為 VAF_GRAY,則 Color Flavor 為 FL_NONE;如果 Color Format 為 VAF_COLOR,則 Color Flavor 為 FL_RGB。)

FL_NONE FL_NONE FL_NONE FL_NONE
Max. Img Width 任意 (預設值:1024) 1 1 1 1
Max. Img Height 任意 (預設值:1024) 1 1 1 1

1

至少需要設定為參數 MinimalParallelism 中規定的最小值。

如果 MinimalParallelism 與 O.Paralleism 不同,則 Parallelism 會轉換兩次,並且每次都可能會新增虛擬值。由於這些虛擬像素,預期的輸出影像寬度為:

參數

CameraID
Type 靜態寫入參數
Default
Range {-1, 0, 1, 2, 3}

CameraID 參數定義了相機運算子韌體的 CXP 主連接埠 ID,以允許自動 CXP 拓撲發現(相機到 Applet 以及 Applet 到相機)。

透過使用此參數,您可以直接在這裡的運算子中指定 ID。不過,我們建議在 Resources 對話方塊中指定運算子的資源。(若要開啟 Resources 對話方塊,只需反白顯示相機運算子,然後從 Design 選單中選取 Resources 選單項目。)CameraID 參數將使用資源對話方塊參數自動更新為正確的主連接埠。以下範例使用單一相機和一個雙相機:

module3(單相機)的 CameraID(CXP 主連接埠 ID)為 2。module5(雙相機)的 CameraID(CXP 主連接埠 ID)為 1。

雙相機需要 2 個 CXP 相機連接埠。(四相機需要 4 個連接埠。)只有主連接埠會反映在運算子的 CameraID 參數中。

當您定義的 CameraPort 資源超出可能數量(最大值為 4)時,例如當您實例化 5 個「CXPSingleCamera」運算子時,最後請求 CameraPort 資源的相機運算子(此時所有四個可用資源已被佔滿)會將其 CameraID 設定為 -1。在這種情況下,設計規則檢查會回報錯誤。

CameraID 參數的範圍為 {-1,0,1,2,3}。

MinimalParallelism
Type 靜態讀取參數
Default 12
Range [1 : 512]

這是一個唯讀 Property,提供輸出鏈路 O 所需的最小 Parallelism,且在不遺失資料的情況下仍能傳輸相機的最大頻寬。最小 Parallelism 是自動計算的。

該數值取決於您在 FormatMode Property 中所選取的 Pixel Format。

如果您將參數 FormatMode 定義為動態參數(請參閱下方參數 FormatMode 的說明),則會計算可能發生的最小 Parallelism。

最小 Parallelism 可能會導致建立虛擬像素(dummy pixels),因為運算子可能會將 Parallelism 轉換兩次並在此過程中加入虛擬值。由於這些虛擬像素,預期的輸出影像寬度為:

Status
Type 動態讀取參數
Default
Range {0; 2^7-1}

Status 參數是一個執行階段的唯讀參數,用於反映相機運算子的目前狀態。Bit[0] 表示偵測到 CXP 資料流封包遺失。Bit[1] 表示 CXP 資料流封包中的單位元組錯誤修正。Bit[2] 表示偵測到 CXP 資料流封包中的多位元組錯誤。Bit[3..6] 為保留位元。此參數可能會在未來版本中變更。

FormatType
Type 靜態寫入 Property
Default GRAY
Range GRAY, RGB, RGBA, RAW

在此,您可以選擇要接收的 Pixel Format 類型(由 CXP 規格定義)。您在此處選擇的值決定了可以在參數 FormatMode 中選擇的 Pixel Format。因此,此參數的設定會直接影響參數 FormatMode。另請參閱下方參數 FormatMode 的說明。

FormatMode
Type 靜態或動態(使用者定義)寫入 Property
Default Mono8
Range {Mono8, Mono10, Mono12, Mono14, Mono16, BayerGR8, BayerGR10, BayerGR12, BayerGR14, BayerGR16, BayerRG8, BayerRG10, BayerRG12, BayerRG14, BayerRG16, BayerGB8, BayerGB10, BayerGB12, BayerGB14, BayerGB16, BayerBG8, BayerBG10, BayerBG12, BayerBG14, BayerBG16, RGB8, RGB10, RGB12, RGB14, RGB16, RGBA8, RGBA10, RGBA12, RGBA14, RGBA16, Raw}

該參數提供屬於您在參數 FormatType 中所選格式類型的所有 Pixel Format(由 CXP 規格定義)。

您在此處可選擇的 Pixel Format 取決於參數 FormatType 的設定。因此,您始終只能使用完整值範圍的預設子集。

若要取得另一組 Pixel Format,請變更參數 FormatType 的設定。另請參閱上方參數 FormatType 的說明。

詳細而言,參數 FormatType 的下列設定會在參數 FormatMode 中提供下列 Pixel Format:

FormatType == GRAY: {Mono8, Mono10, Mono12, Mono14, Mono16, BayerGR8, BayerGR10, BayerGR12, BayerGR14, BayerGR16, BayerRG8, BayerRG10, BayerRG12, BayerRG14, BayerRG16, BayerGB8, BayerGB10, BayerGB12, BayerGB14, BayerGB16, BayerBG8, BayerBG10, BayerBG12, BayerBG14, BayerBG16}

FormatType == RGB: {RGB8, RGB10, RGB12, RGB14, RGB16}

FormatType == RGBA: {RGBA8, RGBA10, RGBA12, RGBA14, RGBA16}

FormatType == RAW: {Raw} Pixel format Raw has a fix bit width of 32Bit. The data are interpreted as received.

您可以決定是要將此參數用作動態參數還是靜態參數。請在「Parameter Type」欄中進行選擇:

TxTriggerPacketMode
Type 動態寫入參數
Default CxpStandard
Range {CxpStandard, RisingEdgeOnly}

透過參數 TxTriggerPacketMode,您可以增加連接擷取卡與相機之 CXP 連接線的頻寬。頻寬的增加是透過稍微修改相機觸發訊號解讀方式来实现的。

請注意,此功能只能搭配支援此功能的特定相機使用。如需詳細資訊,請聯絡您的當地經銷商或 Basler 支援服務。

參數 TxTriggerPacketMode 允許兩個值(CxpStandard、RisingEdgeOnly):

  • CxpStandard:建議的設定為 CxpStandard 值。如果設定為 CxpStandard 值,相機觸發將根據 CXP 規格運作。(CXP 規格定義了擷取卡透過 CXP 連接線向相機發送兩個封包以觸發相機一次。)

  • RisingEdgeOnly:如果設定為 RisingEdgeOnly 值,擷取卡只會向相機發送一個封包以觸發相機一次。其結果是增加了頻寬並提高了行頻。

TxTriggerEventCount
Type 動態讀取參數
Default 0
Range {0;2^20-1}

TxTriggerEventCount 參數指示已向相機發送了多少觸發邊緣事件。

TxTriggerAcknowledgementCount
Type 動態讀取參數
Default 0
Range {0;2^20-1}

TxTriggerAcknowledgementCount 參數指示擷取卡已接收到多少由相機發送的觸發確認封包(作為先前發送的觸發邊緣封包的回應)。

TxTriggerWaveformViolation
Type 動態讀取參數
Default 0
Range {0,1}

如果相機運算子偵測到連接埠 TriggerI 上的兩個觸發邊緣之間的距離違反了最小邊緣頻率,則相機運算子會將此參數設定為 1。所有 microEnable 5 平台上的最小邊緣頻率均為 550 奈秒 (ns)。此參數會保留其值,直到被讀取為止。讀取後,該參數會更新其值。頻率控制持續運行,不受參數讀取狀態的影響。

使用範例

以下範例顯示了 CXPDualCamera 運算子的使用方式: