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