3part1使用結(jié)構(gòu)控制程序執(zhí)行ppt課件_第1頁
3part1使用結(jié)構(gòu)控制程序執(zhí)行ppt課件_第2頁
3part1使用結(jié)構(gòu)控制程序執(zhí)行ppt課件_第3頁
3part1使用結(jié)構(gòu)控制程序執(zhí)行ppt課件_第4頁
3part1使用結(jié)構(gòu)控制程序執(zhí)行ppt課件_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、濟(jì)南大學(xué)濟(jì)南大學(xué)自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院授課教師:謝錦麗授課教師:謝錦麗E-mail:cse_聯(lián)系方式:聯(lián)系方式擬儀器技術(shù)虛擬儀器技術(shù)1濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)第第3章章 使用結(jié)構(gòu)控制程序執(zhí)行使用結(jié)構(gòu)控制程序執(zhí)行 結(jié)構(gòu)是一種重要的節(jié)點(diǎn)類型,可以管理VI中的執(zhí)行流,和其他標(biāo)準(zhǔn)編程語言中的控制結(jié)構(gòu)功能一樣。本章首先介紹LabVIEW中幾個(gè)主要結(jié)構(gòu):While結(jié)構(gòu)、For結(jié)構(gòu)、選擇 結(jié)構(gòu)和順序結(jié)構(gòu),然后介紹如何將While循環(huán)和選擇結(jié)構(gòu)組合成一個(gè)功能強(qiáng)大的應(yīng)用程序框架。接著將

2、學(xué)習(xí)如何使用公式節(jié)點(diǎn)執(zhí)行冗長的公式和用表達(dá)式節(jié)點(diǎn)執(zhí)行簡單的公式以及怎樣彈出包含特定信息的對話框。本章還將介紹程序的定時(shí)控制基礎(chǔ)以及定時(shí)結(jié)構(gòu)如何提供高級定時(shí)和同步。2濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)第第3章章 使用結(jié)構(gòu)控制程序執(zhí)行使用結(jié)構(gòu)控制程序執(zhí)行學(xué)習(xí)使用While循環(huán)和For循環(huán),并了解其不同之處認(rèn)識移位寄存器在圖形化編程中的重要性了解選擇結(jié)構(gòu)的不同類型數(shù)值型、字符串型和布爾型學(xué)習(xí)使用順序結(jié)構(gòu)控制執(zhí)行順序了解疊層順序結(jié)構(gòu)和順序結(jié)構(gòu)局部變量的危險(xiǎn)性使用公式節(jié)點(diǎn)執(zhí)行冗長的數(shù)學(xué)公式使用LabVIEW彈出一個(gè)指定內(nèi)容的對話框了解如何使用LabVIE

3、W的一些簡單定時(shí)函數(shù)使用表達(dá)式節(jié)點(diǎn)執(zhí)行只有一個(gè)變量的公式了解定時(shí)結(jié)構(gòu)和VI如何讓定時(shí)循環(huán)和定時(shí)順序同步使用While循環(huán)和Case結(jié)構(gòu)相結(jié)合創(chuàng)建一個(gè)簡單、功能強(qiáng)大且可擴(kuò)展的應(yīng)用程序框架3濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)第第3章章 使用結(jié)構(gòu)控制程序執(zhí)行使用結(jié)構(gòu)控制程序執(zhí)行 3.1 兩種循環(huán) 3.2 移位寄存器 3.3 選擇結(jié)構(gòu) 3.4 順序結(jié)構(gòu) 3.5 定時(shí)及定時(shí)結(jié)構(gòu) 3.6 公示節(jié)點(diǎn) 3.7 表達(dá)式節(jié)點(diǎn) 3.8 循環(huán)與選擇結(jié)構(gòu)聯(lián)合4濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)第第3章章 使用結(jié)構(gòu)控制程序

4、執(zhí)行使用結(jié)構(gòu)控制程序執(zhí)行 3.1 兩種循環(huán) 3.2 移位寄存器 3.3 選擇結(jié)構(gòu) 3.4 順序結(jié)構(gòu) 3.5 定時(shí)及定時(shí)結(jié)構(gòu) 3.6 公示節(jié)點(diǎn) 3.7 表達(dá)式節(jié)點(diǎn) 3.8 循環(huán)與選擇結(jié)構(gòu)聯(lián)合5濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)LabVIEW提供兩種循環(huán)結(jié)構(gòu):While循環(huán)和For循環(huán)來控制VI中的重復(fù)操作。For循環(huán)會執(zhí)行指定的次數(shù)While循環(huán)持續(xù)執(zhí)行直到一個(gè)指定的條件為真假時(shí)停止函數(shù)選項(xiàng)卡編程構(gòu)造6For循環(huán)While循環(huán)濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循

