第四講 循環(huán)結(jié)構(gòu) 局部變量 全局變量_第1頁(yè)
第四講 循環(huán)結(jié)構(gòu) 局部變量 全局變量_第2頁(yè)
第四講 循環(huán)結(jié)構(gòu) 局部變量 全局變量_第3頁(yè)
第四講 循環(huán)結(jié)構(gòu) 局部變量 全局變量_第4頁(yè)
第四講 循環(huán)結(jié)構(gòu) 局部變量 全局變量_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1LabVIEWLabVIEW程序設(shè)計(jì)程序設(shè)計(jì)葉云霞葉云霞2內(nèi)容v局部變量和全局變量的建立和使用方法v程序結(jié)構(gòu)之循環(huán)結(jié)構(gòu)(While 和For)v移位寄存器3全局變量和局部變量的存在意義v復(fù)雜程序中連線太多,會(huì)非?;靵y,程序可讀性變差。v有時(shí)甚至影響程序正常工作。v影響程序員對(duì)程序的調(diào)試和管理。v依靠連線無(wú)法在兩個(gè)VI之間交換數(shù)據(jù)。4局部變量和全局變量局部變量主要用于程序內(nèi)部傳遞數(shù)據(jù)。它既可以作為控制量向其他對(duì)象傳遞數(shù)據(jù)。又可以作為顯示量接收其他對(duì)象傳遞數(shù)據(jù)。全局變量主要用于程序間傳遞數(shù)據(jù)。5局部變量的建立方法v直接在函數(shù)模板中的STRUCTURE子模板中選擇Local Variable,建立

2、沒(méi)有賦值的局部變量。(如何將此沒(méi)有賦值的局部變量與一已知變量相關(guān)聯(lián)呢?)v在已有對(duì)象上單擊右鍵,在快捷菜單中選擇建立局部變量。建立此對(duì)象的局部變量。演示6局部變量的性質(zhì)和使用方法v可以作控制量、可以作顯示量v右鍵單擊可轉(zhuǎn)換。 7練習(xí)1:編寫(xiě)并調(diào)試數(shù)字濾波器程序1、新建VI。2、設(shè)計(jì)前面板:選取WaveformGraph3、設(shè)計(jì)后面板:從Signal Processing8濾波前的數(shù)字信號(hào)9數(shù)字濾波器框圖程序10濾波后高頻信號(hào)得到極大的衰減。1112全局變量的建立方法v新建菜單中選擇Global Variable,只有前面板沒(méi)有框圖程序。建立保存為一個(gè)VI程序。v直接在函數(shù)模板中的Structu

3、re子模板中選擇Global Variable。雙擊圖標(biāo)可對(duì)全局變量進(jìn)行編輯。演示13練習(xí)2練習(xí)2編制程序編制程序1 1:采集帶有隨機(jī)數(shù)噪聲的信:采集帶有隨機(jī)數(shù)噪聲的信號(hào),并實(shí)時(shí)顯示波形。同時(shí)實(shí)時(shí)計(jì)算出號(hào),并實(shí)時(shí)顯示波形。同時(shí)實(shí)時(shí)計(jì)算出程序運(yùn)行時(shí)間。程序運(yùn)行時(shí)間。編制程序編制程序2 2:同時(shí)顯示波形;顯示程序同時(shí)顯示波形;顯示程序運(yùn)行時(shí)間:運(yùn)行時(shí)間:“程序運(yùn)行了?秒!程序運(yùn)行了?秒!”; ;以以LEDLED顯示信號(hào)采集暫停。顯示信號(hào)采集暫停。1415程序結(jié)構(gòu) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)分支結(jié)構(gòu)分支結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)16循環(huán)結(jié)構(gòu) While 循環(huán) While While 循環(huán)循環(huán)可以反復(fù)執(zhí)行循環(huán)體的程序

