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