5、環(huán)兩種循環(huán)3.1.1 For 循環(huán)For循環(huán)將其子框圖內(nèi)的代碼執(zhí)行指定的次數(shù),其次數(shù)等于計(jì)數(shù)端子的值??梢詮难h(huán)外部連線一個(gè)值到計(jì)數(shù)端子來設(shè)置次數(shù)。如果計(jì)數(shù)端子值為0,則不會執(zhí)行循環(huán)。迭代端子包含了當(dāng)前已經(jīng)執(zhí)行完畢的迭代次數(shù):0表示正在進(jìn)行第一次迭代,1表示正在進(jìn)行第二次迭代,以此類推,直到N-1N表示循環(huán)所期望的執(zhí)行次數(shù))For循環(huán)等價(jià)于以下偽代碼: for i = 1 to N-1 Execute subdiagram7濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)3.1.2 While 循環(huán)While循環(huán)持續(xù)執(zhí)行子框圖直到連線

6、到條件端子的布爾值變?yōu)門rue意味著停止循環(huán))。LabVIEW在每次迭代完成時(shí)檢查條件端子的值,如果為False意味著繼續(xù)循環(huán)),執(zhí)行下一次迭代。While循環(huán)中迭代端子的作用和For循環(huán)中的完全一樣While循環(huán)等價(jià)于以下的偽代碼: Do Execute subdiagram While condition is FALSE (Untile condition is TRUE)8濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)可以改變While循環(huán)中條件端子的狀態(tài),只需要單擊條件端子,這樣在條件端子為真時(shí)執(zhí)行循環(huán),而不再是為假時(shí)執(zhí)行

7、。此時(shí)While循環(huán)等價(jià)于以下偽代碼: Do Execute subdiagram While condition is TURE9濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)LabVIEW6.1及以前版本,While循環(huán)的條件端子默認(rèn)狀態(tài)是Continue if TURE。 LabVIEW6.1之后版本7.0 8.0)默認(rèn)狀態(tài)是Stop if TRUE。使用前,請正確配置。如果想要改變一個(gè)結(jié)構(gòu)類型例如,把For循環(huán)變成While循環(huán)),在結(jié)構(gòu)的外邊框上單擊右鍵選擇。但是只能把現(xiàn)有的結(jié)構(gòu)替換成與其相似的結(jié)構(gòu)。10濟(jì)南大學(xué)濟(jì)南大學(xué)

8、自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)3.1.3 放置對象到結(jié)構(gòu)選擇結(jié)構(gòu)時(shí),光標(biāo)會變成所選結(jié)構(gòu)的縮略圖,在希望放置結(jié)構(gòu)的地方單擊,然后拖拽確定結(jié)構(gòu)的邊框。釋放鼠標(biāo)后,結(jié)構(gòu)會出現(xiàn)在框圖上,并且包含其邊框內(nèi)的所有對象??驁D中有了結(jié)構(gòu)后,可以從函數(shù)選項(xiàng)卡中選擇對象放置到循環(huán)內(nèi)。在對象移動(dòng)到結(jié)構(gòu)內(nèi)部時(shí)結(jié)構(gòu)的邊框會加亮顯示,對象被拖拽出結(jié)構(gòu)時(shí),框圖的邊框會加亮顯示。可以使用定位工具拖拽結(jié)構(gòu)邊框的調(diào)節(jié)柄來調(diào)節(jié)大小。11濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)如果將結(jié)構(gòu)移動(dòng)到另一個(gè)對象上面

