LabVIEW與自動(dòng)測(cè)試系統(tǒng)
討論到自動(dòng)測(cè)試系統(tǒng)不得不提“虛擬儀器”的概念,這是由美國(guó)國(guó)家儀器公司(National Instruments, NI)提出來(lái)的。它將傳統(tǒng)儀器的功能進(jìn)行了剝離,充分地利用計(jì)算機(jī)技術(shù)作為測(cè)試測(cè)量的一個(gè)不可分割的部分。在傳統(tǒng)的測(cè)量?jī)x器中,基本上包含著數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)顯示三大部分,還有些會(huì)有數(shù)據(jù)分析功能。虛擬儀器將這3個(gè)部分進(jìn)行拆分,“測(cè)試儀器”只完成數(shù)據(jù)采集的功能(包括一些常用的數(shù)據(jù)處理,如濾波等),而將數(shù)據(jù)的顯示和后期處理過(guò)程交給運(yùn)行在計(jì)算機(jī)上的測(cè)試軟件完成。也就是說(shuō),虛擬儀器技術(shù)與運(yùn)行在計(jì)算機(jī)上的軟件是分不開(kāi)的。在硬件平臺(tái)的支持下,使用軟件定義儀器的功能。虛擬儀器并沒(méi)有限定上層軟件必須使用的語(yǔ)言,因?yàn)榈讓拥挠布脚_(tái)已經(jīng)提供了比較完善的應(yīng)用程序接口。
LabVIEW正是一種服務(wù)于測(cè)試測(cè)量的語(yǔ)言。這里需要穿插一下,LabVIEW是Laboratory Virtual instrument Engineering Workbench的簡(jiǎn)寫,因此寫作labview或者其它的形式是不正確的。事實(shí)上,LabVIEW也能夠應(yīng)用于其它的領(lǐng)域,但是對(duì)測(cè)試測(cè)量領(lǐng)域而言,它似乎更加地游刃有余。首先,它的圖形化開(kāi)發(fā)環(huán)境更容易讓人上手,編寫程序如同搭積木一般;其次,LabVIEW提供了豐富的信號(hào)處理函數(shù),并且能夠與MATLAB等專業(yè)的軟件完美地結(jié)合;再次,它提供了從上層界面到底層儀器驅(qū)動(dòng)一系列的解決方案,讓程序看起來(lái)更加地具有“藝術(shù)感”;此外,它提供了豐富的應(yīng)用于不同場(chǎng)合的工具包,幫助工程師迅速地解決測(cè)試測(cè)量中的困難;它支持各種各樣的儀器通訊接口,并提供了一系列便捷的儀器調(diào)試工具。(似乎有點(diǎn)廣告的嫌疑,但是它在測(cè)試測(cè)量領(lǐng)域的表現(xiàn)的確如此令人稱道。)
當(dāng)然,LabVIEW也具有一些不盡人意的缺點(diǎn)。由于它較好地封裝了底層的運(yùn)行結(jié)構(gòu),在對(duì)操作系統(tǒng)、內(nèi)存分配和回收、數(shù)據(jù)位的處理等方面的支持就不如C語(yǔ)言那樣“隨心所欲”了。例如,LabVIEW提供了很多對(duì)數(shù)組的操作函數(shù),如下圖所示。
圖 1 數(shù)組操作函數(shù)
盡管我們可以使用“Replace Array Subset”對(duì)數(shù)組中的元素進(jìn)行替換操作,但是在替換某個(gè)元素的同時(shí)也需要對(duì)其它所有的元素重新進(jìn)行賦值(盡管賦的是原來(lái)的值),這就會(huì)導(dǎo)致在并行處理同一個(gè)數(shù)組時(shí)會(huì)出現(xiàn)“數(shù)據(jù)競(jìng)爭(zhēng)”現(xiàn)象。這是由于數(shù)組的復(fù)制導(dǎo)致的,當(dāng)對(duì)同一片數(shù)組(如局域變量或全局變量)進(jìn)行操作時(shí),LabVIEW使用了復(fù)制數(shù)組整體的方式,因此在實(shí)際使用中應(yīng)該規(guī)避這種情況。
總而言之,LabVIEW是一門非常優(yōu)秀的程序設(shè)計(jì)語(yǔ)言,無(wú)論是用于科研還是生產(chǎn)制造中,它的表現(xiàn)無(wú)疑是令人驚訝的。
評(píng)論