虛擬儀器與測量技術(shù)_第1頁
虛擬儀器與測量技術(shù)_第2頁
虛擬儀器與測量技術(shù)_第3頁
虛擬儀器與測量技術(shù)_第4頁
虛擬儀器與測量技術(shù)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、虛擬儀器與測量技術(shù) 北京大學(xué)信息科學(xué)技術(shù)系電路基礎(chǔ)教學(xué)中心2006年6月10日目錄第一講 虛擬儀器與測試技術(shù)概述第二講 LabVIEW基礎(chǔ)21 LabVIEW程序的基本構(gòu)成22 LabVIEW的模板23 子VI的創(chuàng)建第三講 程序結(jié)構(gòu)31 For循環(huán)結(jié)構(gòu)32 Whiler循環(huán)結(jié)構(gòu)33 順序結(jié)構(gòu)34 選擇結(jié)構(gòu)35 公式節(jié)點第四講 數(shù)據(jù)采集和信號輸出41 數(shù)據(jù)采集系統(tǒng)的構(gòu)成42 模擬輸出43 模擬輸入實驗一 信號發(fā)生與顯示實驗二 頻率特性的測量利用虛擬儀器實現(xiàn)數(shù)據(jù)采集和信號輸出實驗三 元件伏安特性測量1 二極管正向伏安特性測量2 三極管特性的測量第一講 虛擬儀器與測量技術(shù)概述虛擬儀器(Virtual

2、 Instruments)技術(shù)是檢測技術(shù)與計算機和通信技術(shù)有機結(jié)合的產(chǎn)物,由美國國家儀器 ( National Instruments)公司于1986年提出,是指在通用計算機上添加軟件和一些硬件模塊構(gòu)成一套根據(jù)個人需求來獲取數(shù)據(jù),分析數(shù)據(jù)和輸出可視化數(shù)據(jù)的計算機儀器系統(tǒng)。它利用PC機的顯示功能模擬真實儀器的控制面板,以多種形式表達輸出檢測結(jié)果,利用PC軟件功能實現(xiàn)信號的運算、分析、處理,由I/O接口設(shè)備(卡)完成信號的采集、測量與調(diào)理,從而完成各種測試功能,用戶操作這臺計算機就像操作一臺真實的儀器。虛擬儀器系統(tǒng)的構(gòu)成是在以計算機為核心的硬件平臺支持下,通過專用軟件(如LabVIEW、VEE)來

3、實現(xiàn)儀器的測試功能,而且可以通過不同測試功能的軟件模塊組合來實現(xiàn)多種測試功能;接口卡是外界電信號與計算機之間的橋梁和紐帶,具有數(shù)據(jù)采集、信號控制和輸出功能,它將從傳感器或相應(yīng)設(shè)備獲取的信號經(jīng)A/D轉(zhuǎn)換,送給計算機,并接受計算機傳來的數(shù)據(jù)或控制信號,將模擬或數(shù)字信號傳遞給外設(shè)。在幾種主要虛擬儀器系統(tǒng)開發(fā)平臺中,以美國國家儀器公司的LabVIEW影響最大,LabVIEW作為一個圖形化的開發(fā)環(huán)境,帶有大量的內(nèi)置功能,能夠完成仿真、數(shù)據(jù)采集、儀器控制、測量分析和數(shù)據(jù)顯示等任務(wù)。虛擬儀器的系統(tǒng)構(gòu)成如下圖所示:被測信號PC-DAQGPI儀器串口儀器VXI模塊PXI模塊計算機軟件結(jié)構(gòu)利用虛擬儀器可以構(gòu)成常規(guī)

4、儀器不易完成的測試系統(tǒng),如大量重復(fù)的測量,長時間的數(shù)據(jù)采集,特性曲線的測量等。在基礎(chǔ)電子線路實驗中,測量頻率響應(yīng)曲線是必需和常見的實驗內(nèi)容,如測量濾波器的通頻帶、放大器的頻率特性、萬用表的頻率特性等,傳統(tǒng)的測試方法需要信號源、示波器和直流電源這些傳統(tǒng)設(shè)備,測試方法是逐點設(shè)置頻率,逐點測量輸入輸出電壓,并要進行數(shù)據(jù)的處理,然后逐點繪圖,完成一次測試過程需要較長的時間,并且精度不是很高,如果利用虛擬儀器技術(shù),瞬間即可高精度地完成同樣的測試過程,大大提高了效率。我們使用的傳統(tǒng)儀器主要有三個部分:數(shù)據(jù)采集與控制、數(shù)據(jù)分析和數(shù)據(jù)顯示,如我們用示波器探頭采集信號,屏幕上顯示信號,用頻譜儀進行譜分析等,而虛

5、擬儀器(Virtual Instruments)的概念是為了適應(yīng)計算機而提出的,即利用計算機的強大功能,通過圖形化的人機界面,配合不同的傳感器和接口卡為電路提供信號源,對電路進行測試,或者對儀器進行遠程控制,所需的操作和信號的顯示都是利用鍵盤、鼠標和顯示器來完成,從而實現(xiàn)了傳統(tǒng)儀器的功能,無須直接操作儀器,甚至可在一臺計算機上實現(xiàn)幾種不同儀器的功能。隨著計算機技術(shù)和虛擬儀器技術(shù)的發(fā)展,同一臺虛擬儀器可在更多場合應(yīng)用,比如既可在電量測量中應(yīng)用,又可在振動、運動和圖像等非電量測量中應(yīng)用,甚至在網(wǎng)絡(luò)測控中應(yīng)用??傊摂M儀器技術(shù)是自動測控系統(tǒng)的發(fā)展趨勢。11 儀器與測量技術(shù)的幾個發(fā)展階段1. 模擬儀

6、器 指針式萬用表、晶體管電壓表等。2. 數(shù)字化儀器 如數(shù)字電壓表、數(shù)字頻率計等。3. 智能儀器 這類儀器內(nèi)置微處理器, 既能進行自動測試又具有一定的數(shù)據(jù)處理功能。4. 虛擬儀器 12 虛擬儀器的特點虛擬儀器軟件體系結(jié)構(gòu)(VISA,Virtual Instrumentation Software Architecture), 使得不管虛擬儀器使用的計算機或操作系統(tǒng)是什么 , 所編寫的用戶應(yīng)用程序都是可移植的, 軟件模塊具有通用性。軟件代替硬件、以圖形代替代碼、以組態(tài)代替編程、以虛擬代替真實儀器組建自動測試系統(tǒng)13 虛擬儀器的優(yōu)點儀器功能是用戶根據(jù)需要由軟件來定義。儀器性能改進或功能擴展只需相關(guān)軟

