本教程介紹了數組和簇數據類型,以及創建和使用數組和簇的方法。
數組由元素和維度構成,可以是輸入控件或顯示控件,但不能同時包含輸入控件和顯示控件。 元素是數組中包含的數據或值。 維度是數組的長度、高度或深度。 數組適用于使用一組同類數據集或需要存儲重復計算歷史時。
數組中的元素是有序的, 數組中的每個元素都有一個對應的索引值,通過數組索引可訪問數組中的某個特定元素。 NI LabVIEW軟件中的數組索引從0開始。 也就是說,如果一維(1D)數組包含n個元素,那么索引范圍就是0~n – 1,其中索引0指向數組中的第一個元素,索引n – 1指向數組中的最后一個元素。
簇可以將混合類型的數據集合在一起。 LabVIEW錯誤簇就是一個常見的簇,它包含一個布爾值、一個數值以及一個字符串。 簇類似于文本編程語言中的記錄或者結構體。
與數組相似,簇也可以是輸入控件或顯示控件,但不能同時包含輸入控件和顯示控件。 簇和數組的不同之處在于特定簇的大小是固定的,而特定數組的大小可以變化。 同時,簇可以包含多種數據類型,但數組只能包含一種數據類型。
創建數組輸入控件和顯示控件
要在LabVIEW中創建數組,必須在前面板上放置一個數組,并在數組內放置一個元素(如數值、布爾或波形輸入控件或顯示控件)。
1. 新建一個VI。
2. 右鍵單擊前面板,顯示控件選板。
3. 在控件選板上,瀏覽新式?數組、矩陣與簇并將數組拖曳至前面板。
?
4. 在控件選板上,瀏覽新式?數值,拖曳并放置一個數值顯示控件至數組內。
?
5. 將鼠標懸浮于數組上方,拖曳數組右側可展開數組并顯示多個元素。
?
上述步驟介紹了創建一維數組的方法。 而二維數組則是以網格或矩陣的方式存儲元素。 二維數組中的每個元素都包含兩個對應的索引值:行索引和列索引。 與一維數組相同,二維數組的行索引和列索引也是從0開始的。
創建二維數組前,必須先創建一個一維數組,然后增加其維度。 現在返回到之前創建的一維數組。
1. 在前面板上右鍵單擊索引顯示并從快捷菜單中選擇添加維度。
?
2. 將鼠標懸浮于數組上方,拖曳數組的一個角可展開數組并顯示多行和多列。
?
至此,創建數組的數值元素均顯示為灰色的0。 灰色數組元素表示元素未被初始化。 單擊元素內部,將灰色0替換為需要的數字,可初始化元素。
?
元素可初始化為任何選擇的值。 元素值無需統一,如上圖所示。
創建數組常量
數組常量用于存儲常量數據或用于同另一個數組進行比較。
1. 右鍵單擊程序框圖,顯示函數選板。
2. 在函數選板上,瀏覽編程?數組并將數組常量拖曳至程序框圖。
?
3. 在函數選板上,瀏覽編程?數值并將數值常量拖曳至“數組常量”。
?
4. 重新調整數組常量大小并初始化一些元素。
?
數組輸入/輸出
如果將數組連線到For循環的輸入端,通過自動索引功能,LabVIEW可將For循環計數接線端自動設置為數組大小。 右鍵單擊連線至數組的循環隧道,選擇啟用索引(禁用索引)。
如啟用了自動索引,For循環的每次迭代傳遞數組中對應的元素。
連線值作為For循環的輸出時,啟用自動索引會輸出一個數組。 數組大小與For循環執行的迭代次數相同,數組包含For循環的輸出值。
1. 新建一個VI。 瀏覽文件?新建VI。
2. 在程序框圖上創建并初始化2個一維數組常量,每個數組常量包含6個數值元素,類似下圖所示的數組常量。
?
3. 在前面板上創建一個一維數值數組顯示控件。 將數值類型改為32位整型。 右鍵單擊數組并選擇表示法?I32。
?
4. 在程序框圖上創建一個For循環,并在其內部放置一個“加”函數。
5. 將一個數組常量連入For循環并將其連接至“加”函數的x接線端。
?
6. 將另一個數組常量連入For循環并將其連接至“加”函數的y接線端。
?
7. 將“加”函數的輸出接線端連出For循環,并將其連接至數值數組顯示控件的輸入接線端。
?
8. 最終程序框圖和前面板應與下圖相似。
?
程序框圖
?
?
前面板
9. 回到前面板并運行VI。 注意數值數組顯示控件中的每個元素被兩個數組常量中對應元素的和填充。
?
如果在多個循環隧道上啟用了自動索引并連線For循環計數接線端,則迭代次數等于較小的計數。 如下圖所示,For循環計數接線端設為運行15次,數組1包含10個元素,數組2包含20個元素。 如果運行下圖的VI,則For循環執行10次且數組結果包含10個元素。 請自行進行測試。
?
如下圖所示,可使用嵌套式For循環和自動索引創建二維數組。 外部的For循環創建了行元素,內部的For循環創建了列元素。
?
創建簇
1. 新建一個VI。
2. 右鍵單擊前面板,顯示控件選板。
3. 在控件選板上,瀏覽新式?數組、矩陣與簇并將簇拖曳至前面板。
?
4. 重新調整簇的大小,以便容納多個元素。
?
5. 在控件選板上,瀏覽新式?數值,拖曳并放置一個數值輸入控件至簇內。
?
6. 在控件選板上,瀏覽新式?字符串與路徑,拖曳并放置一個字符串輸入控件至簇內。
?
7. 在控件選板上,瀏覽新式?布爾,拖曳并放置一個垂直搖桿開關至簇內。
?
8. 您的簇應該與下圖類似。
?
這樣,通過一根連線就可以將數值、字符串和布爾控件在程序框圖中進行連線,而無需三根單獨的連線。
創建簇常量
與數組常量相似,簇常量可用于存儲常量數據或用作與別的簇進行比較的基礎。 創建簇常量的方式與前面所述創建數組常量的步驟相同。
?
如您已有簇輸入控件或顯示控件,需要創建包含同樣數據類型的簇常量,可首先復制程序框圖上的簇輸入控件或顯示控件,然后右鍵單擊副本并從快捷菜單中選擇轉換為常量。
?
簇函數
本教程介紹四種常用于簇的簇函數。 它們分別是捆綁、解除捆綁、按名稱捆綁以及按名稱解除捆綁函數。
?
捆綁函數可用于將單個元素組裝成簇。 要將元素連線至捆綁函數,可使用鼠標重新調整函數大小,或右鍵單擊函數并從快捷菜單中選擇添加輸入。
?
按名稱捆綁或捆綁函數可用于修改現有的簇。 可按照捆綁函數相同的方式重新調整按名稱捆綁函數的大小。
?
按名稱捆綁函數在修改現有簇時十分有用,因為通過該函數可知道具體修改的簇元素。 例如,假設一個簇包含兩個標簽為“字符串1”和“字符串2”的字符串元素。 如使用捆綁函數修改簇,函數接線端以粉色abc的形式出現。因此,無法獲知哪個接線端修改“字符串1”,哪個接線端修改“字符串2”。
?
但如果使用按名稱捆綁函數修改簇,函數接線端會顯示元素標簽,因此哪個接線端修改哪個標簽十分清楚。
?
解除捆綁函數可用于將簇分解成單個元素。 按名稱解除捆綁函數可用于返回根據名稱指定的特定簇元素。 可通過捆綁和按名稱捆綁函數相同的方式重新調整這些函數的大小,以容納多個元素。
?
簇順序
簇元素包含一個與其在簇中位置無關的邏輯順序。 簇中放置的第一個對象是元素0,第二個對象是元素1,依此類推。 刪除元素時順序會自動調整。 簇順序決定了元素出現在程序框圖上捆綁和解除捆綁函數接線端的順序。 右鍵單擊簇邊界并從快捷菜單中選擇重新排序簇中控件,可查看和修改簇順序。
?
每個元素上的白色小框顯示了該元素當前在簇中的順序。 黑色小框表示元素新的順序。 要設置簇元素的順序,可在單擊設置文本框中新的順序編號并單擊元素。 元素簇順序發生改變后,其他元素的簇順序會自動調整。 單擊工具欄上的確認按鈕可保存修改。 單擊取消按鈕可回到原始順序。
評論
查看更多