第四講labview的基本程序結(jié)構(gòu)_第1頁(yè)
第四講labview的基本程序結(jié)構(gòu)_第2頁(yè)
第四講labview的基本程序結(jié)構(gòu)_第3頁(yè)
第四講labview的基本程序結(jié)構(gòu)_第4頁(yè)
第四講labview的基本程序結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(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、第第四講四講 LabVIEW的的基本程序基本程序結(jié)構(gòu)結(jié)構(gòu)2015年3月24日第第四講四講 LabVIEW的的基本程序基本程序結(jié)構(gòu)結(jié)構(gòu)LabVIEW的函數(shù)選板中有一個(gè)極其重要的子選板:“結(jié)構(gòu)”。結(jié)構(gòu)與其它節(jié)點(diǎn)(比如函數(shù)、子VI、常量、裝飾等)的區(qū)別在于,結(jié)構(gòu)是用于控制程序的執(zhí)行順序的,會(huì)改變程序的流程;而其他節(jié)點(diǎn)則多是用于改變程序中的數(shù)據(jù)。此外,結(jié)構(gòu)體內(nèi)可以放置程序代碼,即其他節(jié)點(diǎn)和連線。 LabVIEW中的結(jié)構(gòu)放置在程序框圖中,其外形一般是一個(gè)大小可以縮放的邊框,當(dāng)它與其他節(jié)點(diǎn)的連線有數(shù)據(jù)傳遞時(shí),邊框內(nèi)的一段代碼將反復(fù)執(zhí)行或有條件執(zhí)行或按某一定的順序執(zhí)行。結(jié)構(gòu)內(nèi)的該段代碼則被稱為子框圖。結(jié)構(gòu)框

2、圖可以看成是個(gè)代碼容器。容器內(nèi)的代碼按照某種條件反復(fù)執(zhí)行。本講將介紹LabVIEW中的for循環(huán)結(jié)構(gòu)、while循環(huán)結(jié)構(gòu)、條件結(jié)構(gòu)和順序結(jié)構(gòu)4.1 For循環(huán)循環(huán)4.1.1 For循環(huán)的組成LabVIEW中的循環(huán)與結(jié)構(gòu)位于程序框圖的“函數(shù)”選板下的“結(jié)構(gòu)”子選板中,如圖4-1所示。圖圖4-1 “4-1 “結(jié)構(gòu)結(jié)構(gòu)”子選板界面子選板界面找到For循環(huán)后,用鼠標(biāo)左鍵單擊For循環(huán)后會(huì)發(fā)現(xiàn)鼠標(biāo)箭頭變成一個(gè)表示For循環(huán)的小圖標(biāo),此時(shí)用戶可在程序框圖上用鼠標(biāo)拖放一個(gè)任意大小和位置的For循環(huán)邊框,如圖4-2所示。最基最基本的本的For循環(huán)由循環(huán)框架、總數(shù)接線端(輸入端)、計(jì)數(shù)接線端循環(huán)由循環(huán)框架、總數(shù)

3、接線端(輸入端)、計(jì)數(shù)接線端(輸出端)組成。(輸出端)組成。圖圖4-2 For4-2 For循環(huán)界面循環(huán)界面循環(huán)體,代碼有輸入、輸出端子循環(huán)變量i,僅有輸出For循環(huán)相當(dāng)于C語(yǔ)言中的下列程序代碼: for(i=0;iN;i+) ;4.1.2 簡(jiǎn)單簡(jiǎn)單For循環(huán)應(yīng)用示例循環(huán)應(yīng)用示例圖圖4-3 4-3 簡(jiǎn)單簡(jiǎn)單ForFor循環(huán)示例循環(huán)示例FOR循環(huán)簡(jiǎn)單示例循環(huán)簡(jiǎn)單示例? 沒(méi)有沒(méi)有連加連加4.1.3 自動(dòng)索引在自動(dòng)索引在For循環(huán)內(nèi)的應(yīng)用循環(huán)內(nèi)的應(yīng)用自動(dòng)索引的功能是使循環(huán)框外面的數(shù)組成員逐個(gè)進(jìn)入循環(huán)框內(nèi),或使循環(huán)框內(nèi)的數(shù)據(jù)累加成一個(gè)數(shù)組輸出到循環(huán)框外面。循環(huán)內(nèi)-循環(huán)外,元素-數(shù)組,一維-二維,自動(dòng)索

4、引值,在完成循環(huán)后才一次性輸出。For循環(huán)的索引可通過(guò)鼠標(biāo)右鍵單擊循環(huán)邊框的數(shù)據(jù)通道來(lái)啟動(dòng)。4.1.3 自動(dòng)索引在自動(dòng)索引在For循環(huán)內(nèi)的應(yīng)用循環(huán)內(nèi)的應(yīng)用盡管For循環(huán)和While循環(huán)都支持自動(dòng)索引功能,但其主要區(qū)別在于:For循環(huán)的數(shù)組默認(rèn)為能自動(dòng)索引,如不需要索引,可在數(shù)組進(jìn)入循環(huán)的通道上單擊鼠標(biāo)右鍵彈出快捷菜單選擇“禁用索引”選項(xiàng);而While循環(huán)中的數(shù)組默認(rèn)為不能自動(dòng)索引,如果需要索引,可在循環(huán)的通道上單擊鼠標(biāo)右鍵彈出快捷菜單選擇“啟用索引”選項(xiàng)。另外,在創(chuàng)建二維數(shù)組時(shí)一般使用For循環(huán)而不使用While循環(huán)。圖圖4-4 For4-4 For循環(huán)自動(dòng)索引示例循環(huán)自動(dòng)索引示例自動(dòng)索引示例

5、自動(dòng)索引示例自動(dòng)索引示例自動(dòng)索引示例24.1.3 自動(dòng)索引在自動(dòng)索引在For循環(huán)內(nèi)的應(yīng)用循環(huán)內(nèi)的應(yīng)用4.1.4 移位寄存器在移位寄存器在For循環(huán)內(nèi)的應(yīng)用循環(huán)內(nèi)的應(yīng)用移位寄存器是LabVIEW的循環(huán)結(jié)構(gòu)中的一個(gè)附加變量對(duì)象,其功能是在循環(huán)的不同迭代間傳遞數(shù)據(jù)。一般來(lái)說(shuō),移位寄存器可以存儲(chǔ)任何類型的數(shù)據(jù),但是連接在同一個(gè)寄存器兩個(gè)端子上的數(shù)據(jù)必須是同一類型的。移位寄存器的類型與第一個(gè)連接到其端子之一的對(duì)象數(shù)據(jù)的類型相同。起到C語(yǔ)言中,i+的作用。在LABVIEW中,不支持變量的自賦值。只能通過(guò)移位寄存器解決。使用LabVIEW時(shí),凡是循環(huán)內(nèi)需要使用變量的地方,應(yīng)首先考慮使用移位寄存器。圖圖4-5

6、 For4-5 For循環(huán)移位寄存器示例循環(huán)移位寄存器示例當(dāng)前的當(dāng)前的i上一次的上一次的i當(dāng)前循環(huán)的當(dāng)前循環(huán)的結(jié)果值結(jié)果值上次循環(huán)的上次循環(huán)的結(jié)果值結(jié)果值圖圖4-6 For4-6 For循環(huán)中不添加移位寄存器的結(jié)果循環(huán)中不添加移位寄存器的結(jié)果u移位寄存器成對(duì)出現(xiàn),在程序中使用同一塊內(nèi)存;u使用移位寄存器需要賦初值;和移位寄存器一樣,反饋節(jié)點(diǎn)也是用來(lái)實(shí)現(xiàn)數(shù)據(jù)在前后兩次循環(huán)中的傳遞。但與移位寄存器相比,使用反饋節(jié)點(diǎn)有時(shí)能讓程序更加簡(jiǎn)潔易懂。循環(huán)中一旦連線構(gòu)成反饋,就會(huì)自動(dòng)出現(xiàn)反饋節(jié)點(diǎn)的符號(hào)。反饋節(jié)點(diǎn)符號(hào)由兩部分構(gòu)成,分別為初始化端子和反饋節(jié)點(diǎn)箭頭。4.1.5 反饋節(jié)點(diǎn)在反饋節(jié)點(diǎn)在For循環(huán)內(nèi)的應(yīng)用

7、循環(huán)內(nèi)的應(yīng)用 初始化端子 既可位于For循環(huán)框圖內(nèi),也可位于For循環(huán)框圖外,默認(rèn)為位于For循環(huán)框圖內(nèi)。 反饋節(jié)點(diǎn)箭頭 表示連線上的數(shù)據(jù)流動(dòng)方向,它可以是正向的,也可以是反向的。圖圖4-7 For4-7 For循環(huán)中使用反饋節(jié)點(diǎn)示例循環(huán)中使用反饋節(jié)點(diǎn)示例此處沒(méi)有開啟自動(dòng)此處沒(méi)有開啟自動(dòng)索引功能。實(shí)心框索引功能。實(shí)心框在for循環(huán)結(jié)構(gòu)的右鍵菜單中選擇“條件接線端”,可以為for循環(huán)創(chuàng)建一個(gè)接收停止循環(huán)命令的接線端,它類似于C語(yǔ)言中跳出循環(huán)的break語(yǔ)句。條件接線端有兩種停止模式,既可以接收“真”值,讓循環(huán)停止運(yùn)行,也可以接收“假”值,讓循環(huán)停止運(yùn)行。當(dāng)條件接線端顯示為一個(gè)紅色圓形 時(shí),表示收

8、到“真”值,停止循環(huán)運(yùn)行。單擊條件接線端,使其變成綠色環(huán)形箭頭 ,則表示在收到“假”值時(shí),停止循環(huán)。4.1.6 結(jié)束條件結(jié)束條件4.2 While循環(huán)循環(huán)4.2.1 While循環(huán)的組成在如圖4-1所示的界面中找到While循環(huán)后,用鼠標(biāo)左鍵單擊While循環(huán)后會(huì)發(fā)現(xiàn)鼠標(biāo)箭頭變成一個(gè)表示W(wǎng)hile循環(huán)的小圖標(biāo),此時(shí)用戶可在程序框圖上用鼠標(biāo)拖放一個(gè)任意大小和位置的While循環(huán)邊框,如圖4-8所示。圖圖4-8 While4-8 While循環(huán)界面循環(huán)界面 最基本的While循環(huán)由循環(huán)框架、條件接線端(輸入端)和計(jì)數(shù)接線端(輸出端)組成。 與For循環(huán)的計(jì)數(shù)接線端一樣,While的計(jì)數(shù)接線端也是輸

9、出循環(huán)已執(zhí)行次數(shù)的數(shù)字輸出端子。While的條件接線端是一個(gè)布爾變量,需要輸入一個(gè)布爾值。 條件接線端用于控制循環(huán)是否繼續(xù)執(zhí)行時(shí),有兩種使用條件接線端用于控制循環(huán)是否繼續(xù)執(zhí)行時(shí),有兩種使用狀態(tài):狀態(tài): 默認(rèn)狀態(tài)的條件接線端屬性為默認(rèn)狀態(tài)的條件接線端屬性為“真(真(T)時(shí)停止)時(shí)停止”,此時(shí)的圖標(biāo)是一個(gè)方框圈住的實(shí)心的紅色圓點(diǎn),如圖此時(shí)的圖標(biāo)是一個(gè)方框圈住的實(shí)心的紅色圓點(diǎn),如圖4-8右右下角所示,這表示當(dāng)條件為真時(shí)循環(huán)停止。下角所示,這表示當(dāng)條件為真時(shí)循環(huán)停止。 當(dāng)在條件接線端圖標(biāo)上單擊鼠標(biāo)右鍵選擇“真(T)時(shí)繼續(xù)”,則圖標(biāo)變成如圖4-9所示,此時(shí)表示當(dāng)條件為真時(shí)循環(huán)繼續(xù)。當(dāng)每一次循環(huán)結(jié)束時(shí),條

10、件端口檢測(cè)通過(guò)數(shù)據(jù)連線輸入的布爾值和其使用狀態(tài)決定是否繼續(xù)執(zhí)行循環(huán)。圖圖4-9 4-9 條件端子變換后的條件端子變換后的WhileWhile循環(huán)界面循環(huán)界面 與For循環(huán)是在執(zhí)行前檢查是否符合條件不同,While循環(huán)是在執(zhí)行后再檢查條件端子。因此,While循環(huán)至少執(zhí)行一次。圖圖4-10 4-10 簡(jiǎn)單簡(jiǎn)單WhileWhile循環(huán)示例循環(huán)示例4.3 條件結(jié)構(gòu)條件結(jié)構(gòu)條件結(jié)構(gòu)同樣位于“函數(shù)”選板下的“結(jié)構(gòu)”子選板中。與創(chuàng)建循環(huán)的方法類似,我們可以從結(jié)構(gòu)選板中選擇條件結(jié)構(gòu),用鼠標(biāo)在程序框圖上任意位置拖放任意大小的條件結(jié)構(gòu)圖框。條件結(jié)構(gòu)由結(jié)構(gòu)框架、分支選擇器、選擇標(biāo)簽等組成,如圖4-11所示。 圖圖

11、4-11 4-11 條件結(jié)構(gòu)界面條件結(jié)構(gòu)界面4.3.1 添加、刪除與排序分支添加、刪除與排序分支在條件結(jié)構(gòu)框架上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“在后面添加分支”菜單項(xiàng)用戶就可以為條件結(jié)構(gòu)添加新的分支,如圖4-12所示。圖圖4-12 4-12 分支的添加和排序分支的添加和排序添加完新分支后可在快捷菜單中選擇“重排分支”菜單項(xiàng)打開重排分支對(duì)話框,在對(duì)話框的分支列表中用鼠標(biāo)拖動(dòng)列表項(xiàng)可以對(duì)分支重新排序。通常,排序按鈕以第一個(gè)選擇值為基準(zhǔn)對(duì)選擇器標(biāo)簽值進(jìn)行排序。刪除分支的操作與添加分支相同。創(chuàng)建新的分支后可以為新分支添加分支名。 4.3.2 布爾類型的條件選擇結(jié)構(gòu)布爾類型的條件選擇結(jié)構(gòu) 條件結(jié)構(gòu)

12、的一種常見(jiàn)程序模式是:首先比較某個(gè)數(shù)據(jù),然后把比較的結(jié)果傳遞給分支選擇器。條件結(jié)構(gòu)中的兩個(gè)分支分別是比較結(jié)果為“真”、“假”時(shí)需要執(zhí)行的代碼。 最為常見(jiàn)的布爾型條件結(jié)構(gòu)是用來(lái)處理錯(cuò)誤數(shù)據(jù)線的。 字符串、整數(shù)和枚舉類型的數(shù)據(jù)都可以作為條件結(jié)構(gòu)的條件。這些數(shù)據(jù)類型與布爾數(shù)據(jù)的區(qū)別在于,布爾型數(shù)據(jù)只有兩個(gè)值:“真”或“假”;而其余數(shù)據(jù)類型可能值都是無(wú)窮的。條件結(jié)構(gòu)不可能為每一個(gè)可能值都設(shè)置一個(gè)分支,因此,這時(shí)需要選擇一個(gè)分支作為默認(rèn)分支,在數(shù)據(jù)不能滿足其他分支的條件時(shí)就執(zhí)行默認(rèn)分支的代碼。 條件結(jié)構(gòu)中的一個(gè)分支可以對(duì)應(yīng)多個(gè)條件,不同條件用逗號(hào)隔開。 條件標(biāo)簽還可以是一段值,在兩個(gè)值間用兩個(gè)點(diǎn)連接就表

13、示這兩個(gè)數(shù)值間的一段值。 不同分支的條件必須是唯一的,如果同一條件出現(xiàn)在不同的分支中,會(huì)報(bào)錯(cuò)。4.3.3 其他數(shù)據(jù)類型的條件選擇結(jié)構(gòu)其他數(shù)據(jù)類型的條件選擇結(jié)構(gòu) 例:比較兩個(gè)整數(shù)和,時(shí),彈出對(duì)話框顯示“”;時(shí),彈出對(duì)話框顯示“” ;時(shí),彈出對(duì)話框顯示“”4.3. 合理設(shè)置選擇條件合理設(shè)置選擇條件直接按照程序邏輯描述寫,會(huì)出現(xiàn)嵌套結(jié)構(gòu)程序的可讀性差。變換一下程序的條件判斷邏輯,即可避免條件結(jié)構(gòu)嵌套,優(yōu)化程序代碼,改善程序的可讀性和效率。把共同的代碼放在結(jié)構(gòu)之外,這個(gè)原則在條件結(jié)構(gòu)中務(wù)必遵循4.3. 條件結(jié)構(gòu)隧道條件結(jié)構(gòu)隧道可為條件結(jié)構(gòu)創(chuàng)建多個(gè)輸入輸出隧道。條件結(jié)構(gòu)的各個(gè)分支上都有輸入,但是不是每個(gè)

14、分支都必須使用輸入。在條件結(jié)構(gòu)一個(gè)分支的邊框上創(chuàng)建輸出隧道時(shí),其他分支邊框上也會(huì)出現(xiàn)輸出隧道。只要有一個(gè)輸出隧道沒(méi)有連線,則條件結(jié)構(gòu)每個(gè)分支邊框上的輸出的隧道都顯示為白色正方形。隧道可使用數(shù)據(jù)類型的默認(rèn)值,不是每個(gè)隧道都必須連線。右鍵單擊輸出隧道,從快捷菜單中選擇未連接時(shí)使用默認(rèn)未連接時(shí)使用默認(rèn),這樣所有未連線的隧道都將使用隧道數(shù)據(jù)類型的默認(rèn)值。 將隧道配置為未連線時(shí)自動(dòng)連接輸入和輸出隧道,這是推薦的方法 注:注: 每個(gè)條件分支的同一輸出隧道可以定義不同的數(shù)據(jù)源,但各個(gè)條件必須兼容這些數(shù)據(jù)類型。(a a)不正確的連接)不正確的連接邊框上的數(shù)據(jù)通道為中空狀態(tài)邊框上的數(shù)據(jù)通道為中空狀態(tài)(b b)正

