第三章 程序結(jié)構(gòu)._第1頁
第三章 程序結(jié)構(gòu)._第2頁
第三章 程序結(jié)構(gòu)._第3頁
第三章 程序結(jié)構(gòu)._第4頁
第三章 程序結(jié)構(gòu)._第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2022/5/31虛擬儀器虛擬儀器內(nèi)蒙古科技大學(xué)信息學(xué)院測控技術(shù)教研室2022/5/313 LabVIEW的程序結(jié)構(gòu) 主要的程序結(jié)構(gòu)有: 循環(huán)(While循環(huán)和For循環(huán)) 選擇(Case結(jié)構(gòu)) 順序(Sequence結(jié)構(gòu)) 事件(Event結(jié)構(gòu)) 2022/5/313.1 For循環(huán) 1For循環(huán)的創(chuàng)建循環(huán)的創(chuàng)建 基本的基本的For循環(huán)結(jié)構(gòu)由循環(huán)框、循環(huán)次數(shù)端口和計(jì)數(shù)端循環(huán)結(jié)構(gòu)由循環(huán)框、循環(huán)次數(shù)端口和計(jì)數(shù)端口組成??诮M成。 循環(huán)框循環(huán)框計(jì)數(shù)端口計(jì)數(shù)端口循環(huán)次數(shù)端口循環(huán)次數(shù)端口2022/5/31 2For循環(huán)的工作流程循環(huán)的工作流程 For循環(huán)用于將結(jié)構(gòu)中的程序循循環(huán)用于將結(jié)構(gòu)中的程序循環(huán)執(zhí)行

2、指定的次數(shù)。環(huán)執(zhí)行指定的次數(shù)。 在開始在開始For循環(huán)之前,從循環(huán)次循環(huán)之前,從循環(huán)次數(shù)端口讀入循環(huán)次數(shù),計(jì)數(shù)端口數(shù)端口讀入循環(huán)次數(shù),計(jì)數(shù)端口輸出輸出0值。值。 接下來執(zhí)行接下來執(zhí)行For循環(huán)框內(nèi)框圖代循環(huán)框內(nèi)框圖代碼程序,每執(zhí)行一次計(jì)數(shù)端口值碼程序,每執(zhí)行一次計(jì)數(shù)端口值自動加自動加1。 循環(huán)次數(shù)達(dá)到設(shè)定值后,退出循循環(huán)次數(shù)達(dá)到設(shè)定值后,退出循環(huán)。環(huán)。2022/5/31 3For循環(huán)的時(shí)間控制與數(shù)據(jù)傳遞循環(huán)的時(shí)間控制與數(shù)據(jù)傳遞 控制循環(huán)速度控制循環(huán)速度等待下一個(gè)整數(shù)倍毫秒等待下一個(gè)整數(shù)倍毫秒 。 數(shù)據(jù)傳遞數(shù)據(jù)傳遞 隧道上的數(shù)據(jù)在循環(huán)第一次執(zhí)行時(shí)進(jìn)入循環(huán)邊框內(nèi)。以后不再隧道上的數(shù)據(jù)在循環(huán)第一次執(zhí)

3、行時(shí)進(jìn)入循環(huán)邊框內(nèi)。以后不再理會這個(gè)數(shù)的變化理會這個(gè)數(shù)的變化。 例子:循環(huán)的數(shù)據(jù)輸入輸出2022/5/31 4For循環(huán)的數(shù)據(jù)通道與數(shù)組的自動索引循環(huán)的數(shù)據(jù)通道與數(shù)組的自動索引 數(shù)據(jù)通道是用連線工具連接循環(huán)框內(nèi)外的數(shù)據(jù)端口時(shí),數(shù)據(jù)通道是用連線工具連接循環(huán)框內(nèi)外的數(shù)據(jù)端口時(shí),在框架上自動形成的方形通道圖標(biāo)在框架上自動形成的方形通道圖標(biāo) 。 圖標(biāo)空心表明此時(shí)數(shù)據(jù)通道具有自動索引功能,實(shí)心圖標(biāo)不能圖標(biāo)空心表明此時(shí)數(shù)據(jù)通道具有自動索引功能,實(shí)心圖標(biāo)不能索引索引 。 自動索引是指將循環(huán)框外面的數(shù)組成員逐個(gè)依次進(jìn)入循環(huán)體內(nèi),自動索引是指將循環(huán)框外面的數(shù)組成員逐個(gè)依次進(jìn)入循環(huán)體內(nèi),或?qū)⒀h(huán)框內(nèi)的數(shù)據(jù)累加成一

