- LabVIEW虛擬儀器技術及應用
- 李江全編著
- 2188字
- 2022-02-24 17:51:48
2.3 LabVIEW編程的基本概念
LabVIEW是一個功能完整的程序設計語言,具有區別于其他程序設計語言的一些獨特結構和語法規則。
應用LabVIEW編程的關鍵是掌握LabVIEW的基本概念和圖形化編程的基本思想。
2.3.1 VI與子VI
用LabVIEW開發的應用程序稱為VI(Virtual Instrument的英文縮寫,即虛擬儀器)。
一個最基本的VI是由節點、端口以及連線組成的應用程序。
VI運行采用數據流驅動,具有順序、循環、條件等多種程序結構控制。
在LabVIEW中的子程序被稱為子VI(SubVI)。在程序中使用子VI有以下優點:
1)將一些代碼封裝成為一個子VI(即一個圖標或節點),可以使程序的結構變得更加清晰、明了。
2)將整個程序劃分為若干模塊,每個模塊用一個或者幾個子VI實現,易于程序的編寫和維護。
3)將一些常用的功能編制成為一個子VI,在需要的時候可以直接調用,不用重新編寫這部分程序,因而子VI有利于代碼復用。
正因為子VI的使用對編寫LabVIEW程序有很多益處,所以在使用LabVIEW編寫程序的時候經常會使用子VI。
子VI由3部分組成,除前面板對象、程序框圖外,還有圖標的連接端口。連接端口的功能是與調用它的V1交換數據。
基于LabVIEW圖形化編程語言的特點,在LabVIEW環境中,子VI也是以圖標(節點)的形式出現的,在使用子VI時,需要定義其數據輸入和輸出的端口,然后就可以將其當作一個普通的VI來使用。
因此在使用LabVIEW編程時,應與其他編程語言一樣,盡量采用模塊化編程的思想,有效地利用SubVI,簡化VI程序框圖的結構,使其更加簡潔,易于理解,以提高VI的運行效率。
2.3.2 前面板
前面板就是圖形化用戶界面,用于設置輸入數值和觀察輸出量,是人機交互的窗口。由于VI前面板是模擬真實儀器的前面板,所以輸入量稱為控制,輸出量稱為指示。
在前面板中,用戶可以使用各種圖標,如儀表、按鈕、開關、波形圖、實時趨勢圖等,這可使前面板的界面像真實的儀器面板一樣。
圖2-11所示是一個調壓器程序的前面板。
前面板對象按照功能可以分為控制、指示和修飾三種。控制是用戶設置和修改VI程序中輸入量的接口,如旋鈕;指示則用于顯示VI程序產生或輸出的數據,如儀表。
如果將一個VI程序比作一臺儀器的話,那么控制就是儀器的數據輸入端口和控制開關,而指示則是儀器的顯示窗口,用于顯示測量結果。
圖2-11 調壓器程序的前面板
在本書中,為方便起見,將前面板中的控制和指示統稱為前面板對象或控件,控制即輸入控件,指示即顯示控件。
修飾的作用僅是將前面板點綴得更加美觀,修飾并不能作為VI的輸入或輸出來使用。在控制選板中專門有一個修飾子選板。
2.3.3 程序框圖
每一個前面板都有一個程序框圖與之對應。上述調壓器的程序框圖如圖2-12所示。程序的功能是通過調壓旋鈕產生數值,送到電壓表顯示,當數值大于等于8時,上限燈改變顏色。
圖2-12 調壓器的程序框圖
程序框圖用圖形化編程語言編寫,可以把它理解成傳統編程語言程序中的源代碼。用圖形來進行編程,而不是用傳統的代碼來進行編程,這是LabVIEW最大的特色。
程序框圖由節點、端口和連線組成。
1.節點
節點是VI程序中的執行元素,類似于文本編程語言程序中的語句、函數或者子程序。上述調壓器的程序框圖中數值常量、比較函數就是節點。
LabVIEW共有4種類型的節點,見表2-6。
表2-6 LabVIEW節點類型
2.端口
節點之間、節點與前面板對象之間通過數據端口和數據連線來傳遞數據。
端口是數據在程序框圖部分和前面板對象之間傳輸的通道接口以及數據在程序框圖的節點之間傳輸的接口。端口類似于文本程序中的參數和常數。
端口有兩種類型:輸入/輸出端口和節點端口(即函數圖標的連線端口)。輸入或輸出端口用于前面板,當程序運行時,從輸入控件輸入的數據就通過輸出端口傳送到程序框圖。而當VI程序運行結束后,輸出數據就通過輸入端口從程序框圖送回到前面板的顯示控件。
當在前面板創建或刪除輸入控件或顯示控件時,可以自動創建或刪除相應的輸出/輸入端口。
一般情況下,LabVIEW中的每個節點至少有一個端口,用于向其他圖標傳遞數據。
3.連線
節點之間由數據連線按照一定的邏輯關系相互連接,以定義程序框圖內的數據流動方向。
連線是端口間的數據通道,類似于文本程序中的賦值語句。數據是單向流動的,從源端口向一個或多個目的端口流動。
不同的線型代表不同的數據類型,每種數據類型還以不同的顏色予以強調或區分。
連線點是連線的線頭部分。接線頭是為了幫助端口的連線位置正確。當把連線工具放到端口上,接線頭就會彈出。接線頭還有一個黃色小標識框,顯示該端口的名字。
連接端口通常是隱藏在圖標中的。圖標和連接端口都是由用戶在編制VI時根據實際需要創建的。
2.3.4 數據流驅動
由于程序框圖中的數據是沿數據連線按照程序中的邏輯關系流動的,因此,LabVIEW編程又稱之為“數據流”編程。“數據流”控制LabVIEW程序的運行方式。
對一個節點而言只有當它的輸入端口上的所有數據都被提供以后,它才能夠執行下去。當節點程序運行完畢以后,它會把結果數據送到其輸出端口中,這些數據很快通過數據連線送至與之相連的目的端口。
“數據流”與常規編程語言中的“控制流”類似,相當于控制程序語句一步一步地執行。
例如,兩數相加程序的前面板如圖2-13所示,與之對應的程序框圖如圖2-14所示,這個VI程序控制a和b中的數值相加,然后再把相加之和乘以100,結果送至指示c中顯示。
圖2-13 兩數相加程序的前面板
圖2-14 兩數相加的程序框圖
在這個程序中,程序框圖從左向右執行,但這個執行次序不是由其對象的擺放位置來確定的,而是由于相乘節點的一個輸入量是相加節點的運算結果。只有當相加運算完成并把結果送到相乘運算節點的輸入端口后,相乘節點才能執行下去。