15、確的連接)正確的連接邊框上的數(shù)據(jù)通道為實(shí)心狀態(tài)邊框上的數(shù)據(jù)通道為實(shí)心狀態(tài)圖圖4-13 4-13 連接數(shù)據(jù)的輸入與輸出連接數(shù)據(jù)的輸入與輸出實(shí)實(shí)心心框框空空心心框框4.3. 選擇函數(shù)選擇函數(shù)4.3. 條件結(jié)構(gòu)示例條件結(jié)構(gòu)示例圖圖4-14 4-14 執(zhí)行兩個(gè)數(shù)相乘或相加運(yùn)算的執(zhí)行兩個(gè)數(shù)相乘或相加運(yùn)算的CaseCase條件結(jié)構(gòu)示例條件結(jié)構(gòu)示例圖圖4-15 4-15 執(zhí)行兩個(gè)數(shù)相乘或相加運(yùn)算的執(zhí)行兩個(gè)數(shù)相乘或相加運(yùn)算的CaseCase條件結(jié)構(gòu)示例條件結(jié)構(gòu)示例4.4 順順 序序 結(jié)結(jié) 構(gòu)構(gòu)4.4.1 程序執(zhí)行順序4.4.2 創(chuàng)建順序結(jié)構(gòu) 要讓相互間沒(méi)有數(shù)據(jù)線相連的幾部分代碼按照特定順序執(zhí)行,可以使用順序結(jié)