4、,直至到達(dá)某個(gè)邊界條件。 While 循環(huán)的框圖是一個(gè)大小可變的方框,用于執(zhí)行框中的程序,直到直到條件端子條件端子接收到的布爾值為接收到的布爾值為 FALSEFALSE or TRUE。 17循環(huán)結(jié)構(gòu) While 循環(huán)的特點(diǎn)1.計(jì)數(shù)從0開(kāi)始(i=0)。2.先執(zhí)行循環(huán)體,而后i+1,如果循環(huán)只執(zhí)行一次,那么循環(huán)輸出值i=0。3.循環(huán)至少要運(yùn)行一次。 循環(huán)變量條件端子此條件端:此條件端:TRUETRUE則繼續(xù)運(yùn)行。則繼續(xù)運(yùn)行。18循環(huán)結(jié)構(gòu) While 循環(huán)練習(xí)練習(xí)1 1 v練習(xí)使用練習(xí)使用WhileWhile循環(huán)和圖表循環(huán)和圖表目的:用 While 循環(huán)和圖表獲得數(shù)據(jù),并實(shí)時(shí)顯示。 前面板 19循

5、環(huán)結(jié)構(gòu) While 循環(huán)練習(xí)練習(xí)1 1v創(chuàng)建一個(gè)可以產(chǎn)生并在圖表中顯示隨機(jī)數(shù)的VI。 前面板有一個(gè)控制旋鈕可在0到10秒之間調(diào)節(jié)循環(huán)時(shí)間,還有一個(gè)開(kāi)關(guān)可以中止VI的運(yùn)行。學(xué)習(xí)怎樣改變開(kāi)關(guān)開(kāi)關(guān)的動(dòng)作屬性,以便不用每次運(yùn)行VI時(shí)都要打開(kāi)開(kāi)關(guān)。v操作步驟如下: 1.選擇FileNewFileNew,打開(kāi)一個(gè)新的前面板。2.選擇ControlsBooleanControlsBoolean,在前面板中放置一個(gè)開(kāi)關(guān),設(shè)置開(kāi)關(guān)的標(biāo)簽為控制開(kāi)關(guān)。 20循環(huán)結(jié)構(gòu) While 循環(huán)練習(xí)練習(xí)1 13.使用標(biāo)簽工具創(chuàng)建 ON 和 OFF 的標(biāo)簽,放置于開(kāi)關(guān)旁。4.選中ControlsGraphControlsGrap

6、h,在前面板中放置一個(gè)波形圖(是chart,而不是graph)。設(shè)置它的標(biāo)簽為隨機(jī)信號(hào)。這個(gè)圖表用于實(shí)時(shí)顯示隨機(jī)數(shù)。5.把圖表的縱坐標(biāo)改為0.0 到 1.0。方法是用標(biāo)簽工具把最大值從10.0改為1.0。6.選擇ControlsNumericControlsNumeric,在前面板中放置一個(gè)旋鈕。設(shè)置旋鈕的標(biāo)簽為循環(huán)延時(shí)。這個(gè)旋鈕用于控制While 循環(huán)的循環(huán)時(shí)間。 21循環(huán)結(jié)構(gòu) While 循環(huán)練習(xí)練習(xí)1 17.開(kāi)流程圖,按照左圖創(chuàng)建流程圖。 a. 從 FunctionsStructures FunctionsStructures 中選擇 While 循環(huán),把它放置在流程圖中。將其拖至適當(dāng)大

7、小,將相關(guān)對(duì)象移到循環(huán)圈內(nèi)。 b. 從 Functions NumeriFunctions Numeric中選擇隨機(jī)數(shù)(0-1)功能函數(shù)放到循環(huán)內(nèi)。 c.在循環(huán)中設(shè)置Wait Until Next ms Wait Until Next ms MultipleMultiple函數(shù) (FunctionsTime & FunctionsTime & DialogDialog),該函數(shù)的時(shí)間單位是毫秒,按目前面板旋鈕的標(biāo)度,可將每次執(zhí)行時(shí)間延遲0到10毫秒。 d.照左面所示的流程圖連線,把隨機(jī)數(shù)功能函數(shù)和隨機(jī)信號(hào)圖表輸入端子連接起來(lái),并把啟動(dòng)開(kāi)關(guān)和While 循環(huán)的條件端子連接 22循

