labview第五章結(jié)構(gòu)_第1頁
labview第五章結(jié)構(gòu)_第2頁
labview第五章結(jié)構(gòu)_第3頁
labview第五章結(jié)構(gòu)_第4頁
labview第五章結(jié)構(gòu)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、主要的程序結(jié)構(gòu)有:循環(huán)結(jié)構(gòu)(While和For)條件結(jié)構(gòu)順序結(jié)構(gòu)事件結(jié)構(gòu)5.1.1For循環(huán)的創(chuàng)建基本的For循環(huán)結(jié)構(gòu)由循環(huán)框、循環(huán)次數(shù)端口和計數(shù)端口組成。 循環(huán)框循環(huán)框(用于放置用于放置循環(huán)代碼循環(huán)代碼)循環(huán)計數(shù)端口循環(huán)計數(shù)端口循環(huán)次數(shù)端口循環(huán)次數(shù)端口5.1.2For循環(huán)的工作流程For循環(huán)用于循環(huán)次數(shù)確定的循環(huán)。For循環(huán)運行順序是先判斷,后執(zhí)行。循環(huán)計數(shù)端口初始值為0,當(dāng)循環(huán)次數(shù)為N時,最后一次循環(huán)中循環(huán)計數(shù)端口值為N1.5.1.3For循環(huán)中的數(shù)據(jù)通道與自動索引數(shù)據(jù)通道:數(shù)據(jù)連線在循環(huán)框自動形成的方形 通道圖標(biāo) ??招木哂凶詣铀饕δ埽瑢嵭牟荒芩饕?。對于輸入:自動索引是指將循環(huán)框外面

2、的數(shù)組成員逐個依次進(jìn)入循環(huán)體內(nèi)。 對于輸出:自動索引是指將循環(huán)框內(nèi)的數(shù)據(jù)累加成 一個數(shù)組輸出到循環(huán)框外面。 例如:下圖中通道自動索引功能有效時,每一次循環(huán)產(chǎn)生一個新的數(shù)據(jù),存儲在循環(huán)的邊框通道上,待循環(huán)結(jié)束以后,產(chǎn)生的6個數(shù)據(jù)將傳送到一個數(shù)組指示器中。自動索引功能無效時,只有最后一次For循環(huán)產(chǎn)生的1個隨機數(shù)傳到循環(huán)外??招膶嵭模?)For循環(huán)輸入隧道打開自動索引,而輸出關(guān)閉自動索引(2)For循環(huán)輸入隧道關(guān)閉自動索引,而輸出打開自動索引5.1.4移位寄存器創(chuàng)建:右擊邊框用途:用于While循環(huán)和For循環(huán),將上一次循環(huán)值傳給下一次循環(huán)。數(shù)據(jù)類型: 數(shù)字型、布爾型、字符串等 。初始化:在循環(huán)外

3、將初始值連到移位寄存器的左端口,有默認(rèn)初值。還可以存儲前幾次循環(huán)的值:在移位寄存器的左端口或右端口上右擊鼠標(biāo)彈出菜單,選擇“增加元素”選項,可創(chuàng)建附加的左端口來存儲前幾次循環(huán)的值。均為整數(shù))且例:求NMXNMXSNMX,(35反饋節(jié)點功能:在循環(huán)中,將數(shù)據(jù)從一次循環(huán)傳遞到下一次循環(huán)。反饋節(jié)點箭頭的方向表示數(shù)據(jù)流的方向。 反饋節(jié)點和移位寄存器可以互換,在反饋節(jié)點或移位寄存器圖標(biāo)上彈出快捷菜單選“替換為移位寄存器”或“替換為反饋節(jié)點”即可。移位寄存器左端口多于1個時不能轉(zhuǎn)換為反饋節(jié)點。 下面是用移位寄存器(左圖)和反饋節(jié)點(右圖)實現(xiàn)a+的框圖程序。 For循環(huán)和While循環(huán)的區(qū)別:1)For循