7、件設(shè)計更新。研制周期相對短與計算機同步發(fā)展,靈活開放,易于網(wǎng)絡(luò)化14 虛擬儀器的發(fā)展 虛擬儀器的發(fā)展有兩條主線 :GPIB VXI PXI 總線方式 ( 適合大型集成系統(tǒng) );PC 插卡式并行接口式串行接口式 (USB)( 普及型系統(tǒng) ) 。PC-DAQ 測量系統(tǒng)是構(gòu)成 VI 的最基本的方式 , 也是最廉價的方式。15 自動測量系統(tǒng)應(yīng)用場合高速操作:例如,在短時間內(nèi)要收集大量數(shù)據(jù)的脈沖功率診斷。周期長、速度低的操作 : 例如,環(huán)境監(jiān)視和控制。重復(fù)性的操作:例如,自動化的測試和校正,以及需要執(zhí)行多次的實驗。 遠距離操作 ( 遠程控制 ) 或具有危險性的操作: 讓操作人員在現(xiàn)場執(zhí)行這種操作是不切實

8、際或不可能的,或者操作人員在現(xiàn)場會有危險。超過人類自身能力的高精度操作需要大量輸入和輸出的復(fù)雜操作第二講 LabVIEW基礎(chǔ)LabVIEW是美國NI公司(National Instruments Corporation)開發(fā)的軟件平臺,將計算機的數(shù)據(jù)分析和顯示能力與儀器驅(qū)動器融合在一起,為用戶設(shè)計虛擬儀器提供了軟件工具和開發(fā)環(huán)境。LabVIEW和C及C+一樣,是一種程序開發(fā)語言,但其區(qū)別在于它是使用圖形化編程語言G語言(graphical language),這種編程語言采用流程圖形式開發(fā)應(yīng)用程序。它自帶的函數(shù)庫可用于數(shù)據(jù)采集、串行設(shè)備的控制、數(shù)據(jù)分析和顯示等。在LabVIEW環(huán)境下,我們每創(chuàng)

9、建一個虛擬儀器即VI,相當于傳統(tǒng)編程語言中的函數(shù),可作為子VI 調(diào)用,每個VI由三個部分組成:前面板(Panel)、流程圖(Diagram)和圖標/連接器(Connector),前面板是用戶界面,用于顯示控制端子和顯示端子, 便于在程序運行過程中操作和觀測。流程圖使用節(jié)點、端子和連線創(chuàng)建可執(zhí)行程序代碼,圖標/連接器用于在主程序中調(diào)用子程序。21 LabVIEW程序的基本構(gòu)成LabVIEW與虛擬儀器有著緊密聯(lián)系,在LabVIEW中開發(fā)的程序都被稱為虛擬儀器(VI),其擴展名默認為vi。所有的VI都包括前面板、流程圖和圖標連接器三部分。前面板是圖形用戶界面,有交互式的輸入和輸出兩類對象,分別被稱為

10、Control(控制器)和 Indicator(顯示器)。Control(控制器)包括各種開關(guān)、旋鈕和按鍵等, Indicator(顯示器)包括圖形、Chart、LED和其他顯示輸出對象。流程圖是定義VI功能化的源代碼,其作用是從前面板上的輸入控件獲得信息,然后進行計算和處理,最后在輸出控件中顯示結(jié)果,在流程圖上的編程元素除了與前面板對應(yīng)的連線端子外,還有函數(shù)、子VI、常量、結(jié)構(gòu)和連線等。 如果將虛擬儀器與標準儀器相比較,那么前面板相當于儀器面板,而流程圖相當于儀器箱內(nèi)的功能部件。VI具有層次化和結(jié)構(gòu)化的特征,一個VI可以作為另一個VI的子程序被調(diào)用,圖標用于在主VI的流程圖中標識被調(diào)用的子程

11、序,連接器相當于圖形化的子程序參數(shù)。22 LabVIEW模板由開始程序National Instruments LabVIEWLabVIEW,選擇NEW VI進入LabVIEW環(huán)境,顯示底色為灰色的前面板,點擊Windowsshow diagram顯示流程圖面板,點擊WindowsShow panel,則又切換至前面板,在前面板,選WindowsShow Controls Palette/Shows Tools Palette顯示工具模板和控制模板(見下圖),一些控制量如旋鈕和開關(guān)等的圖標在控制模板上,選擇這些圖標并放置在前面板上,會在流程圖上出現(xiàn)相應(yīng)的端子,由此在被前面板控制程序中的數(shù)據(jù),在

12、流程圖面板,選WindowsShow Functions Palette,顯示功能模板,可在流程圖面板上調(diào)用它上面的功能函數(shù)創(chuàng)建程序,循環(huán)、數(shù)學(xué)運算、比較和公式節(jié)點等在這些模板中調(diào)用。221工具模板工具模板上的可選工具介紹 Automatic Tool Selection ( 自動工具選擇 )Positioning ( 定位工具 )Operating ( 操作工具 )Object Shortcut ( 對象快捷菜單 )Scrolling( 滾動窗口 )Labeling ( 標簽工具 )Wring( 連線工具 )Probe ( 探針工具 )Breakpoint( 斷點操作 )Color Copy

13、ing ( 復(fù)制顏色 )Coloring ( 著色工具 )Set Color(用來給對象定義顏色 , 包括對象的前景色和背景色)默認狀態(tài)下工具選擇是最頂端的Automatic Tool Selection ( 自動工具選擇 ),如果該工具處于選中狀態(tài) , 則在前面板和框圖中的對象上移動鼠標指針時 ,LabVIEW 會根據(jù)鼠標指針所指對象類型和位置的不同而自動選擇合適的工具用于操作前面板的控制器和顯示器。使用它向數(shù)字或字符串控件中鍵入值時 , 工具會變成標簽工具。當用于選擇、移動對象或改變對象的大小時,鼠標指針會變成各種方向的箭頭形狀。文本工具用于輸入標簽 (Label) 或標題說明 (Capt

14、ion) 的文本或者創(chuàng)建自由標簽 (Free Labe1)。連線工具用于在框圖上連線及在前面板上建立連接器。當把該工具放在任一條連線上時 , 在 Context Help 窗口會顯示連線的數(shù)據(jù)類型,使用該工具在對象上單擊鼠標左鍵 ,可以彈出對象 的快捷菜單,使用該工具時不需要使用滾動條便可在窗口中漫游,使用斷點工具可在 VI 的框圖對象 ( 子 VI 、函數(shù)、節(jié)點、 連線和結(jié)構(gòu) ) 上設(shè)置斷點,可在框圖程序內(nèi)的連線上設(shè)置探針,通過探針窗口可觀察連線上的數(shù)據(jù)變化狀況,當然必須在數(shù)據(jù)流過之前設(shè)置探針。 默認狀態(tài)下 Automatic Tool Selection 被選中。單擊該按鈕將取消該工 具的

15、選擇,按下 Shift+Tab 鍵將恢復(fù)該工具的選中狀態(tài)。當 Automatic Tool Selection 被選中時,單擊其他任一個工具 , 將取消 Automatic Tool Selection 的選中狀態(tài)。此時,按下 Tab 鍵或者 Shift+Tab 鍵 ,都可以恢復(fù) Automatic Tool Selection 的選中狀態(tài)。在 Automatic Tool Selection 沒有被選中時 , 如果當前窗口是前面板 ,按下 Tab 鍵使得選中工具在 Operating,Positioning,Labeling 和 Coloring 之間按順序循環(huán)切換。如果當前窗口是流程圖窗口

