Labview簇
簇是一種類(lèi)似數組的數據結構,用于分組數據。簇和數組有著(zhù)重要的差別,其中一個(gè)重要差別是,簇可以包含不同的數據類(lèi)型,而數組僅可以包含相同的數據類(lèi)型。例如,一個(gè)數組可以包含10個(gè)數字指示器,一個(gè)簇卻可以包含一個(gè)數字控件,一個(gè)開(kāi)關(guān)和一個(gè)字符串控件。
本文引用地址:http://dyxdggzs.com/article/201701/337003.htm盡管簇和數組的元素都是有序存放的,但訪(fǎng)問(wèn)簇的元素最好是通過(guò)釋放的方法同時(shí)訪(fǎng)問(wèn)其中部分或全部元素,而不是通過(guò)索引一次訪(fǎng)問(wèn)一個(gè)元素。簇和數組的另一個(gè)差別是簇具有固定的大小。
簇通常用于將出現在框圖上的有關(guān)數據元素分組管理。因為簇在框圖中僅用唯一的連線(xiàn)表示,所以對于減少連線(xiàn)混亂和子VI需要的連接器端子個(gè)數,使用簇有著(zhù)積極的效果??梢詫⒋乜醋鍪且焕B線(xiàn),線(xiàn)纜中每一個(gè)連線(xiàn)表示簇的不同元素。在框圖上,只有當簇具有相同類(lèi)型,相同元素數量和相同元素順序時(shí),才可以將簇的子端連接。多態(tài)性應用于簇時(shí),只需要簇具有同樣順序,同樣數量的元素。
下面來(lái)向大家介紹簇的創(chuàng )建簇的創(chuàng )建框位于前面板中的控件→新式→數組,矩陣和簇→簇,如圖:
然后就可以往簇的框中添加各種類(lèi)型的控件了,例如現在要建立一個(gè)學(xué)生的記錄信息,包括學(xué)生的姓名,學(xué)號,性別和年齡.這就需要在簇外殼里依次放入兩個(gè)字符串輸入控件,一個(gè)數字控件和一個(gè)布爾控件.如圖:
與數組的創(chuàng )建類(lèi)似,簇也可以從程序框圖中創(chuàng )建,先在程序框圖上放置一個(gè)簇外殼,然后就可以在簇外殼里放置各種數據類(lèi)型常數。如圖:
簇內對象的大小是可以調整的,右擊簇邊界,在彈出的快捷菜單中可以選擇各種調節操作,如圖:
選擇調整為匹配大小,即可縮小簇的邊框,如圖為調整后的結果:
簇結構中的元素排列是按照它們放置的先后來(lái)排序的,它與簇內元素的位置無(wú)關(guān)。放入簇內的第一個(gè)元素序號為0,第二個(gè)元素序號是1,依次向下排列。如果刪除了一個(gè)元素,序號將重新自動(dòng)調整。簇的排序很重要,它直接影響著(zhù)后面將要介紹的“捆綁”以及“接觸捆綁”函數的端口順序,如果你想將一個(gè)簇與另一個(gè)簇連接,這兩個(gè)簇的序和類(lèi)型必須相同。
如果想要改變簇內元素的排列順序,可以右擊簇結構的邊框,在彈出的快捷菜單中執行“重新排序簇中控件”,如圖:
這時(shí)鼠標會(huì )變成一個(gè)帶“#”號的手柄箭頭,黑框指出新設置的排列序號,白框表示原先的排列序號,可以改變標題欄上的“單擊設置”內容,然后單擊簇元素即可設置新的序號。設置完畢后單擊工具欄上的“”按鈕確定更改,如果想恢復原先設定值,單擊“
”取消設置。
b) 簇函數
簇函數的模版如圖:
簇函數中最主要的就是構造打包生成簇的“捆綁”函數,還有從簇中解包提取簇中元素的“解除捆綁”函數。它們是根據簇成員的順序來(lái)進(jìn)行操作的,這也說(shuō)明了簇內成員順序排列的重要性。
簇函數舉例:
- 創(chuàng )建簇,解包簇,再打包簇
該例的目的是學(xué)習使用簇的兩個(gè)基本函數,如圖:首先放置一個(gè)簇外殼到前面板上,將標簽內容改為“輸入簇”
在簇外殼中依次放入字符串控件“Name”,布爾控件“Sex”,數字輸入控件“Pay”以及字符串控件“Address”,通過(guò)這些簇元素來(lái)組成某一公司內一名員工的工資記錄。如圖:
切換到程序框圖,放置一個(gè)“解除捆綁”解包簇函數,函數剛放入時(shí),它的右側只有2個(gè)輸出端口,當輸入端口與“輸入簇”端子相連后,右側端口會(huì )自動(dòng)增加為簇元素的數目,端口從上向下排列的順序與簇內元素的放置順序相對應,并且數據類(lèi)型也是與簇元素數據類(lèi)型相對應。如圖:
同樣放置一個(gè)“捆綁”打包簇函數,用定位工具將輸入端口的數目增加到4個(gè),依次將它們與解包出來(lái)的4個(gè)簇元素相連,表示又把它們進(jìn)行打包生成一個(gè)新的簇。在輸出端口創(chuàng )建一個(gè)簇顯示器,把標簽改為“輸出簇”,如圖:
- 替換簇成員
該例的目的是學(xué)習使用“按名稱(chēng)捆綁”
函數來(lái)替換簇內的某些元素。
- 新建一個(gè)VI,在前面板上創(chuàng )建一個(gè)簇外殼,依次向簇內添加一個(gè)數字輸入控件,一個(gè)布爾控件,一個(gè)字符串輸入控件,如圖:
- 打開(kāi)程序框圖,選擇“按名稱(chēng)捆綁”函數,它的功能是按照名稱(chēng)來(lái)替換簇成員的值。在函數剛放入時(shí),它的左側只有一個(gè)輸入端口,將函數的“輸入簇”端口與創(chuàng )建的簇端子相連之后,左側端口會(huì )顯示簇內第一個(gè)元素的名稱(chēng)數值,用操作工具單擊它可以選擇其他的簇成員。如圖:
- 在前面板上創(chuàng )建一個(gè)輸入控件,將標簽改為“輸入數字”,在程序框圖將它與“數值”端口相連,表示將用它來(lái)替換簇元素。如圖:
- 在“按名稱(chēng)捆綁”函數后面創(chuàng )建輸出簇,完成后即可運行程序,如圖:
- 新建一個(gè)VI,在前面板上創(chuàng )建一個(gè)簇外殼,依次向簇內添加一個(gè)數字輸入控件,一個(gè)布爾控件,一個(gè)字符串輸入控件,如圖:
- 插接生成簇數組
該例的目的是學(xué)習使用“索引與捆綁簇數組”
函數插接簇數組函數來(lái)生成一個(gè)簇數組。
- 新建一個(gè)VI,打開(kāi)程序框圖,放置一個(gè)該函數,剛放入時(shí)它只有一個(gè)輸入的端口,用定位工具拖拉它為3個(gè)輸入端口。
- 在程序框圖上放置三個(gè)數組外殼,然后分別添加字符串常量,數值常量和布爾常量,建立三個(gè)數組,如圖:
然后給他們賦如圖所示的值,如圖:
然后連線(xiàn),并創(chuàng )建顯示控件,如圖:
運行,結果如圖:
說(shuō)明:該函數從輸入的3個(gè)數組中依次取值,相同索引值的數據被攢程一個(gè)簇,所有的簇構成一個(gè)一維數組。插接成的數組的長(cháng)度與所有輸入數組中長(cháng)度最短的一個(gè)相等,多余的數據被丟棄。
- 建立“數組的數組”
該例看起來(lái)好像是不可以實(shí)現的,因為在數組的學(xué)習中,已經(jīng)知道數組的成員不可以是數組。這里將學(xué)習把一維數組當成一個(gè)簇,然后通過(guò)建立簇的數組,因為簇數組的每一個(gè)成員都是一個(gè)簇(即一維數組),從而實(shí)現建立“數組的數組”的目的。
- 先新建一個(gè)VI,打開(kāi)程序框圖,放置一個(gè)“創(chuàng )建簇數組”
函數,該函數的功能是建立簇的數組,簇數組的每個(gè)成員都是一個(gè)簇。剛放入程序框圖時(shí),函數只有一個(gè)輸入端口,用定位工具拖動(dòng)它的邊框,使它具有3個(gè)輸入端口。
- 在程序框圖上創(chuàng )建3個(gè)數值型數組,分別對它們進(jìn)行賦值,第一個(gè)和第三個(gè)數組長(cháng)度設定為5,第二個(gè)數組的長(cháng)度設定為4。在“創(chuàng )建簇數組”函數的輸出端口創(chuàng )建一個(gè)簇顯示器,將簇顯示器的標簽內容改為“數組的數組”,如圖:
- 運行程序,即可在前面板上看到結果,如圖:
- 先新建一個(gè)VI,打開(kāi)程序框圖,放置一個(gè)“創(chuàng )建簇數組”
Error簇
Error簇是一類(lèi)很重要的簇,許多的控件里都有“錯誤輸入”和“錯誤輸出”這兩個(gè)簇的端口,通常來(lái)講,當一個(gè)VI中間出現錯誤而導致不能運行時(shí),可以在出錯的控件的“錯誤輸出”端子創(chuàng )建一個(gè)顯示控件,則可以讓程序繼續運行,如圖所示,即為Error簇:
而Error簇更重要的應用在于,它可以控制控件執行的先后順序,也可以通過(guò)Error簇來(lái)控制循環(huán)的終止。如圖:
當信號的發(fā)生出現錯誤的時(shí)候,就可以把循環(huán)停止。
評論