《虛擬儀器技術(shù)》實驗指導(dǎo)書_第1頁
《虛擬儀器技術(shù)》實驗指導(dǎo)書_第2頁
《虛擬儀器技術(shù)》實驗指導(dǎo)書_第3頁
《虛擬儀器技術(shù)》實驗指導(dǎo)書_第4頁
《虛擬儀器技術(shù)》實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、虛擬儀器技術(shù)實驗指導(dǎo)書注意:在實驗之前,首先在計算機(jī)的D盤下面創(chuàng)建一個以自己名字+學(xué)號命名的目錄,在此文件夾下面再建立8個子文件夾目錄,分別命名為實驗一至實驗八,所有的實驗程序都保存到相應(yīng)的目錄中。實驗一 LabVIEW編程環(huán)境與基本操作一、實驗?zāi)康?了解LabVIEW的編程與運行環(huán)境。2掌握LabVIEW的基本操作方法,并編制簡單的程序。3掌握使用調(diào)試工具調(diào)試VI程序。4掌握VI子程序的建立和調(diào)用過程。二、實驗設(shè)備安裝有LabVIEW 的計算機(jī)三、實驗原理現(xiàn)代科技技術(shù)的進(jìn)步以計算機(jī)技術(shù)的進(jìn)步為代表。不斷革新的計算機(jī)技術(shù),從各個層面上影響著、引導(dǎo)著各行各業(yè)的技術(shù)更新?;谟嬎銠C(jī)技術(shù)的虛擬儀器系

2、統(tǒng)技術(shù)正以不可逆轉(zhuǎn)的力量推動著測量與控制技術(shù)的革命。虛擬儀器系統(tǒng)的概念不僅推進(jìn)了以儀器為基礎(chǔ)的測控系統(tǒng)的改造,同時也影響了以數(shù)據(jù)采集為主的測控系統(tǒng)的傳統(tǒng)構(gòu)造方法。過去獨立分散、互不相干的許多傳統(tǒng)儀器,在虛擬儀器系統(tǒng)的概念之下,正在逐漸靠攏、相互影響,并形成新的技術(shù)方法和技術(shù)規(guī)范。虛擬儀器系統(tǒng)的概念是測控系統(tǒng)的抽象。不管是傳統(tǒng)的還是虛擬的儀器,它們的功能都是相同的:采集數(shù)據(jù),對采集來的數(shù)據(jù)進(jìn)行分析處理,然后顯示處理的結(jié)果。它們之間的不同主要體現(xiàn)在靈活性方面。虛擬儀器由用戶自己定義,這意味著用戶可以自由地組合計算機(jī)平臺、硬件、軟件、以及各種完成應(yīng)用系統(tǒng)所需要的附件。而這種靈活性在由制造商定義、功能

3、固定、獨立的傳統(tǒng)儀器上是達(dá)不到的。常用的數(shù)字萬用表、示波器、信號發(fā)生器、數(shù)據(jù)記錄儀,以及溫度和壓力監(jiān)控器就是傳統(tǒng)儀器的代表?;谟嬎銠C(jī)的虛擬儀器得益于PC技術(shù)的發(fā)展。由于直接將儀器模塊插入到計算機(jī)中,我們就可以直接享用到臺式或便攜式計算機(jī)上出眾的處理能力、顯示、數(shù)據(jù)存儲以及連接性能等方面的優(yōu)勢,使測量以最有效的方式從使用傳統(tǒng)的儀器過渡到使用通用計算機(jī)?;谟嬎銠C(jī)的儀器不僅繼承了傳統(tǒng)儀器的標(biāo)準(zhǔn)測量能力,更增加了擴(kuò)展儀器概念的靈活性,使我們能夠更加直接、更加有效地面對當(dāng)今測量應(yīng)用的挑戰(zhàn)。更有意義的是,利用諸如LabVIEW、LabWindows/CVI等應(yīng)用開發(fā)環(huán)境,可以方便地使多臺儀器的測量能力

4、結(jié)合并同步工作,以建立功能強(qiáng)大儀器系統(tǒng)。更進(jìn)一步,我們也可以開發(fā)自己的分析程序,實現(xiàn)那些有別于其他儀器或系統(tǒng)的功能。PC機(jī)和臺式工作站已經(jīng)成為檢測系統(tǒng)的標(biāo)準(zhǔn)控制平臺?;谔摂M儀器的應(yīng)用軟件包、用戶接口庫、儀器驅(qū)動程序、檢測程序和分析庫正在被廣泛地應(yīng)用并極大地減少了開發(fā)的時間。A/D轉(zhuǎn)換技術(shù)的發(fā)展,使得插卡式數(shù)據(jù)采集板成為基于PC機(jī)的儀器系統(tǒng)增長最快的選件。圖像技術(shù)的引入,更為現(xiàn)代檢測系統(tǒng)增添風(fēng)采。今天,工業(yè)標(biāo)準(zhǔn)的計算機(jī)平臺,揉合多種儀器與設(shè)備,并充分利用儀器系統(tǒng)軟件工具,已經(jīng)成為降低系統(tǒng)造價,完善系統(tǒng)功能,提高系統(tǒng)性能/價格比的最重要的手段。不管是建立檢測系統(tǒng),還是建立工業(yè)自動化系統(tǒng),充分利用

5、最現(xiàn)代化的手段,運用最新技術(shù)是必不可少的。簡潔、實用、可靠、完備而且高性能/價格比始終是我們的追求。軟件和硬件的結(jié)合、GPIB與DAQ的搭配、傳統(tǒng)與現(xiàn)代的協(xié)調(diào),使我們可以建立獨特且規(guī)范的系統(tǒng)。虛擬儀器系統(tǒng)技術(shù)的基礎(chǔ)是計算機(jī)系統(tǒng),核心是軟件技術(shù)。因此,美國國家儀器公司(NI)提出其著名的口號:The Software is the Instrument (軟件就是儀器)??梢哉f,組建現(xiàn)代化測控系統(tǒng)的成敗很大程度上取決于軟件平臺和工具以及相關(guān)硬件設(shè)備的選擇。為了使“軟件就是儀器”這句口號成為現(xiàn)實,美國國家儀器公司在軟件體系結(jié)構(gòu)的各個層次上,形成了完整的設(shè)備驅(qū)動程序、系統(tǒng)開發(fā)平臺、實用支持軟件、應(yīng)用

6、軟件包相互支撐的格局,使虛擬儀器系統(tǒng)的概念不再“虛擬”。其中,LabVIEW就是美國NI公司推出的一套著名的虛擬儀器開發(fā)軟件平臺。1、LabVIEW與虛擬儀器(VI)程序LabVIEW(Laboratory Virtual Instrument Engineering Workbench,實驗室虛擬儀器集成環(huán)境) 是一個高效的圖形化程序設(shè)計環(huán)境,也是一個功能強(qiáng)大而又靈活地儀器和分析軟件應(yīng)用開發(fā)工具。它結(jié)合了簡單易用的圖形式開發(fā)環(huán)境與靈活強(qiáng)大的G編程語言,提供了一個直覺式的環(huán)境,與測量緊密結(jié)合,能讓工程師與科學(xué)家們迅速開發(fā)出有關(guān)數(shù)據(jù)采集、測量控制、數(shù)據(jù)分析、存儲及顯示的解決方案?,F(xiàn)今數(shù)以萬計的工

