20多年的持續(xù)創(chuàng)新
20多年以后,當(dāng)LabVIEW成為了工程師和科學(xué)家們的標(biāo)準(zhǔn)圖形化設(shè)計平臺,為其工程創(chuàng)新不斷提供源動力之時,LabVIEW的最初創(chuàng)始人們一定會回想起1.0版本誕生時他們對這一革命性的圖形化編程環(huán)境所抱有的期待和愿景……
1983年,NI的工程師們受到了電子制表軟件為金融領(lǐng)域帶來巨大便利的啟發(fā),也決定著手發(fā)明一種同樣高效的工具,幫助工程師和科學(xué)家們簡化測試測量自動化項目的開發(fā)過程。
與此同時,蘋果公司推出的Macintosh計算機(jī)的一系列圖形化特性也為他們提供了嶄新的思路。他們發(fā)現(xiàn),相對于輸入一串串的命令行進(jìn)行操作,人們使用鼠標(biāo)和圖形化界面時所發(fā)揮的創(chuàng)造力和高效率是前所未有的,因此“圖形化”編程理念成為了LabVIEW最根本的核心。
LabVIEW從最初就被設(shè)計為一種強(qiáng)大的高層架構(gòu)型編程語言,自1986年1.0版誕生以來,縱觀其20多年的發(fā)展(圖1),可以發(fā)現(xiàn),每次LabVIEW的主要升級版本的發(fā)布都包含了很多全新的特性。
圖1 LabVIEW 20多年的持續(xù)創(chuàng)新
LabVIEW 3.0首次實(shí)現(xiàn)了多平臺兼容的特性,保證相同的代碼可以運(yùn)行在多個操作系統(tǒng)中;LabVIEW 5則推出了實(shí)時(Real Time)模塊,允許工程師們將在主機(jī)上開發(fā)的LabVIEW代碼進(jìn)行自動編譯,使其運(yùn)行在實(shí)時硬件對象中。通過降低在實(shí)時系統(tǒng)中部署代碼的復(fù)雜度,這個創(chuàng)新的理念幫助工程師以一種更方便的方式進(jìn)行控制應(yīng)用的開發(fā);而LabVIEW 7與FPGA技術(shù)的結(jié)合則又是該理念的進(jìn)一步升華,從而讓不具備VHDL編程經(jīng)驗的工程師們也同樣可以進(jìn)行硬件設(shè)計,并且LabVIEW本質(zhì)上的數(shù)據(jù)流并行性非常符合FPGA并行電路特性,在此基礎(chǔ)上可以達(dá)到很好的空間利用和定時性能;LabVIEW 8.2作為20周年的紀(jì)念版,首次推出了中文版,使中國工程師們也能用自己的母語編程,最大程度地提升開發(fā)效率;最新的LabVIEW 8.5則更為多核處理器技術(shù)提供了強(qiáng)有力的支持,同時也推出了基于UML語言規(guī)范的狀態(tài)圖設(shè)計模塊。綜合而言,LabVIEW通過不斷地融入最新商業(yè)可用技術(shù)(圖2),讓使用者無需花費(fèi)過多的精力去學(xué)習(xí)每個技術(shù)的細(xì)節(jié)就可以直接使用,提升了系統(tǒng)的性能,保證了工程師們長期的投資。
圖2 LabVIEW不斷融入最新商業(yè)可用技術(shù)
經(jīng)過這一路20多年的持續(xù)創(chuàng)新,LabVIEW憑其核心的圖形化編程理念,突破了原先數(shù)據(jù)采集與儀器控制的應(yīng)用領(lǐng)域,蛻變?yōu)樵O(shè)計、控制與測試的圖形化系統(tǒng)設(shè)計標(biāo)準(zhǔn)平臺,其強(qiáng)大的特性(詳全的專業(yè)附加工具包、靈活多樣的計算模型、從PC、FPGA到芯片級的運(yùn)行平臺等)進(jìn)一步幫助工程師在同一個LabVIEW平臺上集成從設(shè)計、原型到發(fā)布的全過程,全面提高整個工程流程的效率。
強(qiáng)大的圖形化設(shè)計平臺
詳全的專業(yè)附加工具包
我們知道,作為功能強(qiáng)大的圖形化系統(tǒng)設(shè)計平臺,LabVIEW所涉及的應(yīng)用領(lǐng)域變得越來越廣泛,因此為了讓不同應(yīng)用領(lǐng)域的工程師們都能以一種更靈活的方式來使用LabVIEW進(jìn)行系統(tǒng)開發(fā),安裝附加工具包成為了一個很好的解決方法。
無論是信號處理、自動化測試、工業(yè)控制還是嵌入式設(shè)計等等,LabVIEW都提供了專業(yè)的附加工具包,從而方便工程師們通過靈活的組合實(shí)現(xiàn)高效的開發(fā)。
例如,僅僅在信號處理方面,LabVIEW就提供了聲音與振動分析套件(倍頻程及階次分析等)、調(diào)制工具包(AM、FM、ASK、QAM等調(diào)制算法)、頻譜測量工具包(星座圖、I-Q數(shù)字解調(diào)等)、數(shù)字濾波器設(shè)計工具包以及高級信號處理工具包(時頻聯(lián)合分析、小波分析等等)。與其它編程語言有所不同,這些LabVIEW工具包將各自專業(yè)領(lǐng)域的算法和程序進(jìn)行了優(yōu)化的封裝,讓工程師通過直接調(diào)用其中的子VI(甚至僅僅通過簡單的配置)得到相應(yīng)的分析結(jié)果,大大減少了開發(fā)的時間和精力。
值得一提的是,除了NI官方提供的附加工具包以外,LabVIEW愛好者們也會共享一些自己編寫的小型工具包,幫助LabVIEW應(yīng)用在更多更廣的領(lǐng)域。這種類似于Wiki百科的大規(guī)模協(xié)作的發(fā)展模式使LabVIEW能夠以一種更積極、開放的方式不斷發(fā)展創(chuàng)新。
靈活多樣的計算模型
計算模型,簡而言之,是一種用于描述軟件模塊功能的表達(dá)方式,在學(xué)術(shù)界這個術(shù)語一直被用來抽象定義計算機(jī)系統(tǒng)。由于不同的計算模型在不同領(lǐng)域和場合的應(yīng)用上往往都存在相對的優(yōu)勢和劣勢,為了實(shí)現(xiàn)圖形化系統(tǒng)設(shè)計的遠(yuǎn)景目標(biāo),LabVIEW必須具備使用不同計算模型進(jìn)行編程的能力,而讓我們欣喜的是,這個想法已經(jīng)逐漸成為現(xiàn)實(shí)。
如今的LabVIEW已經(jīng)不再僅限于數(shù)據(jù)流編程這一種方式,它還包括了可以通過DLL將C或Java等文本語言直接調(diào)用,使用Mathscript節(jié)點(diǎn)實(shí)現(xiàn)文本數(shù)學(xué)編程,在LabVIEW下進(jìn)行仿真建模以及使用基于UML規(guī)范的狀態(tài)圖實(shí)現(xiàn)高抽象層的系統(tǒng)架構(gòu)等等。這些靈活多樣的計算模型允許工程師們根據(jù)不同的應(yīng)用領(lǐng)域選擇最為合適的一種進(jìn)行開發(fā),一方面能夠讓工程師們使用他們熟悉的計算模型進(jìn)行開發(fā),另一方面,又可以充分利用其它計算模型的優(yōu)勢和特性,實(shí)現(xiàn)系統(tǒng)級開發(fā)的效率最優(yōu)。
例如,LabVIEW用戶在設(shè)計一個激光控制系統(tǒng)時,可以使用狀態(tài)圖來定義狀態(tài),使用數(shù)據(jù)流方式在FPGA芯片中實(shí)現(xiàn)控制邏輯,并使用仿真模型來對激光進(jìn)行動態(tài)仿真。可見,這種“采各家之長”的理念,讓LabVIEW甚至超越了編程語言的范疇,成為了更高層的系統(tǒng)級的設(shè)計平臺。
從PC、FPGA到芯片級的運(yùn)行平臺
自LabVIEW誕生以來,NI的工程師們就有一個夢想,希望能夠?qū)abVIEW的代碼“編譯直接下載到目標(biāo)硬件”中,但在當(dāng)時他們并不清楚如何將其變?yōu)楝F(xiàn)實(shí)。
2005年推出的LabVIEW 8中為分布在不同計算目標(biāo)上的各種應(yīng)用程序的開發(fā)與發(fā)布提供了有力的支持。這種“分布式智能”的架構(gòu)使相同的LabVIEW代碼可以下載到不同的硬件平臺中運(yùn)行,而這正是實(shí)現(xiàn)上述夢想的一個基礎(chǔ)條件。
如今的LabVIEW已經(jīng)可以通過不同的模塊將代碼下載到從PC、FPGA到芯片級的硬件平臺中,這個特性使工程師們在產(chǎn)品設(shè)計、原型到發(fā)布三個過程中都能利用相同的代碼,減少了代碼移植所帶來的風(fēng)險和問題。
其中,LabVIEW與FPGA的完美結(jié)合是最為靚麗的一抹。FPGA作為一種主流的技術(shù),它通常需要使用VHDL這樣的硬件語言來開發(fā),這種語言需要很長的學(xué)習(xí)時間,以及深厚的硬件技術(shù)背景,“進(jìn)入門檻”相對較高。而LabVIEW本身并行化的編程方式允許工程師們能以直觀的方式來實(shí)現(xiàn)FPGA的邏輯功能(圖3),因此無需VHDL就可以讓更多的工程師都能得益于FPGA技術(shù)。