4、環(huán)要執(zhí)行預(yù)先指定的循環(huán)次數(shù)。 While循環(huán)不必知道循環(huán)次數(shù),只有在條件端 口接收到的值滿足條件時才停止循環(huán)。2) For循環(huán)當(dāng)N1時1次都不執(zhí)行。 While循環(huán)不滿足條件也要執(zhí)行1次。5.2.1.While循環(huán)的創(chuàng)建While循環(huán)由循環(huán)框、條件端口和計數(shù)端口組成。循環(huán)循環(huán)框框條件端口條件端口計數(shù)端口計數(shù)端口5.2.2.While循環(huán)的工作流程條件端口:控制循環(huán)的停止與否。有兩種狀態(tài) : 時,當(dāng)輸入值為真(T),則停止循環(huán) ; 時,若輸入值為假(F),則停止循環(huán)。計數(shù)端口:用于統(tǒng)計循環(huán)執(zhí)行的次數(shù),從零開始計數(shù)。While循環(huán)的運行順序是先執(zhí)行,后判斷。循環(huán)結(jié)束后,才去檢測條件端口的值,因此不

5、管條件是否成立,循環(huán)至少要執(zhí)行一次。 While循環(huán)也具有數(shù)據(jù)通道索引和移位寄存器、反饋節(jié)點的功能,它們的用法與For循環(huán)相同,只是While循環(huán)的邊框數(shù)據(jù)通道默認(rèn)為不能索引。 Case結(jié)構(gòu)由選擇框架、輸入端口、選擇器標(biāo)簽,以及遞增/遞減按鈕組成。選擇器標(biāo)簽選擇器標(biāo)簽遞增按鈕遞增按鈕遞減按鈕遞減按鈕選擇框架選擇框架條件輸入端口條件輸入端口2輸入端口的設(shè)置條件結(jié)構(gòu)有一個條件輸入端口 ,根據(jù)連到該端口 的值來判斷執(zhí)行哪一個子分支。條件輸入端口的數(shù)據(jù)類型有布爾型、整型、字符串型和枚舉型。 3增減分支及默認(rèn)分支的設(shè)置應(yīng)設(shè)置一個默認(rèn)項來處理超出條件選項范圍的情況。 鼠標(biāo)右鍵,選擇“本分支設(shè)置為默認(rèn)分支”

6、。4數(shù)據(jù)通道的設(shè)置 輸入數(shù)據(jù)時,每個子分支框可連可不連數(shù)據(jù)通道。輸出數(shù)據(jù)時,每個子分支框必須為通道連接數(shù)據(jù)。否則程序不能運行?!拔催B線時使用默認(rèn)”可使程序中沒有連線的子分支框輸出默認(rèn)值。分支0 (Add),VI就進(jìn)行加法運算,分支1,則VI將進(jìn)行減法運算。使用了一個數(shù)字型文本下拉列表控件注意:當(dāng)在一個子分支中建立了一個輸出數(shù)據(jù)通道后,必須給每一個子分支定義輸出數(shù)據(jù)通道。 設(shè)定默認(rèn)的子分支,當(dāng)設(shè)定默認(rèn)的子分支,當(dāng)所有條件都不滿足時,所有條件都不滿足時,執(zhí)行默認(rèn)子分支執(zhí)行默認(rèn)子分支例子例子LabVIEW是一種數(shù)據(jù)流程序設(shè)計語言,沒有明確的先后順序,當(dāng)節(jié)點所有輸入端的數(shù)據(jù)全部有效時,節(jié)點才執(zhí)行。順序

7、結(jié)構(gòu),它是一種按先后順序執(zhí)行的結(jié)構(gòu),看上去象電影膠片的幀,每一幀為一段框圖程序,按照幀的順序來執(zhí)行框圖程序。兩種形式順序結(jié)構(gòu):平鋪式順序結(jié)構(gòu)和層疊式順序結(jié)構(gòu)。功能相同,區(qū)別僅在于表現(xiàn)形式不同。1. 順序結(jié)構(gòu)的創(chuàng)建在結(jié)構(gòu)邊框上面單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇“在后面添加幀”或“在前面添加幀”可以增加子圖形代碼框。 在結(jié)構(gòu)邊框上右擊彈出的快捷菜單,選擇”替換為平鋪式順序”,可以將層疊式順序結(jié)構(gòu)變換為平鋪式順序結(jié)構(gòu) 2.順序結(jié)構(gòu)的數(shù)據(jù)傳遞平鋪式可從一幀直接連線到另一幀來傳遞數(shù)據(jù)。層疊式則需要通過順序局部變量來傳送數(shù)據(jù)。 在層疊式順序結(jié)構(gòu)的邊框上面右擊,選擇“添加順序局部變量”即可在當(dāng)前幀創(chuàng)建一

