在LabVIEW中可以使用索引的方式來處理叢集嗎?



主要軟體:
主要軟體版本: 7.1
主要軟體修正版本:
次要軟體: N/A

問題: 我想要使用如同處理陣列的方式來對叢集執行索引的功能,如此一來,就可以利用for迴圈來個別處理叢集的每ㄧ個元件。要如何來完成上述的動作呢?

解答:

並沒有直接的方法可以對叢集執行索引的動作。不過透過屬性節點的使用,可以獲得關於叢集內容的陣列資料。使用下面的步驟在for迴圈中以索引的方式來處理叢集的個別元件。

1. 從叢集創造一個屬性節點。滑鼠右鍵點選叢集控制元或指示元然後選取 Create >> Property Node。

2. 替叢集的屬性節點選擇Controls[]這一個屬性。Controls[]這個屬性的輸出是一個陣列資料,其內容為叢集個別元件的參考,且其排列順序依照叢集的排序。透過這個陣列資料的處理,就可以對叢集個別元件執行索引的功能。

3. 將叢集屬性Controls[]節點連結至For loop。因為Controls[]屬性是一個陣列資料,所以可以使用For迴圈的自動索引功能來個別處理叢集的每一個元件,同時會在For迴圈的邊界上製造迴圈通道。

4. 替Control[] 陣列創造一個屬性節點。在程式區點選滑鼠右鍵來顯現函數面板,接著至application control sub-palette,然後選取Property Node VI。將選取的Property Node VI放在for迴圈內,並連結Controlsp[]陣列所創造的迴圈通道至reference輸入端。

5. 展開Control[]陣列的屬性節點以便使用二個屬性。改變第一項屬性為ClassName。ClassName這個屬性是叢集某個元件的資料型態(數值,布林,字串等)。接著改變第二項屬性為Value, Value屬性代表的是叢集某個特定元件的資料值(LabVIEW variant)。如果元件是屬於布林資料型態,且其機械動作被設定成拴鎖的動作,那麼這個屬性就會回傳錯誤值。

6. 連結ClassName屬性至Case結構的Case Selector,然後根據資料型態對叢集個別元件作相對應的處理。

7. 依次使用Variant to Data VI來轉換特定叢集元件的資料屬性至合適的資料類別。

附件範例程式教導如何使用索引的方法來處理叢集的個別元件。



相關連結: KnowledgeBase 26IANGQC: Accessing Controls in a Cluster Using a Property Node

附加檔案:


cluster_indexing.vi - cluster_indexing.vi


報告日期: 11/12/2004
最後更新: 09/29/2007
文件偏號: 3FBFHU0K