16、, 則按下 Tab 鍵將使得選中工具在Operating,Positioning,Labeling 和 Wiring 之間按順序循環(huán)切換。在前面板或流程圖空白區(qū)域中按下 Shift和鼠標右鍵 ,可以彈 出臨時的 Tools 模板 , 這樣就可以把浮動的 Tools 模板窗口關(guān) 閉 ,只有需要切換工具的時候 ,才彈出臨時模板 , 選擇新的工 具 ,從而節(jié)省空間用于程序編輯操作。23 子VI的創(chuàng)建創(chuàng)建信號發(fā)生器的圖標和連接器,在前面板中右鍵單擊窗口右上角圖標,Edit Icon,用鉛筆工具和文本工具編輯圖標,按Ok后編好的圖標將顯示在右上角,再右鍵點圖標選Show Connector,設(shè)置連接器端

17、子連接模式,圖標將變?yōu)檫B接器端子連接框圖,并自動根據(jù)控制對象和顯示對象的數(shù)目確定連接模式,如本例左面4個方框右面1個方框,中間兩個方框,左面為輸入量或控制量,右面為輸出量或顯示量,點左面任意方框,光標自動變成連線工具,單擊一個控制對象如幅度,該部分將被虛線框包圍,在空白處點擊鼠標,虛線消失,選中的端子變暗,表明連接成功,幅度與流程圖中的的端子相連接,這樣可以在面板上控制流程中的數(shù)據(jù),將所需要的端子全部連接完成后,存貯,這樣一個VI就完成了,它可以被其他程序調(diào)用。下面幾張圖可以對LabVIEW有一些感性的認識。圖21 LabVIEW前面板(Front Panel)圖22 LabVIEW流程圖(B

18、lock Diagram)圖23 LabVIEW層次圖最后,介紹一下LabVIEW的主要特點:LabVIEW使用所見即所得的可視化技術(shù)建立人機界面,并且是針對測試測量和過程控制領(lǐng)域的。 LabVIEW提供了許多儀器面板中的控制對象如:表頭、旋鈕、開關(guān)、坐標圖等。 用戶還可以通過控制編輯器將現(xiàn)有的控制對象修改為適合自己工作領(lǐng)域的控制對象。 LabVIEW使用圖標表示功能模塊,使用圖標之間的連線表示各模塊間的數(shù)據(jù)傳遞。 因為使用為大多數(shù)工程師和科學(xué)家熟悉的數(shù)據(jù)流程圖式的語言書寫程序代碼所以編程過程和思維過程非常類似。 這樣不僅使編寫程序變得簡單而且寫出來的程序更易懂。LabVIEW繼承了高級編程語

19、言的結(jié)構(gòu)化和模塊化編程的優(yōu)點。 LabVIEW支持模塊、化層次化設(shè)計。在一個VI中可能包含了許多子VI。 這種次結(jié)構(gòu)的設(shè)計增強了程序的可讀性,不僅LabVIEW系統(tǒng)本身提供了許多常用的VI, 而且因為LabVIEW支持分層結(jié)構(gòu)所以可以建立自己的VI庫實現(xiàn)代碼重用,減少程序開發(fā)時間。 LabVIEW采用編譯方式運行32位應(yīng)用程序,這既解決了其他用解釋方式運行程序的圖形化編程平臺運行速度慢的缺點。LabVIEW支持多種操作系統(tǒng)平臺,如:Macintosh、Power Macintosh、HP-UX、Sun SPARC、Windows3.X、Windows95/98/2000、 Windows NT

20、等。在以上任何一個平臺開發(fā)的LabVIEW應(yīng)用程序都可直接一直到其他平臺上。 LabVIEW提供了大量的函數(shù)庫供用戶直接調(diào)用. 從基本的數(shù)學(xué)函數(shù)、字符串處理函數(shù)、數(shù)組運算函數(shù)和文件I/O函數(shù)到高級的數(shù)字信號處理函數(shù)和數(shù)值分析函數(shù)。 從底層的VXI儀器、數(shù)據(jù)采集板和總線接口硬件的驅(qū)動程序到世界各大儀器廠商的GPIB儀器的驅(qū)動程序、 LabVIEW都有現(xiàn)成的模塊幫助用戶方便迅速組建自己的應(yīng)用系統(tǒng)。LabVIEW是一個開放的開發(fā)平臺。 LabVIEW提供了動態(tài)連接庫(DLL)接口和CIN節(jié)點。 這樣用戶可以使用其它軟件平臺的模塊來完成LabVIEW本身無法實現(xiàn)的功能。 如為自己設(shè)計的板卡編寫驅(qū)動模塊

21、。 利用DDE技術(shù)LabVIEW可以方便的調(diào)用其他應(yīng)用程序提供的功能。同時利用豐富的ActiveX模塊可以輕松實現(xiàn)擴展功能。 LabVIEW運用了多線程技術(shù)改善了系統(tǒng)的運行速度和可靠性。將可重用代碼直接嵌入LabVIEW中,并通過簡單的圖形編程方法進行控制。 可用多種語言把LabVIEW做為服務(wù)器(Server)調(diào)用LabVIEW程序。第三講 程序結(jié)構(gòu)結(jié)構(gòu)(Structure)是一種程序流程控制節(jié)點,它們放置在程序流程圖中 ,外形一般是一個大小可以縮放 的邊框 , 當它與其他節(jié)點的連線有數(shù)據(jù)傳遞過來時,邊框內(nèi)的一段代碼或者反復(fù)執(zhí)行、或者有條件執(zhí)行、或者按照一定順序執(zhí)行。結(jié)構(gòu)內(nèi)的一段代碼叫做子框

22、圖 Subdiagram,結(jié)構(gòu)邊框上數(shù)據(jù)輸入輸出的端口叫做通道channel。LABVIEW 有 7 種結(jié)構(gòu) :For 循環(huán)、 While 循環(huán)、選擇結(jié)構(gòu)、展平的順序結(jié)構(gòu)、層疊的順序結(jié)構(gòu)、公式節(jié)點和事件結(jié)構(gòu)。這些結(jié)構(gòu)都在功能模板的結(jié)構(gòu)函數(shù)子Structure模板中 , 它們各自的位置見下圖 所示。31 循環(huán)結(jié)構(gòu) For 循環(huán)For 循環(huán)控制一段程序代碼執(zhí)行一定的次數(shù) , 它等價于以下的偽代碼 : For i=O to N-1,Execute Diagram Inside The Loop。311 For循環(huán)的建立在程序框圖中創(chuàng)建 For 循環(huán)的做法是 , 在 Structure 函數(shù)子模板中選