4、個(gè)數(shù)組輸出到循環(huán)框外面?;?qū)⒀h(huán)框內(nèi)的數(shù)據(jù)累加成一個(gè)數(shù)組輸出到循環(huán)框外面。 2022/5/31例如:下圖中通道自動索引功能有效時(shí),每一次循環(huán)產(chǎn)生一個(gè)新的數(shù)例如:下圖中通道自動索引功能有效時(shí),每一次循環(huán)產(chǎn)生一個(gè)新的數(shù)據(jù),存儲在循環(huán)的邊框通道上,待循環(huán)結(jié)束以后,產(chǎn)生的據(jù),存儲在循環(huán)的邊框通道上,待循環(huán)結(jié)束以后,產(chǎn)生的6個(gè)數(shù)據(jù)將個(gè)數(shù)據(jù)將傳送到一個(gè)數(shù)組指示器中。自動索引功能無效時(shí),只有最后一次傳送到一個(gè)數(shù)組指示器中。自動索引功能無效時(shí),只有最后一次For循環(huán)產(chǎn)生的循環(huán)產(chǎn)生的1個(gè)隨機(jī)數(shù)傳到循環(huán)外。個(gè)隨機(jī)數(shù)傳到循環(huán)外??招膶?shí)心2022/5/31 4移位寄存器移位寄存器 創(chuàng)建:創(chuàng)建:右擊邊框,彈出一個(gè)菜單,

5、選擇右擊邊框,彈出一個(gè)菜單,選擇Add Shift Register選項(xiàng),選項(xiàng),可添加一個(gè)移位寄存器。可添加一個(gè)移位寄存器。 用途:用途:主要用于主要用于While循環(huán)和循環(huán)和For循環(huán),將上一次循環(huán)的值傳給下循環(huán),將上一次循環(huán)的值傳給下一次循環(huán)。一次循環(huán)。 數(shù)據(jù)類型:數(shù)據(jù)類型: 數(shù)字型、布爾型、字符串等數(shù)字型、布爾型、字符串等 。 初始化:初始化:在循環(huán)外將初始值連到移位寄存器的左端口,有默認(rèn)初在循環(huán)外將初始值連到移位寄存器的左端口,有默認(rèn)初值。值。 還可以存儲前幾次循環(huán)的值還可以存儲前幾次循環(huán)的值,在移位寄存器的左端口或右端口上,在移位寄存器的左端口或右端口上右擊鼠標(biāo)彈出菜單,選擇右擊鼠標(biāo)

