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