LabVIEW與自動(dòng)測(cè)試系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
自動(dòng)測(cè)試系統(tǒng)(Automatic Test System, ATS)對(duì)于測(cè)試領(lǐng)域的工程人員來(lái)說(shuō)并不陌生,也被認(rèn)為是測(cè)試系統(tǒng)發(fā)展的一種趨勢(shì)。至于具體的概念可以到相關(guān)的網(wǎng)站或書(shū)籍上查找,此處并不會(huì)過(guò)多地涉及這些學(xué)術(shù)化的定義。得益于電子計(jì)算機(jī)(PC)發(fā)展以及電氣接口和通訊接口標(biāo)準(zhǔn)的建立和完善,自動(dòng)測(cè)試系統(tǒng)將儀器技術(shù)、計(jì)算機(jī)技術(shù)和通訊技術(shù)有機(jī)地結(jié)合起來(lái)從而形成了能夠?qū)崿F(xiàn)特定功能的測(cè)試平臺(tái)。正所謂“懶人推動(dòng)技術(shù)革新”,隨著測(cè)試儀器的增加、測(cè)試過(guò)程和規(guī)范的復(fù)雜、待測(cè)對(duì)象的多樣化和測(cè)試速率的加快等因素要求,自動(dòng)化也在測(cè)試中越來(lái)越受到工程人員的關(guān)注。對(duì)生產(chǎn)線而言,ATS能夠顯著提高測(cè)試效率并與生產(chǎn)控制和過(guò)程監(jiān)測(cè)有效地結(jié)合在一起;對(duì)研究人員而言,ATS能夠批量地管理各種不同類(lèi)型和接口的儀器,并且能夠?qū)崿F(xiàn)長(zhǎng)時(shí)間和監(jiān)控測(cè)試,自動(dòng)生成特殊要求的測(cè)試報(bào)告。
討論到自動(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)寫(xiě),因此寫(xiě)作labview或者其它的形式是不正確的。事實(shí)上,LabVIEW也能夠應(yīng)用于其它的領(lǐng)域,但是對(duì)測(cè)試測(cè)量領(lǐng)域而言,它似乎更加地游刃有余。首先,它的圖形化開(kāi)發(fā)環(huán)境更容易讓人上手,編寫(xiě)程序如同搭積木一般;其次,LabVIEW提供了豐富的信號(hào)處理函數(shù),并且能夠與MATLAB等專(zhuān)業(yè)的軟件完美地結(jié)合;再次,它提供了從上層界面到底層儀器驅(qū)動(dòng)一系列的解決方案,讓程序看起來(lái)更加地具有“藝術(shù)感”;此外,它提供了豐富的應(yīng)用于不同場(chǎng)合的工具包,幫助工程師迅速地解決測(cè)試測(cè)量中的困難;它支持各種各樣的儀器通訊接口,并提供了一系列便捷的儀器調(diào)試工具。(似乎有點(diǎn)廣告的嫌疑,但是它在測(cè)試測(cè)量領(lǐng)域的表現(xiàn)的確如此令人稱(chēng)道。)
當(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是一門(mén)非常優(yōu)秀的程序設(shè)計(jì)語(yǔ)言,無(wú)論是用于科研還是生產(chǎn)制造中,它的表現(xiàn)無(wú)疑是令人驚訝的。