1、什么是Labview
2、數(shù)據(jù)流的概念
3、選擇LabVIEW的原因
4、LabVIEW 學(xué)習(xí)捷徑
5、 LabVIEW的工作環(huán)境
6、 LabVIEW自帶編程示例
7、起源與發(fā)展歷程
8、小結(jié)
1、什么是Labview
LabVIEW (Laboratory Virtual Instrument Engineering Workbench)是一種用圖標(biāo)代替文本行創(chuàng)建應(yīng)用程序的圖形化編程語(yǔ)言。
傳統(tǒng)文本編程語(yǔ)言根據(jù)語(yǔ)句和指令的先后順序決定程序的執(zhí)行順序,而LabVIEW則采用數(shù)據(jù)流編程方式,程序框圖中節(jié)點(diǎn)之間的數(shù)據(jù)流向決定了程序的執(zhí)行順序。在這方面,它不同于傳統(tǒng)的編程語(yǔ)言,如VisualBasic、 C、C++或Java,這些語(yǔ)言使用文本方式編程。
而LabVIEW不僅僅是一款編程語(yǔ)言,它還是為科學(xué)家和工程師等設(shè)計(jì)的一-種編程開(kāi)發(fā)環(huán)境和運(yùn)行系統(tǒng),編程只是這些人員工作的一部分。它用圖標(biāo)表示函數(shù),用連線表示數(shù)據(jù)流向。LabVIEW提供很多外觀與傳統(tǒng)儀器(如示波器、萬(wàn)用表)類似的控件,可用來(lái)方便地創(chuàng)建用戶界面。
用戶界面在LabVIEW中被稱為前面板。使用圖標(biāo)和連線,可以通過(guò)編程對(duì)前面板上的對(duì)象進(jìn)行控制。這就是圖形化源代碼,又稱G(Graphics) 代碼。LabVIEW 的圖形化源代碼在某種程度.上類似于數(shù)據(jù)流流程圖,因此又被稱作程序框圖代碼。前面板上的每一個(gè)控件對(duì)應(yīng)于程序框圖中的-一個(gè)對(duì)象,當(dāng)數(shù)據(jù)“流向”該控件時(shí),控件就會(huì)根據(jù)自己的特性以一定的方式顯示數(shù)據(jù),例如開(kāi)關(guān)、數(shù)字或圖形。
LabVIEW程序被稱為VI ( Virtual Instrument), 即虛擬儀器,這是因?yàn)樗暮芏嘟缑婵丶c操作都模擬了現(xiàn)實(shí)世界中的儀器,例如示波器與萬(wàn)用表等。LabVIEW的核心概念就是“軟件即是儀器”,即虛擬儀器的概念。LabVIEW 還包含了大量的工具與函數(shù)用于數(shù)據(jù)采集、分析、顯示與存儲(chǔ)等。這些工具都是向?qū)降墓ぞ撸脩糁恍枰徊讲桨凑仗崾揪涂梢詫?shí)現(xiàn)與儀器的連接和參數(shù)的設(shè)置。而程序員也不用去記憶這些大量的函數(shù),因?yàn)檫@些函數(shù)都以圖標(biāo)與名稱的形式存在于一個(gè)小小的函數(shù)面板上,當(dāng)需要用到某個(gè)函數(shù)時(shí)把它從函數(shù)面板上拖放到程序框圖中就可以了。這一切都是圖形化帶來(lái)的好處。
由于LabVIEW可以用來(lái)創(chuàng)建通用的應(yīng)用程序,因此被稱為一種通用的編程語(yǔ)言。但是它在測(cè)試、測(cè)量和自動(dòng)化等領(lǐng)域具有更大的優(yōu)勢(shì),因?yàn)長(zhǎng)abVIEW 提供了大量的工具與函數(shù)用于數(shù)據(jù)采集、分析、顯示和存儲(chǔ)。同時(shí)它還提供了大量常用于自動(dòng)化測(cè)試測(cè)量領(lǐng)域的圖形控件。這使得用戶可以在數(shù)分鐘內(nèi)完成-套完整的從儀 器連接、數(shù)據(jù)采集到分析、顯示和存儲(chǔ)的自動(dòng)化測(cè)試測(cè)量系統(tǒng)。因此它被廣泛地應(yīng)用于汽車、通信、航空、半導(dǎo)體、電子設(shè)計(jì)生產(chǎn)、過(guò)程控制和生物醫(yī)學(xué)等各個(gè)領(lǐng)域,涵蓋了從研發(fā)、測(cè)試、生產(chǎn)到服務(wù)的產(chǎn)品開(kāi)發(fā)所有階段。NI網(wǎng)站上的應(yīng)用案例供讀者參考: htp://www.ni.com/solutions/。
LabVIEW不僅可以用來(lái)快速搭建小型自動(dòng)化測(cè)試測(cè)量系統(tǒng),還可以用來(lái)開(kāi)發(fā)大型的分布式數(shù)據(jù)采集與控制系統(tǒng)。在美國(guó)Lawrence Livermore國(guó)家實(shí)驗(yàn)室,一個(gè)花費(fèi)2000萬(wàn)美金的極為復(fù)雜的飛秒激光切割系統(tǒng)就是基于LabVIEW開(kāi)發(fā)的。該系統(tǒng)中,4臺(tái)WindowsNT工作站用網(wǎng)絡(luò)連接起來(lái),LabVIEW用來(lái)給激光提供測(cè)量、控制和自動(dòng)定序,同時(shí)作為半熟練操作者的高層用戶界面。幾乎安裝了所有類型的IO硬件: DAQ、GPIB、串行、遠(yuǎn)程控制SCXI、VME/VXI以及IMAQ成像。由于這個(gè)項(xiàng)目的極端重要性,因此本項(xiàng)目采取了正式的軟件質(zhì)量保證過(guò)程。軟件開(kāi)發(fā)總共用了4個(gè)年度,創(chuàng)建了約600個(gè)VI。
2、數(shù)據(jù)流的概念
LabVIEW編程開(kāi)發(fā)環(huán)境與標(biāo)準(zhǔn)C或Java開(kāi)發(fā)系統(tǒng)的一個(gè)重要區(qū)別是:標(biāo)準(zhǔn)語(yǔ)言編程系統(tǒng)采用基于文本的代碼行編程;而LabVIEW則使用圖形編程語(yǔ)言,通常被稱為G語(yǔ)言,在稱為框圖的圖形框架內(nèi)編程。圖形編程消除了文本編程中設(shè)計(jì)的許多語(yǔ)法細(xì)節(jié),如(;)和( {})的放置經(jīng)常會(huì)讓人煞費(fèi)
苦心。在LabVIEW中就不用擔(dān)心這樣的問(wèn)題,即使是某個(gè)地方出現(xiàn)了連接錯(cuò)誤,LabVIEW也會(huì)明確地指出錯(cuò)誤,而不是像文本編程語(yǔ)言那樣模棱兩可。圖形編程語(yǔ)言中最需要關(guān)注的是應(yīng)用程序中的數(shù)據(jù)流,因?yàn)槠浜?jiǎn)單的語(yǔ)法使程序變得更加簡(jiǎn)潔易懂。
LabVIEW使用科學(xué)家和工程師們熟悉的術(shù)語(yǔ)、圖標(biāo)和概念,依靠圖形符號(hào)而不是文本語(yǔ)言來(lái)定義程序的功能。LabVIEW的運(yùn)行基于數(shù)據(jù)流的原理,一個(gè)函數(shù)只有收到必要的數(shù)據(jù)后才可以運(yùn)行。基于這些特點(diǎn),對(duì)于沒(méi)有編程經(jīng)驗(yàn)的人來(lái)說(shuō)也是可以學(xué)會(huì)LabVIEW的。
3、選擇LabVIEW的原因
選擇LabVIEW開(kāi)發(fā)測(cè)試和測(cè)量應(yīng)用程序的一大決定性因素是其開(kāi)發(fā)速度。通常,使用LabVIEW開(kāi)發(fā)應(yīng)用系統(tǒng)的速度比使用其他編程語(yǔ)言快4~10倍。這一驚人速度背后的原因在于LabVIEW易用易學(xué),因?yàn)長(zhǎng)abVIEW是專為測(cè)量、數(shù)據(jù)分析并提交結(jié)果而設(shè)計(jì)的,且LabVIEW擁有如此功能眾多的圖形用戶界面又易于編程,使得它對(duì)于仿真、結(jié)果顯示、通用編程甚至講授基本編程概念也同樣是很理想的語(yǔ)言。它所提供的工具使創(chuàng)建測(cè)試和測(cè)量應(yīng)用變得更為輕松。
LabVIEW的具體優(yōu)勢(shì)主要體現(xiàn)在以下幾個(gè)方面:
(1)提供了豐富的圖形控件,并采用圖形化的編程方法,徹底把工程師們從復(fù)雜枯澀的文本編程工作中解放出來(lái)。
(2)內(nèi)建的編譯器在用戶編寫程序的同時(shí)就在后臺(tái)自動(dòng)完成了編譯。因此用戶在編寫程序的過(guò)程中如果有語(yǔ)法錯(cuò)誤,它會(huì)被立即顯示出來(lái)。
(3)由于采用數(shù)據(jù)流模型,它實(shí)現(xiàn)了自動(dòng)的多線程,從而能充分利用處理器尤其是多處理器的處理能力。
(4)通過(guò)DLL、CIN節(jié)點(diǎn)、ActiveX、 .NET或MATLAB腳本節(jié)點(diǎn)等技術(shù),可以輕松實(shí)現(xiàn)LabVIEW與其他編程語(yǔ)言混和編程。
(5)通過(guò)應(yīng)用程序生成器可以輕松地發(fā)布EXE、動(dòng)態(tài)鏈接庫(kù)或安裝包。
(6) LabVIEW 提供了大量的驅(qū)動(dòng)與專用工具,幾乎能與任何接口的硬件輕松連接。
(7) LabVIEW 內(nèi)建了600多個(gè)分析函數(shù),用于數(shù)據(jù)分析和信號(hào)處理。
(8) NI同時(shí)提供了豐富的附加模塊,用于擴(kuò)展LabVIEW在不同領(lǐng)域中的應(yīng)用,例如實(shí)時(shí)模塊、PDA模塊、FPGA模塊、
數(shù)據(jù)記錄與監(jiān)控(DSC) 模塊、機(jī)器視覺(jué)模塊與觸摸屏模塊等。
(9)LabVIEW 開(kāi)發(fā)環(huán)境可以運(yùn)行在Windows、Mac或Linux系統(tǒng)的計(jì)算機(jī)上,用LabVIEW編寫的應(yīng)用程序可以運(yùn)行在
上述系統(tǒng)上,還可以運(yùn)行在Microsoft Pocket PC、Microsoft Windows CE、Palm OS以及多種嵌入式平臺(tái)上,包括
FPGA、DSP、ARM等微處理器上。
(10)LabVIEW用戶無(wú)法作為儀器的生產(chǎn)者,但是可以定義儀器的功能。使用計(jì)算機(jī)、插入式硬件和LabVIEW能共同組成
一個(gè)可完全配置的虛擬儀器,以完成用戶的任務(wù)。使用LabVIEW,用戶可以根據(jù)需要?jiǎng)?chuàng)建所需的任何類型的虛擬儀器,而
其成本僅僅是傳統(tǒng)儀器的一部分。當(dāng)需求變化時(shí),還可以立即修改虛擬儀器。
(11)LabVIEW擁有龐大的函數(shù)和子程序庫(kù),這些庫(kù)可以幫助用戶完成編程中的大部分任務(wù),使得LabVIEW用戶免于被傳統(tǒng)
編程語(yǔ)言中指針、內(nèi)存分配以及其他莫名的編程問(wèn)題所困擾。
(12)LabVIEW也包含特定的應(yīng)用程序庫(kù)代碼,如數(shù)據(jù)采集( DAQ).通用功能接口總線(GPIB)、串行接口儀器控制、數(shù)據(jù)分析
、數(shù)據(jù)顯示、數(shù)據(jù)存儲(chǔ)、Internet 通信等。分析庫(kù)包含了大量實(shí)用的函數(shù),如信號(hào)產(chǎn)生、信號(hào)處理、濾波器、窗口、統(tǒng)計(jì)、
回歸、線性代數(shù)、矩陣運(yùn)算等。
4、LabVIEW 學(xué)習(xí)捷徑
在學(xué)習(xí)與使用LabVIEW的日子里,學(xué)習(xí)LabVIEW 的最佳捷徑就是——大膽嘗試。
(1)LabVIEW 入門非常容易,但是要想編寫出色的程序或者稍微大型的系統(tǒng),則必須學(xué)會(huì)LabVIEW 的高級(jí)編程知識(shí)。
(2)通過(guò)LabVIEW的聯(lián)機(jī)幫助和范例查找器( Example Finder) 中的相關(guān)實(shí)例提升編程水平。
5、 LabVIEW的工作環(huán)境
一個(gè) LabVIEW程序由一個(gè)或多個(gè)虛擬儀器組成,虛擬儀器在后面簡(jiǎn)稱為VI。而之所以稱做
虛擬儀器,是因?yàn)樗鼈兊耐庥^和操作通常是模擬了實(shí)際的物理儀器。然而,在這些面板之后,它們有著類似于流行的編程語(yǔ)言,如C和B語(yǔ)言中的主程序、函數(shù)、子程序等。
一般每個(gè)VI都由3個(gè)主要部分組成:前面板、框圖和圖標(biāo)。
注:全局變量是一種特殊的VI,只有前面板,沒(méi)有框圖,對(duì)圖標(biāo)可以編輯,但是很少有人
編輯。
前面板是VI的交互式用戶界面,它模擬了物理儀器的前面板。前面板包含旋鈕、按鈕、.
圖形及其他控件(輸人控件)和顯示控件(輸出控件),而且通過(guò)編程,可以使用鼠標(biāo)和
鍵盤作為輸入設(shè)備。
框圖是VI的源代碼,由LabVIEW的圖形化編程即G語(yǔ)言構(gòu)成。框圖是實(shí)際可執(zhí)行的程
序。框圖由低級(jí)VI、內(nèi)置函數(shù)、常量和程序執(zhí)行控制結(jié)構(gòu)等構(gòu)成,用連線將合適的對(duì)象
連接起來(lái)定義它們之間的數(shù)據(jù)流。前面板上的對(duì)象對(duì)應(yīng)于框圖上的終端,這樣數(shù)據(jù)就可
以從用戶傳遞到程序,再回傳給用戶。
在編寫LabVIEW應(yīng)用程序時(shí),往往需要在一個(gè)主程序中調(diào)用多個(gè)子程序,那么為了實(shí)現(xiàn)
VI之間的調(diào)用,VI就必須有連接器圖標(biāo)。被另外一個(gè)VI所使用的VI稱為子VI,也可
以稱為子程序。圖標(biāo)是VI的圖形表示,會(huì)在另外的VI框圖中作為一個(gè)對(duì)象使用,連接
器用于從其他框圖中連線數(shù)據(jù)到當(dāng)前VI。連接器定義了VI的輸人和輸出,類似于子程
序的參數(shù)。
6、 LabVIEW自帶編程示例
與其他編程語(yǔ)言不同的是,LabVIEW 擁有龐大的自帶編程示例,這有助于學(xué)習(xí)- .般的編程
技術(shù)并了解完成通用硬件輸入/輸出和數(shù)據(jù)處理任務(wù)的應(yīng)用程序。通過(guò)NI范例查找器可以找到相關(guān)的范例。
有幾個(gè)途徑可以進(jìn)入NI范例查找器,一為在啟動(dòng)頁(yè)面的右下角單擊“查找范例”;
二為在啟動(dòng)LabVIEW編程界面后選擇“幫助”菜單,從中選擇“查找范例”菜單項(xiàng)。
瀏覽方式可以設(shè)置為任務(wù)或者目錄結(jié)構(gòu)。按任務(wù)瀏覽時(shí),目錄結(jié)構(gòu)即按照任務(wù)編輯,可以很
明了地根據(jù)自己的項(xiàng)目任務(wù)來(lái)選擇相近的實(shí)例。
使用NI范例查找器,還可以根據(jù)關(guān)鍵字直接搜索相關(guān)的示例,如Serial、Excel等,NI范例查找器將直接定位到相關(guān)的示例。
7、起源與發(fā)展歷程
早在20世紀(jì)80年代初引入個(gè)人計(jì)算機(jī)之前,幾乎所有使用可編程儀器的實(shí)驗(yàn)室都通過(guò)專門的儀器控制器用于控制他們的測(cè)試系統(tǒng)。這些價(jià)格昂貴而且功能單一的控制器通過(guò)一個(gè)必 備的端口控制使用IEEE-488總線(即GPIB總線)的儀器。到了1983 年,隨著個(gè)人計(jì)算機(jī)的出現(xiàn), National Instruments公司成為個(gè)人計(jì)算機(jī)的GPIB硬件接口的主要供貨商。然而當(dāng)時(shí)用于控制儀器的軟件表現(xiàn)卻不太好,當(dāng)時(shí)幾乎100%的儀器控制程序都是用BASIC語(yǔ)言開(kāi)發(fā)的。雖然BASIC有一定的優(yōu)勢(shì),例如簡(jiǎn)單、可讀性強(qiáng)的指令集以及可交互功能等,但是它存在-一個(gè)根本性的問(wèn)題:像其他文本編程語(yǔ)言一樣,如果要通過(guò)計(jì)算機(jī)控制儀器,無(wú)論是科學(xué)家、工程師還是技術(shù)人員都必須懂得編程。他們必須把他們的應(yīng)用軟件和儀器使用的知識(shí)轉(zhuǎn)化為文本行,而這種過(guò)程多半是繁重而單調(diào)乏味的,尤其是對(duì)那些從來(lái)沒(méi)有編程經(jīng)驗(yàn)的人來(lái)說(shuō)。
National Instruments 公司有自己的編程團(tuán)隊(duì),其任務(wù)是致力于開(kāi)發(fā)用于控制儀器的BASIC程序。他們敏感地注意到了儀器編程工作壓在工程師和科學(xué)家身上的負(fù)擔(dān),那就是開(kāi)發(fā)出一種用于,開(kāi)發(fā)儀器軟件程序的新工具。但是這種工具將采用什么形式呢?兩位NI公司的創(chuàng)始人Jim Truchard和Jeff Kodosky博士,連同Jack MacCrisken(后來(lái)成為一名顧問(wèn)),開(kāi)始著手開(kāi)發(fā)這種軟件工具。Truchard主要研究能夠顯著地改進(jìn)科學(xué)工作者和工程師們進(jìn)行測(cè)試開(kāi)發(fā)方式的工具。他想到的軟件產(chǎn)品模型是電子數(shù)據(jù)表格。電子數(shù)據(jù)表格解決了Truchard、 Kodosky 和MacCrisken都同樣面臨的問(wèn)題,即如何使非編程的計(jì)算機(jī)用戶能夠使用計(jì)算機(jī)。只不過(guò)電子數(shù)據(jù)表格處理的是財(cái)務(wù)計(jì)劃制定者的問(wèn)題,而這個(gè)三人組想的是如何幫助工程師和科學(xué)工作者。這三個(gè)人的口號(hào)是:發(fā)明出一種軟件工具,它對(duì)工程師和科學(xué)工作者的影響力要和電子數(shù)據(jù)表格對(duì)財(cái)務(wù)界的影響力一樣大。不過(guò)對(duì)此他們當(dāng)時(shí)并沒(méi)有一個(gè)具體明確的概念。
當(dāng)1984年蘋果公司推出了Macintosh 計(jì)算機(jī)之后,情況出現(xiàn)了重要的轉(zhuǎn)機(jī)。他們看到了這臺(tái)小機(jī)器上的圖形化特性后,就知道“圖形化”就是他們今后要走的道路。因?yàn)橄鄬?duì)于輸入- -串串的命令行進(jìn)行操作,人們使用鼠標(biāo)和圖形化界面時(shí)所發(fā)揮的創(chuàng)造力和高效率是前所未有的。圖形.化前面板是人與測(cè)量程序交互的最佳途徑。前面板與實(shí)際儀器的面板十分相似,實(shí)際上,這些程序就是虛擬儀器。理論上這是一個(gè)很好的概念,但當(dāng)他們?nèi)?shí)際操作的時(shí)候,這個(gè)概念卻帶來(lái)了意想不到的難題。在最初的構(gòu)想下,使用交互式面板作為用戶界面來(lái)寫測(cè)量程序,居然要比用傳統(tǒng)的BASIC還要困難得多。
所以,他們決定深入研究能否發(fā)明一種創(chuàng)新的方式,通過(guò)Macintosh的圖形化界面來(lái)建立一個(gè)更簡(jiǎn)單易用的具有交互面板的程序。他們研究了相當(dāng)數(shù)量的圖解技術(shù),但每次都還是回歸到數(shù)據(jù)流結(jié)構(gòu),因?yàn)檫@是最常用、也是最有效的方式。一旦他們能找出如何將結(jié)構(gòu)化編程的概念與數(shù)據(jù)流相結(jié)合,一切問(wèn)題就將迎刃而解。虛擬儀器技術(shù)由結(jié)構(gòu)化的數(shù)據(jù)流框圖和交互式面板組成。將圖標(biāo)與面板相結(jié)合的方式使虛擬儀器在其他程序框圖中也能被調(diào)用。這樣就能按照各種不同的需求靈活
地構(gòu)建復(fù)雜的多層次系統(tǒng)。
最后,他們必須要做的就是建立-一個(gè)軟件環(huán)境,能使科學(xué)家和工程師們可以簡(jiǎn)單快速地構(gòu)建起虛擬儀器程序。為了不被煩心的日常工作打擾,他們與一群年輕的畢業(yè)生一起選擇了一處遠(yuǎn)離公司的辦公室研究這個(gè)項(xiàng)目。懷著改變世界的使命感,這個(gè)小組設(shè)立了一個(gè)遠(yuǎn)大的目標(biāo)。面對(duì)許多開(kāi)發(fā)上的挑戰(zhàn),有時(shí)甚至懷疑能否開(kāi)發(fā)出LabVIEW,以及是否能讓人們?cè)敢赓?gòu)買和使用。1985年6月他們開(kāi)始編寫程序代碼,到10月完成了原型。1986年4月正式宣布了LabVIEW的誕生,同時(shí)NI的名字首次出現(xiàn)在雜志封面上。不過(guò)他們低估了后期調(diào)試所需耗費(fèi)的大量時(shí)間,因此直到1986年10月LabVIEW 1.0才正式發(fā)布。
自LabVIEW 1.0 發(fā)布的20年以來(lái),LabVIEW 從來(lái)沒(méi)有停止過(guò)創(chuàng)新的步伐。不斷地改進(jìn)、更新與擴(kuò)展,使LabVIEW牢牢占據(jù)了自動(dòng)化測(cè)試、測(cè)量領(lǐng)域的領(lǐng)先地位。LabVIEW 圖形化開(kāi)發(fā)方式已經(jīng)徹底改變了測(cè)試、測(cè)量和控制應(yīng)用系統(tǒng)的開(kāi)發(fā)。如今仍然在不斷地?cái)U(kuò)張它的應(yīng)用領(lǐng)域。
8、小結(jié)
LabVIEW是功能強(qiáng)大而又靈活的儀器應(yīng)用和分析軟件系統(tǒng),它使用圖形化編程語(yǔ)言,有時(shí)
也稱為G語(yǔ)言,創(chuàng)建成為虛擬儀器或VI的程序。用戶與程序通過(guò)前面板進(jìn)行交互。每個(gè)前面板
有一個(gè)與之對(duì)應(yīng)的框圖,也就是VI的源代碼。LabVIEW有很多內(nèi)置函數(shù),便于進(jìn)行編程。在框
圖中,將部件連接起來(lái)顯示數(shù)據(jù)流向。
使用NI范例查找器可以查找所學(xué)主題相關(guān)的示例,可以通過(guò)任務(wù)或目錄結(jié)構(gòu)來(lái)瀏覽示例。