23、中 For 循環(huán)圖標,在所有應(yīng)在 For 循環(huán)內(nèi)執(zhí)行的節(jié)點左上角區(qū)域單擊一下鼠標 , 然后按住鼠標向右下角拖動 ,直到虛線框包圍所有應(yīng)在 For 循環(huán)內(nèi)執(zhí)行的節(jié)點 ,松開鼠標后,就得到了一個 For 循環(huán)框。如圖 3-1 所示。也可以先放好一個 For 循環(huán)框 ,再向里面填代碼。在缺省情況下 ,For 循環(huán)框可以自動增長 Auto Grow, 即放置 For 循環(huán)框時如果包含了不完全的對象 ,For 循環(huán)框自動增長到把此對象完全包括進循環(huán)框。以后再往 For 循環(huán)框內(nèi)放置 對象時 , 只要大部分放進框內(nèi) ,For 循環(huán)框自動增長到把此對象完全包括進循環(huán)框。如果 1要自動增長,可以在 For 循

24、環(huán)邊框上彈出快捷菜單,選中Auto Grow。For 循環(huán)框大小的調(diào)節(jié)只需要用定位與選擇工具拖動邊框的方形縮放手柄即可。圖3-1 For 循環(huán)框For 循環(huán)有兩個固定的端口。計數(shù)端口 Count 是一個輸入端口,除非使用自動索引功能 ,否則必須在 For 循環(huán)框外為 Count 端口連接一個 32 位整型數(shù),指定循環(huán)執(zhí)行的次數(shù)。如果連 接其他類型的數(shù)值 ,LabVIEW 自動把它強制轉(zhuǎn)換為最接近的整型數(shù)。對正好在兩個數(shù)之間的數(shù),則轉(zhuǎn)換為接近的偶數(shù)。例如 4.5 轉(zhuǎn)換為4,而 5.5 轉(zhuǎn)換為 6 。循環(huán)端口 Iteration 是一個輸出端口,它輸出當前執(zhí)行的循環(huán)次數(shù)。循環(huán)次數(shù)從 0 開始計數(shù)。

25、312 循環(huán)的時間控制與數(shù)據(jù)傳遞在滿足循環(huán)條件的情況下 , 循環(huán)結(jié)構(gòu)在一次循環(huán)結(jié)束后將立即開始執(zhí)行下一次循環(huán)。也就是說 , 如果不加控制 , 循環(huán)結(jié)構(gòu)將以盡可能快的速度執(zhí)行??刂蒲h(huán)速度最常用的方法是 Time &Dialog 函數(shù)子模板中的等待毫秒倍數(shù)函數(shù) Wait Until Next ms Multiple 。程序執(zhí)行這個函數(shù)時將等到它的毫秒計時器值 Millisecond Timer Value 變?yōu)檩斎氲?Millisecond Multiple 參數(shù)的整數(shù)倍。因此可以控制循環(huán)按照固定的時間間隔執(zhí)行。For 循 環(huán)內(nèi)的程序執(zhí)行完以后 , 如果用時不足 100 毫秒 , 將等待到 10

26、0 毫秒再執(zhí)行下一次循環(huán)。但如果循環(huán)內(nèi)的程序在 100 毫秒內(nèi)沒有執(zhí)行完 , 將在程序執(zhí)行完以后再開始下一次循環(huán)。也就是保證程序執(zhí)行一次循環(huán)的時間不會少于 100 毫秒。循環(huán)結(jié)構(gòu)通道上的數(shù)據(jù)在循環(huán)第一次執(zhí)行時進入循環(huán)框內(nèi) , 以后在循環(huán)執(zhí)行過程中將不理會這個數(shù)據(jù)的變化。如果程序中用圖形顯示控件 Waveform Chart時, 它將第一個到達的數(shù)據(jù)立即描繪在曲線上。但是如果希望在 100 次循環(huán)執(zhí)行的過程中用滑鈕控制 波形變化是不可能的?;o數(shù)值將保持在 0 循環(huán)時的值 100 次不變。程序中 waveform 將只顯示第 100 次循環(huán)時的數(shù)據(jù) , 因為循環(huán)結(jié)構(gòu)在執(zhí)行完以后 , 才傳遞出數(shù)據(jù)

27、 。循環(huán)對數(shù)組的自動索引。自動索引是指使循環(huán)框外面的數(shù)組成員逐個依次進入循環(huán)框內(nèi) , 或使循環(huán)框內(nèi)的數(shù)據(jù)累記逐個數(shù)組輸出循環(huán)框外面的功能。使用自動索引功能時 ,從循環(huán)框外連接到輸入通道的數(shù)組將索引出一維數(shù)組 , 從一維數(shù)組將索引出單個成員。與此相反 , 在循環(huán)的輸出邊框 , 單個元素依次累加成為一維數(shù)組 , 一維數(shù)組累加成為二維數(shù)組等等。For 循環(huán)和 While 循環(huán)都支持這種功能 , 但是連接到 For 循環(huán)的數(shù)組默認為能自動索引 , 如 果不需要索引 , 可以在數(shù)組進入循環(huán)的通道上彈出快捷菜單 , 選 Disable Indexing 。而連接 到 While 循環(huán)的數(shù)組默認為不能自動索

28、引 , 如果需要索引 , 可以在循環(huán)的通道上彈出快捷菜單 , 選 Enable Indexing 。能自動索引時 , 通道圖標是空心框 : 不能自動索引時 , 通道自 標是實心框。進入循環(huán)的數(shù)據(jù)通道上自動索引以后 , 數(shù)據(jù)線型由粗線變?yōu)榧毦€ , 或者帆 線變?yōu)閱尉€ ; 而輸出數(shù)據(jù)的通道上使用自動索引以后 , 數(shù)據(jù)線型由細線變?yōu)榇志€ , 或者自單線變?yōu)殡p線。如果用了兩個嵌套的 For 循環(huán) , 里層的 For 循環(huán)將 6 次執(zhí)行時的循環(huán)數(shù)累加成一個一維數(shù)組 0-5 輸出。外層的 For 循環(huán)依次為這個一維數(shù)組各個成員加當前循環(huán)數(shù) , 最后將 1 次循環(huán)的 8 個一維數(shù)組累加成二維數(shù)組輸出。外層的

29、For循環(huán)每執(zhí)行一次循環(huán)從二維數(shù)組中索引出一行。里層的 For 循環(huán)每 執(zhí)行一次從一維數(shù)組中索引出一個成員。32 While循環(huán)While循環(huán)While 循環(huán)控制程序反復(fù)執(zhí)行一段代碼 , 直到某個條件發(fā)生。它等價于以下偽代碼 :DoExecute Diagram Inside the Loop(Which sets the condition)While Condition is TRUE建立 While 循環(huán)的方法與 For 循環(huán)是一樣的。While 循環(huán)有兩個固定的端口。循環(huán)端口 Iteration Terminal 是一個輸出端口 , 它輸出循環(huán)當前執(zhí)行的次數(shù)。循環(huán)數(shù)是從 0 開始計數(shù)的

