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