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

Array Creator vTool#

Array Creator vTool 會收集來自一個或多個來源的元素,並將其組合成獨立的輸出陣列。

Array Creator 透過 Element 輸入接腳接受不同類型的元素(例如影像或區域),並透過 Array 輸出接腳輸出組合後的元素。

請下載 pylon Software Suite 以使用 Array Creator vTool。

Array Creator vTool

運作原理#

Array Creator 旨在與 Array Element Iterator 搭配使用,以便在配方中進行靈活的陣列處理,但您也可以將其與其他 vTools 獨立使用。

在每次更新時(即資料到達 Element 輸入接腳時),Array Creator 會讀取索引,並將來自每個 Element 輸入接腳的值寫入該位置對應的輸出陣列中。如果在給定索引處多次寫入值,則最近收到的值會覆寫任何先前的值。您最多可以建立 100 個 Element 輸入接腳。系統將建立相同數量的大小 Array 輸出接腳。

Index 輸入接腳指定將每個新元素寫入對應輸出陣列的位置。LastIteration 輸入接腳表示序列的結束,此時會輸出收集到的陣列。

Array 輸出接腳的資料類型將與輸入在 Element 輸入接腳處的資料類型相同。

資訊

如果您使用 Array Element Iterator,則必須連接 LastIteration 和 Index 輸入接腳,才能讓 Array Creator 正常運作。如果沒有這些接腳,vTool 將無法決定寫入傳入元素的位置,或何時發出收集到的陣列。如果其中一個接腳保持未連接狀態,則每次更新都會在所有輸出接腳上產生帶有陣列層級錯誤的陣列,且不會收集任何資料。

如果在 LastIteration 輸入接腳上接收到 true,且在 Index 輸入接腳上接收到有效的輸入,則接收到的元素會像往常一樣儲存,然後輸出所有陣列。如果在 LastIteration 輸入接腳上接收到 true 但未接收到 Index 輸入,則來自 Element 輸入接腳的所有值都會被忽略,並且照原樣輸出包含迄今為止收集到的所有值的陣列。輸出後,所有內部陣列都會重設為空。

錯誤處理#

缺少必要的連接:如果 LastIteration 或 Index 輸入接腳未連接,則每次更新都會在所有輸出接腳上產生帶有陣列層級錯誤(LastIteration and Index input pins must both be connected.)的陣列,且不會收集任何資料。

LastIteration 發生錯誤:如果 LastIteration 輸入接腳接收到具有錯誤狀態的值,Array Creator 將會在所有輸出接腳上輸出帶有陣列層級錯誤(Element with errors received on LastIteration input)的陣列,並重設其內部狀態。

最後一次迭代時索引無效:如果在 LastIteration 接腳上接收到 true 且 Index 值無效(為負數、超過所設定的 Maximum Number Of Elements 限制,或具有錯誤狀態),則會在所有輸出接腳上輸出帶有陣列層級錯誤(Index out of range)的陣列。所有先前收集到的值都會被捨棄。

非最後一次迭代時索引無效:如果在 LastIteration 接腳上接收到 false(或未接收到值)且 Index 值無效(為負數、超過所設定的 Maximum Number Of Elements 限制,或具有錯誤狀態),Array Creator 會記錄錯誤並忽略該更新。先前收集到的值將會保留。

輸入接腳上的元素包含錯誤:具有錯誤狀態的傳入元素不會與有效值有不同的處理方式,而是會透明地轉發到輸出陣列中。

未初始化的位置:如果 Index 輸入導致輸出陣列中出現間隙(例如索引從 0 跳到 3),則中間的位置(例如 1、2)將會填入錯誤值(No element received at this position.)。

設定 vTool#

若要設定 Array Creator vTool,請在 Workbench 中按兩下它。隨即會開啟一個對話方塊,顯示所有可用的設定。或者,您也可以在 Features - All 窗格中找到相同的設定。

Inputs#

ElementN#

接受來自任何 vTool 的資料。接腳的資料類型會自動適應所提供的第一個輸入。支援所有簡單資料類型(例如 String、Float、Boolean、Integer、PointF2D 等),但不支援陣列類型。

  • 資料類型:Boolean、CircleF、EllipseF、Float、Image、Integer、LineF、PointF、RectangleF、Region、String、Transformation Data

LastIteration#

接受來自 Array Element Iterator 的 true 或 false,用以指示目前的元素是否為完成陣列的最後一個元素。若收到 true,Array Creator 會輸出收集到的陣列並重設其內部緩衝區,以準備好處理下一個序列。如果在更新期間此接腳未收到任何值,vTool 會假設為 false(不是最後一次迭代)。

  • Data type: Boolean

索引#

接受與在 ElementN 輸入接腳所接收之輸入相關的索引位置(整數)。接著,該元素會被寫入輸出陣列中的對應索引位置。若收到的索引超過陣列目前的大小,陣列將會相應調整大小。未使用的位置將會填入錯誤值。

  • Data type: Integer

Outputs#

ArrayN#

每個 Element 輸入接腳會傳回一個陣列。此陣列包含在整個迭代序列中從對應輸入接腳收集到的所有值。當在 LastIteration 輸入接腳收到 true 時,便會輸出這些陣列。未曾寫入資料之位置的元素將會填入錯誤值。

  • Data type: Array of the data type input via the corresponding Element pin