7、程師、科學(xué)家以及技術(shù)人員正在使用LabVIEW來構(gòu)建測量與自動化系統(tǒng)。在NASA(美國國家航空和宇宙航行局),工程師們使用LabVIEW來對國際空間站使用的低成本乘員救生飛船(X-38工程)的原型機(jī)(一共四架)進(jìn)行設(shè)計、制造和測試,并取得了很好的效果。V131, V132, V133和最后正式樣機(jī)V201在飛行測試時的各種狀態(tài)數(shù)據(jù)都是通過LabVIEW采集和處理的。使用LabVIEW不僅使該飛船的開發(fā)研制周期大大縮短,還極大地降低了系統(tǒng)開發(fā)費用。像C或BASIC一樣,LabVIEW也是通用的編程系統(tǒng),有一個可完成任何編程任務(wù)的龐大的函數(shù)庫。LabVIEW的函數(shù)庫包括數(shù)據(jù)采集、GPIB、串口控制

8、、數(shù)據(jù)分析、數(shù)據(jù)顯示及數(shù)據(jù)存儲等。LabVIEW也有傳統(tǒng)的程序調(diào)試工具,如設(shè)置斷點、以動畫方式顯示數(shù)據(jù)及其通過程序(子VI)的結(jié)果、單步執(zhí)行等,便于程序的調(diào)試。1) LabVIEW的啟動啟動LabVIEW 7 Express后,首先出現(xiàn)圖1-1所示的對話框。對話框各按鈕的作用如下:【New】創(chuàng)建一個新的VI(Virtual Instrument)程序;【Open】打開一個已有的VI程序(單擊右邊的小箭頭,彈出的下拉菜單中包含程序示例和最近10此使用的VI程序)?!綜onfigure】設(shè)置NI的測量和控制工具,如DAQmax的設(shè)置?!綡elp】LabVIEW幫助。圖1-1 LabVIEW 7 E

9、xpress啟動界面選擇Blank VI時,將出現(xiàn)一個未命名的前面板窗口。前面板窗口是VI代碼的接口,也是組成VI的兩種LabVIEW窗口之一。另一個窗口是框圖窗口,其中包含了以圖形方式(如圖標(biāo)、連線等)表示的程序代碼。2) 前面板窗口和框圖程序窗口使用LabVIEW開發(fā)平臺編制的程序稱為虛擬儀器程序,簡稱為VI。VI包括三個部分:程序前面板、框圖程序和圖標(biāo)/連接器。圖1-2和圖1-3所示為一個虛擬儀器的前面板和與其對應(yīng)的框圖程序。圖1-2 LabVIEW程序前面板程序前面板用于設(shè)置輸入數(shù)值和觀察輸出量,用于模擬真實儀表的前面板,其大小、外觀、功能布局均可以由用戶根據(jù)自己的需要進(jìn)行定制。在程序

10、前面板上,輸入量被稱為控制(Controls),輸出量被稱為顯示(Indicators)??刂坪惋@示是以各圖1-3 與LabView程序前面板對應(yīng)的框圖程序種圖標(biāo)形式出現(xiàn)在前面板上,如旋鈕、開關(guān)、按鈕、圖表等,這使這得前面板直觀易懂。a) 前面板工具欄前面板窗口和框圖程序窗口都有各自的工具欄,工具欄包括用來控制VI的命令按鈕和狀態(tài)指示器。圖1-4所示是前面板的工具欄。圖1-4 前面板工具欄下面介紹該工具欄中各按鈕的作用:(Run,運行)單擊此按鈕可以運行VI程序。在這里,我們要注意Run按鈕的圖案變化 ,如果運行的VI程序為最上級程序,則該按鈕變?yōu)?,?dāng)程序出錯,無法執(zhí)行戲曲時,該按鈕變?yōu)?,表?/p>

11、VI程序由于出錯而不能運行。如果想了解出錯原因,可以單擊該按鈕,系統(tǒng)將彈出一個幫助窗口,列出所有錯誤。(Abort Execution,終止運行)當(dāng)VI程序執(zhí)行時,工具欄上出現(xiàn),單擊它就會立即停止程序運行。注意:使用該按鈕來停止VI程序的運行,是強(qiáng)制性的停止,可能會錯過一些有用的信息。通常在設(shè)計程序時,可以通過設(shè)置按鈕來控制VI程序的運行,這就使得VI程序執(zhí)行的是完整的、有序的過程。(Psuse/Continue,暫停/繼續(xù))單擊該按鈕可使VI程序暫時停止執(zhí)行,再單擊它,則VI程序繼續(xù)執(zhí)行。(Run Continuously,連續(xù)運行)單擊該按鈕,此按鈕變?yōu)?,VI程序連續(xù)的重復(fù)執(zhí)行,再次單擊一

12、下該按鈕可以停止程序的連續(xù)運行。(Text Settings,字體設(shè)置)單擊該按鈕將彈出一個下拉列表,從中可以設(shè)置字體的格式,如字體類型、大小、形狀和顏色等。 此三個按鈕,對選定的對象進(jìn)行排列方式的設(shè)置。包括對齊、間距等設(shè)置。(Recorder,重疊方式)當(dāng)幾個對象重疊時,可以重新排列每個對象的疊放次序,如前移、后移等。b) 框圖程序工具欄框圖程序窗口的工具欄按鈕大多數(shù)與前面板工具欄相同,另外還增加了4個調(diào)試按鈕??驁D程序的工具欄如圖1-5所示。圖1-5 框圖程序工具欄(Highlight Execution,高亮執(zhí)行)單擊此按鈕,此按鈕轉(zhuǎn)換為,VI程序以一種緩慢的節(jié)奏一步一步的執(zhí)行,所執(zhí)行到

13、的節(jié)點都以高亮方式顯示,這樣用戶可以清楚的了解程序的執(zhí)行過程,也可以方便的查找錯誤。當(dāng)再次單擊此按鈕,即可以停止高亮執(zhí)行。(Start Single Stepping,單步執(zhí)行)單擊此按鈕,程序?qū)⒁詥尾椒绞竭\行,如果節(jié)點為 一個子程序或結(jié)構(gòu),則進(jìn)入子程序或結(jié)構(gòu)內(nèi)部執(zhí)行單步運行方式。(Start Single Stepping,單步執(zhí)行)單步執(zhí)行按鈕。與不同的是:以一個節(jié)點為執(zhí)行單位,即單擊一次此按鈕執(zhí)行一個節(jié)點。如果節(jié)點為一個子程序或結(jié)構(gòu),也作為一個執(zhí)行單位,一次執(zhí)行完,然后轉(zhuǎn)到下一個節(jié)點,而不會進(jìn)入節(jié)點內(nèi)部執(zhí)行。閃爍的節(jié)點表示該節(jié)點等待執(zhí)行。(Step Out)當(dāng)在一個節(jié)點(如子程序或結(jié)構(gòu))