6、彈出菜單,選擇Add Element選項(xiàng),可創(chuàng)建附加的左端選項(xiàng),可創(chuàng)建附加的左端口來存儲前幾次循環(huán)的值。口來存儲前幾次循環(huán)的值。2022/5/31均為整數(shù))且例:求NMXNMXSNMX,(32022/5/31 5反饋節(jié)點(diǎn)反饋節(jié)點(diǎn) 功能:在循環(huán)中,將數(shù)據(jù)從一次循環(huán)傳遞到下一次循環(huán)。功能:在循環(huán)中,將數(shù)據(jù)從一次循環(huán)傳遞到下一次循環(huán)。 反饋節(jié)點(diǎn)箭頭的方向表示數(shù)據(jù)流的方向。反饋節(jié)點(diǎn)箭頭的方向表示數(shù)據(jù)流的方向。 反饋節(jié)點(diǎn)和移位寄存器可以互換,在反饋節(jié)點(diǎn)或移位寄存反饋節(jié)點(diǎn)和移位寄存器可以互換,在反饋節(jié)點(diǎn)或移位寄存器圖標(biāo)上彈出快捷菜單選器圖標(biāo)上彈出快捷菜單選Replace with shift Regist

7、er或或Replace with Feedback Node即可。即可。 移位寄存器左端口多于移位寄存器左端口多于1個(gè)時(shí)不能轉(zhuǎn)換為反饋節(jié)點(diǎn)。個(gè)時(shí)不能轉(zhuǎn)換為反饋節(jié)點(diǎn)。 2022/5/31 下面是用移位寄存器(左圖)和反饋節(jié)點(diǎn)(右圖)實(shí)現(xiàn)a+的框圖程序。 2022/5/313.2 While循環(huán) For循環(huán)和While循環(huán)的區(qū)別: For循環(huán)要執(zhí)行預(yù)先指定的循環(huán)次數(shù)。 而While循環(huán)只有在條件端口接收到的值為False時(shí)才停止循環(huán)。While循環(huán)不必知道循環(huán)次數(shù)。 While循環(huán)不滿足條件也要執(zhí)行1次。 For循環(huán)當(dāng)N1時(shí)1次都不執(zhí)行。2022/5/31 1.While循環(huán)的創(chuàng)建循環(huán)的創(chuàng)建 Wh

8、ile循環(huán)由循環(huán)框、條件端口和計(jì)數(shù)端口組成。循環(huán)由循環(huán)框、條件端口和計(jì)數(shù)端口組成。循環(huán)循環(huán)框框條件端口條件端口計(jì)數(shù)端口計(jì)數(shù)端口2022/5/31 2.While循環(huán)的工作流程循環(huán)的工作流程 條件端口控制循環(huán)的停止與否。條件端口控制循環(huán)的停止與否。 條件端口有兩種狀態(tài)條件端口有兩種狀態(tài) : 當(dāng)使用狀態(tài)為當(dāng)使用狀態(tài)為Stop if True 時(shí),若輸入值為時(shí),若輸入值為Ture,則停止循,則停止循環(huán)環(huán) 。若輸入值為。若輸入值為False,則繼續(xù)執(zhí)行下一次循環(huán)。,則繼續(xù)執(zhí)行下一次循環(huán)。 當(dāng)使用狀態(tài)為當(dāng)使用狀態(tài)為Continue if True 時(shí),若輸入值為時(shí),若輸入值為Ture,則,則繼續(xù)執(zhí)行下一

9、次循環(huán)。若輸入值為繼續(xù)執(zhí)行下一次循環(huán)。若輸入值為False,則停止循環(huán)。,則停止循環(huán)。 循環(huán)結(jié)束后,才去檢測條件端口的值,因此不管條件是循環(huán)結(jié)束后,才去檢測條件端口的值,因此不管條件是否成立,循環(huán)至少要執(zhí)行一次。否成立,循環(huán)至少要執(zhí)行一次。 2022/5/31 計(jì)數(shù)端口用于統(tǒng)計(jì)循環(huán)執(zhí)行的次數(shù),計(jì)數(shù)端口用于統(tǒng)計(jì)循環(huán)執(zhí)行的次數(shù),While循環(huán)每執(zhí)行循環(huán)每執(zhí)行一次,計(jì)數(shù)端口的值就加一次,計(jì)數(shù)端口的值就加1。 計(jì)數(shù)端口從零開始計(jì)數(shù),也就是說,在第一次循環(huán)結(jié)束計(jì)數(shù)端口從零開始計(jì)數(shù),也就是說,在第一次循環(huán)結(jié)束時(shí),計(jì)數(shù)端口的值為時(shí),計(jì)數(shù)端口的值為0,如果循環(huán)執(zhí)行了,如果循環(huán)執(zhí)行了10次,則計(jì)數(shù)次,則計(jì)數(shù)端口

10、的值為端口的值為9。 While循環(huán)也具有數(shù)據(jù)通道索引和移位寄存器、反饋接循環(huán)也具有數(shù)據(jù)通道索引和移位寄存器、反饋接點(diǎn)的功能,它們的用法與點(diǎn)的功能,它們的用法與For循環(huán)相同,只是循環(huán)相同,只是While循循環(huán)的邊框數(shù)據(jù)通道默認(rèn)為不能索引。環(huán)的邊框數(shù)據(jù)通道默認(rèn)為不能索引。 2022/5/31用While 循環(huán)實(shí)現(xiàn)求X的立方和 2022/5/313.3 Case結(jié)構(gòu) 1.Case結(jié)構(gòu)的創(chuàng)建結(jié)構(gòu)的創(chuàng)建 Case結(jié)構(gòu)由選擇框架、選擇端口、選擇器標(biāo)簽,以及結(jié)構(gòu)由選擇框架、選擇端口、選擇器標(biāo)簽,以及遞增遞增/遞減按鈕組成。遞減按鈕組成。選擇標(biāo)簽選擇標(biāo)簽遞增按鈕遞增按鈕遞減按鈕遞減按鈕選擇框架選擇框架選擇

11、端口選擇端口2022/5/31 2Case結(jié)構(gòu)的工作流程結(jié)構(gòu)的工作流程 Case結(jié)構(gòu)有一個(gè)條件選擇端口 (Selector),根據(jù)連到該端口 的值來判斷執(zhí)行哪一個(gè)子Case。 Selector端口的數(shù)據(jù)類型有布爾型、數(shù)字型和字符串型。 3設(shè)置選擇結(jié)構(gòu)的默認(rèn)項(xiàng)設(shè)置選擇結(jié)構(gòu)的默認(rèn)項(xiàng) 應(yīng)設(shè)置一個(gè)默認(rèn)項(xiàng)來處理超出條件選項(xiàng)范圍的情況。應(yīng)設(shè)置一個(gè)默認(rèn)項(xiàng)來處理超出條件選項(xiàng)范圍的情況。 設(shè)置選擇結(jié)構(gòu)默認(rèn)項(xiàng)的方法是在選擇結(jié)構(gòu)邊框上單擊鼠設(shè)置選擇結(jié)構(gòu)默認(rèn)項(xiàng)的方法是在選擇結(jié)構(gòu)邊框上單擊鼠標(biāo)右鍵,選擇標(biāo)右鍵,選擇Make This The Default Case。2022/5/31 4選擇結(jié)構(gòu)數(shù)據(jù)通道的設(shè)置選擇結(jié)構(gòu)

12、數(shù)據(jù)通道的設(shè)置 輸入數(shù)據(jù)時(shí),每個(gè)子輸入數(shù)據(jù)時(shí),每個(gè)子Case框可連可不連數(shù)據(jù)通道??蚩蛇B可不連數(shù)據(jù)通道。 輸出數(shù)據(jù)時(shí),每個(gè)子輸出數(shù)據(jù)時(shí),每個(gè)子Case框必須為通道連接數(shù)據(jù)。否框必須為通道連接數(shù)據(jù)。否則程序不能運(yùn)行,這時(shí)通道的圖標(biāo)是空心的,只有為每則程序不能運(yùn)行,這時(shí)通道的圖標(biāo)是空心的,只有為每個(gè)子個(gè)子Case框的數(shù)據(jù)端口都連接數(shù)據(jù)后,圖標(biāo)才變成實(shí)框的數(shù)據(jù)端口都連接數(shù)據(jù)后,圖標(biāo)才變成實(shí)心。心。 Use Default if Unwired可使程序中沒有連線的子可使程序中沒有連線的子Case框輸出默認(rèn)值??蜉敵瞿J(rèn)值。2022/5/31CASE0 (Add),VI就進(jìn)行加法運(yùn)算,CASE1,則VI

13、將進(jìn)行減法運(yùn)算。使用了一個(gè)數(shù)字型Text Ring控制器(在控制模板中的Ring&Enum子模板中)注意:注意:當(dāng)在一個(gè)子Case中建立了一個(gè)輸出數(shù)據(jù)通道后,必須給每一個(gè)子Case定義輸出數(shù)據(jù)通道。 設(shè)定默認(rèn)的子設(shè)定默認(rèn)的子CASE,當(dāng)所有條件都不滿足時(shí),當(dāng)所有條件都不滿足時(shí),執(zhí)行默認(rèn)子執(zhí)行默認(rèn)子CASE例子例子2022/5/313.4 順序結(jié)構(gòu)LabVIEW是一種數(shù)據(jù)流程序設(shè)計(jì)語言,沒有明確的先后順序,當(dāng)節(jié)點(diǎn)所有輸入端的數(shù)據(jù)全部有效時(shí),節(jié)點(diǎn)才執(zhí)行。Sequence結(jié)構(gòu),它是一種先后順序執(zhí)行的結(jié)構(gòu),看上去象電影膠片的幀(Frame),每一幀為一段框圖程序,按照幀(Frame)的順序來執(zhí)行框圖程

14、序。兩種形式順序結(jié)構(gòu),F(xiàn)lat Sequence Structure平鋪式順序結(jié)構(gòu)和Stacked Sequence Structure層疊式順序結(jié)構(gòu)。功能相同,區(qū)別僅在于表現(xiàn)形式不同。2022/5/31 1. 順序結(jié)構(gòu)的創(chuàng)建順序結(jié)構(gòu)的創(chuàng)建 在函數(shù)模板的在函數(shù)模板的Structures子模板中選擇創(chuàng)建順序結(jié)構(gòu)。選取子模板中選擇創(chuàng)建順序結(jié)構(gòu)。選取Stacked Sequence Structure層疊式順序結(jié)構(gòu)層疊式順序結(jié)構(gòu) 。 在結(jié)構(gòu)邊框上面單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇在結(jié)構(gòu)邊框上面單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇“Add Frame After”或或“Add Frame Befo

15、re”可以增加子圖形代碼框??梢栽黾幼訄D形代碼框。 在結(jié)構(gòu)邊框上右擊彈出的快捷菜單,選擇在結(jié)構(gòu)邊框上右擊彈出的快捷菜單,選擇ReplaceReplace with Flat Sequence,可以將層疊式順序結(jié)構(gòu)變換為平鋪式順序,可以將層疊式順序結(jié)構(gòu)變換為平鋪式順序結(jié)構(gòu)結(jié)構(gòu) 2022/5/31 2.順序結(jié)構(gòu)的工作方式順序結(jié)構(gòu)的工作方式 數(shù)據(jù)傳遞至順序結(jié)構(gòu)時(shí),層疊式從標(biāo)識數(shù)據(jù)傳遞至順序結(jié)構(gòu)時(shí),層疊式從標(biāo)識0開始執(zhí)行,依次順序執(zhí)行;開始執(zhí)行,依次順序執(zhí)行;平鋪式從左至右執(zhí)行所有子圖形代碼框。平鋪式從左至右執(zhí)行所有子圖形代碼框。 從結(jié)構(gòu)外面向順序結(jié)構(gòu)寫數(shù)據(jù)時(shí),可連接可不連接這個(gè)數(shù)據(jù)通道;從結(jié)構(gòu)外面向

16、順序結(jié)構(gòu)寫數(shù)據(jù)時(shí),可連接可不連接這個(gè)數(shù)據(jù)通道;但是當(dāng)順序結(jié)構(gòu)向外輸出數(shù)據(jù)時(shí),各個(gè)圖形代碼框中只能有一個(gè)但是當(dāng)順序結(jié)構(gòu)向外輸出數(shù)據(jù)時(shí),各個(gè)圖形代碼框中只能有一個(gè)連接這個(gè)數(shù)據(jù)通道。連接這個(gè)數(shù)據(jù)通道。 代碼框之間的數(shù)據(jù)傳遞,平鋪式可從一幀直接連線到另一幀來傳代碼框之間的數(shù)據(jù)傳遞,平鋪式可從一幀直接連線到另一幀來傳遞數(shù)據(jù),層疊式則需要通過局部變量遞數(shù)據(jù),層疊式則需要通過局部變量Sequence Local來傳來傳送數(shù)據(jù)。送數(shù)據(jù)。 2022/5/31 在層疊式順序結(jié)構(gòu)的邊框上面右擊,選擇在層疊式順序結(jié)構(gòu)的邊框上面右擊,選擇Add Sequence Local即可在當(dāng)前幀創(chuàng)建一個(gè)順序局部變量端口。即可在當(dāng)

17、前幀創(chuàng)建一個(gè)順序局部變量端口。 將本幀中的數(shù)據(jù)連接到該局部變量端口,該數(shù)據(jù)就可傳到后面的將本幀中的數(shù)據(jù)連接到該局部變量端口,該數(shù)據(jù)就可傳到后面的幀,該數(shù)據(jù)不會作用到它前面的幀。幀,該數(shù)據(jù)不會作用到它前面的幀。 如下圖示意了層疊式順序結(jié)構(gòu)通過局部變量傳遞數(shù)據(jù)的情如下圖示意了層疊式順序結(jié)構(gòu)通過局部變量傳遞數(shù)據(jù)的情況。在標(biāo)識是況。在標(biāo)識是1號幀的一個(gè)數(shù)據(jù)傳遞到標(biāo)識是號幀的一個(gè)數(shù)據(jù)傳遞到標(biāo)識是2號的幀進(jìn)行號的幀進(jìn)行“或或”運(yùn)算,運(yùn)算,0號幀不能使用該數(shù)據(jù)。號幀不能使用該數(shù)據(jù)。 2022/5/31例:使用Sequence結(jié)構(gòu),設(shè)計(jì)一個(gè)VI,計(jì)算產(chǎn)生一個(gè)與指定的數(shù)字相等的隨機(jī)數(shù)所需花費(fèi)的時(shí)間。 讀取定時(shí)器

18、的當(dāng)前值 VI程序每隔10ms執(zhí)行循環(huán)四舍五入取整2022/5/313.5 事件結(jié)構(gòu) 1.事件結(jié)構(gòu)的創(chuàng)建事件結(jié)構(gòu)的創(chuàng)建 事件結(jié)構(gòu)包括:結(jié)構(gòu)框、事件標(biāo)簽、超時(shí)端口和事件數(shù)據(jù)端口。事件結(jié)構(gòu)包括:結(jié)構(gòu)框、事件標(biāo)簽、超時(shí)端口和事件數(shù)據(jù)端口。事件標(biāo)簽事件標(biāo)簽 :說明當(dāng)前框圖程序是響應(yīng)說明當(dāng)前框圖程序是響應(yīng)的什么事件的什么事件 。超時(shí)端口,超時(shí)端口,默認(rèn)默認(rèn)值為值為-1,表示無,表示無限等待限等待 。 事件數(shù)事件數(shù)據(jù)端口據(jù)端口 結(jié)構(gòu)框結(jié)構(gòu)框 2022/5/31 2事件結(jié)構(gòu)的使用事件結(jié)構(gòu)的使用 可有一個(gè)或多個(gè)子圖形代碼框,該圖形代碼框可以設(shè)置為響應(yīng)多可有一個(gè)或多個(gè)子圖形代碼框,該圖形代碼框可以設(shè)置為響應(yīng)多個(gè)

19、事件。個(gè)事件。 右擊事件結(jié)構(gòu)邊框,從彈出的快捷菜單中選擇右擊事件結(jié)構(gòu)邊框,從彈出的快捷菜單中選擇Edit Events Handled by ThisCase,這時(shí)將彈出編輯事件對話框。,這時(shí)將彈出編輯事件對話框。 顯示當(dāng)前建立的事件,顯示當(dāng)前建立的事件,默認(rèn)默認(rèn)“Timeout事件。事件。增加事件增加事件刪除事件刪除事件 可以選擇可以選擇的事件源的事件源 相應(yīng)的事件源可相應(yīng)的事件源可產(chǎn)生的事件消息產(chǎn)生的事件消息 2022/5/31例如:建立一個(gè)5秒的超時(shí)事件和一個(gè)“OK Button” 開關(guān)值發(fā)生變化的事件 要求:要求: 方法方法1:任一事件發(fā)生都執(zhí)行同一個(gè)子圖形代碼框:任一事件發(fā)生都執(zhí)行同

20、一個(gè)子圖形代碼框程序,顯示出對話框程序,顯示出對話框“超時(shí)或單擊了超時(shí)或單擊了OK按鈕按鈕”。 方法方法2:由不同的框圖程序響應(yīng)不同的事件,顯示:由不同的框圖程序響應(yīng)不同的事件,顯示出對話框出對話框“超時(shí)事件超時(shí)事件”或或“單擊了單擊了OK按鈕事件按鈕事件”。 2022/5/31 法法1: 在前面板添加放置一個(gè)在前面板添加放置一個(gè)“OK Button” 控件控件 。 在編輯事件對話框中單擊按鈕在編輯事件對話框中單擊按鈕 新建一個(gè)事件,選取新建一個(gè)事件,選取“EventSources”事件源窗口中的事件源窗口中的“OK Button”,并在,并在“Event”事件窗口中選擇事件窗口中選擇“Val

21、ue Change” 。 選取選取OneButtonDialog函數(shù),放置在函數(shù),放置在Event Structure中。中。 在在message數(shù)據(jù)端口新建一個(gè)常量,輸入數(shù)據(jù)端口新建一個(gè)常量,輸入“超時(shí)或單擊超時(shí)或單擊了了OK按鈕按鈕”。 在超時(shí)端口連接值為在超時(shí)端口連接值為5000的一個(gè)數(shù)字常量。的一個(gè)數(shù)字常量。 2022/5/31 運(yùn)行程序,如果單擊了運(yùn)行程序,如果單擊了“OK Button”按鈕或等待按鈕或等待5秒都秒都會顯示出對話框會顯示出對話框“超時(shí)或單擊了超時(shí)或單擊了OK按鈕按鈕”。 2022/5/31 法法2: 在事件結(jié)構(gòu)邊框的快捷菜單中選擇在事件結(jié)構(gòu)邊框的快捷菜單中選擇Add

22、 Event Case來創(chuàng)建事件結(jié)構(gòu)的一個(gè)分支來創(chuàng)建事件結(jié)構(gòu)的一個(gè)分支 。 在彈出的對話框中,選取在彈出的對話框中,選取“EventSources”事件源窗口事件源窗口中的中的“OK Button” 。并在。并在“Event”事件窗口中選擇事件窗口中選擇“Value Change” 。 后面的設(shè)置與法后面的設(shè)置與法1類似。類似。2022/5/312.3.6 公式節(jié)點(diǎn) 在框圖程序中,如果需要設(shè)計(jì)較復(fù)雜的數(shù)學(xué)運(yùn)算,框圖將在框圖程序中,如果需要設(shè)計(jì)較復(fù)雜的數(shù)學(xué)運(yùn)算,框圖將會十分復(fù)雜,工作量大,而且不直觀,調(diào)試、改錯(cuò)也不方會十分復(fù)雜,工作量大,而且不直觀,調(diào)試、改錯(cuò)也不方便。便。 利用公式節(jié)點(diǎn),只需將

23、數(shù)學(xué)公式的文本表達(dá)式輸入在公式利用公式節(jié)點(diǎn),只需將數(shù)學(xué)公式的文本表達(dá)式輸入在公式節(jié)點(diǎn)的框圖內(nèi),并連接相應(yīng)的輸入、輸出端口,則節(jié)點(diǎn)的框圖內(nèi),并連接相應(yīng)的輸入、輸出端口,則LabVIEW會自動地根據(jù)公式計(jì)算出正確的結(jié)果,并從輸會自動地根據(jù)公式計(jì)算出正確的結(jié)果,并從輸出端輸出。出端輸出。2022/5/31 (1)公式節(jié)點(diǎn)的創(chuàng)建)公式節(jié)點(diǎn)的創(chuàng)建 從函數(shù)模板的從函數(shù)模板的Structures子模板上選擇公式節(jié)點(diǎn)子模板上選擇公式節(jié)點(diǎn)Formula Node,在框圖中設(shè)置公式節(jié)點(diǎn)。,在框圖中設(shè)置公式節(jié)點(diǎn)。 公式節(jié)點(diǎn)的邊框大小可以改變,用戶可以使用標(biāo)簽工公式節(jié)點(diǎn)的邊框大小可以改變,用戶可以使用標(biāo)簽工具,將數(shù)學(xué)

