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