14、內(nèi)部執(zhí)行單步運行方式時,單擊此按鈕可以一次執(zhí)行完該節(jié)點,并直接跳出該節(jié)點轉(zhuǎn)到下一個節(jié)點。3) 快捷菜單LabVIEW菜單中使用最多的是快捷菜單,幾乎所有用來創(chuàng)建虛擬儀器的對象都有可選擇的快捷菜單。在對象上單擊鼠標(biāo)右鍵即可以訪問快捷菜單。4) 下拉式菜單LabVIEW窗口上部都的菜單欄為下拉菜單。下拉式菜單包括最普通的選項如Open、Save、Copy、Paste以及LabVIEW的其他特殊選項。2、LabVIEW的操作模板LabVIEW具有多個圖形化的操作模板,用于創(chuàng)建和運行程序。這些操作模板可以隨意在屏幕上移動,并可以放置在屏幕的任意位置。操縱模板共有三類,為工具(Tools)模板、控制(C

15、ontrols)模板和功能(Functions)模板。1) 工具模板(Tools Palette)圖1-6 工具模板工具模板為編程者提供了各種用于創(chuàng)建、修改和調(diào)試VI程序的工具。如果該模板沒有出現(xiàn),則可以在Windows菜單下選擇Show Tools Palette命令以顯示該模板。當(dāng)從模板內(nèi)選擇了任一種工具后,鼠標(biāo)箭頭就會變成該工具相應(yīng)的形狀。當(dāng)從Windows菜單下選擇了Show Help Window功能后,把工具模板內(nèi)選定的任一種工具光標(biāo)放在框圖程序的子程序(Sub VI)或圖標(biāo)上,就會顯示相應(yīng)的幫助信息。工具圖標(biāo)有如下幾種。操作工具:使用該工具來操作前面板的控制和顯示。使用它向數(shù)字或

16、字符串控制中鍵入值時,工具會變成標(biāo)簽工具的形狀。選擇工具:用于選擇、移動或改變對象的大小。當(dāng)它用于改變對象的連框大小時,會變成相應(yīng)形狀。標(biāo)簽工具:用于輸入標(biāo)簽文本或者創(chuàng)建自由標(biāo)簽。當(dāng)創(chuàng)建自由標(biāo)簽時它會變成相應(yīng)形狀。連線工具:用于在框圖程序上連接對象。如果聯(lián)機(jī)幫助的窗口被打開時,把該工具放在任一條連線上,就會顯示相應(yīng)的數(shù)據(jù)類型。對象彈出菜單工具:用左鼠標(biāo)鍵可以彈出對象的彈出式菜單。漫游工具:使用該工具就可以不需要使用滾動條而在窗口中漫游。斷點工具:使用該工具在VI的框圖對象上設(shè)置斷點。探針工具:可以在框圖程序內(nèi)的數(shù)據(jù)流線上設(shè)置探針。程序調(diào)試員可以通過探針窗口來觀察該數(shù)據(jù)流線上的數(shù)據(jù)變化狀況。顏色

17、提取工具:使用該工具來提取顏色用于編輯其他的對象。顏色工具:用來給對象定義顏色。它也顯示出對象的前景色和背景色。與上述工具模板不同,控制和功能模板只顯示頂層子模板的圖標(biāo)。在這些頂層子模板中包含許多不同的控制或功能子模板。通過這些控制或功能子模板可以找到創(chuàng)建程序所需的面板對象和框圖對象。用鼠標(biāo)點擊頂層子模板圖標(biāo)就可以展開對應(yīng)的控制或功能子模板,只需按下控制或功能子模板左上角的大頭針就可以把對這個子模板變成浮動板留在屏幕上。2) 控制模板(Controls Palette)圖1-7 控制模板用控制模板可以給前面板添加輸入控制和輸出顯示。每個圖標(biāo)代表一個子模板。如果控制模板不顯示,可以用Window

18、s菜單的Show Controls Palette功能打開它,也可以在前面板的空白處,點擊鼠標(biāo)右鍵,以彈出控制模板。注:只有當(dāng)打開前面板窗口時才能調(diào)用控制模板??刂颇0迦鐖D1-7所示,它包括如圖所示的幾個子模板,說明如下。數(shù)值子模板:包含數(shù)值的控制和顯示。布爾值子模塊:邏輯數(shù)值的控制和顯示。字符串子模板:字符串和表格的控制和顯示。列表和環(huán)(Ring)子模板:菜單環(huán)和列表欄的控制和顯示。數(shù)組和群子模板:復(fù)合型數(shù)據(jù)類型的控制和顯示。圖形子模板:顯示數(shù)據(jù)結(jié)果的趨勢圖和曲線圖。路徑和參考名(Refnum)子模板:文件路徑和各種標(biāo)識的控制和顯示??丶萜鲙熳幽0澹河糜诓僮鱋LE、ActiveX等功能。對

19、話框子模板:用于輸入對話框的顯示控制。修飾子模板:用于給前面板進(jìn)行裝飾的各種圖形對象。用戶自定義的控制和顯示。調(diào)用存儲在文件中的控制和顯示的接口。3) 函數(shù)模板(Functions Palette,又稱功能模板)圖1-8 功能模板功能模板是創(chuàng)建框圖程序的工具。該模板上的每一個頂層圖標(biāo)都表示一個子模板。若功能模板不出現(xiàn),則可以用Windows菜單下的Show Functions Palette功能打開它,也可以在框圖程序窗口的空白處點擊鼠標(biāo)右鍵以彈出功能模板。如圖1-8所示。注:只有激活了框圖程序窗口,才能出現(xiàn)功能模板。結(jié)構(gòu)子模板:包括程序控制結(jié)構(gòu)命令,例如循環(huán)控制等,以及全局變量和局部變量。數(shù)

20、值運算子模板:包括各種常用的數(shù)值運算符,如+、-等;以及各種常見的數(shù)值運算式,如+1運算;還包括數(shù)制轉(zhuǎn)換、三角函數(shù)、對數(shù)、復(fù)數(shù)等運算,以及各種數(shù)值常數(shù)。布爾邏輯子模板:包括各種邏輯運算符以及布爾常數(shù)。字符串運算子模板:包含各種字符串操作函數(shù)、數(shù)值與字符串之間的轉(zhuǎn)換函數(shù),以及字符(串)常數(shù)等。數(shù)組子模板:包括數(shù)組運算函數(shù)、數(shù)組轉(zhuǎn)換函數(shù),以及常數(shù)數(shù)組等。群子模板。包括群的處理函數(shù),以及群常數(shù)等。這里的群相當(dāng)于C語言中的結(jié)構(gòu)。比較子模板:包括各種比較運算函數(shù),如大于、小于、等于。時間和對話框子模板:包括對話框窗口、時間和出錯處理函數(shù)等。文件輸入/輸出子模板:包括處理文件輸入/輸出的程序和函數(shù)。儀器控