30、。條件端口 Conditional Terminal 是一個布爾量 輸入端口。程序在每次循環(huán)結(jié)束時檢查條件端口。因此 ,While 循環(huán)總是至少執(zhí)行一次。條件端口到底遇到什么條件能使 While 循環(huán)停止下來 , 是可以設(shè)置的。默認設(shè)置為 Stop if Ture, 即直至傳遞到條件端口的布爾量值為 True 時退出循環(huán) 。在這種 情況下,如果為條件端口創(chuàng)建一個停止按鈕 Stop Button, 由于這個控件按下時布爾量值為 True, 所以按下按鈕 , 循環(huán)即停止。而且這個按鈕默認的動作方式設(shè)置是第 5 種 ,一旦程序讀取這個值 ,它就彈起恢復(fù)到 False 值 , 以便于程序下一次運行。在

31、條件端口上彈出快捷菜單將設(shè)置改為 Continue if Ture, 則傳遞到條件端口的布爾量值為 False 時退出循環(huán) 。如果連接一個出錯信息簇數(shù)據(jù)到條件端口 , 則默認設(shè)置為 Stop On Error, 即遇到己發(fā)生錯誤的信息時停止 ,許多 VI 會返回一個出錯信息參數(shù) , 它是一個簇 ,包含一個出錯信息碼數(shù)值、一個出錯狀態(tài)布爾量 , 和一個錯誤源說明字符串條件端口自動解析出其中的出錯狀態(tài)布爾量 , 根據(jù)這個值確定執(zhí)行什么操作。在條件端口上彈出快捷菜單將設(shè)置改為 Continue While Error, 則即使遇到錯誤信息也不會退出循環(huán)。由于循環(huán)結(jié)構(gòu)在進入循環(huán)后將不會再理會循環(huán)框外面

32、數(shù)據(jù)的變化 , 因此產(chǎn)生循環(huán)終止條件的數(shù)據(jù)源一定要放在循環(huán)框內(nèi) ,否則會造成死循環(huán)。321 While 循環(huán)的自動索引、循環(huán)時間控制方法及使用使用數(shù)組自動索引功能時應(yīng)該注意 ,While循環(huán)的循環(huán)次數(shù)不是事先確定的 , 在對進入循環(huán)的數(shù)組進行索引時 , 如果數(shù)組成員已經(jīng)索引告罄 , 則 LabVIEW會自動在后面追加缺省值 , 例如一個數(shù)值型數(shù)組有 10個成員 , 那么從第 11 次循環(huán)開始 , 從數(shù)組通道進入循環(huán)的數(shù)值就是 0, 而假如數(shù)組是布爾型 的 , 追加的就是 False 等等。 While 循環(huán)使用自動索引時輸出數(shù)組的長度一般在事前也是未知的。在快速函數(shù)模板的 Exec Ctrl

33、子模板中的 While 循環(huán)節(jié)點, 放進程序框圖中會自動產(chǎn)生停止按鈕。33 順序結(jié)構(gòu)(Sequence Structure)331 層疊順序結(jié)構(gòu) 層疊順序結(jié)構(gòu) (Stacked sequence structure)在LabVIEW中,利用數(shù)據(jù)流機制可以實現(xiàn)很多順序執(zhí)行的功能,基于文本的編程語言 , 程序是按語句出現(xiàn)的順序執(zhí)行。而在數(shù)據(jù)流程序中 , 只要一個節(jié)點所有需要輸入的數(shù)據(jù)全部到達就開始執(zhí)行。如果有時需要某個節(jié)點先于其他節(jié)點執(zhí)行 , 可以用順序結(jié)構(gòu)作為控制節(jié)點執(zhí)行次序的一種方法。順序結(jié)構(gòu)的圖標看上去是電影膠片的樣子 , 可以包含有一個或多個子框圖 , 每一個子框圖被稱為一個 Frame

34、。子框圖編號從 0 開始 ,順序結(jié)構(gòu)從 0 號程序框圖內(nèi)的代碼開始 ,順序結(jié)構(gòu) Fh 執(zhí)行每一個子框圖。有層疊順序結(jié)構(gòu) Stacked Sequence Structure 和平鋪順序結(jié)構(gòu)flat Sequence Structure兩種順序結(jié)構(gòu)。有多個子框圖時,層疊順序結(jié)構(gòu)的子框圖像一摞卡片一樣重疊在一起,需要一層層打開向這些子框圖填寫代碼;而平鋪順序結(jié)構(gòu)像一卷展開的電影膠片,所有的子框圖在一個平面上。層疊順序結(jié)構(gòu)節(jié)省程序框圖的空間,但是掩蓋了數(shù)據(jù)流的關(guān)系。平鋪順序結(jié)構(gòu)與它正好相反。332 順序結(jié)構(gòu)的建立在程序框圖中放置順序結(jié)構(gòu)的方法以及結(jié)構(gòu)邊框的自動增長、邊框大小的手動調(diào)整等與循環(huán)結(jié)構(gòu)是一

35、樣的。剛放進程序框圖的順序結(jié)構(gòu)里只有一個子框圖。在順序結(jié)構(gòu)邊框上點右鍵彈出的快捷菜單中選 Add Frame After或 Add Frame Before 可以逐個增加子框圖。增加子框圖后的層疊順序結(jié)構(gòu)如下圖所示 , 邊框的頂部出現(xiàn)子框圖標識框 ,它的中間是子框圖標識 , 顯示出當前框在順序結(jié)構(gòu)序列中的號碼 (0 到 n-l), 以及此順序結(jié)構(gòu)共有幾個子框圖。子框圖標識兩邊分別是降序、升序按鈕 , 單擊它們可以分別查看前一個或后一個子框圖。在子框圖標識上單擊鼠標左鍵 ,則出現(xiàn)所有存在的子框圖名 ,可以選擇顯示 其中任意一個。在層疊順序結(jié)構(gòu)邊框上彈出快捷菜單可以進行子框圖的復(fù)制 Duplica

36、te Frame 、刪除 Delete This Frame 或者移除整個順序結(jié)構(gòu) Remove Sequence, 此時只剩下頂層內(nèi)的程序框圖。 彈出快捷菜單選擇 Make This Frame- 選項 , 可以為當前 Frame 指定順序號 ,此順序號原有的 代碼與它交換位置。在層疊順序結(jié)構(gòu)邊框上彈出快捷菜單選擇 Replace 選項 , 可以把它替換為平鋪順序結(jié)構(gòu) Replace with Flat Sequence 或選擇結(jié)構(gòu) Replace with Case Structure。選擇結(jié)構(gòu)也可以替換為層疊順序結(jié)構(gòu)。333 平鋪順序結(jié)構(gòu)平鋪順序結(jié)構(gòu)(Flat Sequence Stru

37、cture )增加子框圖后的平鋪順序結(jié)構(gòu)如下圖所示。平鋪順序結(jié)構(gòu)與層疊順序結(jié)構(gòu)主要有這樣幾點不同 :1. 不可以復(fù)制子框圖。2. 只能替換為層疊順序結(jié)構(gòu)而不能直接替換為選擇結(jié)構(gòu)。3. 移除平鋪順序結(jié)構(gòu)后各個子框圖的代碼都保留。34 選擇結(jié)構(gòu)Case Sfrucfure 選擇結(jié)構(gòu)Case Sfrucfure選擇結(jié)構(gòu)包含有多個子框圖 ,每個子框圖的一段程序代碼對應(yīng)一個 Case 選項 ,程序運行 時選擇其中的一段執(zhí)行。341 選擇結(jié)構(gòu)的建立在程序框圖中放置選擇結(jié)構(gòu)的方法以及結(jié)構(gòu)邊框的自動增長、邊框大小的手動調(diào)整等與循環(huán)結(jié)構(gòu)是一樣的。放進程序框圖的選擇結(jié)構(gòu)圖標如上圖所示。它的子框圖像一摞卡片一樣重疊