24、公式直接輸入到公式節(jié)點(diǎn)的框內(nèi)。具,將數(shù)學(xué)公式直接輸入到公式節(jié)點(diǎn)的框內(nèi)。2022/5/31 (2)公式節(jié)點(diǎn)的使用)公式節(jié)點(diǎn)的使用 可以聲明變量,也支持一些常用的可以聲明變量,也支持一些常用的C語言的語句(包括語言的語句(包括賦值語句、條件語句、循環(huán)語句、賦值語句、條件語句、循環(huán)語句、Switch語句),每語句),每條語句以分號結(jié)尾。條語句以分號結(jié)尾。 輸入公式后,需要添加輸入、輸出端口。輸入公式后,需要添加輸入、輸出端口。 在添加端口后出現(xiàn)的方框內(nèi)填入變量名稱。在添加端口后出現(xiàn)的方框內(nèi)填入變量名稱。 將輸入端口和程序中的數(shù)據(jù)端口相連接。將輸入端口和程序中的數(shù)據(jù)端口相連接。 將輸出端口和程序中的指

25、示端口連接將輸出端口和程序中的指示端口連接 2022/5/31 公式節(jié)點(diǎn)中常用的運(yùn)算符其中,條件運(yùn)算符的其中,條件運(yùn)算符的“?”前的部分是判定條件,前的部分是判定條件,“?”和和“:”間的部分為當(dāng)條件為間的部分為當(dāng)條件為True時(shí)的表達(dá)式,時(shí)的表達(dá)式,“:”后后的部分為當(dāng)條件為的部分為當(dāng)條件為False時(shí)的表達(dá)式。時(shí)的表達(dá)式。2022/5/31 公式節(jié)點(diǎn)語句中還可以使用數(shù)學(xué)函數(shù):abs、acos、acosh、asin、asinh、atan、atan2、atanh、ceil、cos、cosh、cot、csc、exp、expml、floor、getexp、getman、int、intrz、ln、l