21、制子模板:包括GPIB(488、488.2)、串行、VXI儀器控制的程序和函數(shù),以及VISA的操作功能函數(shù)。儀器驅(qū)動程序庫:用于裝入各種儀器驅(qū)動程序。數(shù)據(jù)采集子模板:包括數(shù)據(jù)采集硬件的驅(qū)動程序,以及信號調(diào)理所需的各種功能模塊。信號處理子模板:包括信號發(fā)生、時域及頻域分析功能模塊。數(shù)學(xué)模型子模塊:包括統(tǒng)計、曲線擬合、公式框節(jié)點等功能模塊,以及數(shù)值微分、積分等數(shù)值計算工具模塊。圖形與聲音子模塊:包括3D、OpenGL、聲音播放等功能模塊。通訊子模板:包括TCP、DDE、ActiveX和OLE等功能的處理模塊。應(yīng)用程序控制子模塊:包括動態(tài)調(diào)用VI、標(biāo)準(zhǔn)可執(zhí)行程序的功能函數(shù)。底層接口子模塊:包括調(diào)用動

22、態(tài)連接庫和CIN節(jié)點等功能的處理模塊。文檔生成子模板。示教課程子模板:包括LabVIEW示教程序。用戶自定義的子VI模板?!斑x擇VI子程序”子模板:包括一個對話框,可以選擇一個VI程序作為子程序(SUB VI)插入當(dāng)前程序中。其它幾個子模板是LabVIEW的附加Toolkit安裝上去的。在LabVIEW完全版中不包括這些子模板。3、虛擬儀器程序的創(chuàng)建在進(jìn)行LabVIEW設(shè)計中,我們始終需要牢記的是,VI程序具有三個要素:前面板、框圖程序和圖標(biāo)/連接器。1) 前面板使用輸入控制和輸出顯示來構(gòu)成前面板??刂剖怯脩糨斎霐?shù)據(jù)到程序的接口。而顯示是輸出程序產(chǎn)生的數(shù)據(jù)接口??刂坪惋@示有許多種類,可以從控制

23、模板的各個子模板中選取。兩種最常用的前面板對象是數(shù)字控制和數(shù)字顯示。若想要在數(shù)字控制中輸入或修改數(shù)值,可以使用操作工具(見工具模板)點擊控制部件和增減按鈕,或者用操作工具或標(biāo)簽工具雙擊數(shù)值欄進(jìn)行輸入數(shù)值修改。2) 框圖程序框圖程序是由節(jié)點、端點、圖框和連線四種元素構(gòu)成的。節(jié)點類似于文本語言程序的語句、函數(shù)或者子程序。LabVIEW有二種節(jié)點類型-函數(shù)節(jié)點和子VI節(jié)點。兩者的區(qū)別在于:函數(shù)節(jié)點是LabVIEW以編譯好了的機(jī)器代碼供用戶使用的,而子VI節(jié)點是以圖形語言形式提供給用戶的。用戶可以訪問和修改任一子VI節(jié)點的代碼,但無法對函數(shù)節(jié)點進(jìn)行修改。上面的框圖程序所示的VI程序有兩個功能函數(shù)節(jié)點,

24、一個函數(shù)使兩個數(shù)值相加,另一個函數(shù)使兩數(shù)相減。端點是只有一路輸入/輸出,且方向固定的節(jié)點。LabVIEW有三類端點-前面板對象端點、全局與局部變量端點和常量端點。對象端點是數(shù)據(jù)在框圖程序部分和前面板之間傳輸?shù)慕涌?。一般來說,一個VI的前面板上的對象(控制或顯示)都在框圖中有一個對象端點與之一一對應(yīng)。當(dāng)在前面板創(chuàng)建或刪除面板對象時,可以自動創(chuàng)建或刪除相應(yīng)的對象端點。控制對象對應(yīng)的端點在框圖中是用粗框框住的,如圖1-9中的A和B端點。它們只能在VI程序框圖中作為數(shù)據(jù)流源點。顯示對象對程序框圖 前面板圖1-9 簡單的程序框圖和前面板應(yīng)的端點在框圖中是用細(xì)框框住的。如例子中的A+B和A-B端點。它們只

25、能在VI程序框圖中作為數(shù)據(jù)流終點。常量端點永遠(yuǎn)只能在VI程序框圖中作為數(shù)據(jù)流源點。圖框是LabVIEW實現(xiàn)程序結(jié)構(gòu)控制命令的圖形表示。如循環(huán)控制、條件分支控制和順序控制等,編程人員可以使用它們控制VI程序的執(zhí)行方式。代碼接口節(jié)點(CIN)是框圖程序與用戶提供的C語言文本程序的接口。連線是端口間的數(shù)據(jù)通道。它們類似于普通程序中的變量。數(shù)據(jù)是單向流動的,從源端口向一個或多個目的端口流動。不同的線型代表不同的數(shù)據(jù)類型。在彩顯上,每種數(shù)據(jù)類型還以不同的顏色予以強(qiáng)調(diào)。下面是一些常用數(shù)據(jù)類型所對應(yīng)的線型和顏色:整 形 藍(lán)色浮點數(shù) 橙色邏輯量 綠色字符串 粉色文件路徑 青色當(dāng)需要連接兩個端點時,在第一個端點

26、上點擊連線工具(從工具模板欄調(diào)用),然后移動到另一個端點,再點擊第二個端點。端點的先后次序不影響數(shù)據(jù)流動方向。當(dāng)把連線工具放在端點上時,該端點區(qū)域?qū)W爍,表示連線將會接通該端點。當(dāng)把連線工具從一個端口接到另一個端口時,不需要按住鼠標(biāo)鍵。當(dāng)需要連線轉(zhuǎn)彎時,點擊一次鼠標(biāo)鍵,即可以正交垂直方向地彎曲連線,按空格鍵可以改變轉(zhuǎn)角的方向。3) 從框圖程序窗口創(chuàng)建前面板對象用選擇和連線工具,可以用鼠標(biāo)右鍵點擊任一節(jié)點和端點,然后從彈出菜單中選擇“創(chuàng)建常數(shù)”,“創(chuàng)建控制”,或“創(chuàng)建顯示”等命令。LabVIEW會自動地在被創(chuàng)建的端點與所點擊對象之間接好連線。圖1-10 從框圖程序窗口創(chuàng)建前面板對象編寫框圖程序

27、技巧:可以通過鼠標(biāo)右鍵,在快捷菜單中點擊View As Icon 取消此選項,則成為(只是外觀顯示不同)。4) 數(shù)據(jù)流編程控制VI程序的運行方式叫做“數(shù)據(jù)流”。對一個節(jié)點而言,只有當(dāng)它的所有輸入端口上的數(shù)據(jù)都成為有效數(shù)據(jù)時,它才能被執(zhí)行。當(dāng)節(jié)點程序運行完畢后,它把結(jié)果數(shù)據(jù)送給所有的輸出端口,使之成為有效數(shù)據(jù)。并且數(shù)據(jù)很快從源送到目的端口。如圖1-11所示,這個VI程序把兩個輸入數(shù)值相乘,再把乘積減去。這個程序中,框圖程序從左往右執(zhí)行,這個執(zhí)行次序不是由于對象的擺放位置,而是由于相減運算函數(shù)的一個輸入量是相乘函數(shù)的運算結(jié)果,它只有當(dāng)相乘運算圖1-11 數(shù)據(jù)流舉例完成并把結(jié)果送到減運算的輸入口后才