38、在一起,任何時候只顯示其中一個。向這些子框圖填寫代碼也要一層層打開進行。選擇結(jié)構(gòu)左側(cè)邊框上帶 ? 的圖標是選擇端口。由選擇結(jié)構(gòu)外連接到選擇端口的值決定了選擇結(jié)構(gòu)應(yīng)該執(zhí)行哪一個子框圖的代碼。這個值的類型可以是整型、布爾型、字符型或枚舉型。選擇端口的圖標顏色也會隨連接的數(shù)值類型而改變。默認情況是連接一個布爾量,圖標為綠色,共有兩個子框圖。如圖3-4-1 所示 , 為選擇端口連接了一個枚舉型控制件“機組號”, 并為它輸入3個值“Nol”、“N02”、“N03”。為枚舉型數(shù)據(jù)賦值的方法是 , 用文本工具寫完一個枚舉值后,在 圖標上彈出的快捷菜單中選 Add Item After或 Add Item B

39、efore, 再用文本工具為下一個枚舉量賦值。選擇結(jié)構(gòu)邊框的頂部是子框圖標識框 ,它的中間是子框圖標識 ,兩邊分別是降序、升序 按鈕。子框圖標識指明當前顯示的子框圖對應(yīng)的選工頁 , 但是程序運行時并不一定執(zhí)行當前顯示 的子框圖。枚舉型控制件連接到選擇端口以后,子框圖標識自動轉(zhuǎn)換為前兩個枚舉值 Nol 和 N02, 因為目前只有兩個子框圖。在選擇結(jié)構(gòu)邊框上彈出快捷菜單選 Add Case for EveIYE Value, 則條件端口有幾個枚舉值 , 就會增加到幾個子框圖。當選擇端口輸入數(shù)值型或字符型數(shù)據(jù)時 , 則需要在彈出的快捷菜單中選 Add Case After 或 Add Case Be

40、fore 逐個增加子框圖。 子框圖標識兩邊分別是降序、升序按鈕 , 單擊它們可以分別查看或編輯前一個或后一個子框圖。在子框圖標識上單擊鼠標左鍵,則出現(xiàn)所有存在的子框圖名,可以選擇顯示其中任意一個。通過在選擇結(jié)構(gòu)邊框上彈出快捷菜單還可以進行子框圖的復(fù)制 Duplicate Case 、刪除 Delete This Case, 或者移除整個選擇結(jié)構(gòu) REmove Case Stmcture, 這時只剩下頂層內(nèi)的程序框圖。接到選擇結(jié)構(gòu)的選擇端口 , 子框圖標識自動變?yōu)?No Error 和 Error 兩項 , 并且 No Error 子框圖圍繞一個綠色邊框 ,Error 子框圖圍繞一個紅色邊框。如

41、果 error out 參數(shù)中沒有指出發(fā)生錯誤,就執(zhí)行 No Error 子框圖的代碼 , 否則執(zhí)行 Error 子框圖的代碼。在圖 所示的程序中 , 調(diào)用了快速函數(shù)模板 Input 子模板中的 Simulate Signal VI, 讓它產(chǎn)生一個帶噪聲的正強信號。如果這個 VI 執(zhí)行時沒有發(fā)生錯誤 , 就調(diào)用快速函數(shù)模板 呻 Signal Analysis 子模板中的 Statistics VI 計算它輸出信號的算術(shù)平均值 , 并提示信號正常。 如果這個 VI 執(zhí)行時發(fā)生錯誤 , 只提示生成信號發(fā)生錯誤。3.5 公式節(jié)點Formula Node公式節(jié)點假如程序中有一些復(fù)雜的數(shù)學(xué)計算 , 那么

42、使用函數(shù)編寫程序圖形代碼是比較麻煩的。使用公式節(jié)點可以直接輸入復(fù)雜的公式或多個公式 , 而不必創(chuàng)建多段代碼。351 公式節(jié)點的建立在 StrueUIre 函數(shù)子模板和 Analyze Mathematics Formula 函數(shù)子模板都可以找到公式節(jié)點。在程序框圖中放置公式節(jié)點的方法以及公式節(jié)、點邊框大小的調(diào)整與其他結(jié)構(gòu)是一樣的。使用文本工具往公式節(jié)點中輸入公式 , 也可以將符合語法要求的代碼直接復(fù)制到公式節(jié)點中。一個公式節(jié)點可以有多個公式。在公式節(jié)點邊框上彈出快捷菜單 , 選擇 Add Input 或 Add Output 為公式節(jié)點創(chuàng)建輸入或 輸出端口。通過在端口上彈出快捷菜單 , 選擇

43、Change to Output 或 Change to InpM 可以對輸 入輸出端口數(shù)據(jù)流方向進行轉(zhuǎn)換。在端口的方框中輸入變量名 , 變量名要區(qū)分大小寫。一個 公式節(jié)點可以有多個變量 , 輸入端口不能重名 , 輸出端口也不能重名 , 但是輸出和輸入端口 可以重名。每個輸入端口必須與程序框圖中一個為變量賦值的端口連線。輸出端口連接到顯 示件或需要此數(shù)據(jù)的后續(xù)節(jié)點。352 公式節(jié)點的語法公式節(jié)點中的代碼看上去就像一段 C 語言的程序。公式節(jié)點中也可以聲明變量 , 可以使 用 C 語言的語法 , 可以加語句注釋 , 每個公式語句也是以分號結(jié)束。公式節(jié)點的變量可以與 輸入輸出端口連線無關(guān) , 但是

44、變量不能有單位。公式節(jié)點中允許使用的函數(shù)名可以在上下文幫助窗口中找到。而運算符、語法和函數(shù)的詳細說明則需要在下一級的幫助窗口中才能找到。353 公式節(jié)點常用運算符條件運算符 ? 前面的部分是辨別條件 ,“?”和 “:”之間是辨別條件為 True 時的表達式 ,“:” 后面是辨別條件為 False 時的表達式。用條件運算符表達以下的代碼 :條件運算符可以嵌套 ,例如有以下表達式 : X5 y=a X=-5)&(x5)?a:b;第四講 數(shù)據(jù)采集和信號輸出LabVIEW的數(shù)據(jù)采集(Data Acquisition)程序庫包括了許多NI公司數(shù)據(jù)采集(DAQ)卡的驅(qū)動控制程序。通常,一塊卡可以完成多種功