9、,則下面的對象僅可以看見結(jié)構(gòu)邊框以外的部分。如果將結(jié)構(gòu)完全覆蓋到另一個(gè)對象上面,對象會產(chǎn)生厚厚的陰影以示警告:對象只是在結(jié)構(gòu)上或結(jié)構(gòu)下,而不是在結(jié)構(gòu)內(nèi)。12濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán) 自動(dòng)擴(kuò)展:所有結(jié)構(gòu)都具有自動(dòng)擴(kuò)展屬性。 當(dāng)自動(dòng)擴(kuò)展處于選中狀態(tài),會產(chǎn)生兩個(gè)非常有用的特性:一個(gè)是讓結(jié)構(gòu)大小隨著放入結(jié)構(gòu)中對象的多少而自動(dòng)而改變,自動(dòng)設(shè)置邊框;另一個(gè)是避免把結(jié)構(gòu)設(shè)置過小,小于里面對象的大小。這兩個(gè)特性保證了結(jié)構(gòu)里面的對象不會隱藏在結(jié)構(gòu)中。13濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬

10、儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán) 刪除結(jié)構(gòu):將刪除內(nèi)部所有對象函數(shù)、子VI、連線和所有其他對象。 如果不需要?jiǎng)h除結(jié)構(gòu)中的所有代碼,可在彈出菜單里選擇“刪除For循環(huán)或刪除While循環(huán)這樣只刪除了結(jié)構(gòu),而保留了框圖中的代碼。14濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán) 循環(huán)中的端子和其他出口:數(shù)據(jù)通過循環(huán)邊框上的一個(gè)小方框進(jìn)出循環(huán),這個(gè)小方框就成為隧道tunnel) LabVIEW是按照數(shù)據(jù)流原則進(jìn)行的,所以在循環(huán)開始前輸入端必須先輸入數(shù)據(jù)。循環(huán)輸出端只有在結(jié)束了所有的迭代后才輸出數(shù)據(jù)。 每次迭代時(shí)檢查或更新端子,必須預(yù)先將端

11、子放置到循環(huán)內(nèi)。如While循環(huán)在每次循環(huán)時(shí)都會檢查布爾控件的值,當(dāng)循環(huán)讀到真值時(shí)停止執(zhí)行。15濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)如果把布爾控件端子放置在While循環(huán)的外面,就會建立一個(gè)死循環(huán)或只運(yùn)行一次的循環(huán),這取決于布爾量的初始值。LabVIEW在進(jìn)入循環(huán)前讀取布爾量的值,而不是在循環(huán)中或循環(huán)結(jié)束后。16循環(huán)中的數(shù)循環(huán)中的數(shù)值指示器會值指示器會在每次循環(huán)在每次循環(huán)時(shí)更新時(shí)更新循環(huán)外的數(shù)值指示循環(huán)外的數(shù)值指示器只在循環(huán)結(jié)束后器只在循環(huán)結(jié)束后更新一次,在此之更新一次,在此之前,它會顯示從上前,它會顯示從上次循環(huán)時(shí)得到的

12、一次循環(huán)時(shí)得到的一個(gè)隨機(jī)數(shù)個(gè)隨機(jī)數(shù)注:在注:在For循環(huán)或循環(huán)或While循環(huán)的第一次迭代中,迭代次數(shù)是循環(huán)的第一次迭代中,迭代次數(shù)是0。所以迭代次。所以迭代次數(shù)加數(shù)加1就可以知道迭代了多少次就可以知道迭代了多少次濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)3.1.4 練習(xí):計(jì)算循環(huán)次數(shù)創(chuàng)建一個(gè)For循環(huán),并使用圖表在前面板上顯示循環(huán)次數(shù)N。循環(huán)會從0開始,直到N-1結(jié)束。然后創(chuàng)建一個(gè)While循環(huán)并記錄循環(huán)次數(shù),直到用布爾開關(guān)停止為止1. 菜單文件創(chuàng)建新VI2.創(chuàng)建前面板和框圖: a. 函數(shù)選項(xiàng)卡編程構(gòu)造,選擇For循環(huán),放置到

13、框圖 b. 控件選項(xiàng)卡新式圖形,選擇波形圖表,放置到前面板,將其標(biāo)簽改為“計(jì)算循環(huán)次數(shù)” c. 控件選項(xiàng)卡新式數(shù)值,選擇數(shù)值輸入控件,作為循環(huán)次數(shù)控件17濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán) d. 從波形圖表彈出菜單中選擇自動(dòng)調(diào)整Y標(biāo)尺,這樣波形圖就會自動(dòng)調(diào)整坐標(biāo)來適應(yīng)For循環(huán)的次數(shù);在彈出菜單中選擇顯示數(shù)字。3. 得到前面板和框圖18濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)4. 在“循環(huán)次數(shù)控件輸入數(shù)據(jù),然后運(yùn)行VI。在每次循環(huán)執(zhí)行時(shí),波形圖表將For