28、能繼續(xù)下去。請記住,一個節(jié)點(函數(shù))只有當(dāng)它所有的輸入端的數(shù)據(jù)都成為有效數(shù)據(jù)后才能被執(zhí)行,而且只有當(dāng)它執(zhí)行完成后,它的所有輸出端口上的數(shù)據(jù)才成為有效。再看另一個程序(如圖1-12所示),你認(rèn)為哪一個節(jié)點函數(shù)將先執(zhí)行?是乘法還是除法?在這個例子中,我們無法知道哪一個節(jié)點函數(shù)首先執(zhí)行,因為所有輸入量幾乎同時到達(dá)。對于這樣一種相互獨立的數(shù)據(jù)流程,如果又必須明確指定節(jié)點執(zhí)行的先后次序,就必須使用順序(Sequence)結(jié)構(gòu)來明確執(zhí)行次序。圖1-12 數(shù)據(jù)流舉例5) 創(chuàng)建子程序在LabVIEW中,每個VI程序都可以將其創(chuàng)建成子程序,以便其他程序調(diào)用。創(chuàng)建如下(我們將圖1-11所示的VI程序保存為“例子1

29、”,創(chuàng)建成子程序):a) 打開VI程序“例子1”。b) 創(chuàng)建接線端口。接線端口是VI程序數(shù)據(jù)的輸入/輸出端口,創(chuàng)建過程如下:Ø 右鍵單擊前面板中右上角圖標(biāo),從彈出的快捷菜單中選擇Show Connector選項。此時前面板窗口右上角的圖標(biāo)由接線端口取代,每個小矩形框代表一個連線的端口,這些端口用來將數(shù)據(jù)輸入到VI程序中或?qū)I程序的數(shù)據(jù)輸出。LabVIEW將會根據(jù)控制器和指示器的數(shù)值選擇一種連線端口模式。本例中由3個端口:兩個數(shù)字控制器(Numeric1和Numeric2),一個數(shù)字指示器(Result)。如果由必要,還可以在連線端口圖標(biāo)上單擊右鍵,從彈出的快捷菜單中選擇Patter

30、ns來改變連線端口模式。默認(rèn)狀態(tài)時,輸入端口(控制器端口)在連線端口方框左邊,輸出端口(指示器端口)在連線端口方框右邊。Ø 把連線端口分配給相應(yīng)的控制器和指示器。Ø 使用連線工具,在左邊連線端口框內(nèi)單擊鼠標(biāo)左鍵,則端口將會變黑,再單擊控制器,一個閃爍的虛線框?qū)鼑≡摽刂破?。此時端口的顏色也會根據(jù)控制器的類型做相應(yīng)的變換?,F(xiàn)在單擊右邊的連線端口,使它變黑,再點擊相應(yīng)的指示器,這樣就創(chuàng)建了該指示器同相應(yīng)端口的連接。c) 保存此程序,以后我們就可以對其象子程序一樣調(diào)用了。d) 打開一個新的VI,在框圖程序中選擇Functions-All Functions-Select a V

31、I,再選擇上面我們保存的VI程序“例子1”。此時,此VI程序?qū)⒁詧D標(biāo)形式出現(xiàn)。用連線工具可以看到它的連線端口,這樣我們就可以創(chuàng)建相應(yīng)的控制器和指示器,如圖1-13所示。圖1-13 調(diào)用子程序4、程序調(diào)試技術(shù)程序調(diào)試是進(jìn)行任何程序設(shè)計過程中所必須的過程。我們在程序設(shè)計過程中不可避免地會有各種邏輯上和語法上的錯誤,這些都需要通過程序調(diào)試找出來加以改正。Lab view給我們提供了幾種程序調(diào)試的方法,主要有以下幾種。1) 找出語法錯誤如果一個VI程序存在語法錯誤,則在面板工具條上的運行按鈕將會變成一個折斷的箭頭,表示程序不能被執(zhí)行。這時這個按鈕被稱作錯誤列表。點擊它,則LabVIEW彈出錯誤清單窗口

32、,點擊其中任何一個所列出的錯誤,選用Find功能,則出錯的對象或端口就會變成高亮。2) 設(shè)置執(zhí)行程序高亮在Lab VIEW的工具條上有一個畫著燈泡的按鈕,這個按鈕叫做“高亮執(zhí)行”按鈕上。點擊這個按鈕使該按鈕圖標(biāo)變成高亮形式,再點擊運行按鈕,VI程序就以較慢的速度運行,沒有被執(zhí)行的代碼灰色顯示,執(zhí)行后的代碼高亮顯示,并顯示數(shù)據(jù)流線上的數(shù)據(jù)值。這樣,我們就可以在根據(jù)數(shù)據(jù)的流動狀態(tài)跟蹤程序的執(zhí)行。3) 斷點與單步執(zhí)行為了查找程序中的邏輯錯誤,我們有時希望框圖程序一個節(jié)點一個節(jié)點地執(zhí)行。使用斷點工具可以在程序的某一地點中止程序執(zhí)行,用探針或者單步方式查看數(shù)據(jù)。使用斷點工具時,點擊希望設(shè)置或者清除斷點的

33、地方。斷點的顯示對于節(jié)點或者圖框表示為紅框,對于連線表示為紅點。當(dāng)VI程序運行到斷點被設(shè)置處,程序被暫停在將要執(zhí)行的節(jié)點,以閃爍表示。按下單步執(zhí)行按鈕,閃爍的節(jié)點被執(zhí)行,下一個將要執(zhí)行的節(jié)點變?yōu)殚W爍,指示它將被執(zhí)行。我們也可以點擊暫停按鈕,這樣程序?qū)⑦B續(xù)執(zhí)行直到下一個斷點。4) 探針可以用探針工具來查看當(dāng)框圖程序流經(jīng)某一根連接線時的數(shù)據(jù)值。從Tools工具模板選擇探針工具,再用鼠標(biāo)左建點擊我們希望放置探針的連接線。這時顯示器上會出現(xiàn)一個探針顯示窗口。該窗口總是被顯示在前面板窗口或框圖窗口的上面。在框圖中使用選擇工具或連線工具,在連線上點擊鼠標(biāo)右鍵,在連線的彈出式菜單中選擇“探針”命令,同樣可以