8、個順序局部變量端口。將本幀中的數(shù)據(jù)連接到該局部變量端口,該數(shù)據(jù)就可傳到后面的幀,該數(shù)據(jù)不會作用到它前面的幀。如下圖示意了層疊式順序結(jié)構(gòu)通過局部變量傳遞數(shù)據(jù)的情況。在標(biāo)識是1號幀的一個數(shù)據(jù)傳遞到標(biāo)識是2號的幀進(jìn)行“或”運算,0號幀不能使用該數(shù)據(jù)。 讀取定時器的當(dāng)前值 VI程序每隔10ms執(zhí)行循環(huán)四舍五入取整面向?qū)ο蟮某绦蛟O(shè)計技術(shù)引入“事件驅(qū)動”機制:系統(tǒng)會等待并響應(yīng)用戶或其他觸發(fā)事件發(fā)出的消息,并對這種消息作出響應(yīng)。事件驅(qū)動就是等待事件發(fā)生,然后按照對應(yīng)指定事件的程序代碼進(jìn)行響應(yīng),處理完后再回到等待事件狀態(tài)。先創(chuàng)建1個新的事件結(jié)構(gòu),在結(jié)構(gòu)中添加事件源和該事件源發(fā)生的事件,在各個事件對應(yīng)的框內(nèi)編寫

9、該事件發(fā)生時要執(zhí)行的程序。步驟:1.事件結(jié)構(gòu)的創(chuàng)建 事件結(jié)構(gòu)包括:結(jié)構(gòu)框、事件標(biāo)簽、超時端口和事件數(shù)據(jù)端口。事件標(biāo)簽事件標(biāo)簽 :當(dāng)前框圖程序響應(yīng)的事件名稱當(dāng)前框圖程序響應(yīng)的事件名稱 。超時端口,超時端口,默認(rèn)默認(rèn)值為值為-1,表示無,表示無限等待限等待 。 事件數(shù)事件數(shù)據(jù)端口據(jù)端口可讀可讀 結(jié)構(gòu)框結(jié)構(gòu)框放入事件發(fā)生放入事件發(fā)生后需執(zhí)行的程后需執(zhí)行的程序序 2.設(shè)置超時參數(shù)(可不設(shè)置,采用缺省值)3.放置事件觸發(fā)源控件(沒有可不放置)4.添加事件分支并編輯可以選擇可以選擇的事件源的事件源 相應(yīng)的事件源相應(yīng)的事件源可產(chǎn)生的事件可產(chǎn)生的事件 顯示當(dāng)前建立的事件,顯示當(dāng)前建立的事件,默認(rèn)為默認(rèn)為“超時

10、超時事件。事件。事件 反映整個應(yīng)用程序狀態(tài)的變化,如程序是否關(guān)閉,是否超時等。 反映當(dāng)前VI狀態(tài)的變化,如前面板大小是否調(diào)整、是否選擇菜單中的 某一項。 用于處理用戶自己的或在程序中臨時注冊的事件。 包括與某一窗格有關(guān)的事件,如鼠標(biāo)進(jìn)入離開窗格。 與分隔欄有關(guān)的事件,例如鼠標(biāo)拖動分隔欄 包括與界面上控件相關(guān)的所有事件,例如值改變。5. 編輯該事件觸發(fā)后需執(zhí)行的相應(yīng)代碼,并將其和事件源控件一起放入該分支事件框中。6. 添加下一個分支的事件源控件、分支及程序。7.創(chuàng)建一個While循環(huán),將事件結(jié)構(gòu)放入循環(huán)中。例:用事件結(jié)構(gòu)實現(xiàn)密碼登陸:當(dāng)用戶輸入密碼為123456時彈出“密碼正確登陸成功”對話框,

