新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > VI的類(lèi)型和跨平臺(tái)特性

VI的類(lèi)型和跨平臺(tái)特性

作者: 時(shí)間:2017-01-09 來(lái)源:網(wǎng)絡(luò) 收藏
關(guān)于VI類(lèi)型,即便在幫助文件中,我們也沒(méi)有見(jiàn)到更多的解釋和說(shuō)明。我們只是在幫助文件中看到過(guò)這樣的說(shuō)法:嚴(yán)格類(lèi)型VI。與嚴(yán)格類(lèi)型VI相對(duì)應(yīng)的是通用VI。它們之間的區(qū)別在那里呢?


2.6.1 通用類(lèi)型VI
我個(gè)人理解,所謂通用類(lèi)型VI應(yīng)該是這樣一些VI,它們能夠獨(dú)立完成程序執(zhí)行結(jié)果(獨(dú)立完成或演示一個(gè)任務(wù)),換句話(huà)說(shuō),它并不需要與其它VI進(jìn)行數(shù)據(jù)交 換,所以它們也不需要定義連線(xiàn)板。NI所提供的許多例程就是以這種形式出現(xiàn)的。例如,NI的例程:》分析與信號(hào)處理》電平測(cè)量》基本幅值測(cè)量,參見(jiàn)下圖。
圖 2-24 通用VI的例子——基本幅值測(cè)量(沒(méi)有定義連線(xiàn)板)
通用類(lèi)型VI最明顯的標(biāo)志就是沒(méi)有定義接線(xiàn)板。例程是供我們學(xué)習(xí)和模仿的,甚至我們可以略加修改就可以在程序中使用這些例程。

2.6.2 嚴(yán)格類(lèi)型VI
嚴(yán)格類(lèi)型VI更多的應(yīng)用是作為子VI來(lái)使用,通過(guò)連線(xiàn)板它可以與其它VI進(jìn)行有效的交換數(shù)據(jù)。比如理想濾波器就是嚴(yán)格類(lèi)型VI。而例2-1所創(chuàng)建的VI是 通用VI。函數(shù)選版上的內(nèi)置VI都是嚴(yán)格類(lèi)型的VI,因?yàn)樗鼈兛梢员婚_(kāi)發(fā)者所調(diào)用。熟悉和了解這些內(nèi)置VI的功能和使用方法是必須要做的事情之一,最好的 學(xué)習(xí)方式就是不斷的進(jìn)行實(shí)踐。

所謂嚴(yán)格類(lèi)型VI就是指它連線(xiàn)板上接線(xiàn)端的數(shù)據(jù)類(lèi)型是已經(jīng)定義完成,其它與它相連接的接線(xiàn)端的數(shù)據(jù)類(lèi)型必須與此保持一致。如果二者數(shù)據(jù)類(lèi)型不匹配,開(kāi)發(fā)環(huán)境將會(huì)報(bào)錯(cuò),直觀(guān)的表現(xiàn)就是無(wú)法連接。

通用VI和嚴(yán)格類(lèi)型VI只是在VI的動(dòng)態(tài)調(diào)用時(shí)才會(huì)區(qū)分。一般的情況下,我們不太關(guān)心VI的類(lèi)型。

2.6.3 VI的使用
嚴(yán)格類(lèi)型子VI被拖拽放置到程序框圖上時(shí)稱(chēng)為VI的靜態(tài)連接。圖形化程序設(shè)計(jì)基本上采用的都是這種方式。比如將函數(shù)選板中的內(nèi)置VI或使用者庫(kù)中的VI直 接拖拽到程序框圖上進(jìn)行程序設(shè)計(jì)就是VI的靜態(tài)連接。這些放置在程序框圖上的子VI會(huì)隨著導(dǎo)入時(shí)同時(shí)加載到內(nèi)存中。比如例2-2層次結(jié)構(gòu)中的所有子VI都 會(huì)隨著理想濾波器VI的導(dǎo)入而被加載到內(nèi)存中。