8、環(huán)結(jié)構(gòu) While 循環(huán)練習(xí)練習(xí)1 18.返回前面板,調(diào)用操作工具后單擊垂直開(kāi)關(guān)將它打開(kāi)。9. 把該 VI 保存為 LabVIEWActivityLabVIEWActivity目錄中的Random Signal.vi。10.執(zhí)行該 VI。While循環(huán)的執(zhí)行次數(shù)是不確定的,只要設(shè)置的條件為真,循環(huán)程序就會(huì)持續(xù)運(yùn)行。在這個(gè)例子中,只要開(kāi)關(guān)打開(kāi)(TRUE),框圖程序就會(huì)一直產(chǎn)生隨機(jī)數(shù),并將其在圖表中顯示。11.單擊垂直開(kāi)關(guān),中止該VI。關(guān)閉開(kāi)關(guān)這個(gè)動(dòng)作會(huì)給循環(huán)條件端子發(fā)送一個(gè)FALSE值,從而中止循環(huán)。12.用鼠標(biāo)右鍵單擊圖表,選擇Data OperationsClear ChartData Op

9、erationsClear Chart,清除顯示緩存,重新設(shè)置圖表。 23循環(huán)結(jié)構(gòu) While 循環(huán)附注與說(shuō)明附注與說(shuō)明: :布爾開(kāi)關(guān)的機(jī)械動(dòng)作:布爾開(kāi)關(guān)有6種機(jī)械動(dòng)作屬性可供選擇。在前面板上用鼠標(biāo)右鍵單擊開(kāi)關(guān),在快捷菜單中選擇MechanicalMechanicalActionAction就可以看到這些可選的動(dòng)作。LabVIEW還提供了一些范例示范這些動(dòng)作,它是位于ExamplesGeneralControlsbooleans.llb的Mechanical Action of Booleans.vi。 24循環(huán)結(jié)構(gòu) 移位寄存器(Shift RegisterShift Register) v移

10、位寄存器可以將數(shù)據(jù)從將數(shù)據(jù)從一個(gè)循環(huán)周期傳遞到另外一個(gè)循環(huán)周期傳遞到另外一個(gè)周期一個(gè)周期。在程序設(shè)計(jì)中,經(jīng)常要用到它v創(chuàng)建一個(gè)移位寄存器的方法是:用鼠標(biāo)右鍵單擊循環(huán)的左邊或者右邊,在快捷菜單中選擇 Add Shift Register。如圖所示 25循環(huán)結(jié)構(gòu) 移位寄存器(Shift RegisterShift Register)v移位寄存器在流程圖上用在循環(huán)邊框上相應(yīng)的一對(duì)端子來(lái)表示。v右邊的端子中存儲(chǔ)了一個(gè)周期完成后的數(shù)據(jù),這些數(shù)據(jù)在這個(gè)周期完成之后將被轉(zhuǎn)移到左邊的端子,賦給下一個(gè)周期。v移位寄存器可以轉(zhuǎn)移各種類型的數(shù)據(jù)數(shù)值、布爾數(shù)、數(shù)組、字符串等等。v它會(huì)自動(dòng)適應(yīng)與它連接的第一個(gè)對(duì)象的數(shù)據(jù)

11、類型。26循環(huán)結(jié)構(gòu) 移位寄存器(Shift RegisterShift Register)27循環(huán)結(jié)構(gòu) 移位寄存器(Shift RegisterShift Register)q可以令移位寄存器記憶前面的多個(gè)周期的數(shù)值多個(gè)周期的數(shù)值。這個(gè)功能對(duì)于計(jì)算數(shù)據(jù)均值非常有用。q還可以創(chuàng)建其他的端子訪問(wèn)先前的周期的數(shù)據(jù),方法是用鼠標(biāo)右鍵單擊左邊或者右邊的端子,在快捷菜單中選擇Add ElementAdd Element。q例如,如果某個(gè)移位寄存器左邊的端口含有三個(gè)元素,那么就可以訪問(wèn)前三個(gè)周期的數(shù)據(jù)。 28循環(huán)結(jié)構(gòu) 移位寄存器(Shift RegisterShift Register)練習(xí)練習(xí)使用移位寄存