14、循環(huán)的迭代次數(shù)繪制在Y軸上,X軸為對應(yīng)的時(shí)間,一個(gè)時(shí)間單位表示依次循環(huán)迭代。19濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)注意數(shù)值指示器從0計(jì)數(shù)到N-1,而不是從1到N;計(jì)數(shù)端子和“循環(huán)計(jì)數(shù)控件連線的交叉點(diǎn)上紅色點(diǎn)稱為強(qiáng)制點(diǎn)20濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)強(qiáng)制點(diǎn):LabVIEW強(qiáng)制轉(zhuǎn)換數(shù)據(jù)的類型來適應(yīng)其它的數(shù)據(jù)類型。把兩個(gè)不同數(shù)據(jù)類型的端子連接到一起時(shí),LabVIEW會將其轉(zhuǎn)換成相同的數(shù)據(jù)類型。上例中,計(jì)數(shù)端子為32bit的整型,而“循環(huán)次數(shù)控件默認(rèn)

15、是雙精度的浮點(diǎn)數(shù)。在這種情況下,LabVIEW把雙精度的浮點(diǎn)數(shù)轉(zhuǎn)換成整型數(shù)。此時(shí),LabVIEW會用合適的類型為內(nèi)存中數(shù)據(jù)創(chuàng)建一個(gè)新的副本,這些數(shù)據(jù)會占據(jù)內(nèi)存空間,盡管標(biāo)量數(shù)據(jù)單值數(shù)據(jù)占用的額外空間可以忽略不計(jì),但是數(shù)組數(shù)據(jù)多值數(shù)據(jù)會占用大量的內(nèi)存空間。使用大數(shù)組時(shí)要盡量減少使用強(qiáng)制點(diǎn),需要改變控件或者指示器的數(shù)據(jù)類型使其匹配對應(yīng)的數(shù)據(jù)類型.VI將浮點(diǎn)數(shù)轉(zhuǎn)化成整型數(shù)時(shí),會將浮點(diǎn)數(shù)舍入 到最接近的整數(shù)。21濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)本例中,在“循環(huán)次數(shù)控件的彈出菜單中的子選項(xiàng)卡中選擇I32Long可以使數(shù)據(jù)類型匹配

16、,強(qiáng)制點(diǎn)消失。22濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)為計(jì)數(shù)端子創(chuàng)建正確數(shù)據(jù)類型的輸入:計(jì)數(shù)端子的彈出菜單中選擇“創(chuàng)建常量或者“創(chuàng)建輸入控件”。還可以“創(chuàng)建顯示控件觀察循環(huán)進(jìn)行時(shí)的迭代次數(shù)。5. 保存VI。6. 打開新VI嘗試While循環(huán)23濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)7. 創(chuàng)建VI的前面板和框圖,前面板上布爾控件的默認(rèn)值是FALSE,設(shè)置While循環(huán)的條件端子為Continue if True。24濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自

17、動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)8. 實(shí)現(xiàn)過程:使用“操作值工具單擊開關(guān)使其翻轉(zhuǎn)到TRUE位置運(yùn)行VI。需要停止時(shí),單擊開關(guān)使其翻轉(zhuǎn)到FALSE。每次迭代時(shí),循環(huán)次數(shù)Loop Count指示器都會更新。25濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)9. 在開關(guān)處于FALSE位置時(shí)再次運(yùn)行VI,可以注意到While循環(huán)將會執(zhí)行一次,也僅僅執(zhí)行一次。由于循環(huán)結(jié)構(gòu)在每次迭代之后檢查條件端子的值,所以循環(huán)總會執(zhí)行一次,不管其連接的值是多少。10. 切換到框圖,將循環(huán)次數(shù)指示器移動(dòng)到循環(huán)外面,這樣需要重