如果程序中所使用的VI較多,且有些VI很大并屬于基本上不太常用的VI,為避免占用內(nèi)存的使用或減少程序的導(dǎo)入時(shí)間,也可以進(jìn)行VI的動(dòng)態(tài)調(diào)用。所謂動(dòng)態(tài)調(diào)用是指在程序運(yùn)行需要時(shí)再調(diào)入,運(yùn)行完成后從內(nèi)存中將其清除。VI的動(dòng)態(tài)調(diào)用與VI的類(lèi)型也有一定的關(guān)聯(lián)。

關(guān)于VI的動(dòng)態(tài)調(diào)用將在VI服務(wù)中詳細(xì)說(shuō)明。

2.6.4 VI的跨平臺(tái)

目前計(jì)算機(jī)使用的操作系統(tǒng)基本上有三種:Windows、Mac OS、Linux。NI為這三種操作系統(tǒng)平臺(tái)都提供相應(yīng)的LabVIEW版本。這就意味著,VI是可以跨平臺(tái)使用的。
所謂的“跨平臺(tái)”就是說(shuō):“無(wú)論在那個(gè)操作系統(tǒng)平臺(tái)上用NI LabVIEW開(kāi)發(fā)環(huán)境設(shè)計(jì)出來(lái)的VI,在其它平臺(tái)的LabVIEW下都可以正常運(yùn)行。人們也稱(chēng)這種方式為:可移植性。 VI的跨平臺(tái)特性增強(qiáng)了設(shè)計(jì)的靈活性和應(yīng)用的廣泛性。
VI為什么能夠跨平臺(tái)使用呢?其實(shí),VI的本質(zhì)是一種中間語(yǔ)言代碼。
中間語(yǔ)言代碼——是在各個(gè)操作系統(tǒng)平臺(tái)上生成的,由NI制定的標(biāo)準(zhǔn)化的(圖形化)語(yǔ)言代碼。有了這種中間語(yǔ)言代碼就完成了“跨平臺(tái)”的第一步,確保在不同平臺(tái)的LabVIEW開(kāi)發(fā)環(huán)境下都可以打開(kāi)和運(yùn)行。

可是我們知道不同平臺(tái)的底層運(yùn)行機(jī)制是不一樣的,如何保證中間語(yǔ)言代碼能夠在不同平臺(tái)下運(yùn)行呢?
實(shí)現(xiàn)“跨平臺(tái)”操作的第二步,就是通過(guò)各個(gè)平臺(tái)下LabVIEW Run_time (Run_time運(yùn)行時(shí))將VI(中間語(yǔ)言代碼)編譯轉(zhuǎn)換成各個(gè)平臺(tái)下的可執(zhí)行代碼,這樣VI才能夠得以順利運(yùn)行。所以,對(duì)于不同的操作系統(tǒng) LabVIEW Run_time是不同的,其實(shí)對(duì)于不同的LabVIEW版本其LabVIEW Run_time也是不同的。

由此可見(jiàn),各個(gè)操作系統(tǒng)下的LabVIEW Run_time是保證VI是可以跨平臺(tái)運(yùn)行的關(guān)鍵。所以,當(dāng)將圖形化程序代碼打包成可執(zhí)行文件時(shí),我們也會(huì)看到LabVIEW Run_time也是包含在內(nèi)。

跨平臺(tái)的好處是:如果你的用戶(hù)(協(xié)作者)使用的是Linux版的LabVIEW,那你在MS操作系統(tǒng)下設(shè)計(jì)的VI同樣可以發(fā)給他,或者說(shuō)與他進(jìn)行交流、溝通。在網(wǎng)絡(luò)時(shí)代這是一個(gè)極為有用的特點(diǎn)。
在LabVIEW 2009中,這個(gè)特點(diǎn)有了進(jìn)一步的發(fā)揮,將VI制作成圖形片斷用來(lái)進(jìn)行交流和傳遞。過(guò)去我們進(jìn)行VI傳遞采用的是傳遞VI的實(shí)體,根本無(wú)法直接看到其基本 內(nèi)容。只有在NI LabVIEW打開(kāi)它才能看到它對(duì)我們是否有用?,F(xiàn)在通過(guò)圖片可以直接看到它的內(nèi)涵,只要有用可以直接下載后拖拽到我們的程序框圖中。真的是太好了!


評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