12、器使用移位寄存器 創(chuàng)建一個(gè)可以在圖表中顯示運(yùn)行平均數(shù)的創(chuàng)建一個(gè)可以在圖表中顯示運(yùn)行平均數(shù)的VIVI。v打開(kāi)一個(gè)新的前面板,按照下圖所示創(chuàng)建對(duì)象。v把波形圖表的坐標(biāo)范圍改為0.0到2.0。 3.在添加豎直坐標(biāo)之后,用鼠標(biāo)右鍵單擊它,在快捷菜單中選擇Mechanical ActionLatch When Pressed,再選擇OperateMake Current Values Default,把ON狀態(tài)設(shè)置為默認(rèn)狀態(tài)。 29循環(huán)結(jié)構(gòu) 移位寄存器(Shift RegisterShift Register)練習(xí)練習(xí)v流程圖v按下圖創(chuàng)建流程圖。 流程圖 30循環(huán)結(jié)構(gòu) 移位寄存器(Shift Regis

13、terShift Register)練習(xí)練習(xí) 5.在流程圖中添加 While 循環(huán)(FunctionsStructures),創(chuàng)建移位寄存器。 a. 用鼠標(biāo)右鍵單擊While循環(huán)的左邊或者右邊,在快捷菜單中選擇Add Shift Register。 b. 用鼠標(biāo)右鍵單擊寄存器的左端子,在快捷菜單中選擇Add Element,添加一個(gè)寄存器。用同樣的方法創(chuàng)建第三個(gè)元素。 6.Random Number (01)函數(shù)(FunctionsNumeric)產(chǎn)生0到1之間的某個(gè)隨機(jī)數(shù)。 7.Compound Arithmetic 函數(shù)(FunctionsNumeric)在本練習(xí)中,它將返回兩個(gè)周期產(chǎn)生的

14、隨機(jī)數(shù)的和。如果要加入其他的輸入,只需用右鍵單擊某個(gè)輸入,從快捷菜單中選擇Add Input。 8.除法函數(shù)(FunctionsNumeric)在本練習(xí)中,它用于它用于返回最近四個(gè)隨機(jī)數(shù)的平均值。返回最近四個(gè)隨機(jī)數(shù)的平均值。31循環(huán)結(jié)構(gòu) 移位寄存器(Shift RegisterShift Register)練習(xí)練習(xí)v9.數(shù)值常數(shù)(FunctionsNumeric)在While循環(huán)的每個(gè)周期,Random Number (01)函數(shù)將產(chǎn)生一個(gè)隨機(jī)數(shù)。VI就將把這個(gè)數(shù)加入到存儲(chǔ)在寄存器中的最近三個(gè)數(shù)值中。Random Number (01)再將結(jié)果除以4,就能得到這些數(shù)的平均值(當(dāng)前數(shù)加上以前的三

15、個(gè)數(shù))。然后再將這個(gè)平均值顯示在波形圖中。v10Wait Until Next ms Multiple函數(shù) (FunctionsTime & Dialog)它將確保循環(huán)的每個(gè)周期不會(huì)比毫秒輸入快。在本練習(xí)中,毫秒輸入的值是500毫秒。如果用鼠標(biāo)右鍵單擊圖標(biāo),從快捷菜單中選擇VisibleLabel,就可以看到Wait Until Next ms Multiple的標(biāo)簽。 11.11.用鼠標(biāo)右鍵單擊Wait Until Next ms Multiple 功能函數(shù)的輸入端子,在快捷菜單中選擇Create Constant。出現(xiàn)一個(gè)數(shù)值常數(shù),并自動(dòng)與功能函數(shù)連接。 32循環(huán)結(jié)構(gòu) 移位寄存器(

16、Shift RegisterShift Register)練習(xí)練習(xí)v12.將Constant設(shè)置為設(shè)置為500。這樣連接到函數(shù)的數(shù)值常數(shù)設(shè)置了500毫秒的等待時(shí)間。因此循環(huán)每半秒執(zhí)行一次。注意,VI用一個(gè)隨機(jī)數(shù)作為移位寄存器的初始值。如果沒(méi)有設(shè)置移位寄存器端子的初始值,它就含有一個(gè)默認(rèn)的數(shù)值,或者上次運(yùn)行結(jié)束時(shí)的數(shù)值,因此開(kāi)始得到的平均數(shù)沒(méi)有任何意義。v13.執(zhí)行該 VI,觀察過(guò)程。v14.把該 VI 保存為L(zhǎng)abVIEWActivity目錄下的Random Average.vi。33循環(huán)結(jié)構(gòu) 移位寄存器(Shift RegisterShift Register)附注:移位寄存器的初值v上面的