45、能 - 模/數(shù)轉(zhuǎn)換,數(shù)/模轉(zhuǎn)換,數(shù)字量輸入/輸出,以及計數(shù)器/定時器操作等。用戶在使用之前必須DAQ卡的硬件進行配置。這些控制程序用到了許多低層的DAQ驅(qū)動程序。DAQ系統(tǒng)的基本任務(wù)是物理信號的產(chǎn)生或測量。但是要使計算機系統(tǒng)能夠測量物理信號,必須要使用傳感器把物理信號轉(zhuǎn)換成電信號(電壓或者電流信號)。有時不能把被測信號直接連接到DAQ卡,而必須使用信號調(diào)理輔助電路,先將信號進行一定的處理。同樣產(chǎn)生的控制信號的也并不一定直接能去控制一些儀器, 有時也需要信號的調(diào)理輔助電路??傊?,數(shù)據(jù)采集是借助軟件來控制整個DAQ系統(tǒng) 包括采集原始數(shù)據(jù)、分析數(shù)據(jù)、給出結(jié)果及產(chǎn)生控制信號等。41 數(shù)據(jù)采集系統(tǒng)的構(gòu)成

46、在計算機主機箱中,插上數(shù)據(jù)采集卡,可以通過卡上的接線端子向外部輸出信號和向計算機內(nèi)采集信號,采集卡內(nèi)部可以完成多種功能,如模/數(shù)、數(shù)/模轉(zhuǎn)換,數(shù)字量輸入/輸出,以及計數(shù)器/定時器操作等,在使用采集卡之前必須設(shè)置好它的硬件設(shè)置,可以根據(jù)需要設(shè)置成單端對地采集和差分采集兩種方式,可以采集模擬量和數(shù)字量,同時采集8路信號,并可以輸出兩路模擬信號和8路數(shù)字信號,采集和輸出的電壓范圍為正負10伏,最高采樣率為200ks/s,最高輸出速率為10ks/s, 單位是點數(shù)/每秒,其采集和輸出的通道號與接線端子標號的對應(yīng)關(guān)系如下: 采集端:ACH068,ACH133,ACH265,ACH330,ACH428, A

47、CH560,ACH625,ACH757,ACH834,ACH966,ACH1031,ACH1163,ACH1261,ACH1326,ACH1458,ACH1523輸出端:DAC0OUT22, DAC1OUT21接地端:AOGND55, AOGND54, AIGND56,DGND53, DGND15 采集系統(tǒng)框圖:傳感器模擬信號計算機數(shù)據(jù)采集卡軟件 電路板 42 模擬輸出421 數(shù)據(jù)采集VI程序的調(diào)用方法LabVIEW的DAQ程序包括模擬輸入、模擬輸出、計數(shù)器操作、或者數(shù)字輸入、輸出等。你可以在框圖程序窗口下選擇Data Acquisition。 再在此子模板下,可以看到6個子模板:Analog

48、 Input, Analog Output, Digital I/O, Counter, Calibration and Configuration和Signal Conditioning。在上述6個子模板下,每個子模板又分成Easy I/O Vis, Intermediate Vis, Utility Vis和Advanced Vis。下面以Analog Output子模板為例進行解釋。如圖所示,在其頂層是簡單模擬量輸出VI程序(Easy AO),中間層是中級模擬量輸出VI程序(Intermediate AO),然后下面是兩個圖標,一個用于調(diào)用模擬輸出應(yīng)用程序(Utility AO),一個調(diào)

49、用高級模擬量輸出程序(Advanced AO)。高級程序涉及到與DAQ驅(qū)動程序的低層接口,而通用應(yīng)用程序是中級程序的組合。簡單I/O程序僅僅只是表面層接口程序,它能執(zhí)行基本的模擬量輸入、模擬量輸出、數(shù)字I/O,以及計數(shù)器/定時器操作。它簡單易用,并且包含一個簡單的出錯處理方法。當出錯時,將彈出一個對話框,顯示出錯信息,而用戶可以選擇中止程序執(zhí)行或者忽略錯誤。相對于簡單程序而言,中級程序具備更多的硬件設(shè)置功能,靈活性,并且可以更有效地開發(fā)實用程序。它具有許多簡單程序所缺乏的功能,如外部時鐘等。它對出錯的處理也更加靈活,可以把出錯狀態(tài)信息傳遞給其它的程序,編程處理出錯情況。422 Single-P

50、oint Output (單點輸出)下圖是往多個模擬輸出通道寫數(shù)據(jù)(刷新并保持模出口的電壓)的流程圖:圖42 多通道單點刷新流程圖注意: 流程圖中的values數(shù)組的第一個數(shù)值對應(yīng)第一個channel,依此類推,不要跟以后的Scaled Array搞混, 那相當于輸出一個波形了。Buffered Analog Output (緩沖輸出)下圖是往多個模擬輸出通道輸出波形的流程圖:圖43 多個模擬通道輸出波形流程圖以一定的刷新率(update rate)往通道口寫數(shù)據(jù),波形輸出完后AO口保持最后一點的電壓值。423 如何畫用戶定義的波形如果要發(fā)生常見的波形比如正弦波,方波,三角波等,可以在Wave

51、form Generation 功能板上選擇,相當于波形發(fā)生器。如下圖:圖44 波形發(fā)生器模板但是如果想要畫用戶自己特定的波形,比如特殊的控制時序,那么就要用其他方法了。一般的波形用公式節(jié)點就可以解決問題,下面就舉一個例子來介紹一下公式節(jié)點。比如要產(chǎn)生如下的波形:圖45 用戶需要產(chǎn)生的波形圖其中在0ms800ms中保持5V不變,而在800ms-900ms之間成以e為底的指數(shù)下降到0V一直延續(xù)到1000ms.假定波形輸出時的刷新率(update rate)1000 points/sec,那么1000ms即1sec中輸出點數(shù)為1000點,正好每毫秒一個點。這樣Time(x)與Amplitude(y

52、)之間就可以建立關(guān)系,對于上面的波形關(guān)鍵是800ms-900ms之間那段,其實有很多下降方法,我們就選擇其中的一種:y=10*exp(800-x)*ln(2)/100)-5;下圖就是編這個波形的流程圖:圖46 產(chǎn)生用戶定義波形的流程圖注意:要想到時候波形輸出的時候調(diào)用這個波形,就要創(chuàng)建聯(lián)接器端口。424 單通道模擬輸出如果想要對模擬輸出有更多的控制,就要用到中級的DAQ VIs來編程,下面這個VI就是用中級模塊來實現(xiàn)單通道模擬輸出的VI。圖47 單通道模擬輸出流程圖上面這個程序是把CH0的波形按一定的刷新頻率(update rate)輸出到特定的DAQ卡(device)上的一個AO Chann