18、新連接指示器,當(dāng)連線離開循環(huán)時(shí),會自動(dòng)創(chuàng)建隧道。26濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)11. 確認(rèn)開關(guān)為TRUE時(shí)運(yùn)行VI,注意指示器僅在翻轉(zhuǎn)開關(guān)和循環(huán)執(zhí)行完之后更新,其值是最后的迭代次數(shù),是循環(huán)完成后輸出的值。12. 保存VI。 27濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.1 兩種循環(huán)兩種循環(huán)13. 示范錯(cuò)誤的做法:把開關(guān)拖出循環(huán),但是保留連線,確認(rèn)開關(guān)是TRUE后,運(yùn)行VI,然后單擊開關(guān)停下VI。但是VI 不會停止,這是因?yàn)橐坏㎜abVIEW進(jìn)入循環(huán),它就不會再去檢查循

19、環(huán)外部控件的值,就像不回去更新“循環(huán)次數(shù)指示器一樣。單擊工具欄的異常終止按鈕來終止循環(huán)執(zhí)行。如果開關(guān)在循環(huán)開始時(shí)為FALSE,循環(huán)就只會執(zhí)行一次而不是一直循環(huán)。28濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)第第3章章 使用結(jié)構(gòu)控制程序執(zhí)行使用結(jié)構(gòu)控制程序執(zhí)行 3.1 兩種循環(huán) 3.2 移位寄存器 3.3 選擇結(jié)構(gòu) 3.4 順序結(jié)構(gòu) 3.5 定時(shí)及定時(shí)結(jié)構(gòu) 3.6 公示節(jié)點(diǎn) 3.7 表達(dá)式節(jié)點(diǎn) 3.8 循環(huán)與選擇結(jié)構(gòu)聯(lián)合29濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器3.2.1 移位寄存

20、器移位寄存器是用來從一次迭代向下一次迭代傳輸數(shù)據(jù)的特殊變量,只能在While循環(huán)和For循環(huán)中使用。在LabVIEW的圖形化結(jié)構(gòu)中,移位寄存器是唯一且必要的,在循環(huán)左右的邊框上彈出菜單并選擇“添加移位寄存器就可以創(chuàng)建移位寄存器。30濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器 可以配置移位寄存器存儲數(shù)次迭代以前的數(shù)據(jù),在求不同迭代中的數(shù)據(jù)平均值時(shí)非常實(shí)用 為了訪問以前迭代的數(shù)據(jù),需要在左邊 端子的彈出菜單中選擇“添加元素創(chuàng)建 一個(gè)附加端子。例如有一對移位寄存器的 While循環(huán),左邊端子有多個(gè)元素。31濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化

21、與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器在一個(gè)循環(huán)里可以有多個(gè)不同的移位寄存器來存儲不同的變量。只需要在循環(huán)的邊框上添加足夠的移位寄存器。左邊的移位寄存器總是和右邊的平行,如果移動(dòng)其中一個(gè),那么兩個(gè)都會同時(shí)移動(dòng)。如果循環(huán)里有太多的移位寄存器而無法分清哪一對是平行的,只要選中一個(gè),另一個(gè)也會自動(dòng)選中,或者移動(dòng)其中一個(gè),那個(gè)跟著移動(dòng)的移位寄存器就跟它是一對。通常的錯(cuò)誤是把兩種情況弄混,一種情況是多個(gè)變量存儲在多個(gè)移位寄存器里,另一種情況是單個(gè)變量使用一個(gè)移位寄存器存儲多個(gè)先前的值。32濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀

22、器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器 確認(rèn)要直接連線到移位寄存器端子,就不會創(chuàng)建進(jìn)入或離開循環(huán)的孤立隧道。 3.2.2 移位寄存器示例 下面給出使用移位寄存器的方法,觀察使用移位寄存器來訪問循環(huán)中先前迭代的值。在該VI中要從先前的循環(huán)中獲取計(jì)數(shù)值。33濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器1. 打開移位寄存器示例程序的前面板和框圖2. 前面板上有4個(gè)數(shù)值指示器。CurrentCount指示器顯示循環(huán)計(jì)數(shù)的當(dāng)前值,它連接在迭代端子上。Preview Count指示器顯示循環(huán)計(jì)數(shù)的前一次迭代的值。Two Itera

23、tions Ago指示器顯示兩次迭代以前的值。Three Iterations Ago指示器顯示三次迭代以前的值。34濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器3. 常數(shù)0連接到左側(cè)移位寄存器,將其初始化為0.在下次 迭 代 開 始 時(shí) , 以 前 的Current Count值會移動(dòng)到左側(cè)端子的頂端,變成Preview Count。Preview Count會往下移動(dòng)到Two Iterations Ago,以此進(jìn)行下去。定時(shí)函數(shù)Wait(ms)讓循環(huán)等待500ms再執(zhí)行迭代35濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與