34、為該連線加上一個探針。5、LabVIEW程序設(shè)計的一般過程 1)前面板設(shè)計使用輸入控件器和輸出指示器來構(gòu)成前面板。控制器是用戶輸入數(shù)據(jù)到程序的方法,而指示器顯示程序產(chǎn)生的數(shù)值。2)框圖程序的組成 框圖程序由節(jié)點、端口和連線和組成。 前面板框圖程序3)從框圖程序創(chuàng)建前面板對象 用任意LabVIEW工具,用戶都可以用鼠標(biāo)右鍵單擊任意的LabVIEW功能函數(shù)或者子程序,然后可以彈出其快捷菜單。4)數(shù)據(jù)流編程 VI程序的運行是“數(shù)據(jù)流”驅(qū)動的。對一個節(jié)點而言,只有當(dāng)它的輸入端口上的數(shù)據(jù)都有效以后,它才能被執(zhí)行。當(dāng)節(jié)點程序運行完畢后,它把結(jié)果數(shù)據(jù)送給所有的輸出端口?!皵?shù)據(jù)流”與常規(guī)程序的“控制流”相類似

35、,相當(dāng)于指令執(zhí)行的順序按照程序的編寫順序。如下圖,這個VI程序把兩個輸入數(shù)值相乘,再把乘積減去50。下面簡單介紹這個VI框圖程序的創(chuàng)建過程:選擇框圖程序窗口。在功能模板中選擇Numeric下的Multiply(乘法)函數(shù),放入框圖程序窗口。在此函數(shù)圖標(biāo)的左端輸入端口上單擊右鍵,從彈出的對話框中選擇CreatàControl,創(chuàng)建一個與它相連的控制器。重復(fù)上面的步驟,創(chuàng)建第二個控制器同乘法函數(shù)的連接。在功能模板中選擇Numeric下的Subtract(減法)函數(shù),放入框圖程序窗口。在此函數(shù)左端相應(yīng)輸入端口上單擊右鍵,從彈出的對話框中選擇CreatàConstant,創(chuàng)建一個常

36、數(shù)。在此減法(Subtract)函數(shù)右端輸出端口上單擊右鍵,從彈出的對話框中選擇CreatàIndicator,創(chuàng)建指示器。用連線工具連線。四、實驗內(nèi)容1、創(chuàng)建自己的第一個VI。建立一個測量溫度和容積的VI。步驟如下:1)選擇 File»New,打開一個新的前面板窗口。2)從 Controls»Numeric 中選擇 Tank放到前面板中。3)在標(biāo)簽文本框中輸入“容積” ,然后在前面板中的其他任何位置單擊一下。4)把容器顯示對象的顯示范圍設(shè)置為到1000.a.使用文本編輯工具(Text Edit Tool),雙擊容器坐標(biāo)標(biāo)度,使它高亮顯示。b.在坐標(biāo)中輸入 100

37、0,再在前面板中的其他任何地方單擊一下。 這時到1000.0之間的增量將被自動顯示。5)在容器旁配數(shù)據(jù)顯示。將鼠標(biāo)移到容器上,點右鍵,在出現(xiàn)的快速菜單中選Visible Iterms»Digital Display即可。6)從Controls»Numeric 中選擇一個溫度計,將它放到前面板中。設(shè)置其標(biāo)簽為“溫度”,顯示范圍為0到100,同時配數(shù)字顯示??傻玫饺缦碌那懊姘鍒D。練習(xí)1的前面板圖隨機(jī)數(shù)發(fā)生器乘法函數(shù)數(shù)值常數(shù)連接點7)Windows»Show Diagram 打開流程圖窗口。從功能模板中選擇對象,將它們放到流程圖上組成下圖(其中的標(biāo)注是后加的)。練習(xí)1的

38、流程圖該流程圖中新增的對象有兩個乘法器、兩個數(shù)值常數(shù)、一個隨機(jī)數(shù)發(fā)生器,溫度和容積對象是由前面板的設(shè)置自動帶出來的。乘法器和隨機(jī)數(shù)發(fā)生器由Functions»Numeric中拖出,盡管數(shù)值常數(shù)也可以這樣得到,但是建議使用在連接端子處點擊右鍵創(chuàng)建(Create)常量(Constant)的方法更好些。8)用連線工具將各對象按規(guī)定連接。9)選擇 File»Save, 把該VI命名為,保存為 D:Yourname的文件夾中。在前面板中,單擊Run(運行)按鈕,運行該 VI。注意電壓和溫度的數(shù)值都顯示在前面板中。10)選擇File»Close,關(guān)閉該 VI 。2、自己創(chuàng)建一

39、個VI,完成以下功能: 將兩個輸入的數(shù)字相加并顯示結(jié)果;將同樣兩個輸入數(shù)字相乘并顯示結(jié)果;比較兩個輸入數(shù)字,如果數(shù)字相等,則LED指示燈亮。最后,保存為Simple Math.vi文件。 前面板如圖1.5:數(shù)字A和B用兩個數(shù)字控件輸入,兩個數(shù)字指示器分別顯示輸出結(jié)果A+B和A×B,當(dāng)輸入數(shù)字A和B相同時,將點亮LED。 完成后,應(yīng)用“高亮執(zhí)行”觀察數(shù)據(jù)流的運行流程,利用斷點,單步調(diào)試等工具進(jìn)行調(diào)試。練習(xí)使用探針工具來查看當(dāng)流程圖程序流經(jīng)某一根連接線時的數(shù)據(jù)值。 圖1.5練習(xí)3的前面板3、子VI的創(chuàng)建與調(diào)用 )打開練習(xí)1中。)在前面板中,用鼠標(biāo)右鍵單擊窗口右上角的圖標(biāo),在快捷菜單中選擇

40、 Edit Icon.,也可以雙擊圖標(biāo)激活圖標(biāo)編輯器。注意只能在前面板中編輯圖標(biāo)和聯(lián)接器。3)刪除默認(rèn)圖標(biāo)。使用Select Tool(矩形框),單擊并拖動想要刪除的部分,按下<Delete>。也可以通過雙擊工具框中的陰影矩形刪除圖標(biāo)。4)用 Pencil Tool (鉛筆工具)繪制一個溫度計。5)用 Text Tool(文本工具)創(chuàng)建文本。得到圖標(biāo)將如下圖所示。圖.編輯后的圖標(biāo)編輯器窗口6)單擊OK,關(guān)閉編輯器。新創(chuàng)建的圖標(biāo)就顯示在屏幕右上角的圖標(biāo)窗口中。7) 用鼠標(biāo)右鍵單擊前面板中的圖標(biāo)窗口,在快捷菜單中選擇Show Connector,設(shè)置聯(lián)接器端子連接模式。在默認(rèn)情況下,L

41、abVIEW 會根據(jù)前面板中的控制對象和顯示對象的數(shù)目確定聯(lián)接器的端子連接模式。因為前面板中有兩個對象,所以聯(lián)接器有兩個端子,如左圖所示。用鼠標(biāo)右鍵單擊聯(lián)接器窗口,在快捷菜單中選擇Rotate 90 Degrees(旋轉(zhuǎn)90度),注意聯(lián)接器窗口的變化,如左圖所示。9)將端子連接到溫度計和容積計: a. 點擊聯(lián)接器上部端子。光標(biāo)自動變成連線工具,同時端子變成黑色。b. 單擊溫度顯示對象。一個移動的虛線框把它包圍起來,選中的端子的顏色變?yōu)榕c控制/顯示對象的數(shù)據(jù)類型一致的顏色。如果單擊前面板中的任何空白區(qū)域以后,虛線消失,選中的端子變暗,這表示您已經(jīng)成功地把顯示對象和上部端子連接起來。如果端子是白色