26、np1、log、log2、max、min、mod、pow、rand、rem、sec、sign、sin、sinc、sinh、sizeOfDim、sqrt、tan、tanh。 公式節(jié)點(diǎn)中可使用 IF條件語句, for和do 、while循環(huán) Swtich ( ) case分支語句 公式節(jié)點(diǎn)的語法與C語言相同2022/5/31例:用公式節(jié)點(diǎn)計(jì)算y1=x3+x2+5和y2=m*x+b 分析: 公式的輸入端口共有3個(gè)輸入量,分別是m、b和x。3個(gè)輸入量經(jīng)過公式節(jié)點(diǎn)中的兩條語句完成指定的運(yùn)算,通過輸出端口輸出y1和y2。2022/5/31補(bǔ)充:前面板對象屬性的動態(tài)控制 在前面板設(shè)計(jì)編程時(shí),我們可以修改和設(shè)

27、定對象控件在前面板設(shè)計(jì)編程時(shí),我們可以修改和設(shè)定對象控件的屬性,但是在程序運(yùn)行時(shí)能否由用戶修改或程序自的屬性,但是在程序運(yùn)行時(shí)能否由用戶修改或程序自身改變呢?身改變呢? 方法是:創(chuàng)建對象的屬性節(jié)點(diǎn),通過對屬性節(jié)點(diǎn)的方法是:創(chuàng)建對象的屬性節(jié)點(diǎn),通過對屬性節(jié)點(diǎn)的“寫寫”操作,完成對對象屬性的修改。操作,完成對對象屬性的修改。 同樣通過對屬性節(jié)點(diǎn)的同樣通過對屬性節(jié)點(diǎn)的“讀讀”操作,在程序中讀取對象操作,在程序中讀取對象的屬性。的屬性。2022/5/31例:程序運(yùn)行中,用Knob控件改變圖形曲線的顏色提示:建立提示:建立CHART的屬性節(jié)點(diǎn)的屬性節(jié)點(diǎn) ,改為可寫,并指定為曲線,改為可寫,并指定為曲線P

