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