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