11、單擊“確定”按鈕程序停止,如果密碼錯誤顯示“密碼錯誤請重新輸入”對話框,程序繼續(xù)運行。在框圖程序中,如果需要設(shè)計較復(fù)雜的數(shù)學(xué)運算,框圖將會十分復(fù)雜,工作量大,而且不直觀,調(diào)試、改錯也不方便。使用步驟:(1)創(chuàng)建新的公式節(jié)點(2)在框中輸入文本行表示的數(shù)學(xué)公式和文本語句(3)添加輸入/輸出數(shù)據(jù)端口,并命名(與公式中變量同名)(4)連接程序中的數(shù)據(jù)端口與公式節(jié)點的輸入/輸出端口xexxycos5示例:1. 用常規(guī)的LabVIEW算數(shù)函數(shù)實現(xiàn)此函數(shù)計算2. 用公式節(jié)點來實現(xiàn)同一函數(shù) 在框內(nèi)輸入公式,每個公式語句必須以分號結(jié)束公式節(jié)點中常用的運算符其中,條件運算符的其中,條件運算符的“?”前的部分是判

12、定條件,前的部分是判定條件,“?”和和“:”間的部分為當(dāng)條件為真時的表達(dá)式,間的部分為當(dāng)條件為真時的表達(dá)式,“:”后的后的部分為當(dāng)條件為假時的表達(dá)式。部分為當(dāng)條件為假時的表達(dá)式。公式節(jié)點語句中還可以使用數(shù)學(xué)函數(shù):abs、acos、acosh、asin、asinh、atan、atan2、atanh、ceil、cos、cosh、cot、csc、exp、expml、floor、getexp、getman、int、intrz、ln、lnp1、log、log2、max、min、mod、pow、rand、rem、sec、sign、sin、sinc、sinh、sizeOfDim、sqrt、tan、tanh。

13、公式節(jié)點中可聲明變量,也支持一些常用的C語言的語句(包括賦值語句、 IF條件語句、 for和do 、while循環(huán)語句、Switch分支語句),每條語句以分號結(jié)尾。 公式節(jié)點的語法與C語言相同5.7.1局部變量程序太復(fù)雜,連線困難,需用局部變量。局部變量的作用范圍:同一個程序之間(1)創(chuàng)建 法一:為前面板對象創(chuàng)建局部變量。 在對象上面單擊鼠標(biāo)右鍵,選擇“創(chuàng)建局部變量”。法二:在框圖程序中新建局部變量,然后再指向某個對象。 可以為一個對象創(chuàng)建多個局部變量。局部變量具有讀、寫兩種屬性。并可互換。 (2) 使用示例功能:讀取當(dāng)前“停止”控件的狀態(tài)至“指示燈”,當(dāng)點擊“停止”按鈕時退出循環(huán),并送給“指

14、示燈”顯示。循環(huán)外的局部變量 處于“寫”狀態(tài),它在每次程序運行前賦給“停止”控件,賦值為“F”,以保證程序運行時進(jìn)入循環(huán)狀態(tài)。5.7.2全局變量不同程序之間交換數(shù)據(jù),需用全局變量。全局變量VI只有前面板而無框圖程序。(1)創(chuàng)建選擇全局變量圖標(biāo),右擊,選擇“打開前面板”或雙擊圖標(biāo),打開全局變量聲明VI的前面板。按照需要的數(shù)據(jù)類型加入控件 。切換到框圖程序窗口,單擊全局變量圖標(biāo),選擇需要它指向的控件。返回到全局變量聲明VI的前面板,將該VI文件存盤,完成全局變量的建立。 (2)調(diào)用 由函數(shù)模板中的“選擇VI”模板打開選擇用戶程序?qū)υ捒颍x擇已經(jīng)保存的全局變量聲明VI程序,此時將在框圖程序中顯示全局

15、變量數(shù)據(jù)端口。如果在全局變量聲明VI中建立多個控件,可以用操作工具在全局變量的圖標(biāo)上單擊,在列出的所有變量對象中選擇所需的對象。 (3)使用示例利用全局變量在不同VI中傳遞數(shù)據(jù)。 創(chuàng)建一個全局變量聲明,其中包含一個數(shù)值型控件并命名為“數(shù)值”和布爾型控件并命名為“狀態(tài)”,保存為“GVvi”。新建一個VI命名為“采集信息.vi”,前面板中有一個旋鈕開關(guān)和按鍵開關(guān),將它們的值送到全局變量中。由函數(shù)模板中的“選擇VI”模板打開選擇用戶程序?qū)υ捒颍x擇“GVvi”,調(diào)用兩次全局變量聲明,選擇全局變量的不同數(shù)據(jù)類型,對端口連線并保存VI。如圖 “采集信息采集信息”框圖程序框圖程序 新建VI “顯示信息.v

