變量是一種可變的特殊數(shù)據(jù)類型,包括全局變量和局部變量。
(1)全局變量。
全局變量時,LabVIEW將自動創(chuàng)建一個有前面板但無程序框圖的特殊全局VI。向該全局VI的前面板添加輸入控件和顯示控件可定義其中所含全局變量的數(shù)據(jù)類型。該前面板實際便成為一個可供多個VI進行數(shù)據(jù)訪問的容器。
在程序框圖函數(shù)選板中選擇“數(shù)據(jù)通信→全局變量”,將其放置在程序框圖中,如圖1所示。
圖1 全局變量
雙擊該全局變量節(jié)點可顯示全局Ⅵ的前面板。該前面板與標(biāo)準(zhǔn)前面板一樣,可放置輸入控件和顯示控件??蓜?chuàng)建多個僅含有一個前面板對象的全局VI,也可創(chuàng)建一個含有多個前面板對象的全局Ⅵ從而將相似的變量歸為一組。
所有對象在全局VI前面板上放置完畢后,保存該全局VI并返回到原始VI的程序框圖。然后必須選擇全局VI中想要訪問的對象,單擊該全局變量節(jié)點并從彈出的列表中選中一個前面板對象,該列表列出了全局VI中所有帶自有標(biāo)簽的前面板對象;也可右鍵單擊該全局變量節(jié)點并從快捷菜單“選擇項”中選擇一個前面板對象。
(2)局部變量。
局部變量可從一個VI的不同位置訪問前面板對象,并將無法用連線連接的數(shù)據(jù)在程序框圖上的節(jié)點之間傳遞。局部變量可對前面板上的輸入控件或顯示控件進行數(shù)據(jù)讀寫,寫入一個局部變量相當(dāng)于將數(shù)據(jù)傳遞給其他接線端;局部變量還可向輸入控件寫入數(shù)據(jù)和從顯示控件讀取數(shù)據(jù)。事實上,通過局部變量,前面板對象既可作為輸入訪問也可作為輸出訪問。
在程序框圖函數(shù)選板中選擇“數(shù)據(jù)通信→局部變量”,并將其放置在程序框圖中,如圖2所示。
圖2局部變量
右鍵單擊一個前面板對象或程序框圖接線端并從彈出的快捷菜單中選擇“創(chuàng)建→局部變量”,也可創(chuàng)建一個局部變量。該對象的局部變量的圖標(biāo)將出現(xiàn)在程序框圖上。如需使局部變量與某個輸入控件或顯示控件相關(guān)聯(lián),可右鍵單擊該局部變量節(jié)點,從彈出的快捷菜單中選擇“選擇項”,展開的快捷菜單將列出所有帶有自帶標(biāo)簽的前面板對象。
創(chuàng)建了一個局部或全局變量后,就可以從變量讀寫數(shù)據(jù)了。默認(rèn)狀態(tài)下,新變量將接收數(shù)據(jù)。變量就像一個顯示控件,同時又是一個寫入局部變量或?qū)懭肴肿兞俊?/FONT>
將新數(shù)據(jù)寫入該局部或全局變量時,與之相關(guān)聯(lián)的前面板輸入控件或顯示控件將由于新數(shù)據(jù)而被更新。變量可配置為數(shù)據(jù)源、讀取局部變量或讀取全局變量。右鍵單擊變量,從彈出的快捷菜單中選擇“轉(zhuǎn)換為讀取”,便可以將該變量配置為一個輸入控件。節(jié)點執(zhí)行時,VI將讀取相關(guān)前面板輸入控件或顯示控件中的數(shù)據(jù)。如果需使變量從程序框圖接收數(shù)據(jù)而不是提供數(shù)據(jù),可以右鍵單擊該變量并從快捷菜單中選擇“轉(zhuǎn)換為寫入”。
在程序框圖上,讀取局部或全局變量與寫入局部或全局變量間的區(qū)別相當(dāng)于輸入控件和顯示控件間的區(qū)別。類似于輸入控件,讀取局部變量或讀取全局變量的邊框較粗;而寫入局部變量或?qū)懭肴肿兞康倪吙騽t較細,類似于顯示控件。
在使用全局變量和局部變量時應(yīng)注意,局部和全局變量是高級的LabVIEW概念,它們不是LabVIEW數(shù)據(jù)流執(zhí)行模型中固有的部分。使用局部變量和全局變量時,程序框圖可能會變得難以閱讀,因此需謹(jǐn)慎使用。錯誤地使用局部變量和全局變量,如將其取代連線板或用其訪問順序結(jié)構(gòu)中每一幀中的數(shù)值,可能在Ⅵ中導(dǎo)致不可預(yù)期的行為。濫用局部變量和全局變量,如用來避免程序框圖間的過長連線或取代數(shù)據(jù)流,將會降低執(zhí)行速度。
來源:ks992次