42、,則表示沒有連接成功。c. 重復(fù)步驟a 和 b,把底部的端子和容積計連接起來。d. 用鼠標(biāo)右鍵單擊聯(lián)接器,在快捷菜單中選擇Show Icon.10)選擇File»Save ,保存該 VI。這樣這個 VI 就完成了,并也可以作為子 VI 被其他的VI調(diào)用。子VI 的圖標(biāo)在主 VI 的流程圖中代表它。VI 的聯(lián)接器(含有兩個端子)輸出溫度和容積。4、設(shè)計一個VI程序,根據(jù)所給的x1,y1,x2,y2的值求出直線的斜率。把此程序作為子程序,自己設(shè)計一個簡單的VI程序調(diào)用此子程序。五、實驗報告要求1調(diào)試編輯以上VI,按順序打印以上VI的前面板與程序框圖后,貼在實驗報告上;實驗報告中要求詳細(xì)說

43、明設(shè)計步驟要點。2理解基于數(shù)據(jù)流編程的基本編程思路。3總結(jié)VI基本編程的快捷操作。4簡述VI程序有什么構(gòu)成,其各部分的功能是什么。5思考:在前面板和框圖程序中,如何區(qū)分控制器和指示器。6心得體會及其它。實驗二 LabVIEW編程的程序結(jié)構(gòu)實驗循環(huán)結(jié)構(gòu)一、實驗?zāi)康?學(xué)習(xí)并掌握For循環(huán)和While循環(huán)以及它們的不同點。2學(xué)習(xí)使用移位寄存器(shift register)和反饋節(jié)點(Feedback Node)。二、實驗設(shè)備安裝有LabVIEW 的計算機(jī)三、實驗原理While 循環(huán)和For循環(huán)在函數(shù)(Function)的結(jié)構(gòu)(Structures)選項板中可以找到。創(chuàng)建循環(huán)的具體方法是,選擇該循環(huán)

44、后,先在欲放入循環(huán)內(nèi)執(zhí)行的對象左上方單擊,然后按下鼠標(biāo),拖曳出一個矩形框包圍執(zhí)行對象。釋放鼠標(biāo)時就創(chuàng)建了一個指定大小和位置的循環(huán)。While 循環(huán)可以反復(fù)執(zhí)行循環(huán)體的程序,直至到達(dá)某個邊界條件。它類似于普通編程語言中的 Do 循環(huán)和 Repeat-Until 循環(huán)。While 循環(huán)的框圖是一個大小可變的方框,用于執(zhí)行框中的程序,直到條件端子接收到的布爾值為 FALSE。1.For循環(huán)和While循環(huán)當(dāng)程序有確定的循環(huán)次數(shù)時,我們使用For循環(huán)。在程序框圖中添加For循環(huán)(Functions-All Functions-Structures-For Loop),如圖2-1所示。u (循環(huán)次數(shù)輸入

45、端)For循環(huán)必須給定循環(huán)次數(shù)n(n>0,否則循環(huán)不執(zhí)行),此項一般都要有輸入。當(dāng)For循環(huán)的輸入數(shù)據(jù)時一個數(shù)組時,有關(guān)數(shù)組將在后續(xù)章節(jié)中介紹),如果不給定循環(huán)次數(shù),則數(shù)組的大小將決定For循環(huán)的循環(huán)次數(shù)。如果同時輸入兩個數(shù)組,循環(huán)次數(shù)以數(shù)組個數(shù)最少的決定。u (循環(huán)計數(shù))計數(shù)范圍0n1。當(dāng)具體的循環(huán)次數(shù)不可知時,我們使用While循環(huán)(Functions-All Functions-Structures-While Loop),如圖2-2所示。 圖2-1 For循環(huán) 圖2-2 While循環(huán)While循環(huán)也有一個循環(huán)計數(shù),第一次循環(huán)時的值為0。另外,While循環(huán)有一個循環(huán)條件判斷端子

46、。請?zhí)貏e注意,無論如何,都要給While循環(huán)結(jié)構(gòu)一個有效的停止條件,否則可能就會使循環(huán)陷入死循環(huán)的狀態(tài)。例如,希望在一組數(shù)據(jù)中尋找一個特定的數(shù),找到以后停止循環(huán)。由于這個特定的數(shù)的位置事先不知道,我們可以使用While循環(huán)來完成以上的操作,但如果我們將循環(huán)停止的條件只是定為找到特定的數(shù)就停止,那么,當(dāng)由于各種原因造成的在這樣的一組數(shù)據(jù)中不存在這個特定數(shù)時,While循環(huán)將無限運行下去。因此,我們還需要加入其他判斷條件,例如我們的循環(huán)停止條件可以改為:找到特定的數(shù)或者這個數(shù)組都找完,則停止。LabVIEW 7 Express對While循環(huán)還提供了一個快捷方式:Functions-Executi

47、on-Control-While Loop,程序框圖如圖2-3所示,與圖2-2不同的時自動加了一個停止按鈕。圖2-3 快捷While2.移位寄存器和反饋節(jié)點使用循環(huán)結(jié)構(gòu)時,經(jīng)常會遇到下一次循環(huán)要用到上一次循環(huán)運行結(jié)果的情況,這時就需要不斷的將每次循環(huán)的結(jié)果存儲下來,以傳遞給下一次循環(huán)。移位寄存器(Shift Register)和反饋節(jié)點(Feedback Node)就是用來實現(xiàn)這樣的操作的。(a)為For循環(huán)設(shè)置移位寄存器(b)為While循環(huán)設(shè)置移位寄存器圖2-4 設(shè)置移位寄存器在For循環(huán)和While循環(huán)中都可以添加移位寄存器和反饋節(jié)點,添加方法如下:1) 移位寄存器(Shift Regi

48、ster)移位寄存器可以將數(shù)據(jù)從一個循環(huán)周期傳遞到另外一個周期。創(chuàng)建一個移位寄存器的方法是,用鼠標(biāo)右鍵單擊循環(huán)的左邊或者右邊,在快捷菜單中選擇 Add Shift Register。移位寄存器在流程圖上用在循環(huán)邊框上相應(yīng)的一對端子來表示。右邊的端子中存儲了一個周期完成后的數(shù)據(jù),這些數(shù)據(jù)在這個周期完成之后將被轉(zhuǎn)移到左邊的端子,賦給下一個周期。移位寄存器可以轉(zhuǎn)移各種類型的數(shù)據(jù)數(shù)值、布爾數(shù)、數(shù)組、字符串等等。它會自動適應(yīng)與它連接的第一個對象的數(shù)據(jù)類型。在For循環(huán)或者While循環(huán)的邊框上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇Add Shift Register,如圖2-4(a)和圖2-4(b)所示。