24、電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器3. 檢查完框圖后,再從菜單中選擇“左右兩欄顯示使前面板和框圖同時(shí)顯示。4. 單擊“加亮執(zhí)行按鈕使其加亮執(zhí)行;或者單擊“單步步入按鈕單步調(diào)試VI。觀察前面板指示器的值如何變化。36濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器5. While循環(huán)的每次迭代中,VI像漏斗一樣使用先進(jìn)先出算法將前次的值在左邊移位寄存器的端子間移動(dòng)。每次迭代增加連接到右邊移位寄存器的計(jì)數(shù)端子的值,也就是Current Count。該值在下一次迭代開始時(shí)移動(dòng)到左側(cè)的端子Previous

25、Count。其余左側(cè)端子的移位寄存器的值像漏斗一樣逐個(gè)傳遞。本例中只是返回了前3次的值。通過添加左側(cè)移位寄存器元素,可以使VI返回更多的值。6. 單擊前面板STOP按鈕結(jié)束VI運(yùn)行,關(guān)閉VI,不保存37濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器3.2.3 為什么需要移位寄存器在左側(cè)循環(huán)中,創(chuàng)建了一個(gè)迭代次數(shù)求和的循環(huán)。每次循環(huán),新的總和存儲在移位寄存器里。在循環(huán)最后,總和45送到數(shù)值指示器。在右側(cè)循環(huán)中,沒有移位寄存器,所以不能在兩次迭代之間存儲數(shù)值。而只是在當(dāng)前的“i上加0,只有最后輸出結(jié)果9輸出到循環(huán)外。38濟(jì)南大學(xué)濟(jì)南

26、大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器某些情況下,需要在連續(xù)循環(huán)迭代中求某數(shù)平均值。例如需要對每秒讀取的溫度值計(jì)算一小時(shí)平均值,根據(jù)給定的LabVIEW圖形化特性,在沒有移位寄存器的情況下無法實(shí)現(xiàn)將一次循環(huán)迭代得到的值輸出到下一次迭代。3.2.4 初始化移位寄存器為了避免出現(xiàn)不可預(yù)見的混亂情況,通常需要初始化移位寄存器,除非有特殊原因故意不要賦初值。把循環(huán)外指定值連接到移位寄存器的左側(cè)端子就能對其賦初值。右側(cè)移位寄存器進(jìn)行了初始化39濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存

27、器移位寄存器如果不初始化,在第一次運(yùn)行程序時(shí)初值將是移位寄存器數(shù)據(jù)類型的默認(rèn)值,在繼續(xù)運(yùn)行時(shí),移位寄存器的值是上次運(yùn)行留下的值。實(shí)際上很少用到這樣的特性,由此產(chǎn)生的問題很難被發(fā)現(xiàn)。例如,如果移位寄存器的類型是布爾型,那么在第一次運(yùn)行時(shí)初始值是FALSE,如果移位寄存器的類型是數(shù)值型,初始值是0.LabVIEW不會清除存儲在移位寄存器里的數(shù)據(jù),只有關(guān)閉VI時(shí),才會從內(nèi)存中徹底清除。若調(diào)整移位寄存器的大小來觀察以前多次迭代的值左邊移位寄存器),如果其中有一個(gè)移位寄存器初始化了,那么LabVIEW要求初始化所有的移位寄存器,否則,VI不能運(yùn)行。40濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工

