Labview結(jié)構(gòu)的使用
x1=t^3-10*t+1
x2=a*t+b
其中:t共取10個點,范圍是從0~9
- 新建一個VI,在前面板上放置一個波形圖,用于同時顯示輸出的兩個波形。同時放置兩個數(shù)值輸入控件,它們分別表示x2函數(shù)的斜率和截距。
- 在程序框圖上放置一個For循環(huán),計數(shù)端子設(shè)為10,計算自變量t分別等于0到9。
- 在For循環(huán)中添加一個公式節(jié)點,為它添加三個輸入端口,分別與重復(fù)端口i,斜率a和截距b相連,并添加兩個輸入端口,分別表示輸出x1和x2。再用文本標(biāo)簽工具再公式節(jié)點里添加代碼。
- 在數(shù)組函數(shù)子模板中選取“創(chuàng)建數(shù)組“函數(shù)將x1和x2合并為一個二維數(shù)組,并在波形圖中同時顯示。
- 完成連線,如圖:
運(yùn)行結(jié)果如圖:
全局變量和局部變量
全局變量和局部變量是LabVIEW用來傳遞數(shù)據(jù)的工具。LabVIEW編程是一種數(shù)據(jù)流編程,它是通過連線來傳遞數(shù)據(jù)的。但是如果一個程序太復(fù)雜的話,有時連線會很困難甚至無法連接,這時就需要用到局部變量,就如同Protel軟件畫電路原理圖一樣,給相同的連線添加網(wǎng)絡(luò)標(biāo)號,標(biāo)識它們是相通的。另外用戶也許會經(jīng)常碰到這樣一種情況,既能夠?qū)Τ绦蛑幸粋€控件對象寫入數(shù)據(jù),又要能夠讀出它的數(shù)據(jù),這在數(shù)據(jù)流編程中是無法實現(xiàn)的,這也需要用到局部變量或者全局變量,全局變量主要是針對不同VI程序之間的通信。
局部變量:
談到局部變量,其實早在介紹順序結(jié)構(gòu)時就已經(jīng)接觸過了,當(dāng)時是添加順序局部變量來傳遞程序初始時間,以便計算程序所執(zhí)行的時間。目的是在不同選擇分支中都能夠?qū)χ甘酒鬟M(jìn)行賦值。
建立局部變量:建立局部變量的方法有兩種:一種是在程序框圖中直接添加,如圖:
另一種方法是右擊控件對象,在彈出的快捷菜單中執(zhí)行“創(chuàng)建/局部變量”如圖:
局部變量的應(yīng)用
該例的目的在于使用局部變量向它聯(lián)系的前面板上的電流控件寫數(shù)據(jù),也可以從電流控件讀取數(shù)據(jù)。程序框圖如圖所示:
程序的目的是檢驗電流量,如果電流大于5A時,則限定電流量為上限5A,這時電流局部變量時寫入狀態(tài),可以向它寫入數(shù)據(jù)5A,盡管電流控件是控制器;如果電流小于5A時,則將電流通過一個“電流顯示器”來顯示,這時就需要將電流局部變量改變?yōu)樽x取狀態(tài),方法是在快捷菜單上執(zhí)行“轉(zhuǎn)化為讀取”命令。
全局變量:
全局變量與局部變量不同,它是在不同的程序之間進(jìn)行通信。LabVIEW的全局變量是一個獨立的VI,它是一種特殊的程序,沒有程序框圖只有前面板,功能是保存一個或多個全局變量,所以也把全局變量程序稱為“容器”。
建立全局變量:它的建立和局部變量類似,將全局變量拖拽到程序框圖中,在它的快捷菜單中執(zhí)行“打開前面板”,或雙擊全局變量圖標(biāo),打開全局變量程序前面板,然后在前面板中添加所需要的全局變量控件,如圖,添加了3個全局變量,并保存VI。
建立了全局變量以后就可以在其他程序里面調(diào)用它,方法是在程序框圖上選中“選擇VI...”,如圖:
在打開的對話框窗體中為程序選擇想要放置的全局變量。如果最先放置的不是想要的全局變量,可以像對局部變量那樣操作,在快捷菜單上選取“選擇項”子選項,在列出的所有變量對象中進(jìn)行選擇,或者用操作工具來選擇。
使用全局變量時必須特別小心,因為它對所有的LabVIEW程序都是通用的,稍有不慎就可能互相干擾,用戶必須清楚的知道全局變量的讀寫位置。用戶編輯時既可以向全局變量輸入數(shù)據(jù),也可以從它讀取數(shù)據(jù),這一點與局部變量是完全相同的。
全局變量的應(yīng)用較少,這里就不再舉例
使用全局變量和局部變量的注意事項:
LabVIEW語言編程是一種數(shù)據(jù)流,全局變量和局部變量提供了一種違反嚴(yán)格數(shù)據(jù)流的程序設(shè)計方式。大家有必要了解競態(tài)條件的缺陷,當(dāng)兩個或兩個以上的事件可以按任何順序發(fā)生時就產(chǎn)生了競態(tài)條件。用戶要想知道再多個并行的程序中一個全局變量什么時候被訪問是比較困難的。特別是再多線程編程中,對這種共享數(shù)據(jù)變量的競態(tài)條件問題要求更加苛刻,使用全局變量會帶來意想不到的錯誤。
如果用戶的應(yīng)用程序中有全局變量,那么就存在大量的數(shù)據(jù)復(fù)制的危險,因為用戶要想在不同的地方對數(shù)據(jù)進(jìn)行處理,最終就有許多的數(shù)據(jù)備份,造成內(nèi)存的巨大開銷和系統(tǒng)資源的浪費(fèi),所以建議初學(xué)者盡量不要使用全局變量。
如果程序中使用了全局變量或者是局部變量,那么在程序運(yùn)行之前,必須首先要確定它的初始值是否滿足執(zhí)行要求,如果不滿足的話,就要對它們進(jìn)行初始化。
評論