28、lot的顏的顏色色Color屬性,用屬性,用Knob的值控制的值控制CASE,分別送,分別送5種顏色值給屬性節(jié)點(diǎn)種顏色值給屬性節(jié)點(diǎn)2022/5/312.3.7 局部變量和全局變量 1局部變量局部變量 程序太復(fù)雜,連線困難,需用局部變量。程序太復(fù)雜,連線困難,需用局部變量。 (1)創(chuàng)建)創(chuàng)建 法一:為前面板對象創(chuàng)建局部變量。法一:為前面板對象創(chuàng)建局部變量。 在對象上面單擊鼠標(biāo)右鍵,在對象上面單擊鼠標(biāo)右鍵,選擇選擇CreateLocal Variable。 法二:在框圖程序中新建局部變量,然后再指向某個(gè)對象。法二:在框圖程序中新建局部變量,然后再指向某個(gè)對象。 可以為一個(gè)對象創(chuàng)建多個(gè)局部變量??梢?/p>

29、為一個(gè)對象創(chuàng)建多個(gè)局部變量。 局部變量具有讀、寫兩種屬性。并可互換。局部變量具有讀、寫兩種屬性。并可互換。 2022/5/31 (2) 使用示例使用示例 程序中,建立了程序中,建立了“停止停止”控件的兩個(gè)局部變量??丶膬蓚€(gè)局部變量。 循環(huán)內(nèi)的局部變量處于循環(huán)內(nèi)的局部變量處于“讀讀”狀態(tài),讀出當(dāng)前狀態(tài),讀出當(dāng)前“停止停止”控件的狀態(tài),控件的狀態(tài),送給送給“指示燈指示燈”控件顯示??丶@示。 循環(huán)外的局部變量循環(huán)外的局部變量 則處于則處于“寫寫”狀態(tài),它在每次程序運(yùn)行前賦狀態(tài),它在每次程序運(yùn)行前賦給給“停止停止”控件,賦值為控件,賦值為“False”,以保證程序運(yùn)行時(shí)進(jìn)入循環(huán),以保證程序運(yùn)行時(shí)進(jìn)

