labview虛擬儀器設(shè)計(jì)教程5章_第1頁(yè)
labview虛擬儀器設(shè)計(jì)教程5章_第2頁(yè)
labview虛擬儀器設(shè)計(jì)教程5章_第3頁(yè)
labview虛擬儀器設(shè)計(jì)教程5章_第4頁(yè)
labview虛擬儀器設(shè)計(jì)教程5章_第5頁(yè)
已閱讀5頁(yè),還剩34頁(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)介

《LabVIEW第5章程序結(jié)《LabVIEW第5章程序結(jié) 順序結(jié) LabVIEW程序數(shù)據(jù)流編 循環(huán)結(jié) For循 條件結(jié) 事件結(jié) 禁用結(jié) 公式節(jié) 定時(shí)結(jié) 5序結(jié)程序結(jié)構(gòu)對(duì)任何一種計(jì)算機(jī)編程語(yǔ)言都是十分重要的,它控制了整個(gè)程序語(yǔ)言的執(zhí)行過(guò)程,一個(gè)好的程序結(jié)構(gòu),可以大大提高程序的執(zhí)行效率。5序結(jié)程序結(jié)構(gòu)對(duì)任何一種計(jì)算機(jī)編程語(yǔ)言都是十分重要的,它控制了整個(gè)程序語(yǔ)言的執(zhí)行過(guò)程,一個(gè)好的程序結(jié)構(gòu),可以大大提高程序的執(zhí)行效率。abW于W5.1順序結(jié)5.1.1LabVIEW在傳統(tǒng)的編程語(yǔ)言VisualBasic、C++、JAVA以及絕大多數(shù)其它文本編程語(yǔ)言都遵循程序程序代碼編寫的順序至上而下逐條語(yǔ)句順序執(zhí)行,且每個(gè)時(shí)刻只執(zhí)行一步。LabVIEW作為一VI和函數(shù)的執(zhí)行順序5-1給出了實(shí)現(xiàn)Result=(A+B)/C的控制流編程和數(shù)據(jù)流編程的5-12據(jù)B。而在數(shù)據(jù)流編程中據(jù)B。而在數(shù)據(jù)流編程中A”和“獲取數(shù)據(jù)B”沒(méi)有先后之分,兩個(gè)任務(wù)根據(jù)需要5-2實(shí)現(xiàn)Result=(A+B)/CLabVIEW是以數(shù)據(jù)流而不是命令的先后順序決定程序框圖元素的執(zhí)行順序,因此可創(chuàng)5-3在圖5-3中,同一個(gè)程序框圖中有兩段類似的代碼,這兩段代碼是如何執(zhí)行的呢?在LabVIEW中,這兩段代碼的實(shí)際執(zhí)行過(guò)程并不是按照從左到右從上到下的順序先執(zhí)行第一段5.1.2LabVIEW有兩種順序結(jié)構(gòu),一種是平鋪式順序結(jié)構(gòu),一種是層疊式順序結(jié)構(gòu),這兩種順35-4層疊式順序結(jié)構(gòu)在程序框圖窗口的同一位置堆疊多個(gè)子框圖。每個(gè)子框圖(0。初建立5-4層疊式順序結(jié)構(gòu)在程序框圖窗口的同一位置堆疊多個(gè)子框圖。每個(gè)子框圖(0。初建立5-5(下面(上面5-5內(nèi)容1[0..2,表示該順序結(jié)構(gòu)含有第02共三幀,并且第1幀為當(dāng)前幀。選擇器標(biāo)簽5-645-65-65-755.1.3順序結(jié)構(gòu)中數(shù)據(jù)傳5.1.3順序結(jié)構(gòu)中數(shù)據(jù)傳5-8在為局部變量接入數(shù)據(jù)幀的前面的幀(在此為第0幀)中,局部變量用陰影方塊占位,表示A、B2幀中實(shí)現(xiàn)(A+B)/23幀5-96順序結(jié)構(gòu)外部與內(nèi)部之間的數(shù)據(jù)傳遞是通過(guò)在結(jié)構(gòu)邊框上建立隧道來(lái)實(shí)現(xiàn)的。隧道有輸入隧道和輸出隧道,輸入隧道用于從外部向內(nèi)部傳遞數(shù)據(jù),輸出隧道用于從內(nèi)部向外部傳遞且每幀都能讀取該值。只能在某一幀中向輸出隧道寫入數(shù)據(jù),如在超過(guò)一個(gè)幀中對(duì)同一輸出隧道賦值,則會(huì)引起多個(gè)數(shù)據(jù)源錯(cuò)誤,輸出隧道上的值只能在整個(gè)順序結(jié)構(gòu)執(zhí)行完后才會(huì)輸輸入隧輸出隧輸出順序結(jié)構(gòu)外部與內(nèi)部之間的數(shù)據(jù)傳遞是通過(guò)在結(jié)構(gòu)邊框上建立隧道來(lái)實(shí)現(xiàn)的。隧道有輸入隧道和輸出隧道,輸入隧道用于從外部向內(nèi)部傳遞數(shù)據(jù),輸出隧道用于從內(nèi)部向外部傳遞且每幀都能讀取該值。只能在某一幀中向輸出隧道寫入數(shù)據(jù),如在超過(guò)一個(gè)幀中對(duì)同一輸出隧道賦值,則會(huì)引起多個(gè)數(shù)據(jù)源錯(cuò)誤,輸出隧道上的值只能在整個(gè)順序結(jié)構(gòu)執(zhí)行完后才會(huì)輸輸入隧輸出隧輸出隧(a)層疊式順序結(jié)輸入隧輸出隧(a)平鋪式順序結(jié)5-105.1.4順序結(jié)構(gòu)應(yīng)用舉5-11、5-1275-115-125.2循環(huán)結(jié)8ForFor5-13For{}和其他程序語(yǔ)言一樣,LabVIEWFor循環(huán)執(zhí)行的是包含在循環(huán)框架中的程序,循環(huán)5-14CForN,用于控制9出循環(huán)。如果循環(huán)總數(shù)接線端子的初始值為0,則For循環(huán)內(nèi)的程序一次都不執(zhí)行。值得注意的入的循環(huán)總數(shù)接線端所確定的次數(shù)執(zhí)行。另外,F(xiàn)or循環(huán)的執(zhí)行次數(shù)除了可以由循環(huán)總數(shù)接5-15利用For在一些文本編程語(yǔ)言中,可以使用goo或t語(yǔ)句使程序從循環(huán)體內(nèi)跳轉(zhuǎn)到循環(huán)體外,從而中止循環(huán)的執(zhí)行。而在LabVIEW早期版本,對(duì)For循環(huán)不提供中止循環(huán)的機(jī)制,如果要實(shí)現(xiàn)While循環(huán)。但是從abIEW85orFor環(huán)的布爾數(shù)據(jù)(如布爾控件或比較函數(shù)的輸出值)輸入中止循環(huán)的執(zhí)行。在For循環(huán)中使用條件接線端時(shí),必須連接布爾數(shù)據(jù)或錯(cuò)誤簇至條件接線端,連接數(shù)值到總數(shù)接線端或?qū)斎霐?shù)組建立自動(dòng)索引,有關(guān)自動(dòng)索引的內(nèi)容 For循環(huán)條件接線端的應(yīng) For循環(huán)條件接線端的應(yīng)LabVIEWviLabIEWLabIEWabIW209ForLabVIEW前面的版本中,一個(gè)or循環(huán)在執(zhí)行時(shí)只為其分配到一個(gè)線程進(jìn)行執(zhí)行,故LabVIEWForForor現(xiàn)并發(fā)執(zhí)行一個(gè)Forr循環(huán)利用多個(gè)處理器可以提高or5-17For在圖5-18給出的例子中,數(shù)組的長(zhǎng)度為10000,為了測(cè)試并行For循環(huán)的執(zhí)行效率,我們采用順序結(jié)構(gòu)來(lái)對(duì)循環(huán)執(zhí)行的過(guò)程進(jìn)行計(jì)于對(duì)一個(gè)長(zhǎng)度為10000的數(shù)組利用For循環(huán)進(jìn)行一個(gè)1ms的延時(shí)增加循環(huán)的執(zhí)行時(shí)間。同時(shí),為了在For循環(huán)中實(shí)現(xiàn)求和運(yùn)算,使用了移5-18For循環(huán)的并行數(shù)量不同時(shí),程序的執(zhí)行時(shí)間是1For循環(huán),此時(shí)運(yùn)行時(shí)間約為viFor循環(huán)進(jìn)行分析,并給出那些循環(huán)是可5.2.2WhileWhile循環(huán)是循環(huán)次數(shù)不固定的一種循環(huán)結(jié)構(gòu),類似于文本編程語(yǔ)言中的Do循環(huán)或Repeat-Until循環(huán),While循環(huán)執(zhí)行子程序框圖直到滿足某個(gè)條件。在“結(jié)構(gòu)”子選板中用鼠While5-195-19While5-19WhileviWhileForWhile循環(huán)由循iFor循環(huán)類似,While循環(huán)執(zhí)行的同樣是包含在i,該接線端為一個(gè)輸出接線端,i05-19所示,接線端圖標(biāo)(True(True5-20真(True)WhileWhile循環(huán)的執(zhí)行流程:首先“循環(huán)計(jì)數(shù)”接線端輸出當(dāng)前執(zhí)行的循環(huán)的次數(shù),循環(huán)框架5-215-21利用While5-222倍時(shí),循環(huán)停止,同時(shí)通過(guò)邊框上的隧道將最后結(jié)果傳傳遞到循環(huán)結(jié)5-22中“輸入數(shù)值”的數(shù)據(jù)只While循環(huán)邊框上的數(shù)據(jù)隧道數(shù)據(jù),就必須把這個(gè)端子放在循環(huán)內(nèi)部,5-2的輸入數(shù)值與循環(huán)計(jì)數(shù)值二者之和,而“結(jié)果外部顯示”控件中顯示的數(shù)據(jù)需要通過(guò)隧道從5-2的輸入數(shù)值與循環(huán)計(jì)數(shù)值二者之和,而“結(jié)果外部顯示”控件中顯示的數(shù)據(jù)需要通過(guò)隧道從ForN賦值來(lái)指定N指N5個(gè)元素,指定5-23利用ForForN沒(méi)有接入任何數(shù)據(jù),因?yàn)檠h(huán)次數(shù)可以根據(jù)輸入隧道接入的數(shù)組元素個(gè)5-23給出的例子,如果不打5-24121次循環(huán),數(shù)組一次性完整于執(zhí)行2次循環(huán),循環(huán)執(zhí)行前,數(shù)組一次性完整輸入循環(huán)內(nèi),每次循環(huán),輸入數(shù)組中的各元For循環(huán)輸入輸出同時(shí)啟用/禁用For循環(huán)輸入輸出同時(shí)啟用/禁用5-25中例子來(lái)學(xué)習(xí)體會(huì),我們不再詳細(xì)介紹其運(yùn)5-5-265-265-27對(duì)于While循環(huán),自動(dòng)索引被默認(rèn)關(guān)閉。在While循環(huán)中,循環(huán)的執(zhí)行次數(shù)受“條件接線5-28While循環(huán)禁用自動(dòng)索5-295-305-305-305-305-315-325-32所示。反饋節(jié)點(diǎn)有兩個(gè)接線以在初始化接線端的右鍵快捷菜單中選擇“將初始化器移出一個(gè)循環(huán)”菜單項(xiàng),初始化接線端則移到循環(huán)結(jié)構(gòu)的左邊框上。在反饋節(jié)點(diǎn)右鍵快捷菜單“全局初始化”“編譯或加載時(shí)初I全局初始化,此時(shí)無(wú)需為其指定初始化值。若在循環(huán)框架內(nèi)為初始化器接入了一個(gè)初始值,5-335-335-34在5-34在移位寄存器中,我們可以通過(guò)創(chuàng)建多個(gè)左端子來(lái)獲取前面多次循環(huán)的值,如i-1、i-2、i-5-351i-12,5-355-351的反饋節(jié)點(diǎn)轉(zhuǎn)換為移位寄存5.3條件結(jié)5.3.15-35控件”將分別創(chuàng)建布爾常量或布爾輸入控件,且創(chuàng)建的布爾常量或布爾輸入控件自動(dòng)和分支選擇器的輸入端子相連,選擇“創(chuàng)建顯示控件”將創(chuàng)建布爾顯示控件,該控件將自動(dòng)和分支選擇器的輸出端子相連。分支選擇器用于控制條件結(jié)構(gòu)中子框架中程序的執(zhí)行,執(zhí)行控件”將分別創(chuàng)建布爾常量或布爾輸入控件,且創(chuàng)建的布爾常量或布爾輸入控件自動(dòng)和分支選擇器的輸入端子相連,選擇“創(chuàng)建顯示控件”將創(chuàng)建布爾顯示控件,該控件將自動(dòng)和分支選擇器的輸出端子相連。分支選擇器用于控制條件結(jié)構(gòu)中子框架中程序的執(zhí)行,執(zhí)行5.3.25-36的數(shù),100..1005-37給出了分支選擇器接整型數(shù)據(jù)時(shí)選擇器標(biāo)簽5-37如果分支選擇器接線端是一個(gè)字符串,則該結(jié)構(gòu)同樣包括任意個(gè)分支。對(duì)于每個(gè)分支,也可使用標(biāo)簽工具在條件結(jié)構(gòu)上部的條件選擇器標(biāo)簽中輸入值、值列表或值范圍。對(duì)于字符5-37如果分支選擇器接線端是一個(gè)字符串,則該結(jié)構(gòu)同樣包括任意個(gè)分支。對(duì)于每個(gè)分支,也可使用標(biāo)簽工具在條件結(jié)構(gòu)上部的條件選擇器標(biāo)簽中輸入值、值列表或值范圍。對(duì)于字符..a和aa和大于a..a不包括字符串a(chǎn)和以a開(kāi)頭的字符串,a..包含以開(kāi)頭的字符串。a..ca或b以c開(kāi)頭的字符串。a僅表示單個(gè)字符a,但不能表示以a開(kāi)頭的字符串,如要表示以a開(kāi)頭的字abbc和d均僅表示字符串a(chǎn)bc和d通過(guò)SCI值確定字符串的范圍,一般情況下,需要注意的是字符串范圍區(qū)分大小寫,例如,c和a.c表示不同的范圍,若在選擇器右鍵菜單中選擇“不區(qū)分大小寫選項(xiàng)”在不區(qū)分大小寫的情況下,所有小寫字母轉(zhuǎn)換為大寫后在進(jìn)行范圍比較。如果分支接線端是字符串,在選5-385-385-39給出了分支選5-395-395-405.3.35-405.3.35-41所示。如果允許沒(méi)有連線的子5-415.3.4現(xiàn)兩個(gè)數(shù)之間加、減、乘、除等4種不同的運(yùn)算。為了實(shí)現(xiàn)該例子,在前面板放置了兩個(gè)數(shù)值輸入控件用于輸入待運(yùn)算的兩個(gè)數(shù),一個(gè)數(shù)0為了實(shí)現(xiàn)該例子,在前面板放置了兩個(gè)數(shù)值輸入控件用于輸入待運(yùn)算的兩個(gè)數(shù),一個(gè)數(shù)0123默1232結(jié)果分別截圖后按順序平鋪排放5-425.4事件結(jié)5.4.1viWhile循環(huán)和條件結(jié)構(gòu)不斷地去查1vi5-435-43基于While5-43基于While供了事件結(jié)構(gòu),在事件結(jié)構(gòu)中,LabVIEW發(fā)器發(fā)出信號(hào)。其他類型的事件可通過(guò)編程生成并與程序的不同部分通信。LabVIEW件響應(yīng)特定的用戶操作則不必輪詢前面板即可確定用戶執(zhí)行了何種操作。LabVIEW將在指定5.4.2加其他程序結(jié)構(gòu)相似。新添加到框圖上的事件結(jié)構(gòu)如圖5-44所示。5-445-44超時(shí)時(shí)間,以毫秒為單位。當(dāng)值為-1時(shí),事件結(jié)構(gòu)處于永遠(yuǎn)等待狀態(tài),直到指定的事件發(fā)生0的整數(shù)時(shí),時(shí)間結(jié)構(gòu)會(huì)等待相應(yīng)的時(shí)間,當(dāng)事件在指定的時(shí)間內(nèi)發(fā)5.4.3While5-455-455-46所示的“編件,每行都分為左右兩部分,左邊列出事件源(VI、動(dòng)態(tài)、窗格、分隔欄和控件這6個(gè)可能值之一右邊給出該事件源產(chǎn)生的事件名稱。圖5-46中為分支1指定了一個(gè)事5-465-46為當(dāng)前事件分支添加事件的方法是單擊“事件說(shuō)明符”列表框下側(cè)的“+添加事件”按鈕,這時(shí)在“事件說(shuō)明符”的事件列表最下面出現(xiàn)新的一行,事件源和事件名都為待定,用“”表示。在“事件源”列表框選擇合適的事件源,然后在“事件”列表框給出的該事件源的事件分為通知事件和過(guò)濾器事件兩種。在“編輯事件”對(duì)話框的“事件”的處理。例如修改一個(gè)數(shù)值控件的數(shù)值時(shí),LabVIEW會(huì)先進(jìn)行默認(rèn)的處理,即把新數(shù)值顯示過(guò)濾器事件用于告訴程序代碼某個(gè)事件發(fā)生了,LabVIEW還未對(duì)其進(jìn)行任何處理,從而同通知事件一樣,對(duì)于一個(gè)對(duì)象上同一個(gè)過(guò)濾事件,可配置任意數(shù)量與其響應(yīng)的事件結(jié)LabV同通知事件一樣,對(duì)于一個(gè)對(duì)象上同一個(gè)過(guò)濾事件,可配置任意數(shù)量與其響應(yīng)的事件結(jié)LabVEW將按自然順序?qū)⑦^(guò)濾事件發(fā)送給為該事件所配置的每個(gè)事件結(jié)構(gòu)。abWW件結(jié)構(gòu)之前,每個(gè)事件結(jié)構(gòu)必須執(zhí)行完該事件的所有事件分支。如果某個(gè)事件結(jié)構(gòu)改變了事LabVIEWLabVEW5-475.4.45-485-43單擊計(jì)數(shù)器功能的實(shí)例的程序框圖和前面5-485-481121同時(shí)處理了兩個(gè)事件,因此當(dāng)用鼠標(biāo)點(diǎn)擊這兩個(gè)按鈕中的任何一個(gè)以改變按鈕的取值,則計(jì)數(shù)器25.5禁用結(jié)C語(yǔ)言中通過(guò)宏定義來(lái)實(shí)現(xiàn)條件編譯。在禁用結(jié)構(gòu)中,其注釋屏蔽掉的代碼不僅不執(zhí)行,5.5.1C語(yǔ)言中通過(guò)宏定義來(lái)實(shí)現(xiàn)條件編譯。在禁用結(jié)構(gòu)中,其注釋屏蔽掉的代碼不僅不執(zhí)行,5.5.15-495-495.5.2在C語(yǔ)言中,程序員可以通過(guò)宏定義的方法來(lái)通過(guò)外部條件控制某段程序是否執(zhí)行。5-505-50條件禁用結(jié)構(gòu)最初放置在程序框圖中時(shí)只有一個(gè)子程序框圖,并設(shè)置為默認(rèn)狀態(tài),表示當(dāng)所有條件都不滿足時(shí)也執(zhí)行該子程序框圖中的代碼??梢酝ㄟ^(guò)條件禁用結(jié)構(gòu)的快捷菜單選5-51其中設(shè)置為默認(rèn)復(fù)選框表示當(dāng)所有條件都不滿足時(shí)也執(zhí)行該代碼。同條件結(jié)構(gòu)一樣,必須指定默認(rèn)情況下執(zhí)行的代碼,否則程序不可執(zhí)行。在配置條件對(duì)話框中配置的條件如果成立,其對(duì)應(yīng)的程序框圖就是正常的。如果不成立,其對(duì)應(yīng)的程序框圖會(huì)編程灰色,代表該段代碼5-51其中設(shè)置為默認(rèn)復(fù)選框表示當(dāng)所有條件都不滿足時(shí)也執(zhí)行該代碼。同條件結(jié)構(gòu)一樣,必須指定默認(rèn)情況下執(zhí)行的代碼,否則程序不可執(zhí)行。在配置條件對(duì)話框中配置的條件如果成立,其對(duì)應(yīng)的程序框圖就是正常的。如果不成立,其對(duì)應(yīng)的程序框圖會(huì)編程灰色,代表該段代碼5-525-52中,條件禁用結(jié)構(gòu)有兩個(gè)子程序框圖,第一個(gè)為默認(rèn)執(zhí)行框圖,第二個(gè)子程序通過(guò)定義整個(gè)項(xiàng)目的環(huán)境變量,該項(xiàng)目下所有的vi都可以被這些環(huán)境變量控制。如果該項(xiàng)

溫馨提示

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