測(cè)試與數(shù)據(jù)采集以及LabVIEW
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1.引言
現(xiàn)代科技的發(fā)展日新月異。計(jì)算機(jī)技術(shù)則尤為如此。計(jì)算機(jī)強(qiáng)大的處理能力,使得它成為一種很好的工具,其應(yīng)用范圍也越來(lái)越廣泛。在工業(yè)自動(dòng)化和測(cè)試及測(cè)量領(lǐng)域,傳統(tǒng)的方法有許多重復(fù)建設(shè),顯然已經(jīng)不能適應(yīng)時(shí)代發(fā)展的需要了。如何利用先進(jìn)的計(jì)算機(jī)技術(shù)提高效率則成為該領(lǐng)域迫切需要解決的問題。1986年,美國(guó)NI公司(Nation Instrument)提出了虛擬儀器的概念,提出了"軟件即儀器"的口號(hào),徹底打破了傳統(tǒng)儀器只能由生產(chǎn)廠家定義,用戶無(wú)法改變的局面,從而引起儀器和自動(dòng)化工業(yè)的一場(chǎng)革命。隨著現(xiàn)代軟件和硬件技術(shù)的飛速發(fā)展,儀器的智能化和虛擬化已經(jīng)成為未來(lái)各級(jí)實(shí)驗(yàn)室以及研究機(jī)構(gòu)發(fā)展的方向。虛擬儀器,顧名思義,它應(yīng)具有傳統(tǒng)儀器的功能,又有別于其傳統(tǒng)儀器。它的特點(diǎn)體現(xiàn)在其靈活性上,它能夠充分利用和發(fā)揮現(xiàn)有計(jì)算機(jī)先進(jìn)技術(shù),使儀器的測(cè)試和測(cè)量及自動(dòng)化工業(yè)的系統(tǒng)測(cè)試和監(jiān)控變得異常方便和快捷。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench實(shí)驗(yàn)室虛擬儀器工程平臺(tái))是一個(gè)程序開發(fā)環(huán)境。類似于C、BASIC。但LabVIEW的特點(diǎn)在于,它使用圖形化編程語(yǔ)言G在流程圖中創(chuàng)建源程序,而非使用基于文本的語(yǔ)言來(lái)產(chǎn)生源程序代碼。LabVIEW還整合了與諸如滿足GPIB、VXI、RS-232和RS-485以及數(shù)據(jù)采集卡等硬件通訊的全部功能。內(nèi)置了便于 TCP/IP、Active X等軟件標(biāo)準(zhǔn)的庫(kù)函數(shù)。雖然LabVIEW是一個(gè)通用編程系統(tǒng),但是它也包含為數(shù)據(jù)采集和儀器控制特別設(shè)計(jì)的函數(shù)庫(kù)和開發(fā)工具。LabVIEW程序被稱為虛擬儀器(VIs),是因?yàn)樗鼈兊耐庥^和操作能模仿實(shí)際的儀器。由于LabVIEW所使用的術(shù)語(yǔ)、圖標(biāo)和概念都是技術(shù)人員、科學(xué)家、工程師所熟悉的,故而即使用戶沒有多少編程經(jīng)驗(yàn),同樣也能利用LabVIEW來(lái)開發(fā)自己的應(yīng)用程序。
創(chuàng)建虛擬儀器的過程共分三步:(1)虛擬儀器的交互式用戶接口被稱為前面板,因?yàn)樗7铝藢?shí)際儀器的面板。前面板包含旋鈕、按鈕、圖形和其它的控制與顯示對(duì)象。通過鼠標(biāo)和鍵盤輸入數(shù)據(jù)、控制按鈕,可在計(jì)算機(jī)屏幕上觀看結(jié)果。(2)虛擬儀器從流程圖中接收命令(用G語(yǔ)言創(chuàng)建)。流程圖是一個(gè)編程問題的圖形化解決方案。流程圖也是虛擬儀器的源代碼。(3)一個(gè)虛擬儀器的圖標(biāo)和連接就象一個(gè)圖形(表示某一虛擬儀器)的參數(shù)列表。這樣,其它的虛擬儀器才能將數(shù)據(jù)傳輸給一個(gè)子儀器。圖標(biāo)和連接允許將此儀器作為最高級(jí)的程序,也可以作為其它程序或子程序中的子程序(子儀器)。
2.2圖形化編程環(huán)境
該環(huán)境包含前面板、流程圖、圖標(biāo)和連接。在軟件啟動(dòng)時(shí),系統(tǒng)會(huì)建立一個(gè)缺省名為Untitled.1的文件(VI)。該文件包含兩個(gè)窗口,一個(gè)用以編輯前面板,另一個(gè)用作編輯流程圖。前面板就象是虛擬儀器的用戶接口,尤如實(shí)際儀器的面板。前面板基本上是控制和顯示對(duì)象的集合。用以控制模擬儀器輸入設(shè)備,為虛擬儀器的流程圖提供數(shù)據(jù)。顯示模擬儀器的輸出設(shè)備及流程圖中獲得或產(chǎn)生的數(shù)據(jù) 。
流程圖窗口用以編輯虛擬儀器的圖形化源代碼。通過連線將輸出、接收數(shù)據(jù)的對(duì)象連接起來(lái)創(chuàng)建流程圖,就能實(shí)現(xiàn)特定的功能,控制執(zhí)行的流程。需特別指明的是:LabVIEW運(yùn)行是數(shù)據(jù)流驅(qū)動(dòng)的。簡(jiǎn)單地說,就是只有當(dāng)所有的輸入數(shù)據(jù)都準(zhǔn)備好的時(shí)候,一個(gè)節(jié)點(diǎn)才能執(zhí)行其功能,當(dāng)節(jié)點(diǎn)執(zhí)行完后,它所有的輸出端口都會(huì)產(chǎn)生一個(gè)數(shù)據(jù)值。數(shù)據(jù)都是從源端流到目的端。數(shù)據(jù)流不同于執(zhí)行一個(gè)傳統(tǒng)程序的控制流方法(通過執(zhí)行一系列的指令來(lái)實(shí)現(xiàn)的)??刂屏鲌?zhí)行是指令驅(qū)動(dòng)。而數(shù)據(jù)流執(zhí)行是數(shù)據(jù)流驅(qū)動(dòng)或依賴數(shù)據(jù)的。這里提到的節(jié)點(diǎn)是程序執(zhí)行的元素。它們類似于傳統(tǒng)編程語(yǔ)言中的狀態(tài)、操作、函數(shù)和子程式。LabVIEW包含廣泛用于數(shù)學(xué)計(jì)算、比較、轉(zhuǎn)換、輸入/輸出的函數(shù)庫(kù)。另一類節(jié)點(diǎn)類型是結(jié)構(gòu)。結(jié)構(gòu)就是傳統(tǒng)編程語(yǔ)言的循環(huán)、條件描述的圖形表示,不斷的重復(fù)和執(zhí)行代碼。 LabVIEW也提供了用于連到外部基于文本的代碼和用于計(jì)算基于文本的公式的特殊節(jié)點(diǎn)。 [!--empirenews.page--]
圖標(biāo)和連接--當(dāng)一個(gè)虛擬儀器的圖標(biāo)被放置在另一個(gè)虛擬儀器的流程圖中時(shí),它就是一個(gè)子儀器或說是LabVIEW的一個(gè)子程序。子儀器的控制和顯示對(duì)象從調(diào)用它的儀器流程中獲得數(shù)據(jù),然后將處理后的數(shù)據(jù)返回給它。連接是對(duì)應(yīng)于子儀器控制和顯示對(duì)象的一系列連線端子。圖標(biāo)既包含虛擬儀器用途的圖形化描述,也包含儀器連線端子的文字說明。連接更象是功能調(diào)用的參數(shù)列表。連線端子就是類似于參數(shù)。每個(gè)終端都對(duì)應(yīng)于前面板的一個(gè)特別的控制和顯示對(duì)象。連接從它的輸入連線端子接收數(shù)據(jù),然后通過子儀器的控制對(duì)象將數(shù)據(jù)傳輸給子儀器的代碼。每個(gè)虛擬儀器都有一個(gè)缺省的圖標(biāo),位于兩個(gè)窗口的右上角。當(dāng)然,圖標(biāo)可根據(jù)用戶的需要進(jìn)行修改。每個(gè)虛擬儀器都有一個(gè)連接。在前面板的儀器圖標(biāo)上右擊鼠標(biāo),選擇Show Connector,即可看到該儀器的具體連接。第一次顯示時(shí),會(huì)有缺省的模式。若用戶想修改,則可選擇Pattern或Use/Remove Terminal來(lái)進(jìn)行新的模式設(shè)置。
2.3 編程工具介紹
LabVIEW提供了三個(gè)模板來(lái)編輯虛擬儀器:工具模板(Tools Palettes)、控制模板(Controls Palettes)、功能模板(Functions Palettes)。工具模板提供用于圖形操作的各種工具,諸如移動(dòng),選取,設(shè)置卷標(biāo)、斷點(diǎn),文字輸入等等??刂颇0鍎t提供所有用于前面板編輯的控制和顯示對(duì)象的圖標(biāo)以及一些特殊的圖形。功能模板包含一些基本的功能函數(shù),也包含一些已做好的子儀器。這些子儀器能實(shí)現(xiàn)一些基本的信號(hào)處理功能,具有普遍性。其中控制、功能模板都有預(yù)留端,用戶可將自己制做的子儀器圖標(biāo)放入其中,便于日后調(diào)用。
3 儀器的開發(fā)
熟悉了環(huán)境之后,便可以來(lái)開發(fā)自己的虛擬儀器了。由于實(shí)驗(yàn)條件的限制,本實(shí)驗(yàn)只做虛擬儀器的后兩部分,實(shí)驗(yàn)中所采用的信號(hào)不是來(lái)自外部采集所得,而是通過軟件的方法獲得,也就是在流程圖中編制一個(gè)簡(jiǎn)單的信號(hào)發(fā)生器,產(chǎn)生一些周期信號(hào),沖激波及一些虛擬數(shù)據(jù)(用于擬合)。前面板的設(shè)計(jì)分為兩部分--顯示部分和控制部分,并以左右形式排列在前面板編輯窗口中。其中顯示部分包含原始信號(hào)的顯示和信號(hào)處理后的結(jié)果顯示??刂撇糠职恍﹨?shù)的設(shè)置,功能的選擇,還有系統(tǒng)控制。為了便于用戶使用該虛擬儀器,發(fā)揮虛擬儀器的特點(diǎn),在前面板上加了一個(gè)More Info的控制鈕,當(dāng)運(yùn)行時(shí),點(diǎn)擊該按鈕即可看到該儀器使用的詳細(xì)說明,類似于傳統(tǒng)儀器的說明書。另外,為了使面板更接近于真實(shí)的儀器面板,利用控制模板中Decorations>> Recessed box實(shí)現(xiàn)凸凹的效果;為了使控制部分和顯示部分一一對(duì)應(yīng)起來(lái),防止用戶的誤操作,對(duì)于某些暫不使用的按鈕,利用屬性Visible、 Disable來(lái)實(shí)現(xiàn)按鈕的隱藏、灰顯效果。
至于流程圖,它是和前面板一一對(duì)應(yīng)的。整體上采用一個(gè)While Loop結(jié)構(gòu),由系統(tǒng)控制按鈕來(lái)控制。其內(nèi)部大體包含兩部分:信號(hào)發(fā)生器和信號(hào)處理部分。這兩部分均用Case窗來(lái)實(shí)現(xiàn)。信號(hào)處理部分的功能實(shí)現(xiàn)較多,因而對(duì)每一個(gè)功能采用定制子儀器的方法將其做成一個(gè)個(gè)子儀器,用特定的圖標(biāo)表示。此法可減少流程圖的復(fù)雜程度,便于數(shù)據(jù)流的跟蹤和調(diào)試。