30、入循環(huán)狀態(tài)。狀態(tài)。2022/5/31 2全局變量全局變量 不同程序之間交換數(shù)據(jù),需用全局變量。不同程序之間交換數(shù)據(jù),需用全局變量。 全局變量全局變量VI只有前面板而無框圖程序。只有前面板而無框圖程序。 (1)創(chuàng)建)創(chuàng)建 選擇全局變量圖標(biāo),右擊,選擇選擇全局變量圖標(biāo),右擊,選擇Open Front Panel,打開全局變量聲明打開全局變量聲明VI的前面板。的前面板。 按照需要的數(shù)據(jù)類型加入控件按照需要的數(shù)據(jù)類型加入控件 。 切換到框圖程序窗口,單擊全局變量圖標(biāo),選擇需要切換到框圖程序窗口,單擊全局變量圖標(biāo),選擇需要它指向的控件。它指向的控件。 返回到全局變量聲明返回到全局變量聲明VI的前面板,將

31、該的前面板,將該VI文件存盤,文件存盤,完成全局變量的建立。完成全局變量的建立。 2022/5/31 (2)調(diào)用)調(diào)用 由函數(shù)模板中的由函數(shù)模板中的Select a VI子模板打開選擇用戶子模板打開選擇用戶程序?qū)υ捒颍x擇已經(jīng)保存的全局變量聲明程序?qū)υ捒?,選擇已經(jīng)保存的全局變量聲明VI程序,程序,此時(shí)將在框圖程序中顯示全局變量數(shù)據(jù)端口。此時(shí)將在框圖程序中顯示全局變量數(shù)據(jù)端口。 如果在全局變量聲明如果在全局變量聲明VI中建立多個(gè)控件,可以用操中建立多個(gè)控件,可以用操作工具在全局變量的圖標(biāo)上單擊,在列出的所有變作工具在全局變量的圖標(biāo)上單擊,在列出的所有變量對象中選擇所需的對象。量對象中選擇所需的對象。 2022/5/31 (3)使用示例)使用示例 利用全局變量在不同利用全局變量在不同VI中傳遞數(shù)據(jù)。中傳遞數(shù)據(jù)。 創(chuàng)建一個(gè)全局變量聲明創(chuàng)建一個(gè)全局變量聲明,其中包含一個(gè)數(shù)值型,其中包含一個(gè)數(shù)值型控件并命名為控件并命名為“數(shù)值數(shù)值”和布爾型控件并命名為和布爾型控件并命名為“狀狀態(tài)態(tài)”,保存為,保存為“GVvi”。新建一個(gè)新建一個(gè)VI命名為命名為“采集信息采集

溫馨提示

  • 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

提交評論