Operator CXPSingleCamera

運算子庫:硬體平台

此 operator 代表 CXP 單通道相機與 VisualApplets 之間的影像資料介面。

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

此運算子在其輸出 O 上提供影像資料。此輸出隨時存在。

除了此標準輸出連接埠之外,您還可以指定一組選用的輸入和輸出。

在執行運算子執行個體化期間會顯示以下彈出對話方塊:

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

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

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

此 operator 使用 1 個型別為 CameraPort 的資源。

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

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

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

[重要] Parallelism 的值

連接埠 O 上的 Parallelism 必須至少設定為最小值(在參數 MinimalParallelism 中說明)。 不允許使用較小的 Parallelism 值。 最小平行度是 VisualApplets 根據您為 此運算子的其他參數所定義的值來計算的。 透過這種方式,始終可以接收傳入的資料。

[重要] Dummy Pixels

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

範例:如果 MinimalParallelism 為 8、O.Parallelism 為 32,且傳輸的影像寬度為 140 像素,則 operator 內部會建立寬度為 144 像素的影像行,這是因為 MinimalParallelism 參數中定義了 8 的內部 Parallelism。對於輸出,資料向量會轉換為 Parallelism 32 (O.Parallelism),從而產生 160 像素的影像行寬度。

由於 dummy pixels,預期的輸出 image width 為:

[重要] Bit Width 與格式類型

連接埠 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
Input Links - 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。

Supported Link Format

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 無號數 無號數 無號數 無號數 無號數
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 彼此不同,則會 轉換平行度兩次,且每次都可能新增虛擬值。 由於這些虛擬像素,預期的輸出影像寬度為:

Parameters

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

CameraID 參數定義了至相機運算子韌體的 CXP 主連接埠 ID, 以允許自動 CXP 拓撲探索(相機到小程式以及小程式到相機)。

透過使用此參數,您可以在此處直接於運算子中指定 ID。 不過,我們建議在「資源 (Recources)」對話方塊中指定運算子的資源。 (若要開啟「資源」對話方塊,只需反白顯示相機運算子,然後從「設計 (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 8
Range [1 : 512]

這是一個唯讀參數,提供輸出連結 O 的最小平行處理 (Parallelism),同時仍允許傳輸相機的最大頻寬而不遺失資料。最小平行處理是自動計算的。

此數值取決於您在參數 FormatMode 中選取的 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 靜態寫入參數
Default GRAY
Range GRAY、RGB、RGBA、RAW

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

FormatMode
Type 靜態或動態(使用者定義)寫入參數
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 dynamic write parameter
Default CxpStandard
Range {CxpStandard, RisingEdgeOnly}

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

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

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

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

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

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(奈秒)。 該參數會保留其值,直到被讀取為止。 讀取後,參數會更新其值。 頻率控制會持續運行,且不受參數的讀取狀態影響。

Examples of Use

以下範例顯示了 CXPSingleCamera operator 的使用方式: