LabVIEW虛擬儀器入門與測(cè)控應(yīng)用100例 課件 第4章 LabVIEW的程序流程控制_第1頁(yè)
LabVIEW虛擬儀器入門與測(cè)控應(yīng)用100例 課件 第4章 LabVIEW的程序流程控制_第2頁(yè)
LabVIEW虛擬儀器入門與測(cè)控應(yīng)用100例 課件 第4章 LabVIEW的程序流程控制_第3頁(yè)
LabVIEW虛擬儀器入門與測(cè)控應(yīng)用100例 課件 第4章 LabVIEW的程序流程控制_第4頁(yè)
LabVIEW虛擬儀器入門與測(cè)控應(yīng)用100例 課件 第4章 LabVIEW的程序流程控制_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

虛擬儀器技術(shù)及應(yīng)用LabVIEW的程序流程控制LabVIEW提供了多種控制程序流程的結(jié)構(gòu):條件結(jié)構(gòu)、順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等,這些結(jié)構(gòu)在函數(shù)選板的結(jié)構(gòu)子選板中,如圖4-1所示。圖4-1函數(shù)選板結(jié)構(gòu)子選板4.1條件結(jié)構(gòu)條件結(jié)構(gòu)由選擇框架、條件選擇端口、框架標(biāo)識(shí)符、框架切換鈕組成。組成如圖

4-2

所示。圖4-2條件結(jié)構(gòu)的組成條件結(jié)構(gòu)根據(jù)條件的不同控制程序執(zhí)行不同的過程。編程時(shí),將外部控制條件連接至條件選擇端口上,程序運(yùn)行時(shí)選擇端口會(huì)判斷送來(lái)的控制條件,引導(dǎo)條件結(jié)構(gòu)執(zhí)行相應(yīng)框架中的內(nèi)容。LabVIEW外部控制條件的數(shù)據(jù)類型有:布爾型、數(shù)字整型、字符串型和枚舉型??刂茥l件為布爾型時(shí),條件結(jié)構(gòu)的框架標(biāo)識(shí)符的值為真和假兩種??刂茥l件為數(shù)字整型時(shí),條件結(jié)構(gòu)的框架標(biāo)識(shí)符的值為整數(shù)0,1,2,…,如圖4-3所示。圖4-3控制條件為數(shù)字整型控制條件為字符串型時(shí),條件結(jié)構(gòu)的框架標(biāo)識(shí)符的值為由雙引號(hào)括起來(lái)的字符串,如圖4-4所示,框架標(biāo)識(shí)符值為“1”。圖4-4控制條件為字符串型4.1.2條件結(jié)構(gòu)分支的添加、刪除與排序

條件結(jié)構(gòu)分支的添加、刪除與排序可以右擊邊框,在彈出的快捷菜單中選擇相應(yīng)的選項(xiàng)完成。選擇“在后面添加分支”在當(dāng)前顯示的分支后添加分支,選擇“在前面添加分支”在當(dāng)前顯示的分支前添加分支,選擇“復(fù)制分支”復(fù)制當(dāng)前顯示的分支。當(dāng)執(zhí)行以上操作時(shí),框架標(biāo)識(shí)符也隨之更新以反映出插入或刪除的子框圖。選擇重排分支進(jìn)行分支排序時(shí),在分支列表中將想要移動(dòng)的分支直接拖拉到合適的位置即可。重新排序后的結(jié)構(gòu)不會(huì)影響條件結(jié)構(gòu)的運(yùn)行性能,只是為了符合編程習(xí)慣而已。4.1.3條件結(jié)構(gòu)數(shù)據(jù)的輸入與輸出條件結(jié)構(gòu)有邊框通道用于選擇與框架外部交換數(shù)據(jù)。當(dāng)外部數(shù)椐連接到選擇框架上供其內(nèi)部節(jié)點(diǎn)使用時(shí),條件結(jié)構(gòu)的每一個(gè)子框架都能從該通道中獲得輸入的外部數(shù)據(jù)。如果任一子框圖輸出數(shù)據(jù)時(shí),則所有其他的分支也必須有數(shù)據(jù)從該數(shù)據(jù)通道輸出。當(dāng)其中一子框圖連接了輸出,則所有子框圖在同一位置出現(xiàn)一中空的數(shù)據(jù)通道。只有所有子框圖都連接了該輸出數(shù)據(jù),數(shù)據(jù)通道才會(huì)變?yōu)閷?shí)心且程序才可運(yùn)行。4.2順序結(jié)構(gòu)LabVIEW中程序的運(yùn)行順序依據(jù)數(shù)據(jù)流的走向而定,因此可以依靠數(shù)據(jù)連線來(lái)限定程序執(zhí)行順序,另外還可以通過順序結(jié)構(gòu)來(lái)強(qiáng)制規(guī)定程序執(zhí)行順序。LabVIEW提供了兩種順序結(jié)構(gòu):平鋪式順序結(jié)構(gòu)和層疊式順序結(jié)構(gòu)。4.2.1平鋪式順序結(jié)構(gòu)的組成與建立平鋪式順序結(jié)構(gòu)像一卷展開的電影膠片,所有的子框圖在一個(gè)平面上。在執(zhí)行過程中按由左至右的順序依次執(zhí)行到最后邊的一個(gè)子框圖。順序結(jié)構(gòu)的每一個(gè)子框圖又被稱為一個(gè)“幀”,子框圖從0開始依次編號(hào)。圖4-5