28、程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器3.2.5 反饋節(jié)點(diǎn)通常LabVIEW不允許建立“閉環(huán)”,也就是說代碼塊的輸出不能作為同一個(gè)代碼塊的輸入,如果嘗試這樣會導(dǎo)致連線錯(cuò)誤。連線錯(cuò)誤是因?yàn)檫`反了數(shù)據(jù)流規(guī)則: (1 )在所有的數(shù)據(jù)都到達(dá)輸入端子時(shí)節(jié)點(diǎn)才可以運(yùn)行;(2)數(shù)據(jù)不會在節(jié)點(diǎn)結(jié)束運(yùn)行前輸出端子。因?yàn)椤伴]環(huán)使用了輸出端子作為輸入,但是數(shù)據(jù)永遠(yuǎn)不會到達(dá)輸入端子,因?yàn)閿?shù)據(jù)永遠(yuǎn)不會流出輸出端子。41濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器但是,如果在While或For循環(huán)內(nèi)輸出端子和輸入端子之間放置一個(gè)反饋

29、節(jié)點(diǎn),代碼就可以運(yùn)行。實(shí)際上,LabVIEW會自動(dòng)在“閉環(huán)中放置反饋節(jié)點(diǎn)。工具選項(xiàng)在循環(huán)中自動(dòng)插入反饋節(jié)點(diǎn)42濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器為了充分了解反饋節(jié)點(diǎn)如何工作,必須先知道反饋節(jié)點(diǎn)實(shí)際上就是一個(gè)偽裝的移位寄存器。下圖代碼其實(shí)是一樣的。但是要注意的是反饋節(jié)點(diǎn)上的箭頭指明了數(shù)據(jù)的流向。反饋節(jié)點(diǎn)的輸入等于移位寄存器的右端子,反饋節(jié)點(diǎn)的輸出等于移位寄存器的左端子??梢允褂谩皩⒊跏蓟饕瞥鲆粋€(gè)循環(huán)初始化反饋節(jié)點(diǎn)。反饋節(jié)點(diǎn)和移位寄存器之間可以輕松互換,右鍵單擊反饋節(jié)點(diǎn),選擇“替換為移位寄存器”,或者右鍵單擊移位寄存器

30、選擇“替換為反饋節(jié)點(diǎn)”43濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.2 移位寄存器移位寄存器3.2.6 隧道與移位寄存器之間的相互轉(zhuǎn)換在書寫代碼時(shí),實(shí)際上可以用移位寄存器代替隧道。右鍵單擊隧道,彈出菜單中選擇“替換為移位寄存器”首先移位寄存器替換隧道后,鼠標(biāo)變成了移位寄存器光標(biāo),使用該光標(biāo)選擇需要轉(zhuǎn)換的其它隧道,或者單擊循環(huán)內(nèi)或循環(huán)上任意位置放置另一個(gè)移位寄存器,而不會替換其他的隧道。右鍵單擊移位寄存器,并在彈出菜單中選擇“替換為隧道”,就可以將移位寄存器替換成隧道。44濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀

31、器技術(shù)第第3章章 使用結(jié)構(gòu)控制程序執(zhí)行使用結(jié)構(gòu)控制程序執(zhí)行 3.1 兩種循環(huán) 3.2 移位寄存器 3.3 選擇結(jié)構(gòu) 3.4 順序結(jié)構(gòu) 3.5 定時(shí)及定時(shí)結(jié)構(gòu) 3.6 公示節(jié)點(diǎn) 3.7 表達(dá)式節(jié)點(diǎn) 3.8 循環(huán)與選擇結(jié)構(gòu)聯(lián)合45濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 選擇結(jié)構(gòu)Case結(jié)構(gòu)是LabVIEW中執(zhí)行條件語句的方法,就像“if-then-else”。 函數(shù)選項(xiàng)卡編程結(jié)構(gòu)子選項(xiàng)卡 Case結(jié)構(gòu)有兩個(gè)或更多個(gè)的子框圖,但是只有一個(gè)在執(zhí)行,這取決于連接到分支選擇器上的布爾型、數(shù)值型或字符串型的值。46濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬儀器技術(shù)3.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 如果是布爾型連接到分支選擇器上,選擇結(jié)構(gòu)就只有兩個(gè)分支:FALSE和TRUE 如果是數(shù)值型或字符串型連接到分支選擇器上,選擇結(jié)構(gòu)可以有無數(shù)個(gè)分支。初始時(shí)雖然只有兩個(gè),但是可以很容易的添加分支。可以給一個(gè)分支指定多個(gè)值,并用逗號分開。 需要選擇一個(gè)默認(rèn)分支,當(dāng)分支選擇器上輸入的值和其它所有分支都不匹配時(shí),就會執(zhí)行默認(rèn)分支。在很難考慮到所有的可能分支,但又希望覆蓋所有可能分支時(shí),使用默認(rèn)分支是非常方便的。47濟(jì)南大學(xué)濟(jì)南大學(xué) 自動(dòng)化與電氣工程學(xué)院自動(dòng)化與電氣工程學(xué)院 虛擬儀器技術(shù)虛擬

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論