16、構(gòu);4.4.3 兩種順序結(jié)構(gòu) 順序結(jié)構(gòu)順序地執(zhí)行子框圖,而這些子框圖看起來(lái)就像一幀幀的電影膠片,因此稱之為幀。 順序結(jié)構(gòu)根據(jù)幀排列的不同共有兩種類型:層疊式順序結(jié)構(gòu)、平鋪式順序結(jié)構(gòu); 層疊式順序結(jié)構(gòu)和平鋪式順序結(jié)構(gòu)的功能相同,不同在于可讀性和占用面積的不同。例子第一幀與第三幀間如何傳遞數(shù)據(jù)?圖圖4-16 4-16 層疊式順序結(jié)構(gòu)界面層疊式順序結(jié)構(gòu)界面層疊式順序結(jié)構(gòu)中的數(shù)據(jù)要借助于順序結(jié)構(gòu)變量來(lái)傳遞。層疊式順序結(jié)構(gòu)中的數(shù)據(jù)要借助于順序結(jié)構(gòu)變量來(lái)傳遞。(a a)未賦值的局部變量)未賦值的局部變量 (b b)連接數(shù)據(jù))連接數(shù)據(jù) (c c)賦值后的局部變量)賦值后的局部變量 (d d)結(jié)果)結(jié)果 圖圖4-17 4-17 順序局部變量的創(chuàng)建與使用順序局部變量的創(chuàng)建與使用后續(xù)幀中只需根據(jù)需要通過(guò)連線把順序局部變量中的數(shù)據(jù)引出來(lái)圖圖4-18 4-18 順序結(jié)構(gòu)中的數(shù)據(jù)通道順序結(jié)構(gòu)中的數(shù)據(jù)通道平鋪式順序結(jié)構(gòu)的一個(gè)鮮明的特點(diǎn)是它的多個(gè)框架不是層疊在一起,而是自左至右平鋪,并按從左至右的順序執(zhí)行。圖圖4-19 4-19 平鋪式順序結(jié)構(gòu)界面平鋪式順序結(jié)構(gòu)界面 層疊式順序結(jié)構(gòu)與平鋪式順序結(jié)構(gòu)的功能完全相同。他們的主要區(qū)別在于平

溫馨提示

  • 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)論