是一種程序開發(fā)環(huán)境,由美國(guó)國(guó)家儀器(NI)公司研制開發(fā)的,類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計(jì)算機(jī)語言的顯著區(qū)別是:其他計(jì)算機(jī)語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。
虛擬儀器 (VI) 的概念
虛擬儀器(virtual instrument)是基于計(jì)算機(jī)的儀器。計(jì)算機(jī)和儀器的密切結(jié)合是目前儀器發(fā)展的一個(gè)重要方向。粗略地說這種結(jié)合有兩種方式,一種是將計(jì)算機(jī)裝入儀器,其典型的例子就是所謂智能化的儀器。隨著計(jì)算機(jī)功能的日益強(qiáng)大以及其體積的日趨縮小,這類儀器功能也越來越強(qiáng)大,目前已經(jīng)出現(xiàn)含嵌入式系統(tǒng)的儀器。另一種方式是將儀器裝入計(jì)算機(jī)。以通用的計(jì)算機(jī)硬件及操作系統(tǒng)為依托,實(shí)現(xiàn)各種儀器功能。虛擬儀器主要是指這種方式。上面的框圖反映了常見的虛擬儀器方案。
虛擬儀器實(shí)際上是一個(gè)按照儀器需求組織的數(shù)據(jù)采集系統(tǒng)。虛擬儀器的研究中涉及的基礎(chǔ)理論主要有計(jì)算機(jī)數(shù)據(jù)采集和數(shù)字信號(hào)處理。目前在這一領(lǐng)域內(nèi),使用較為廣泛的計(jì)算機(jī)語言是美國(guó)NI 公司的 LabVIEW。
虛擬儀器的起源可以追溯到20世紀(jì)70年代,那時(shí)計(jì)算機(jī)測(cè)控系統(tǒng)在國(guó)防、航天等領(lǐng)域已經(jīng)有了相當(dāng)?shù)陌l(fā)展。PC機(jī)出現(xiàn)以后,儀器級(jí)的計(jì)算機(jī)化成為可能,甚至在 Microsof t公司的 Windows 誕生之前,NI公司已經(jīng)在Macintosh計(jì)算機(jī)上推出了LabVIEW2.0 以前的版本。對(duì)虛擬儀器和 LabVIEW長(zhǎng)期、系統(tǒng)、有效的研究開發(fā)使得該公司成為業(yè)界公認(rèn)的權(quán)威。目前LabVIEW 的最新版本為 LabVIEW2011,LabVIEW 2009 為多線程功能添加了更多特性,這種特性在 1998 年的版本 5 中被初次引入。使用 LabVIEW 軟件,用戶可以借助于它提供的軟件環(huán)境,該環(huán)境由于其數(shù)據(jù)流編程特性、LabVIEW Real-Time 工具對(duì)嵌入式平臺(tái)開發(fā)的多核支持,以及自上而下的為多核而設(shè)計(jì)的軟件層次,是進(jìn)行并行編程的首選。
普通的 PC 有一些不可避免的弱點(diǎn)。用它構(gòu)建的虛擬儀器或計(jì)算機(jī)測(cè)試系統(tǒng)性能不可能太高。目前作為計(jì)算機(jī)化儀器的一個(gè)重要發(fā)展方向是制定了VXI 標(biāo)準(zhǔn),這是一種插卡式的儀器。每一種儀器是一個(gè)插卡,為了保證儀器的性能,又采用了較多的硬件,但這些卡式儀器本身都沒有面板,其面板仍然用虛擬的方式在計(jì)算機(jī)屏幕上出現(xiàn)。這些卡插入標(biāo)準(zhǔn)的 VXI 機(jī)箱,再與計(jì)算機(jī)相連,就組成了一個(gè)測(cè)試系統(tǒng)。VXI 儀器價(jià)格昂貴,目前又推出了一種較為便宜的 PXI 標(biāo)準(zhǔn)儀器。
LabVIEW 的概念
與 C 和 BASIC 一樣,LabVIEW也是通用的編程系統(tǒng),有一個(gè)完成任何編程任務(wù)的龐大函數(shù)庫(kù)。LabVIEW的函數(shù)庫(kù)包括數(shù)據(jù)采集、GPIB、串口控制、數(shù)據(jù)分析、數(shù)據(jù)
LabVIEW標(biāo)志
顯示及數(shù)據(jù)存儲(chǔ),等等。LabVIEW也有傳統(tǒng)的程序調(diào)試工具,如設(shè)置斷點(diǎn)、以動(dòng)畫方式顯示數(shù)據(jù)及其子程序(子VI)的結(jié)果、單步執(zhí)行等等,便于程序的調(diào)試。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一種用圖標(biāo)代替文本行創(chuàng)建應(yīng)用程序的圖形化編程語言。傳統(tǒng)文本編程語言根據(jù)語句和指令的先后順序決定程序執(zhí)行順序,而 LabVIEW則采用數(shù)據(jù)流編程方式,程序框圖中節(jié)點(diǎn)之間的數(shù)據(jù)流向決定了VI及函數(shù)的執(zhí)行順序。VI指虛擬儀器,是 LabVIEW的程序模塊。
LabVIEW提供很多外觀與傳統(tǒng)儀器(如示波器、萬用表)類似的控件,可用來方便地創(chuàng)建用戶界面。用戶界面在 LabVIEW中被稱為前面板。使用圖標(biāo)和連線,可以通過編程對(duì)前面板上的對(duì)象進(jìn)行控制。這就是圖形化源代碼,又稱G代碼。LabVIEW]的圖形化源代碼在某種程度上類似于流程圖,因此又被稱作程序框圖代碼。
特點(diǎn)
盡可能采用了通用的硬件,各種儀器的差異主要是軟件。
可充分發(fā)揮計(jì)算機(jī)的能力,有強(qiáng)大的數(shù)據(jù)處理功能,可以創(chuàng)造出功能更強(qiáng)的儀器。
用戶可以根據(jù)自己的需要定義和制造各種儀器。
未來
虛擬儀器研究的另一個(gè)問題是各種標(biāo)準(zhǔn)儀器的互連及與計(jì)算機(jī)的連接。目前使用較多的是IEEE488 或 GPIB協(xié)議。未來的儀器也應(yīng)當(dāng)是網(wǎng)絡(luò)化的。
LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一種圖形化的編程語言的開發(fā)環(huán)境,它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實(shí)驗(yàn)室所接受,視為一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。LabVIEW集成了與滿足 GPIB、VXI、RS-232和 RS-485 協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。它還內(nèi)置了便于應(yīng)用TCP/IP、ActiveX等軟件標(biāo)準(zhǔn)的庫(kù)函數(shù)。這是一個(gè)功能強(qiáng)大且靈活的軟件。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動(dòng)有趣。
圖形化的程序語言,又稱為 “G” 語言。使用這種語言編程時(shí),基本上不寫程序代碼,取而代之的是流程圖或框圖。它盡可能利用了技術(shù)人員、科學(xué)家、工程師所熟悉的術(shù)語、圖標(biāo)和概念,因此,LabVIEW是一個(gè)面向最終用戶的工具。它可以增強(qiáng)你構(gòu)建自己的科學(xué)和工程系統(tǒng)的能力,提供了實(shí)現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。使用它進(jìn)行原理研究、設(shè)計(jì)、測(cè)試并實(shí)現(xiàn)儀器系統(tǒng)時(shí),可以大大提高工作效率。
利用 LabVIEW,可產(chǎn)生獨(dú)立運(yùn)行的可執(zhí)行文件,它是一個(gè)真正的32位/64位編譯器。像許多重要的軟件一樣,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多種版本。
它主要的方便就是,一個(gè)硬件的情況下,可以通過改變軟件,就可以實(shí)現(xiàn)不同的儀器儀表的功能,非常方便,是相當(dāng)于軟件即硬件!現(xiàn)在的圖形化主要是上層的系統(tǒng),國(guó)內(nèi)現(xiàn)在已經(jīng)開發(fā)出圖形化的單片機(jī)編程系統(tǒng)(支持32位的嵌入式系統(tǒng),并且可以擴(kuò)展的),不斷完善中(大家可以搜索 CPUVIEW 會(huì)有更詳細(xì)信息;)
LABVIEW的應(yīng)用領(lǐng)域
LABVIEW有很多優(yōu)點(diǎn),尤其是在某些特殊領(lǐng)域其特點(diǎn)尤其突出。
測(cè)試測(cè)量:LABVIEW最初就是為測(cè)試測(cè)量而設(shè)計(jì)的,因而測(cè)試測(cè)量也就是現(xiàn)在LABVIEW最廣泛的應(yīng)用領(lǐng)域。經(jīng)過多年的發(fā)展,LABVIEW在測(cè)試測(cè)量領(lǐng)域獲得了廣泛的承認(rèn)。至今,大多數(shù)主流的測(cè)試儀器、數(shù)據(jù)采集設(shè)備都擁有專門的LabVIEW驅(qū)動(dòng)程序,使用LabVIEW可以非常便捷的控制這些硬件設(shè)備。同時(shí),用戶也可以十分方便地找到各種適用于測(cè)試測(cè)量領(lǐng)域的LabVIEW工具包。這些工具包幾乎覆蓋了用戶所需的所有功能,用戶在這些工具包的基礎(chǔ)上再開發(fā)程序就容易多了。有時(shí)甚至于只需簡(jiǎn)單地調(diào)用幾個(gè)工具包中的函數(shù),就可以組成一個(gè)完整的測(cè)試測(cè)量應(yīng)用程序。
控制:控制與測(cè)試是兩個(gè)相關(guān)度非常高的領(lǐng)域,從測(cè)試領(lǐng)域起家的LabVIEW自然而然地首先拓展至控制領(lǐng)域。LabVIEW擁有專門用于控制領(lǐng)域的模塊----LabVIEWDSC。除此之外,工業(yè)控制領(lǐng)域常用的設(shè)備、數(shù)據(jù)線等通常也都帶有相應(yīng)的LabVIEW驅(qū)動(dòng)程序。使用LabVIEW可以非常方便的編制各種控制程序。
仿真:LabVIEW包含了多種多樣的數(shù)學(xué)運(yùn)算函數(shù),特別適合進(jìn)行模擬、仿真、原型設(shè)計(jì)等工作。在設(shè)計(jì)機(jī)電設(shè)備之前,可以現(xiàn)在計(jì)算機(jī)上用LabVIEW搭建仿真原型,驗(yàn)證設(shè)計(jì)的合理性,找到潛在的問題。在高等教育領(lǐng)域,有時(shí)如果使用LabVIEW進(jìn)行軟件模擬,就可以達(dá)到同樣的效果,使學(xué)生不致失去實(shí)踐的機(jī)會(huì)。
兒童教育:由于圖形外觀漂亮且容易吸引兒童的注意力,同時(shí)圖形比文本更容易被兒童接受和理解,所以LabVIEW非常受少年兒童的歡迎。對(duì)于沒有任何計(jì)算機(jī)知識(shí)的兒童而言,可以把LabVIEW理解成是一種特殊的“積木”:把不同的原件搭在一起,就可以實(shí)現(xiàn)自己所需的功能。著名的可編程玩具“樂高積木”使用的就是LabVIEW編程語言。兒童經(jīng)過短暫的指導(dǎo)就可以利用樂高積木提供的積木搭建成各種車輛模型、機(jī)器人等,再使用LabVIEW編寫控制其運(yùn)動(dòng)和行為的程序。除了應(yīng)用于玩具,LabVIEW還有專門用于中小學(xué)生教學(xué)使用的版本。
快快速開發(fā):根據(jù)筆者參與的一些項(xiàng)目統(tǒng)計(jì),完成一個(gè)功能類似的大型應(yīng)用軟件,熟練的LabVIEW程序員所需的開發(fā)時(shí)間,大概只是熟練的C程序員所需時(shí)間的1/5左右。所以,如果項(xiàng)目開發(fā)時(shí)間緊張,應(yīng)該優(yōu)先考慮使用LabVIEW,以縮短開發(fā)時(shí)間。
跨平臺(tái):如果同一個(gè)程序需要運(yùn)行于多個(gè)硬件設(shè)備之上,也可以優(yōu)先考慮使用LabVIEW。LabVIEW具有良好的平臺(tái)一致性。LabVIEW的代碼不需任何修改就可以運(yùn)行在常見的三大臺(tái)式機(jī)操作系統(tǒng)上:Windows、Mac OS 及 Linux。除此之外,LabVIEW還支持各種實(shí)時(shí)操作系統(tǒng)和嵌入式設(shè)備,比如常見的PDA、FPGA以及運(yùn)行VxWorks和PharLap系統(tǒng)的RT設(shè)備。