17、練習(xí)中對(duì)移位寄存器設(shè)置了初值0.5。如果不設(shè)這個(gè)初值,默認(rèn)的初值是。v在這個(gè)例子中,一開(kāi)始的計(jì)算結(jié)果是不對(duì)的,只有到循環(huán)完次后移位寄存器中的過(guò)去值才填滿,即第次循環(huán)執(zhí)行后可以得到正確的結(jié)果。34循環(huán)結(jié)構(gòu) For循環(huán)vFor循環(huán)用于將某段程序執(zhí)行指定次數(shù)指定次數(shù)。和While 循環(huán)一樣,它不會(huì)立刻出現(xiàn)在流程圖中,而是出現(xiàn)一個(gè)小的圖標(biāo),而后您可以修改它的大小和位置。具體的方法是,先單擊所有端子的左上方,然后按下鼠標(biāo),拖曳出一個(gè)包含所有端子的矩形。釋放鼠標(biāo)時(shí)就創(chuàng)建了一個(gè)指定大小和位置的For循環(huán)。35循環(huán)結(jié)構(gòu) For循環(huán)vFor循環(huán)將把它的框圖中的程序執(zhí)行指定的次數(shù),F(xiàn)or循環(huán)具有下面這兩個(gè)端子:v

18、N: 計(jì)數(shù)端子(輸入端子)用于指定循環(huán)執(zhí)行的次數(shù)。vI: 周期端子(輸出端子)含有循環(huán)已經(jīng)執(zhí)行的次數(shù)。v上圖顯示了一可以產(chǎn)生100個(gè)隨機(jī)數(shù)并將數(shù)據(jù)顯示在一個(gè)圖表上的For循環(huán)。在該例中,i 的初值是0,終值是99。 36循環(huán)結(jié)構(gòu) For循環(huán) 練習(xí)練習(xí)目的:用For循環(huán)和移位寄存器計(jì)算一組隨機(jī)數(shù)的最大值最大值。v打開(kāi)一個(gè)新的前面板,按照下圖創(chuàng)建對(duì)象。va. 將一個(gè)數(shù)字顯示對(duì)象放在前面板,設(shè)置它的標(biāo)簽為“最大值”。vb.將一個(gè)波形圖表放在前面板,設(shè)置它的標(biāo)簽為“隨機(jī)數(shù)”。將圖表的縱坐標(biāo)范圍改為0.0到1.0。37循環(huán)結(jié)構(gòu) For循環(huán) 練習(xí)練習(xí)va.在圖表的快捷菜單中選擇Visible ItemsScrollbarVisible ItemsScrollbar和Digital Digital DisplayDisplay,并隱藏Plot LegendPlot Legend。v用移位工具修改滾動(dòng)欄的大小。 38循環(huán)結(jié)構(gòu) For循環(huán) 練習(xí)練習(xí)-3-3v按照上圖畫(huà)流程圖。v3 在 流 程 圖 中 放 置 一 個(gè) F o r 循 環(huán)(FunctionsStructuresFunction

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論