49、2) 反饋節(jié)點(Feedback Node)反饋節(jié)點是LabVIEW 7 Express新增功能,完成的功能同移位寄存器類似。在For循環(huán)或者While循環(huán)中,只要將其中的子VI、函數(shù)的輸入/輸出相連接,就會自動出現(xiàn)反饋節(jié)點。當(dāng)然,也可以通過Functions-Execution-Control-Feedback Node來圖2-5 將反饋節(jié)點變?yōu)橐莆患拇嫫魈砑印T诜答伖?jié)點上單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇Replace with Shift Register,反饋節(jié)點將變成移位寄存器,如圖2-5所示。下面我們通過一個簡單的例子來看一下移位寄存器和反饋節(jié)點是如何工作的。程序框圖如圖2-6所

50、示。在這里如果我們不給移位寄存器和反饋節(jié)點賦初值(本例中For循環(huán)框左邊的兩個常數(shù)0),下次程序運行時,移位寄存器和反饋節(jié)點中的值將以上次運行完的值開始。圖2-6 反饋節(jié)點和移位寄存器四、實驗內(nèi)容1創(chuàng)建一個關(guān)于While循環(huán)的VI,實現(xiàn)在While循環(huán)內(nèi)放置隨機(jī)數(shù)對象,并在前面板上顯示隨機(jī)數(shù)及While循環(huán)的實時次數(shù)。并在前面板設(shè)置開關(guān)控制按鈕,實現(xiàn)While循環(huán)的停止控制。前面板如圖2.7,最后將該VI保存為While Loop.vi文件。圖 2.7While Loop2創(chuàng)建一個關(guān)于For循環(huán)的VI,實現(xiàn)在For循環(huán)內(nèi)放置隨機(jī)數(shù)對象,并在前面板上顯示隨機(jī)數(shù)及For循環(huán)的實時次數(shù)。For循環(huán)的

51、指定執(zhí)行次數(shù)設(shè)為100次。前面板如圖2.8,最后將該VI保存為For Loop.vi文件。圖 2.8For Loop3練習(xí)使用移位寄存器:設(shè)計一個包含移位寄存器的While循環(huán),該前面板有4個數(shù)字指示器,X(i)指示器用于顯示當(dāng)前循環(huán)的實時次數(shù)i值,X(i-1)指示器用于顯示前一次迭代的已循環(huán)次數(shù)i的值,X(i-2)指示器用于顯示兩個迭代前的已循環(huán)次數(shù)i的值,X(i-3)指示器用于顯示三個迭代前的已循環(huán)次數(shù)i的值。移位寄存器的初始化值設(shè)為0。并在前面板設(shè)置開關(guān)控制按鈕,實現(xiàn)While循環(huán)的停止控制。前面板如圖2.9,最后將該VI保存為Viewing Shift Registers.vi文件。4

52、設(shè)計一個VI,實現(xiàn)使用循環(huán)和移位寄存器計算隨機(jī)數(shù)序列的移動平均值。要求該VI產(chǎn)生一個隨機(jī)序列,序列長度由前面板滑動條控件輸入,該隨機(jī)數(shù)序列的移動平均值由下列公式可計算:這里i=0,1,N-1, 表示在第i次計算的平均值,是來自隨機(jī)數(shù)函數(shù)的當(dāng)前隨機(jī)數(shù)。前面板要求顯示當(dāng)前用于計算移動平均值的隨機(jī)數(shù)個數(shù)i+1,當(dāng)前的移動平均值,前面板設(shè)計如圖2.10所示,最后將該VI保存為Random Number Average.vi文件。在Highlight Execution加亮執(zhí)行的狀態(tài)下觀察數(shù)據(jù)流。圖 2.9Viewing Shift Registers 圖 2.5Random Number Averag

53、e五、實驗報告要求1調(diào)試編輯以上VI,按順序打印以上VI的前面板與程序框圖后,貼在實驗報告上;實驗報告中要求詳細(xì)說明設(shè)計步驟要點。2說明For循環(huán)與While循環(huán)的區(qū)別。3理解移位寄存器的作用以及它的初始化。4心得體會及其它。實驗三LabVIEW編程的程序結(jié)構(gòu)實驗分支結(jié)構(gòu)與順序結(jié)構(gòu)一、實驗?zāi)康? 掌握分支結(jié)構(gòu)(Case Structure),順序結(jié)構(gòu)(Sequence Structure)編程。2 了解時間估計和控制函數(shù)。3了解公式節(jié)點(Formula Node)的使用。二、實驗設(shè)備安裝有LabVIEW 的計算機(jī)二、實驗原理1. 分支結(jié)構(gòu)(Case Structure)分支結(jié)構(gòu)(如圖3-1所示

54、)的輸入端可以連接布爾型和數(shù)字型變量。當(dāng)連接的是布爾型變量時,只有True Case和False Case兩種。當(dāng)連接的是數(shù)字型變量時,Case框上的標(biāo)識將變?yōu)?,1,根據(jù)輸入量的不同,Case結(jié)構(gòu)選擇運行不同的程序。關(guān)于Case結(jié)構(gòu),舉例如下,程序框圖如圖3-1所示。圖3-1 Case結(jié)構(gòu)舉例框圖程序在默認(rèn)狀態(tài)下,Case結(jié)構(gòu)只有0和1兩項,用右鍵單擊Case結(jié)構(gòu)的邊框,從彈出的快捷菜單中選擇Add Case After來添加一個Case,如圖3-2所示。圖3-2 添加Case前面板如圖3-3所示。是用來選擇操作是加法、減法還是乘法。選擇All Controls-Ring&Enum-

55、Memu Ring,然后通過工具模板改變大小,鼠標(biāo)右鍵選擇Properties,在彈出的對話框中改變其屬性,同時添加如圖3-4所示的內(nèi)容。圖3-3 Case結(jié)構(gòu)舉例前面板圖3-4 屬性設(shè)置Case結(jié)構(gòu)含有兩個或者更多的子程序(Case),執(zhí)行那一個取決于與選擇端子或者選擇對象的外部接口相連接的某個整數(shù)、布爾數(shù)、字符串或者標(biāo)識的值。必須選擇一個默認(rèn)的Case以處理超出范圍的數(shù)值,或者直接列出所有可能的輸入數(shù)值。Case結(jié)構(gòu)見下圖3.5。子程序標(biāo)識按鈕條件端子圖3.5 Case結(jié)構(gòu)2.順序結(jié)構(gòu)(Sequnce Structure)VI程序的運行是“數(shù)據(jù)流”驅(qū)動的,有時我們必須對這種數(shù)據(jù)流進(jìn)行控制,

56、這樣就用到了順序結(jié)構(gòu)。在LabVIEW 7 Express中有兩種循序結(jié)構(gòu):Flat Sequence Structure(Functions-Structures-Flat Sequence Structure)和Stacked Structure(Functions-Structures-Stacked Sequence Structure)。使用Flat Sequence Structure可以看到整個程序框圖,當(dāng)程序框圖所占的空間的大小允許時,可以使用這種順序結(jié)構(gòu)。在程序框上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇Add Frame after或Add Frame Before,這樣可以在本幀后或者前添加一幀,如圖3-6所示。使用Stacked Sequence Structure比較省空間,但是數(shù)據(jù)在各幀中

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論