53、el上,波形輸出完后端口的電壓保持在最后一點的電壓值;AO CONFIG, AO WRITE, AO START, AO WAIT,Error等節(jié)點都有特定的作用,下面就以數(shù)據(jù)流的過程來介紹一下各個節(jié)點的作用。AO CONFIG是對DAQ卡進行初始化指定要輸出的板子號和通道號,上面這個流程中,在設(shè)定Channel是由一個Build Array節(jié)點,目的是把指定的通道號(標量)轉(zhuǎn)換為一維數(shù)組的格式,因為AO CONFIG只接受數(shù)組指定的Channels。同時也設(shè)定Buffer的大小,一般來說Buffer的大小跟波形的點數(shù)相同這樣的話如果想要多次循環(huán)輸出此波形,兩個波形之間就不會有間隔,也不會出現(xiàn)

54、一個波形還沒有輸出完,結(jié)下來又開始重新輸出這個波形;其中CH0右上角的Array Size節(jié)點就是用來讀取CH0波形的點數(shù)來作為Buffer Size的大小。AO WRITE是把波形往指定大小的Buffer里寫數(shù)據(jù),因為這個圖標也只接受二維數(shù)組,所以先要把一路的一維數(shù)組通過Build Array變成二維數(shù)組的格式。到這里為止數(shù)據(jù)就已經(jīng)存在緩沖區(qū)里了。AO START是開始把緩沖區(qū)里的數(shù)據(jù)按一定的刷新頻率(update rate)往在AO CONFIG里指定的模擬輸出口輸出。還可以設(shè)定要循環(huán)輸出的次數(shù)(number of buffer iterations)。在這里波形才真正的開始輸出。AO W

55、AIT是等待波形輸出完成,然后再進行AO CLEAR的節(jié)點執(zhí)行,AO CLEAR是解除對DAQ卡的設(shè)置,同時釋放Buffer;如果不等待波形輸出完,執(zhí)行AO CLEAR,那么輸出就被停止了。但是如果是無限循環(huán)輸出的話,就是iterations的值為0,那么就不能用AO WAIT這個節(jié)點了,因為它會一直等下去,后面的程序不可能被執(zhí)行了。最后一個節(jié)點Error是處理出錯信息的,從AO CONFIG開始出錯信息一直被傳遞到Error然后進行處理,告訴用戶。與其相對應(yīng)的上面的藍色細線是傳遞Task ID用的,說明是在處理同一個任務(wù)。425 多通道同步輸出多通道如果需要同步輸出,關(guān)鍵是把所要輸出的波形放

56、在一起組成一個二維數(shù)組,下圖就是兩通道同步輸出兩路信號的例子:圖48 多通道同步輸出流程圖CH0,和CH1通過Build Array組成一個二維數(shù)組,然后轉(zhuǎn)置數(shù)組用Transpose 2D Array節(jié)點,這是應(yīng)該注意的地方;然后把這兩路波形的共同點數(shù)經(jīng)過Index Array 和 Array Size 輸入進AO CONFIG節(jié)點中的Buffer Size接口。程序的最后是用AO Write One Update使輸出口的電壓清零。43 模擬輸入模擬輸入的模板與模擬輸出的模板類似,包括易用函數(shù)和中級函數(shù)等,它的模板如下圖所示。使用易用模塊輸出模擬信號的流程圖如下圖所示。使用中級模塊連續(xù)輸出模

57、擬信號的流程圖如下所示。 輸入模塊(即采集模塊)的器件和通道設(shè)置與輸出模塊類似,采樣率與采樣點數(shù)以及緩存大小也同樣要注意合理匹配,同時要滿足采樣定律,被采信號不能高于采樣率的一半。實驗一 信號的發(fā)生與顯示實驗內(nèi)容:1初步學(xué)習(xí)在LabVIEW開發(fā)環(huán)境下的基本操作和簡單的編程方法。2學(xué)習(xí)創(chuàng)建一個頻率、幅度可調(diào)并能產(chǎn)生方波和正弦波的信號發(fā)生器,并通過該過程學(xué)習(xí)一些基本函數(shù)的用法。3嘗試創(chuàng)建一臺虛擬示波器的控制面板,以便在數(shù)據(jù)采集的實驗中使用。實驗步驟:1由開始程序National Instruments LabVIEWLabVIEW,選擇NEW VI進入LabVIEW環(huán)境,顯示底色為灰色的前面板,點

58、擊WindowsShow diagram顯示流程圖面板,點擊WindowsShow panel,則又切換至前面板,在前面板,選WindowsShow Controls Palette/Shows Tools Palette顯示工具模板和控制模板(見下圖),一些控制量如旋鈕和開關(guān)等的圖標在控制模板上,選擇這些圖標并放置在前面板上,會在流程圖上出現(xiàn)相應(yīng)的端子,由此在前面板控制程序中的數(shù)據(jù),在流程圖面板,選WindowsShow Functions Palette,顯示功能模板,可在流程圖面板上調(diào)用它上面的功能函數(shù)創(chuàng)建程序,循環(huán)、數(shù)學(xué)運算、比較和公式節(jié)點等在這些模板中調(diào)用。2創(chuàng)建信號發(fā)生器子程序通過

59、調(diào)用Functions模板中的Signal Processing子模板中的 Signal Generation Sine Wave.vi。用工具欄里的連線工具點在模板上,當顯示出samples、f等提示后,點擊右鍵Creat Control,在前面板上會顯示可調(diào)節(jié)的控制量,samples、f和amplitude,幅度單位是V。 前面板 流程圖在模擬狀態(tài)下,信號頻率以每秒周期數(shù)為單位(Hz),但在數(shù)字系統(tǒng)中常采用數(shù) 字頻率,單位是周期數(shù)/采樣點,也被稱為標準頻率,它們之間轉(zhuǎn)換關(guān)系如下: 模擬頻率=數(shù)字頻率采樣頻率; 數(shù)字頻率=模擬頻率/采樣頻率; (采樣頻率是每秒采樣的點數(shù))上圖中的模塊采用的是

60、數(shù)字頻率,所以要轉(zhuǎn)換成模擬頻率。前面板和流程圖如下:改變采樣點數(shù)、采樣率、模擬頻率和數(shù)字頻率,觀察顯示的波形,并解釋。3生成方波信號,在流程圖中加一個Case結(jié)構(gòu),該結(jié)構(gòu)可以含有兩個或更多的子程序(Case),由與問號連接的外部的控制量決定程序執(zhí)行那一個子程序(Case),控制量可以是布爾量、整數(shù)或者字符串等。選Function Structures 中的Case結(jié)構(gòu),將Sine Wave.vi的圖標框住,注意Case的邊框上出現(xiàn)黑色的小方塊,表示與外部連線的節(jié)點,上邊框會顯示 True或 False,將鼠標放在黑色三角型上點右鍵可確定當前是True或 False(make this case

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論