16、i”,前面板中有一個表盤指針控件和LED控件。采用同樣的方法在框圖程序窗口選擇創(chuàng)建的全局變量,并在全局變量圖標(biāo)上單擊鼠標(biāo)右鍵,選擇“轉(zhuǎn)換為讀取”?!帮@示信息顯示信息”框圖程序框圖程序 分別運行兩個分別運行兩個VI程序,可以發(fā)現(xiàn)由程序程序,可以發(fā)現(xiàn)由程序“采集采集信息信息”得到的數(shù)據(jù),通過全局變量傳遞到程序得到的數(shù)據(jù),通過全局變量傳遞到程序“顯顯示信息示信息”中,實現(xiàn)了兩個程序之間的數(shù)據(jù)傳遞。中,實現(xiàn)了兩個程序之間的數(shù)據(jù)傳遞。使用局部變量和全局變量時要避免競爭現(xiàn)象。例如在程序不同的兩個地方同時寫同一個的對象的局部變量或全局變量,就會產(chǎn)生競爭現(xiàn)象,這時變量的值是無法預(yù)期的。因此我們必須要注意程序的

17、執(zhí)行順序,避免競爭現(xiàn)象5.8.1 程序框圖禁用結(jié)構(gòu) 用于控制程序段被禁止執(zhí)行。相當(dāng)于C語言中的/*/”。5.8.2 條件禁用結(jié)構(gòu) 用于一個項目中,根據(jù)外部環(huán)境變量來控制代碼是否執(zhí)行。在前面板設(shè)計編程時,我們可以修改和設(shè)定對象控件的屬性,但是在程序運行時能否由用戶修改或程序自身改變呢?方法是:創(chuàng)建對象的屬性節(jié)點(Property Node) ,通過對屬性節(jié)點的“寫”操作,完成對對象屬性的修改。同樣通過對屬性節(jié)點的“讀”操作,在程序中讀取對象的屬性。提示:建立CHART的屬性節(jié)點 ,改為可寫,并指定為曲線Plot的顏色Color屬性,用Knob的值控制CASE,分別送5種顏色值給屬性節(jié)點在對象控件

18、上右擊,菜單中選擇“創(chuàng)建屬性節(jié)點” ,彈出菜單中再選擇需要控制的屬性,則在框圖程序中建立了一個屬性節(jié)點。在屬性節(jié)點上右擊,在彈出菜單中選擇“轉(zhuǎn)換為寫入”,則改為可寫。1:調(diào)用上次實驗創(chuàng)建的Tmeter.vi,要求每0.5秒測量一次溫度,使用移位寄存器對連續(xù)三次測量溫度值求平均,顯示實時溫度測量曲線,如果測量溫度高出或低于設(shè)定值,點亮報警LED指示。2:設(shè)計VI程序,用一個滑動條控件來選擇對兩個數(shù)分別進(jìn)行加、減、乘、除運算,并顯示出運算結(jié)果。3:設(shè)計一個VI,每間隔10ms產(chǎn)生一個隨機數(shù),將隨機數(shù)發(fā)生器產(chǎn)生的數(shù)值與指定值比較,計算產(chǎn)生與指定值相等的隨機數(shù)所需花費的時間。4: 用公式法求解一元二次方程,先使用CASE判別有解和無解。程序放入WHILE循環(huán),修改系數(shù)A、B、C,反復(fù)執(zhí)行。1. 用While循環(huán),創(chuàng)建一個程序使之當(dāng)輸入0到100之間的隨機數(shù),大于等于循環(huán)次數(shù)時繼續(xù)運行。2.學(xué)習(xí)使用雙重For循環(huán)。創(chuàng)建一個程序,畫出X從1到N的立方和曲線

溫馨提示

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

評論

0/150

提交評論