單框架平鋪式順序結(jié)構(gòu)從函數(shù)選板的結(jié)構(gòu)子選板上將平鋪式順序結(jié)構(gòu)拖至程序框圖中放大,這時(shí)只有一個(gè)子框圖,如圖4-5所示。右擊順序結(jié)構(gòu)邊框,在彈出的快捷菜單中選擇“在后面添加幀”或“在前面添加幀”,就可添加框架,增加子框圖后的平鋪?lái)樞蚪Y(jié)構(gòu)如圖4-6所示。圖4-5

多框架平鋪式順序結(jié)構(gòu)4.2.2層疊式順序結(jié)構(gòu)的組成與建立層疊式順序結(jié)構(gòu)將所有的子框圖全部重疊在一起,每次只能看到一個(gè)子框圖,執(zhí)行時(shí)按照子框圖的排列序號(hào)執(zhí)行。LabVIEW2015版沒有直接提供層疊式順序結(jié)構(gòu),需要將平鋪式順序結(jié)構(gòu)替換為層疊式順序結(jié)構(gòu)。圖4-7單框架層疊式順序結(jié)構(gòu)層疊式順序結(jié)構(gòu)原始形狀如圖4-7所示,為單框架順序結(jié)構(gòu),只能執(zhí)行一步操作。右擊順序結(jié)構(gòu)邊框,選擇“在后面添加幀”或“在前面添加幀”,就可添加框架,增加子框圖后的層疊順序結(jié)構(gòu)如圖4-8所示。圖4-7多框架層疊式順序結(jié)構(gòu)邊框的頂部出現(xiàn)子框圖標(biāo)識(shí)框,它的中間是子框圖標(biāo)識(shí),顯示出當(dāng)前框在順序結(jié)構(gòu)序列中的號(hào)碼(0到n-1),以及此順序結(jié)構(gòu)共有幾個(gè)子框圖。子框圖標(biāo)識(shí)兩邊分別是降序、升序按鈕,單擊它們可以分別查看前一個(gè)或后一個(gè)子框圖。圖4-8順序框架的切換程序運(yùn)行時(shí),順序結(jié)構(gòu)就會(huì)按框圖標(biāo)識(shí)符0,1,2…的順序逐步執(zhí)行各個(gè)框架中的程序。在程序編輯狀態(tài)時(shí)用鼠標(biāo)單擊框架標(biāo)識(shí)符,可從下拉菜單中選擇切換到任一編號(hào)的順序框架,如圖4-8所示。為與順序框架外部的程序節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交換,順序結(jié)構(gòu)中設(shè)有框架數(shù)據(jù)通道。輸入端口數(shù)據(jù):其任何子框圖都可以通過連線使用數(shù)據(jù)通道輸入端口的數(shù)據(jù)。輸出端口數(shù)據(jù):只能有一個(gè)子框圖連接這個(gè)數(shù)據(jù)的通道的輸出端口,并且這個(gè)通道上的數(shù)據(jù)只有所有的子框圖執(zhí)行完后才能輸出。4.2.3順序結(jié)構(gòu)局部變量的創(chuàng)建層疊順序結(jié)構(gòu)在各個(gè)子框圖之間傳遞數(shù)據(jù),需要借助于順序局部變量。順序結(jié)構(gòu)局部變量如圖4-9所示。圖4-9順序結(jié)構(gòu)局部變量的創(chuàng)建建立方法:右擊順序式結(jié)構(gòu)邊框,選擇“添加順序局部變量”。邊框上出現(xiàn)一個(gè)黃色小方框,小方框連接數(shù)據(jù)后中間出現(xiàn)一個(gè)指向順序結(jié)構(gòu)框外的箭頭,并且顏色也變?yōu)榕c連接的數(shù)據(jù)類型相符,這時(shí)一個(gè)數(shù)據(jù)已經(jīng)存儲(chǔ)到順序局部變量中。順序局部變量賦值之前的子框圖不能訪問這個(gè)數(shù)據(jù)。順序局部變量賦值之后的子框圖,可以訪問這個(gè)數(shù)據(jù),這些順序局部變量圖標(biāo)都有一個(gè)向內(nèi)的箭頭,如圖4-10所示。圖4-10順序結(jié)構(gòu)局部變量的創(chuàng)建For循環(huán)是LabVIEW最基本的結(jié)構(gòu)之一,它執(zhí)行指定次數(shù)的循環(huán)。For循環(huán)就是使其邊框內(nèi)的代碼即子程序框圖重復(fù)執(zhí)行,執(zhí)行到計(jì)數(shù)端口預(yù)先確定的次數(shù)后跳出循環(huán)。4.3For循環(huán)結(jié)構(gòu)從函數(shù)選板的結(jié)構(gòu)子選板上將For循環(huán)結(jié)構(gòu)拖至程序框圖中放大,其最基本的For循環(huán)結(jié)構(gòu)如圖4-11所示:由循環(huán)框架、計(jì)數(shù)端口、循環(huán)端口組成。圖4-11控件選板For循環(huán)執(zhí)行的是包含在循環(huán)框架內(nèi)的程序節(jié)點(diǎn)。循環(huán)端口初始值為0,每次循環(huán)的遞增步長(zhǎng)為1。若要用到不同的初始值或步長(zhǎng),可對(duì)循環(huán)端口產(chǎn)生的數(shù)據(jù)進(jìn)行一定的數(shù)據(jù)運(yùn)算,也可用移位寄存器來(lái)實(shí)現(xiàn)。計(jì)數(shù)端口設(shè)置循環(huán)次數(shù)N,在程序運(yùn)行前必須賦值。移位寄存器的功能是將第i-1,i-2,i-3…次循環(huán)的計(jì)算結(jié)果保存在For循環(huán)的緩沖區(qū)內(nèi),并在第i次循環(huán)時(shí)將這些數(shù)據(jù)從循環(huán)框架左側(cè)的移位寄存器中送出,供循環(huán)框架內(nèi)的節(jié)點(diǎn)使用。4.3.2移位寄存器與框架通道右擊循環(huán)結(jié)構(gòu)邊框,在彈出的快捷菜單中選擇“添加移位寄存器”,可創(chuàng)建一個(gè)移位寄存器,如圖4-12所示。圖4-12移位寄存器和框架通道用鼠標(biāo)(定位工具狀態(tài))在左側(cè)移位寄存器的右下角向下拖動(dòng),或右擊左側(cè)移位寄存器,在彈出的快捷菜單中選擇“添加元素”,可創(chuàng)建多個(gè)左側(cè)移位寄存器,如圖4-13所示。圖4-13創(chuàng)建多個(gè)移位寄存器在第i次循環(huán)開始時(shí),左側(cè)每一個(gè)移位寄存器便會(huì)將前幾次循環(huán)由右側(cè)移位寄存器存儲(chǔ)到緩沖區(qū)的數(shù)據(jù)送出來(lái),供循環(huán)框架內(nèi)的各種節(jié)點(diǎn)使用。左側(cè)第1個(gè)移位寄存器送出的是第i-1次循環(huán)時(shí)存儲(chǔ)的數(shù)據(jù),第2個(gè)移位寄存器送出的是第i-2次循環(huán)時(shí)存儲(chǔ)的數(shù)據(jù),第3個(gè)、第4個(gè)……移位寄存器送出的數(shù)據(jù)依此類推。數(shù)據(jù)在移位寄存器中流動(dòng)??蚣芡ǖ朗荈or循環(huán)與循環(huán)外部進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)通道,其功能是在For循環(huán)開始運(yùn)行前,將循環(huán)外其他節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)送至循環(huán)內(nèi),供循環(huán)框架內(nèi)的節(jié)點(diǎn)使用。還可在For循環(huán)運(yùn)行結(jié)束時(shí)將循環(huán)框架內(nèi)節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)送至循環(huán)外,供循環(huán)外的其他節(jié)點(diǎn)使用。在循環(huán)條件滿足的情況下,循環(huán)結(jié)構(gòu)會(huì)以最快的速度執(zhí)行循環(huán)體內(nèi)的程序,即一次循環(huán)結(jié)束后將立即開始執(zhí)行下一次循環(huán)??梢酝ㄟ^函數(shù)選板定時(shí)函數(shù)子選板中的時(shí)間延遲函數(shù)或等待下一個(gè)整數(shù)倍毫秒函數(shù)來(lái)控制循環(huán)的執(zhí)行速度。4.3.3For循環(huán)的時(shí)間控制4.4While循環(huán)結(jié)構(gòu)與For循環(huán)類似,While循環(huán)執(zhí)行的是包含在其循環(huán)框架中的程序模塊,但執(zhí)行的循環(huán)次數(shù)卻不固定,只有當(dāng)滿足給定的條件時(shí),才停止循環(huán)的執(zhí)行。從函數(shù)選板的結(jié)構(gòu)子選板上將While循環(huán)結(jié)構(gòu)拖至程序框圖中,其原始形狀如圖4-14所示。最基本的While循環(huán)由循環(huán)框架、循環(huán)端口及條件端口組成。圖4-14While循環(huán)結(jié)構(gòu)的組成循環(huán)端口:一個(gè)輸出端口,它輸出當(dāng)前循環(huán)執(zhí)行的次數(shù),循環(huán)計(jì)數(shù)是從0開始的,每次循環(huán)的遞增步長(zhǎng)為1。條件端口:控制循環(huán)是否執(zhí)行。每次循環(huán)結(jié)束時(shí),條件端口便會(huì)檢測(cè)通過數(shù)據(jù)連線輸入的布爾值。條件端口是一個(gè)布爾量,條件端口的默認(rèn)值是“假”。如果條件端口值是“真”,那么執(zhí)行下一次循環(huán),直到條件端口的值為“假”時(shí)循環(huán)結(jié)束。4.4.2While循環(huán)編程要點(diǎn)由于循環(huán)結(jié)構(gòu)在進(jìn)入循環(huán)后將不再理會(huì)循環(huán)框外面數(shù)據(jù)的變化,因此產(chǎn)生循環(huán)終止條件的數(shù)據(jù)源(如停止按鈕)一定要放在循環(huán)框內(nèi),否則會(huì)造成死循環(huán)。技巧:為避免程序運(yùn)行時(shí)出現(xiàn)邏輯錯(cuò)誤導(dǎo)致死循環(huán),編程時(shí)在前面板上臨時(shí)添加一個(gè)停止按鈕,在程序框圖放在循環(huán)結(jié)構(gòu)中與條件端口相連??赏ㄟ^這個(gè)停止按鈕來(lái)強(qiáng)行結(jié)束程序的運(yùn)行。另外,出現(xiàn)死循環(huán)時(shí),通過窗口工具條上的停止按鈕也可以強(qiáng)行終止程序的運(yùn)行。4.5定時(shí)結(jié)構(gòu)定時(shí)結(jié)構(gòu)是一個(gè)經(jīng)過改進(jìn)的While循環(huán),有了它,用戶可以設(shè)定精確的代碼定時(shí)、協(xié)調(diào)多個(gè)對(duì)時(shí)間要求嚴(yán)格的測(cè)量任務(wù),并定義不同優(yōu)先級(jí)的循環(huán),以創(chuàng)建具備多采樣率的應(yīng)用程序。在函數(shù)選板結(jié)構(gòu)子選板中專門為定時(shí)結(jié)構(gòu)設(shè)計(jì)了一個(gè)小的選板,如圖4-15所示。在該選板中放置了多個(gè)VIs和ExpressVIs,用于定時(shí)循環(huán)的設(shè)計(jì)與控制。圖4-15定時(shí)結(jié)構(gòu)子選板VIs和ExpressVIs的功能1、定時(shí)循環(huán):在While循環(huán)的基礎(chǔ)上改進(jìn),具備While循環(huán)的基本特征。2、定時(shí)順序:不需要手動(dòng)設(shè)置,在設(shè)定時(shí)間下按順序執(zhí)行程序框圖內(nèi)容的結(jié)構(gòu)。適用于開發(fā)只執(zhí)行一次的精確定時(shí)、執(zhí)行反饋、定時(shí)特征等動(dòng)態(tài)改變或有多層執(zhí)行優(yōu)先級(jí)的VI。3、創(chuàng)建定時(shí)源:為定時(shí)循環(huán)創(chuàng)建時(shí)序源,有1kHz和1MHz兩種選擇。4、清除定時(shí)源:用于停止和清除為定時(shí)循環(huán)創(chuàng)建的時(shí)序源。5、同步定時(shí)結(jié)構(gòu)開始:用于使多個(gè)定時(shí)循環(huán)同步運(yùn)行。6、定時(shí)結(jié)構(gòu)停止:用于停止定時(shí)循環(huán)的運(yùn)行。7、創(chuàng)建定時(shí)源層次結(jié)構(gòu):用于創(chuàng)建定時(shí)循環(huán)的時(shí)序源層次。4.6事件結(jié)構(gòu)事件結(jié)構(gòu)是一種可改變數(shù)據(jù)流執(zhí)行方式的結(jié)構(gòu)。使用事件結(jié)構(gòu)可實(shí)現(xiàn)用戶在前面板的操作(事件)與程序執(zhí)行的互動(dòng)。4.6.1事件驅(qū)動(dòng)的概念LabVIEW在編程中可以設(shè)置用戶在前面板的互動(dòng)操作,對(duì)數(shù)據(jù)流進(jìn)行干預(yù)。例如,單擊鼠標(biāo)產(chǎn)生的鼠標(biāo)事件、按下鍵盤產(chǎn)生的鍵盤事件等。數(shù)據(jù)流:將整個(gè)程序看作一個(gè)數(shù)據(jù)流的通道,數(shù)據(jù)按照程序流程從控制量到顯示量流動(dòng)。在事件驅(qū)動(dòng)程序中,首先是等待事件發(fā)生,然后按照對(duì)應(yīng)指定事件的程序代碼對(duì)事件進(jìn)行響應(yīng),然后再回到等待事件狀態(tài)。事件結(jié)構(gòu)實(shí)現(xiàn)用實(shí)現(xiàn)用戶和程序間的互動(dòng)操作:響應(yīng)用戶在前面板上面的一些操作(如按下某個(gè)按鈕、改變窗體大小、退出程序等。)4.6.2事件結(jié)構(gòu)的創(chuàng)建LabVIEW中的事件結(jié)構(gòu)位于函數(shù)選板中的結(jié)構(gòu)子選板中,如圖4-16所示。包括超時(shí)端口、子框圖標(biāo)識(shí)符和事件數(shù)據(jù)節(jié)點(diǎn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論