關(guān)于VI的類型,即便在幫助文件中,我們也沒有見到更多的解釋和說明。我們只是在幫助文件中看到過這樣的說法:嚴格類型VI。與嚴格類型VI相對應(yīng)的是通用VI。它們之間的區(qū)別在那里呢?
2.6.1 通用類型VI
我個人理解,所謂通用類型VI應(yīng)該是這樣一些VI,它們能夠獨立完成程序執(zhí)行結(jié)果(獨立完成或演示一個任務(wù)),換句話說,它并不需要與其它VI進行數(shù)據(jù)交 換,所以它們也不需要定義連線板。NI所提供的許多例程就是以這種形式出現(xiàn)的。例如,NI的例程:》分析與信號處理》電平測量》基本幅值測量,參見下圖。圖 2-24 通用VI的例子——基本幅值測量(沒有定義連線板)通用類型VI最明顯的標志就是沒有定義接線板。例程是供我們學(xué)習(xí)和模仿的,甚至我們可以略加修改就可以在程序中使用這些例程。
2.6.2 嚴格類型VI
嚴格類型VI更多的應(yīng)用是作為子VI來使用,通過連線板它可以與其它VI進行有效的交換數(shù)據(jù)。比如理想濾波器就是嚴格類型VI。而例2-1所創(chuàng)建的VI是 通用VI。函數(shù)選版上的內(nèi)置VI都是嚴格類型的VI,因為它們可以被開發(fā)者所調(diào)用。熟悉和了解這些內(nèi)置VI的功能和使用方法是必須要做的事情之一,最好的 學(xué)習(xí)方式就是不斷的進行實踐。
所謂嚴格類型VI就是指它連線板上接線端的數(shù)據(jù)類型是已經(jīng)定義完成,其它與它相連接的接線端的數(shù)據(jù)類型必須與此保持一致。如果二者數(shù)據(jù)類型不匹配,開發(fā)環(huán)境將會報錯,直觀的表現(xiàn)就是無法連接。
通用VI和嚴格類型VI只是在VI的動態(tài)調(diào)用時才會區(qū)分。一般的情況下,我們不太關(guān)心VI的類型。
2.6.3 VI的使用
嚴格類型子VI被拖拽放置到程序框圖上時稱為VI的靜態(tài)連接。圖形化程序設(shè)計基本上采用的都是這種方式。比如將函數(shù)選板中的內(nèi)置VI或使用者庫中的VI直 接拖拽到程序框圖上進行程序設(shè)計就是VI的靜態(tài)連接。這些放置在程序框圖上的子VI會隨著導(dǎo)入時同時加載到內(nèi)存中。比如例2-2層次結(jié)構(gòu)中的所有子VI都 會隨著理想濾波器VI的導(dǎo)入而被加載到內(nèi)存中。
如果程序中所使用的VI較多,且有些VI很大并屬于基本上不太常用的VI,為避免占用內(nèi)存的使用或減少程序的導(dǎo)入時間,也可以進行VI的動態(tài)調(diào)用。所謂動態(tài)調(diào)用是指在程序運行需要時再調(diào)入,運行完成后從內(nèi)存中將其清除。VI的動態(tài)調(diào)用與VI的類型也有一定的關(guān)聯(lián)。
關(guān)于VI的動態(tài)調(diào)用將在VI服務(wù)中詳細說明。
2.6.4 VI的跨平臺
目前計算機使用的操作系統(tǒng)基本上有三種:Windows、Mac OS、Linux。NI為這三種操作系統(tǒng)平臺都提供相應(yīng)的LabVIEW版本。這就意味著,VI是可以跨平臺使用的。
所謂的“跨平臺”就是說:“無論在那個操作系統(tǒng)平臺上用NI LabVIEW開發(fā)環(huán)境設(shè)計出來的VI,在其它平臺的LabVIEW下都可以正常運行。人們也稱這種方式為:可移植性。 VI的跨平臺特性增強了設(shè)計的靈活性和應(yīng)用的廣泛性。
VI為什么能夠跨平臺使用呢?其實,VI的本質(zhì)是一種中間語言代碼。
中間語言代碼——是在各個操作系統(tǒng)平臺上生成的,由NI制定的標準化的(圖形化)語言代碼。有了這種中間語言代碼就完成了“跨平臺”的第一步,確保在不同平臺的LabVIEW開發(fā)環(huán)境下都可以打開和運行。
可是我們知道不同平臺的底層運行機制是不一樣的,如何保證中間語言代碼能夠在不同平臺下運行呢?
實現(xiàn)“跨平臺”操作的第二步,就是通過各個平臺下LabVIEW Run_time (Run_time運行時)將VI(中間語言代碼)編譯轉(zhuǎn)換成各個平臺下的可執(zhí)行代碼,這樣VI才能夠得以順利運行。所以,對于不同的操作系統(tǒng) LabVIEW Run_time是不同的,其實對于不同的LabVIEW版本其LabVIEW Run_time也是不同的。
由此可見,各個操作系統(tǒng)下的LabVIEW Run_time是保證VI是可以跨平臺運行的關(guān)鍵。所以,當(dāng)將圖形化程序代碼打包成可執(zhí)行文件時,我們也會看到LabVIEW Run_time也是包含在內(nèi)。
跨平臺的好處是:如果你的用戶(協(xié)作者)使用的是Linux版的LabVIEW,那你在MS操作系統(tǒng)下設(shè)計的VI同樣可以發(fā)給他,或者說與他進行交流、溝通。在網(wǎng)絡(luò)時代這是一個極為有用的特點。
在LabVIEW 2009中,這個特點有了進一步的發(fā)揮,將VI制作成圖形片斷用來進行交流和傳遞。過去我們進行VI傳遞采用的是傳遞VI的實體,根本無法直接看到其基本 內(nèi)容。只有在NI LabVIEW打開它才能看到它對我們是否有用?,F(xiàn)在通過圖片可以直接看到它的內(nèi)涵,只要有用可以直接下載后拖拽到我們的程序框圖中。真的是太好了!