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頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、四、順序結(jié)構(gòu)四、順序結(jié)構(gòu)uLabVIEW_ _數(shù)據(jù)流運(yùn)行機(jī)制數(shù)據(jù)流運(yùn)行機(jī)制 傳統(tǒng)的編程語言,傳統(tǒng)的編程語言,程序運(yùn)行是基于程序編碼的順序程序運(yùn)行是基于程序編碼的順序,是指令驅(qū),是指令驅(qū)動(dòng)的動(dòng)的代碼流代碼流。LabVIEW 的運(yùn)行機(jī)制的運(yùn)行機(jī)制是基于數(shù)據(jù)流的是基于數(shù)據(jù)流的。也就是說:。也就是說:當(dāng)程序中的可執(zhí)行元素(節(jié)點(diǎn))在收到所有必須的輸入數(shù)據(jù)時(shí)才當(dāng)程序中的可執(zhí)行元素(節(jié)點(diǎn))在收到所有必須的輸入數(shù)據(jù)時(shí)才開始執(zhí)行。當(dāng)該元素內(nèi)的所有代碼執(zhí)行完成后,數(shù)據(jù)才流出該執(zhí)開始執(zhí)行。當(dāng)該元素內(nèi)的所有代碼執(zhí)行完成后,數(shù)據(jù)才流出該執(zhí)行元素并流向其他元素。行元素并流向其他元素。 數(shù)據(jù)流的概念源于電子表格的數(shù)據(jù)處理思

2、路。數(shù)據(jù)流的概念源于電子表格的數(shù)據(jù)處理思路。例如例如,在電子表,在電子表格中你可以指定一個(gè)公式與某些單元格建立數(shù)據(jù)關(guān)聯(lián),當(dāng)這些單格中你可以指定一個(gè)公式與某些單元格建立數(shù)據(jù)關(guān)聯(lián),當(dāng)這些單元格的所有數(shù)據(jù)都有效時(shí),公式才會(huì)給出最終的計(jì)算結(jié)果。當(dāng)任元格的所有數(shù)據(jù)都有效時(shí),公式才會(huì)給出最終的計(jì)算結(jié)果。當(dāng)任一單元的數(shù)據(jù)發(fā)生變化時(shí),將會(huì)按公式重新進(jìn)行計(jì)算。一單元的數(shù)據(jù)發(fā)生變化時(shí),將會(huì)按公式重新進(jìn)行計(jì)算。 數(shù)據(jù)流機(jī)制數(shù)據(jù)流機(jī)制更適合圖形化編程語言,在圖形化編程語言中,它更適合圖形化編程語言,在圖形化編程語言中,它起著起著數(shù)據(jù)傳遞數(shù)據(jù)傳遞和圖形化和圖形化程序運(yùn)行控制程序運(yùn)行控制的雙重作用。而且數(shù)據(jù)流機(jī)的雙重作用

3、。而且數(shù)據(jù)流機(jī)制具有制具有并發(fā)性并發(fā)性,可以使程序并行執(zhí)行,大大提高運(yùn)行效率。,可以使程序并行執(zhí)行,大大提高運(yùn)行效率。 必須牢記:必須牢記:LabVIEW 采用的采用的數(shù)據(jù)流運(yùn)行機(jī)制數(shù)據(jù)流運(yùn)行機(jī)制是依賴數(shù)是依賴數(shù)據(jù)來驅(qū)動(dòng)的。這是初學(xué)者要認(rèn)真注意的問題,忽略這個(gè)據(jù)來驅(qū)動(dòng)的。這是初學(xué)者要認(rèn)真注意的問題,忽略這個(gè)問題將會(huì)給程序設(shè)計(jì)帶來麻煩乃至災(zāi)難。問題將會(huì)給程序設(shè)計(jì)帶來麻煩乃至災(zāi)難。 數(shù)據(jù)流編程機(jī)制數(shù)據(jù)流編程機(jī)制為用戶帶來了方便,但同時(shí)也在為用戶帶來了方便,但同時(shí)也在某些方面存在不足。比如,程序框圖中如果兩個(gè)節(jié)某些方面存在不足。比如,程序框圖中如果兩個(gè)節(jié)點(diǎn)同時(shí)滿足執(zhí)行條件,則會(huì)同時(shí)執(zhí)行。但在實(shí)際問點(diǎn)

4、同時(shí)滿足執(zhí)行條件,則會(huì)同時(shí)執(zhí)行。但在實(shí)際問題中往往需要二者按一定先后順序執(zhí)行的話,則數(shù)題中往往需要二者按一定先后順序執(zhí)行的話,則數(shù)據(jù)流編程將不能滿足要求。為此據(jù)流編程將不能滿足要求。為此 LabVIEW 引入了引入了順序結(jié)構(gòu),順序結(jié)構(gòu),強(qiáng)行規(guī)定程序的執(zhí)行順序強(qiáng)行規(guī)定程序的執(zhí)行順序。u為什么要引入順序結(jié)構(gòu)?為什么要引入順序結(jié)構(gòu)? 順序結(jié)構(gòu)將按照既定的順序依次執(zhí)行,它可以包含順序結(jié)構(gòu)將按照既定的順序依次執(zhí)行,它可以包含多個(gè)代碼子框圖,這些子框圖看起來就像是多幀電影多個(gè)代碼子框圖,這些子框圖看起來就像是多幀電影一樣,所以把每個(gè)子框圖稱為一幀。一樣,所以把每個(gè)子框圖稱為一幀。 順序結(jié)構(gòu)分為順序結(jié)構(gòu)分為

5、平鋪式平鋪式和和層疊式層疊式兩種,二者表現(xiàn)形式兩種,二者表現(xiàn)形式不同,但其基本功能則完全相同。不同,但其基本功能則完全相同。1.1. 功能和作用功能和作用2.2.所在位置所在位置 函數(shù)函數(shù)編程編程結(jié)構(gòu)結(jié)構(gòu)平鋪式平鋪式 層疊式層疊式順序結(jié)構(gòu)順序結(jié)構(gòu)l 基本特性:基本特性:3.3.基本結(jié)構(gòu)基本結(jié)構(gòu). 平鋪式:平鋪式:按左右順序依次排列按左右順序依次排列 右擊右擊右邊右邊框,框,向后添向后添加一幀加一幀右擊右擊內(nèi)邊框,內(nèi)邊框,可向后插入一可向后插入一幀或合并幀幀或合并幀 右擊右擊左邊左邊框,框,向前插向前插入一幀入一幀順序不變性:順序不變性:平鋪式結(jié)構(gòu)各框架之間的順序不能改變,但平鋪式結(jié)構(gòu)各框架之間

6、的順序不能改變,但可以先變換成層疊式再還原成平鋪式進(jìn)行改變??梢韵茸儞Q成層疊式再還原成平鋪式進(jìn)行改變。傳輸特性:傳輸特性:由于該結(jié)構(gòu)各幀都是平鋪可見的,因此各幀之由于該結(jié)構(gòu)各幀都是平鋪可見的,因此各幀之間的數(shù)據(jù)可以直接傳輸,無須借助局部變量進(jìn)行。間的數(shù)據(jù)可以直接傳輸,無須借助局部變量進(jìn)行。l 基本操作:基本操作:添加空白幀:右擊添加空白幀:右擊相應(yīng)邊框,通過快捷菜單添加、插相應(yīng)邊框,通過快捷菜單添加、插入空白幀或合并幀。入空白幀或合并幀。增量按鈕:增量按鈕:向后翻頁向后翻頁. .層疊式:層疊式:按上下順序?qū)盈B排列按上下順序?qū)盈B排列選擇器標(biāo)簽:選擇器標(biāo)簽:以序號(hào)的形式標(biāo)以序號(hào)的形式標(biāo)示各子框頁的

7、基示各子框頁的基本信息。本信息。減量按鈕:減量按鈕:向前翻頁向前翻頁 l 基本特性:基本特性:順序可變性:順序可變性:層疊式結(jié)構(gòu)各框圖由各自的序號(hào)進(jìn)行區(qū)別,按照層疊式結(jié)構(gòu)各框圖由各自的序號(hào)進(jìn)行區(qū)別,按照從小到大的順序執(zhí)行。順序(號(hào))可通過右擊邊框的從小到大的順序執(zhí)行。順序(號(hào))可通過右擊邊框的【本幀設(shè)本幀設(shè)置為置為】進(jìn)行調(diào)整改變。進(jìn)行調(diào)整改變。傳輸特性:傳輸特性:由于該結(jié)構(gòu)各幀是向下層疊不可見的,因此各幀之由于該結(jié)構(gòu)各幀是向下層疊不可見的,因此各幀之間的數(shù)據(jù)必須借助間的數(shù)據(jù)必須借助局部變量局部變量進(jìn)行傳輸。進(jìn)行傳輸。l 基本操作:基本操作:添加空白幀:添加空白幀:右擊邊框,可通過快捷菜單向前、

8、向后添加幀。右擊邊框,可通過快捷菜單向前、向后添加幀。添加局部變量:添加局部變量:右擊邊框,右擊邊框,【添加順序局部變量添加順序局部變量】,所添加的,所添加的變量為藍(lán)色箭頭標(biāo)記變量為藍(lán)色箭頭標(biāo)記 數(shù)據(jù)源、數(shù)據(jù)源、 傳入端。傳入端。u應(yīng)用舉例:應(yīng)用舉例:產(chǎn)生隨機(jī)數(shù)直到等于給定數(shù)時(shí)顯示所需時(shí)間與執(zhí)行次數(shù)產(chǎn)生隨機(jī)數(shù)直到等于給定數(shù)時(shí)顯示所需時(shí)間與執(zhí)行次數(shù)l采用平鋪式順序結(jié)構(gòu)采用平鋪式順序結(jié)構(gòu)通過數(shù)據(jù)通道傳遞數(shù)據(jù)通過數(shù)據(jù)通道傳遞數(shù)據(jù)l采用層疊式:采用層疊式: . .新建新建 VIVI,在前面板上放置數(shù)值輸入控,在前面板上放置數(shù)值輸入控件件“給定數(shù)據(jù)給定數(shù)據(jù)”和兩個(gè)數(shù)值顯示控件和兩個(gè)數(shù)值顯示控件“執(zhí)行次數(shù)

9、執(zhí)行次數(shù)”,“所需時(shí)間所需時(shí)間”。 . .在程序框圖上放置一個(gè)層疊式順序結(jié)在程序框圖上放置一個(gè)層疊式順序結(jié)構(gòu),在右擊結(jié)構(gòu)框圖邊框的快捷菜單中構(gòu),在右擊結(jié)構(gòu)框圖邊框的快捷菜單中執(zhí)行兩次執(zhí)行兩次“在后面添加幀在后面添加幀”,創(chuàng)建,創(chuàng)建 幀幀 1 1和和幀幀2 2。 . .選取第選取第 0 0 幀,記錄程序運(yùn)行初始時(shí)間。幀,記錄程序運(yùn)行初始時(shí)間。 右擊結(jié)構(gòu)框圖邊框右擊結(jié)構(gòu)框圖邊框 “添加順序局部變量添加順序局部變量”,將在下邊框出,將在下邊框出現(xiàn)現(xiàn)黃色小方框黃色小方框,這就是順序局部變量,用來在層疊順序結(jié)構(gòu)中各,這就是順序局部變量,用來在層疊順序結(jié)構(gòu)中各幀之間傳遞數(shù)據(jù)。幀之間傳遞數(shù)據(jù)。 放置放置時(shí)間

10、計(jì)數(shù)器時(shí)間計(jì)數(shù)器到順序結(jié)構(gòu)內(nèi)記錄程序運(yùn)行時(shí)的初始時(shí)間,并到順序結(jié)構(gòu)內(nèi)記錄程序運(yùn)行時(shí)的初始時(shí)間,并與順序局部變量相連,此時(shí)黃色框內(nèi)將會(huì)出現(xiàn)一個(gè)指向順序結(jié)構(gòu)與順序局部變量相連,此時(shí)黃色框內(nèi)將會(huì)出現(xiàn)一個(gè)指向順序結(jié)構(gòu)外部的箭頭用以向外傳遞數(shù)據(jù)。外部的箭頭用以向外傳遞數(shù)據(jù)。時(shí)間計(jì)數(shù)器時(shí)間計(jì)數(shù)器位于:位于:函數(shù)函數(shù)編程編程定時(shí)定時(shí)時(shí)間計(jì)數(shù)器時(shí)間計(jì)數(shù)器。 . .選取第選取第 1 1 幀,實(shí)現(xiàn)等于給定值的幀,實(shí)現(xiàn)等于給定值的匹配運(yùn)算匹配運(yùn)算程序如圖:程序如圖: . .選取第選取第 2 2 幀,同樣放置一個(gè)時(shí)間計(jì)幀,同樣放置一個(gè)時(shí)間計(jì)數(shù)器用于返回當(dāng)前時(shí)間,將它減去順數(shù)器用于返回當(dāng)前時(shí)間,將它減去順序局部變量傳遞

11、過來的第序局部變量傳遞過來的第 0 0 幀初始時(shí)幀初始時(shí)間即可得到花費(fèi)的時(shí)間,如圖:間即可得到花費(fèi)的時(shí)間,如圖:. .運(yùn)行結(jié)果:運(yùn)行結(jié)果:注意:注意:Labview 編程的主要特點(diǎn)是數(shù)據(jù)流形式,這便于編程的主要特點(diǎn)是數(shù)據(jù)流形式,這便于VI大量的按照并行方式運(yùn)行,優(yōu)化了程序的計(jì)算性能。而大量的按照并行方式運(yùn)行,優(yōu)化了程序的計(jì)算性能。而順序結(jié)構(gòu)卻趨向于中斷數(shù)據(jù)流編程,禁止程序的并行操順序結(jié)構(gòu)卻趨向于中斷數(shù)據(jù)流編程,禁止程序的并行操作,順序結(jié)構(gòu)還掩蓋了部分代碼,所以用戶在編程時(shí)應(yīng)作,順序結(jié)構(gòu)還掩蓋了部分代碼,所以用戶在編程時(shí)應(yīng)盡量不用或少用順序結(jié)構(gòu)。盡量不用或少用順序結(jié)構(gòu)。 在實(shí)際應(yīng)用中,經(jīng)常用人為

12、的在實(shí)際應(yīng)用中,經(jīng)常用人為的數(shù)據(jù)依從關(guān)系來確定程序先后執(zhí)數(shù)據(jù)依從關(guān)系來確定程序先后執(zhí)行的順序,在前面簇的章節(jié)中,行的順序,在前面簇的章節(jié)中,我們就提到過我們就提到過 ErrorError簇可以控制簇可以控制程序執(zhí)行的先后順序,但并不是程序執(zhí)行的先后順序,但并不是每一個(gè)控件都有每一個(gè)控件都有 ErrorError簇的輸入簇的輸入和輸出端口,這時(shí)還有另一種方和輸出端口,這時(shí)還有另一種方法能實(shí)現(xiàn)順序執(zhí)行的功能。法能實(shí)現(xiàn)順序執(zhí)行的功能。如圖如圖 從第一個(gè)從第一個(gè) While 循環(huán)結(jié)構(gòu)中的循環(huán)結(jié)構(gòu)中的布爾開關(guān)上連了一根線到第二個(gè)布爾開關(guān)上連了一根線到第二個(gè) While 循環(huán)結(jié)構(gòu)的邊框上,可以循環(huán)結(jié)構(gòu)的邊

13、框上,可以看到,第二個(gè)看到,第二個(gè) While 循環(huán)結(jié)構(gòu)中循環(huán)結(jié)構(gòu)中沒有一個(gè)對(duì)象需要這個(gè)數(shù)據(jù),只是沒有一個(gè)對(duì)象需要這個(gè)數(shù)據(jù),只是起到順序執(zhí)行程序的目的。起到順序執(zhí)行程序的目的。 五、局部變量和全局變量五、局部變量和全局變量 局部變量和全局變量是局部變量和全局變量是 LabVIEW用來用來傳遞數(shù)據(jù)傳遞數(shù)據(jù)的工具。的工具。 LabVIEW 編程是一種數(shù)據(jù)流編程,它是通過連線來傳編程是一種數(shù)據(jù)流編程,它是通過連線來傳遞數(shù)據(jù)的。但是如果一個(gè)程序太復(fù)雜的話,有時(shí)連線會(huì)很遞數(shù)據(jù)的。但是如果一個(gè)程序太復(fù)雜的話,有時(shí)連線會(huì)很困難甚至無法連接,這時(shí)就需要用變量進(jìn)行數(shù)據(jù)傳遞。困難甚至無法連接,這時(shí)就需要用變量進(jìn)行

14、數(shù)據(jù)傳遞。 另外,也會(huì)經(jīng)常遇到這樣一種情況,對(duì)程序中一個(gè)控件另外,也會(huì)經(jīng)常遇到這樣一種情況,對(duì)程序中一個(gè)控件對(duì)象,希望對(duì)象,希望既能寫入數(shù)據(jù),又能讀出數(shù)據(jù)既能寫入數(shù)據(jù),又能讀出數(shù)據(jù),這在數(shù)據(jù)流編,這在數(shù)據(jù)流編程中是無法實(shí)現(xiàn)的,這也需要用局部變量或全局變量代替程中是無法實(shí)現(xiàn)的,這也需要用局部變量或全局變量代替該控件來實(shí)現(xiàn)。該控件來實(shí)現(xiàn)。 局部變量主要用于局部變量主要用于本本VI內(nèi)內(nèi)不同位置之間的數(shù)據(jù)傳遞,而不同位置之間的數(shù)據(jù)傳遞,而全局變量主要是針對(duì)全局變量主要是針對(duì)不同不同VI程序之間的數(shù)據(jù)通信。程序之間的數(shù)據(jù)通信。 談到局部變量,其實(shí)在介紹順序結(jié)構(gòu)時(shí)就已經(jīng)接觸過了,當(dāng)時(shí)談到局部變量,其實(shí)在介

15、紹順序結(jié)構(gòu)時(shí)就已經(jīng)接觸過了,當(dāng)時(shí)是添加順序局部變量來傳遞程序初始時(shí)間,以便計(jì)算程序所執(zhí)行是添加順序局部變量來傳遞程序初始時(shí)間,以便計(jì)算程序所執(zhí)行的時(shí)間。目的是在不同選擇分支中都能夠?qū)χ甘酒鬟M(jìn)行賦值。的時(shí)間。目的是在不同選擇分支中都能夠?qū)χ甘酒鬟M(jìn)行賦值。 另一種方法是:另一種方法是:在右在右 擊控件對(duì)象的快捷菜擊控件對(duì)象的快捷菜 單中執(zhí)行單中執(zhí)行 “創(chuàng)建創(chuàng)建局局 部變量部變量”, ,如圖如圖 1.1.局部變量局部變量u建立局部變量:建立局部變量:建立局部變量的方法有兩種。建立局部變量的方法有兩種。 一種一種方法是:方法是:在程序框圖中直接添加,在程序框圖中直接添加,如圖:如圖:如此創(chuàng)建的變量屬于

16、裸變量,必須在如此創(chuàng)建的變量屬于裸變量,必須在右擊圖標(biāo)的快捷菜單中,與前面板相右擊圖標(biāo)的快捷菜單中,與前面板相應(yīng)控件進(jìn)行關(guān)聯(lián)方可有效。應(yīng)控件進(jìn)行關(guān)聯(lián)方可有效。u局部變量的應(yīng)用局部變量的應(yīng)用 該例的目的在于使用局部變量向它聯(lián)系的前面板上的該例的目的在于使用局部變量向它聯(lián)系的前面板上的電流控件寫數(shù)據(jù),也可以從電流控件讀取數(shù)據(jù)。程序框電流控件寫數(shù)據(jù),也可以從電流控件讀取數(shù)據(jù)。程序框圖如圖所示:圖如圖所示: 程序的目的是檢驗(yàn)電流量,如果電流大于程序的目的是檢驗(yàn)電流量,如果電流大于5A5A時(shí),則限時(shí),則限定電流量為上限定電流量為上限5A5A,這時(shí)電流局部變量為,這時(shí)電流局部變量為寫入狀態(tài)寫入狀態(tài),可,可

17、以向它寫入數(shù)據(jù)以向它寫入數(shù)據(jù)5A5A;如果電流小于;如果電流小于5A5A時(shí),則將電流通過時(shí),則將電流通過一個(gè)一個(gè) “電流顯示器電流顯示器” 來顯示,這時(shí)就需要將電流局部來顯示,這時(shí)就需要將電流局部變量改變?yōu)樽兞扛淖優(yōu)樽x取狀態(tài)讀取狀態(tài),方法是在快捷菜單上執(zhí)行,方法是在快捷菜單上執(zhí)行 “轉(zhuǎn)轉(zhuǎn)化為讀取化為讀取” 命令。命令。 全局變量與局部變量不同,它是在不同的程序之間進(jìn)行全局變量與局部變量不同,它是在不同的程序之間進(jìn)行通信。通信。LabVIEW 的全局變量是一個(gè)獨(dú)立的的全局變量是一個(gè)獨(dú)立的VI,它是一種,它是一種特殊的程序,沒有程序框圖只有前面板,功能是保存一個(gè)特殊的程序,沒有程序框圖只有前面板,

18、功能是保存一個(gè)或多個(gè)全局變量,所以也把全局變量程序稱為或多個(gè)全局變量,所以也把全局變量程序稱為容器。容器。u建立全局變量:建立全局變量: 它的建立和局部變量類似,將它的建立和局部變量類似,將全局變量拖放到程序框圖中,在全局變量拖放到程序框圖中,在它的快捷菜單中執(zhí)行它的快捷菜單中執(zhí)行 “打開前面打開前面板板 ”,或雙擊全局變量圖標(biāo),打或雙擊全局變量圖標(biāo),打開全局變量程序前面板,然后在開全局變量程序前面板,然后在前面板中添加所需要的全局變量前面板中添加所需要的全局變量控件,如圖,添加了控件,如圖,添加了 3 3個(gè)全局變個(gè)全局變量,并保存量,并保存VI。 2.2.全局變量:全局變量:u全局變量的應(yīng)用

19、:全局變量的應(yīng)用:建立了全局變量以后就可以在其他程建立了全局變量以后就可以在其他程序里調(diào)用它,方法是在程序框圖上選中序里調(diào)用它,方法是在程序框圖上選中“選擇選擇VI.VI.”,如圖:如圖: 在打開的對(duì)話框窗體中為程序選擇想要放置的全局變量。在打開的對(duì)話框窗體中為程序選擇想要放置的全局變量。如果最先放置的不是想要的全局變量,可以像對(duì)局部變量如果最先放置的不是想要的全局變量,可以像對(duì)局部變量那樣操作,在快捷菜單上選取那樣操作,在快捷菜單上選取“選擇項(xiàng)選擇項(xiàng)”子選項(xiàng),在列出子選項(xiàng),在列出的所有變量對(duì)象中進(jìn)行選擇,或者用操作工具來選擇。的所有變量對(duì)象中進(jìn)行選擇,或者用操作工具來選擇。 注意:注意:使用

20、全局變量時(shí)必須特別小心,因?yàn)樗鼘?duì)所有的使用全局變量時(shí)必須特別小心,因?yàn)樗鼘?duì)所有的 LabVIEW 程序都是通用的,稍有不慎就可能互相干擾,用戶必須清楚的知道程序都是通用的,稍有不慎就可能互相干擾,用戶必須清楚的知道全局變量的讀寫位置。全局變量的讀寫位置。 LabVIEW LabVIEW 語言編程是一種數(shù)據(jù)流,全局變量和局部變量語言編程是一種數(shù)據(jù)流,全局變量和局部變量提供了一種違反嚴(yán)格數(shù)據(jù)流的程序設(shè)計(jì)方式。大家有必要提供了一種違反嚴(yán)格數(shù)據(jù)流的程序設(shè)計(jì)方式。大家有必要了解競態(tài)條件的缺陷,當(dāng)兩個(gè)或兩個(gè)以上的事件可以按任了解競態(tài)條件的缺陷,當(dāng)兩個(gè)或兩個(gè)以上的事件可以按任何順序發(fā)生時(shí)就產(chǎn)生了競態(tài)條件。用

21、戶要想知道再多個(gè)并何順序發(fā)生時(shí)就產(chǎn)生了競態(tài)條件。用戶要想知道再多個(gè)并行的程序中一個(gè)全局變量什么時(shí)候被訪問是比較困難的。行的程序中一個(gè)全局變量什么時(shí)候被訪問是比較困難的。特別是再多線程編程中,對(duì)這種共享數(shù)據(jù)變量的競態(tài)條件特別是再多線程編程中,對(duì)這種共享數(shù)據(jù)變量的競態(tài)條件問題要求更加苛刻,使用全局變量會(huì)帶來意想不到的錯(cuò)誤。問題要求更加苛刻,使用全局變量會(huì)帶來意想不到的錯(cuò)誤。 如果用戶的應(yīng)用程序中有全局變量,那么就存在大量的如果用戶的應(yīng)用程序中有全局變量,那么就存在大量的數(shù)據(jù)復(fù)制的危險(xiǎn),因?yàn)橛脩粢朐诓煌牡胤綄?duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)復(fù)制的危險(xiǎn),因?yàn)橛脩粢朐诓煌牡胤綄?duì)數(shù)據(jù)進(jìn)行處理,最終就有許多的數(shù)據(jù)備份,

22、造成內(nèi)存的巨大開銷和處理,最終就有許多的數(shù)據(jù)備份,造成內(nèi)存的巨大開銷和系統(tǒng)資源的浪費(fèi),所以建議初學(xué)者盡量不要使用全局變量。系統(tǒng)資源的浪費(fèi),所以建議初學(xué)者盡量不要使用全局變量。 如果程序中使用了全局變量或者是局部變量,那么在程如果程序中使用了全局變量或者是局部變量,那么在程序運(yùn)行之前,必須首先要確定它的初始值是否滿足執(zhí)行要序運(yùn)行之前,必須首先要確定它的初始值是否滿足執(zhí)行要求,如果不滿足的話,就要對(duì)它們進(jìn)行初始化求,如果不滿足的話,就要對(duì)它們進(jìn)行初始化u使用全局變量和局部變量的注意事項(xiàng):使用全局變量和局部變量的注意事項(xiàng):1.1.問題的提出問題的提出 面對(duì)面對(duì) LabVIEW 基于數(shù)據(jù)流驅(qū)動(dòng)的編程機(jī)

23、制,基于數(shù)據(jù)流驅(qū)動(dòng)的編程機(jī)制,在某些情況下,希望改變在某些情況下,希望改變這種運(yùn)行這種運(yùn)行方式,賦予人方式,賦予人為控制或程序控制的因素,這就需要借助于為控制或程序控制的因素,這就需要借助于事件事件結(jié)構(gòu)結(jié)構(gòu)來實(shí)現(xiàn)。來實(shí)現(xiàn)。 所謂所謂事件事件是活動(dòng)(動(dòng)作)發(fā)生的異步通知,它是活動(dòng)(動(dòng)作)發(fā)生的異步通知,它將打破數(shù)據(jù)流驅(qū)動(dòng)的模式,引入將打破數(shù)據(jù)流驅(qū)動(dòng)的模式,引入事件驅(qū)動(dòng)事件驅(qū)動(dòng)的編程的編程機(jī)制。事件的觸發(fā)來自機(jī)制。事件的觸發(fā)來自用戶控制、外部用戶控制、外部 I/O或程或程序控制序控制。事件結(jié)構(gòu)是面。事件結(jié)構(gòu)是面向?qū)ο缶幊滔驅(qū)ο缶幊痰幕A(chǔ)。的基礎(chǔ)。 六、事件結(jié)構(gòu)六、事件結(jié)構(gòu)2. 事件結(jié)構(gòu)的基本組成事

24、件結(jié)構(gòu)的基本組成(程序程序結(jié)構(gòu)結(jié)構(gòu)事件結(jié)構(gòu))事件結(jié)構(gòu))事件選擇標(biāo)簽事件選擇標(biāo)簽超時(shí)端子超時(shí)端子事件數(shù)據(jù)節(jié)點(diǎn)事件數(shù)據(jù)節(jié)點(diǎn) 超時(shí)端子:超時(shí)端子:用于設(shè)定用于設(shè)定一個(gè)超時(shí)時(shí)限,以一個(gè)超時(shí)時(shí)限,以毫秒毫秒為單位。為單位。 其值為其值為-1-1時(shí)將永遠(yuǎn)處時(shí)將永遠(yuǎn)處于等待狀態(tài),直至指定于等待狀態(tài),直至指定事件觸發(fā)為止。事件觸發(fā)為止。 該值該值為為00的整數(shù)的整數(shù)時(shí),時(shí),指定事件在等待期間內(nèi)指定事件在等待期間內(nèi)若觸發(fā)則已,否則若超若觸發(fā)則已,否則若超時(shí),將終止事件觸發(fā),時(shí),將終止事件觸發(fā),并返回一個(gè)并返回一個(gè)超時(shí)事件超時(shí)事件。 事件數(shù)據(jù)節(jié)點(diǎn):事件數(shù)據(jù)節(jié)點(diǎn):由若干由若干個(gè)事件數(shù)據(jù)端子組成,用個(gè)事件數(shù)據(jù)端子組成

25、,用來設(shè)計(jì)事件過程,完成具來設(shè)計(jì)事件過程,完成具體的事件,實(shí)現(xiàn)特定功能體的事件,實(shí)現(xiàn)特定功能與操作。與操作。 事件選擇標(biāo)簽:事件選擇標(biāo)簽:用于標(biāo)識(shí)當(dāng)前用于標(biāo)識(shí)當(dāng)前顯示子框圖所處理的事件源,以顯示子框圖所處理的事件源,以折疊方式進(jìn)行切換。折疊方式進(jìn)行切換。說明:說明:如果單獨(dú)使用一個(gè)事件過程,只能響應(yīng)一次事件,為了能夠持續(xù)響應(yīng)多個(gè)事如果單獨(dú)使用一個(gè)事件過程,只能響應(yīng)一次事件,為了能夠持續(xù)響應(yīng)多個(gè)事 件,常將其嵌套在件,常將其嵌套在 While 循環(huán)中。循環(huán)中。 事件結(jié)構(gòu)執(zhí)行時(shí),將事件結(jié)構(gòu)執(zhí)行時(shí),將等待一個(gè)事前指定事件等待一個(gè)事前指定事件的觸發(fā),一旦該事件觸的觸發(fā),一旦該事件觸發(fā),將執(zhí)行相應(yīng)的條件

26、發(fā),將執(zhí)行相應(yīng)的條件分支。一個(gè)事件處理完分支。一個(gè)事件處理完畢后,事件結(jié)構(gòu)的執(zhí)行畢后,事件結(jié)構(gòu)的執(zhí)行即告完成。即告完成。 如果在如果在等待等待事件觸發(fā)事件觸發(fā)的過程中超時(shí),將轉(zhuǎn)去的過程中超時(shí),將轉(zhuǎn)去執(zhí)行特定的執(zhí)行特定的超時(shí)分支超時(shí)分支。事件的執(zhí)行:事件的執(zhí)行:u工作原理:工作原理:事件結(jié)構(gòu)的工作原理猶如具有內(nèi)置事件結(jié)構(gòu)的工作原理猶如具有內(nèi)置等待通知等待通知函數(shù)的函數(shù)的條件結(jié)構(gòu)條件結(jié)構(gòu)。事件結(jié)構(gòu)可包含多個(gè)分支,一個(gè)分支即一個(gè)獨(dú)立的事。事件結(jié)構(gòu)可包含多個(gè)分支,一個(gè)分支即一個(gè)獨(dú)立的事件處理程序。件處理程序。 一個(gè)分支配置可處理一個(gè)或多個(gè)事件,但每次只能一個(gè)分支配置可處理一個(gè)或多個(gè)事件,但每次只能觸發(fā)

27、觸發(fā)(發(fā)生)(發(fā)生)這些事件中的一個(gè)事件。這些事件中的一個(gè)事件。 u事件觸發(fā):事件觸發(fā):一般事件只能通過外在用戶的動(dòng)作來觸發(fā),如單擊一般事件只能通過外在用戶的動(dòng)作來觸發(fā),如單擊鼠標(biāo)、按鍵等。如果需要內(nèi)部數(shù)據(jù)觸發(fā)事件(如當(dāng)鼠標(biāo)、按鍵等。如果需要內(nèi)部數(shù)據(jù)觸發(fā)事件(如當(dāng) abab 條件滿足條件滿足時(shí)觸發(fā)一個(gè)事件),就需要用戶自定義事件時(shí)觸發(fā)一個(gè)事件),就需要用戶自定義事件通過編程通過編程來實(shí)現(xiàn)。來實(shí)現(xiàn)。u事件驅(qū)動(dòng):事件驅(qū)動(dòng):事件驅(qū)動(dòng)程序通常包含在一個(gè)條件循環(huán)中,該循環(huán)事件驅(qū)動(dòng)程序通常包含在一個(gè)條件循環(huán)中,該循環(huán)等待事件的等待事件的觸發(fā)觸發(fā)并執(zhí)行代碼來響應(yīng)事件,然后不斷重復(fù)以等待下并執(zhí)行代碼來響應(yīng)事件

28、,然后不斷重復(fù)以等待下一個(gè)事件的一個(gè)事件的觸發(fā)觸發(fā)。 程序如何響應(yīng)事件取決于為該事件所編寫的代碼。事件驅(qū)動(dòng)程程序如何響應(yīng)事件取決于為該事件所編寫的代碼。事件驅(qū)動(dòng)程序的執(zhí)行順序取決于具體所發(fā)生的事件及事件發(fā)生的順序。程序序的執(zhí)行順序取決于具體所發(fā)生的事件及事件發(fā)生的順序。程序中的某些部分可能因其所處理的事件的頻繁發(fā)生而頻繁執(zhí)行,而中的某些部分可能因其所處理的事件的頻繁發(fā)生而頻繁執(zhí)行,而其它部分也可能由于相應(yīng)事件從未發(fā)生而根本不執(zhí)行。其它部分也可能由于相應(yīng)事件從未發(fā)生而根本不執(zhí)行。3、事件結(jié)構(gòu)的建立、事件結(jié)構(gòu)的建立. .擺放框圖擺放框圖(程序(程序結(jié)構(gòu)結(jié)構(gòu)事件結(jié)構(gòu))事件結(jié)構(gòu)). .調(diào)出調(diào)出編輯事件

29、編輯事件對(duì)話框:對(duì)話框:右擊邊框右擊邊框【編輯本分支所處理事件編輯本分支所處理事件】. .構(gòu)造事件:構(gòu)造事件:一般面對(duì)前面板對(duì)象構(gòu)造事件一般面對(duì)前面板對(duì)象構(gòu)造事件事件源:事件源:將列出前將列出前面板所有對(duì)象,供面板所有對(duì)象,供用戶選擇事件源。用戶選擇事件源。事件:事件:給出事件給出事件列表,供用戶選列表,供用戶選擇事件。擇事件。事件說明符:事件說明符:事件事件編輯,進(jìn)行事件的編輯,進(jìn)行事件的增、刪操作。增、刪操作。事件類型:事件類型: 通知事件和過濾事件通知事件和過濾事件兩種。分別用兩種。分別用綠色綠色與與紅色紅色箭頭進(jìn)行區(qū)別。箭頭進(jìn)行區(qū)別。通知事件通知事件用于通知某個(gè)事件的觸發(fā),用于通知某個(gè)

30、事件的觸發(fā),過濾事件過濾事件用來控制在執(zhí)行某個(gè)動(dòng)作后,系統(tǒng)尚未響應(yīng)之用來控制在執(zhí)行某個(gè)動(dòng)作后,系統(tǒng)尚未響應(yīng)之前進(jìn)行前進(jìn)行提醒提醒。當(dāng)事件發(fā)生時(shí),用戶可以過濾掉甚至完全放棄事件所觸發(fā)的活動(dòng)。當(dāng)事件發(fā)生時(shí),用戶可以過濾掉甚至完全放棄事件所觸發(fā)的活動(dòng)。4、應(yīng)用舉例:、應(yīng)用舉例:n前面板前面板n后面板后面板. . 點(diǎn)擊不同按鈕,顯示不同內(nèi)容點(diǎn)擊不同按鈕,顯示不同內(nèi)容l前面板:前面板: 密碼控制進(jìn)行圖片顯示密碼控制進(jìn)行圖片顯示l后面板:后面板:七、定時(shí)結(jié)構(gòu)七、定時(shí)結(jié)構(gòu)-定時(shí)循環(huán)和定時(shí)順序結(jié)構(gòu)定時(shí)循環(huán)和定時(shí)順序結(jié)構(gòu) 在程序框圖上使用定時(shí)循環(huán)或定時(shí)順序結(jié)構(gòu),可實(shí)在程序框圖上使用定時(shí)循環(huán)或定時(shí)順序結(jié)構(gòu),可實(shí)現(xiàn)

31、需要現(xiàn)需要限時(shí)限時(shí)和和延時(shí)延時(shí)的操作。定時(shí)循環(huán)將重復(fù)執(zhí)行,直的操作。定時(shí)循環(huán)將重復(fù)執(zhí)行,直到停止條件被滿足為止。到停止條件被滿足為止。 定時(shí)順序結(jié)構(gòu)以特定結(jié)構(gòu)執(zhí)行代碼一次。多幀定時(shí)定時(shí)順序結(jié)構(gòu)以特定結(jié)構(gòu)執(zhí)行代碼一次。多幀定時(shí)循環(huán)用于在限時(shí)及延時(shí)條件下按特定順序重復(fù)執(zhí)行代循環(huán)用于在限時(shí)及延時(shí)條件下按特定順序重復(fù)執(zhí)行代碼。碼。 定時(shí)循環(huán)是以指定的時(shí)間間隔執(zhí)行一個(gè)子程序或幀。定定時(shí)循環(huán)是以指定的時(shí)間間隔執(zhí)行一個(gè)子程序或幀。定時(shí)循環(huán)結(jié)構(gòu)可用于開發(fā)重復(fù)執(zhí)行且包括其它功能的時(shí)循環(huán)結(jié)構(gòu)可用于開發(fā)重復(fù)執(zhí)行且包括其它功能的VIVI,如,如多速率定時(shí)功能、精確定時(shí)、循環(huán)執(zhí)行時(shí)反饋、動(dòng)態(tài)改變多速率定時(shí)功能、精確定時(shí)

32、、循環(huán)執(zhí)行時(shí)反饋、動(dòng)態(tài)改變定時(shí)功能或者多種執(zhí)行優(yōu)先級(jí)。定時(shí)功能或者多種執(zhí)行優(yōu)先級(jí)。 與與 While 循環(huán)不同,定時(shí)循環(huán)的循環(huán)不同,定時(shí)循環(huán)的條件接線端條件接線端不一定不一定 要要連線。但是,如定時(shí)循環(huán)的條件接線端未進(jìn)行任何連線。但是,如定時(shí)循環(huán)的條件接線端未進(jìn)行任何 連線,連線,循環(huán)將循環(huán)將無限運(yùn)行無限運(yùn)行下去。下去。1.1.定時(shí)循環(huán)結(jié)構(gòu)定時(shí)循環(huán)結(jié)構(gòu) 輸入節(jié)點(diǎn)輸入節(jié)點(diǎn) 左側(cè)數(shù)據(jù)節(jié)點(diǎn)左側(cè)數(shù)據(jù)節(jié)點(diǎn) 右側(cè)數(shù)據(jù)節(jié)點(diǎn)右側(cè)數(shù)據(jù)節(jié)點(diǎn) 輸出節(jié)點(diǎn)輸出節(jié)點(diǎn) 輸入節(jié)點(diǎn)輸入節(jié)點(diǎn): :期限期限指定定時(shí)循環(huán)必須完成指定定時(shí)循環(huán)必須完成一次循環(huán)的時(shí)間一次循環(huán)的時(shí)間。如未給期限賦值,。如未給期限賦值,則期限等于周期。期限的

33、值相對(duì)于循環(huán)的開始時(shí)間,單位則期限等于周期。期限的值相對(duì)于循環(huán)的開始時(shí)間,單位由定時(shí)源指定。由定時(shí)源指定。錯(cuò)誤錯(cuò)誤在結(jié)構(gòu)中傳遞錯(cuò)誤。當(dāng)接收到在結(jié)構(gòu)中傳遞錯(cuò)誤。當(dāng)接收到錯(cuò)誤狀態(tài)錯(cuò)誤狀態(tài)時(shí),定時(shí)循環(huán)將不時(shí),定時(shí)循環(huán)將不執(zhí)行。執(zhí)行。模式模式指定定時(shí)循環(huán)處理執(zhí)行延遲的方式。指定定時(shí)循環(huán)處理執(zhí)行延遲的方式。共有五種模式:共有五種模式:無改無改變;根據(jù)初始狀態(tài)處理錯(cuò)過的周期;忽略初始狀態(tài),處理變;根據(jù)初始狀態(tài)處理錯(cuò)過的周期;忽略初始狀態(tài),處理錯(cuò)過的周期;放棄錯(cuò)過的周期,維持初始狀態(tài);忽略初始錯(cuò)過的周期;放棄錯(cuò)過的周期,維持初始狀態(tài);忽略初始狀態(tài),放棄錯(cuò)過的周期。狀態(tài),放棄錯(cuò)過的周期。名稱名稱指定定時(shí)循環(huán)的

34、名稱。指定定時(shí)循環(huán)的名稱。偏移量偏移量指定定時(shí)循環(huán)開始執(zhí)行前的等待時(shí)間。偏移量的值相對(duì)于指定定時(shí)循環(huán)開始執(zhí)行前的等待時(shí)間。偏移量的值相對(duì)于循環(huán)的開始時(shí)間,單位是定時(shí)源的絕對(duì)單位。循環(huán)的開始時(shí)間,單位是定時(shí)源的絕對(duì)單位。周期周期指定定時(shí)循環(huán)的周期,單位是定時(shí)源的相對(duì)單位。指定定時(shí)循環(huán)的周期,單位是定時(shí)源的相對(duì)單位。優(yōu)先級(jí)優(yōu)先級(jí)指定定時(shí)循環(huán)中的執(zhí)行優(yōu)先級(jí)。定時(shí)結(jié)構(gòu)的優(yōu)先級(jí)用于指定定時(shí)循環(huán)中的執(zhí)行優(yōu)先級(jí)。定時(shí)結(jié)構(gòu)的優(yōu)先級(jí)用于指定定時(shí)結(jié)構(gòu)相對(duì)于程序框圖上其它對(duì)象的執(zhí)行開始時(shí)指定定時(shí)結(jié)構(gòu)相對(duì)于程序框圖上其它對(duì)象的執(zhí)行開始時(shí)間。優(yōu)先級(jí)的輸入值必須為間。優(yōu)先級(jí)的輸入值必須為1 1到到6553565535之間

35、的正整數(shù)。之間的正整數(shù)。處理器處理器指定用于執(zhí)行任務(wù)的處理器。默認(rèn)值為指定用于執(zhí)行任務(wù)的處理器。默認(rèn)值為-2-2,即,即LabVIEWLabVIEW自自動(dòng)分配處理器。如需手動(dòng)分配處理器,可輸入介于動(dòng)分配處理器。如需手動(dòng)分配處理器,可輸入介于0 0和和255255之間的任意值,之間的任意值,0 0代表當(dāng)前的處理器。輸入值超過可代表當(dāng)前的處理器。輸入值超過可用處理器的數(shù)量時(shí),可導(dǎo)致運(yùn)行時(shí)錯(cuò)誤,定時(shí)結(jié)構(gòu)將停用處理器的數(shù)量時(shí),可導(dǎo)致運(yùn)行時(shí)錯(cuò)誤,定時(shí)結(jié)構(gòu)將停止執(zhí)行。止執(zhí)行。源名稱源名稱指定用于控制結(jié)構(gòu)的定時(shí)源的名稱。定時(shí)源必須通過指定用于控制結(jié)構(gòu)的定時(shí)源的名稱。定時(shí)源必須通過創(chuàng)創(chuàng)建定時(shí)源建定時(shí)源VIVI

36、在程序框圖上創(chuàng)建,或從在程序框圖上創(chuàng)建,或從配置定時(shí)循環(huán)配置定時(shí)循環(huán)對(duì)話對(duì)話框中選擇??蛑羞x擇。超時(shí)超時(shí)指定定時(shí)循環(huán)開始執(zhí)行前的最長等待時(shí)間。超時(shí)的值相指定定時(shí)循環(huán)開始執(zhí)行前的最長等待時(shí)間。超時(shí)的值相對(duì)于定時(shí)循環(huán)的開始時(shí)間或上一次循環(huán)的結(jié)束時(shí)間,單對(duì)于定時(shí)循環(huán)的開始時(shí)間或上一次循環(huán)的結(jié)束時(shí)間,單位由幀定時(shí)源指定。位由幀定時(shí)源指定。輸入節(jié)點(diǎn)輸入節(jié)點(diǎn): :右側(cè)數(shù)據(jù)節(jié)點(diǎn)右側(cè)數(shù)據(jù)節(jié)點(diǎn):期限期限指定定時(shí)循環(huán)必須完成下一次循環(huán)的時(shí)間。期限的值相對(duì)指定定時(shí)循環(huán)必須完成下一次循環(huán)的時(shí)間。期限的值相對(duì)于下一次循環(huán)的開始時(shí)間,單位由定時(shí)源指定。默認(rèn)值為于下一次循環(huán)的開始時(shí)間,單位由定時(shí)源指定。默認(rèn)值為-1-1,表

37、示無改變。,表示無改變。錯(cuò)誤錯(cuò)誤將子程序框圖中的錯(cuò)誤傳出定時(shí)循環(huán)。如錯(cuò)誤接收到錯(cuò)誤將子程序框圖中的錯(cuò)誤傳出定時(shí)循環(huán)。如錯(cuò)誤接收到錯(cuò)誤狀態(tài),定時(shí)循環(huán)將結(jié)束當(dāng)前循環(huán),退出定時(shí)循環(huán),并在輸狀態(tài),定時(shí)循環(huán)將結(jié)束當(dāng)前循環(huán),退出定時(shí)循環(huán),并在輸出節(jié)點(diǎn)返回錯(cuò)誤狀態(tài)。出節(jié)點(diǎn)返回錯(cuò)誤狀態(tài)。模式模式指定定時(shí)循環(huán)下一次循環(huán)的模式。共有五種模式:無改變;指定定時(shí)循環(huán)下一次循環(huán)的模式。共有五種模式:無改變;根據(jù)初始狀態(tài)處理錯(cuò)過的周期;忽略初始狀態(tài),處理錯(cuò)過根據(jù)初始狀態(tài)處理錯(cuò)過的周期;忽略初始狀態(tài),處理錯(cuò)過的周期;放棄錯(cuò)過的周期,維持初始狀態(tài);忽略初始狀態(tài),的周期;放棄錯(cuò)過的周期,維持初始狀態(tài);忽略初始狀態(tài),放棄錯(cuò)過的周

38、期。放棄錯(cuò)過的周期。偏移量偏移量指定下一次循環(huán)開始執(zhí)行前的等待時(shí)間。偏移量的值相對(duì)指定下一次循環(huán)開始執(zhí)行前的等待時(shí)間。偏移量的值相對(duì)于下一次循環(huán)的開始時(shí)間,單位由定時(shí)源指定。默認(rèn)值為于下一次循環(huán)的開始時(shí)間,單位由定時(shí)源指定。默認(rèn)值為-1-1,表示無改變。如設(shè)置下一次循環(huán)的偏移量,則必須設(shè),表示無改變。如設(shè)置下一次循環(huán)的偏移量,則必須設(shè)置新的模式值。置新的模式值。周期周期指定定時(shí)循環(huán)下一次循環(huán)的周期,單位由定時(shí)源指定。指定定時(shí)循環(huán)下一次循環(huán)的周期,單位由定時(shí)源指定。默認(rèn)值為默認(rèn)值為-1-1,表示無改變。,表示無改變。優(yōu)先優(yōu)先級(jí)級(jí)指定下一次循環(huán)的執(zhí)行優(yōu)先級(jí)。定時(shí)結(jié)構(gòu)的優(yōu)先級(jí)用于指定下一次循環(huán)的執(zhí)行

39、優(yōu)先級(jí)。定時(shí)結(jié)構(gòu)的優(yōu)先級(jí)用于指定下一次循環(huán)相對(duì)于程序框圖上其它對(duì)象的執(zhí)行開始指定下一次循環(huán)相對(duì)于程序框圖上其它對(duì)象的執(zhí)行開始時(shí)間。優(yōu)先級(jí)的輸入值必須為時(shí)間。優(yōu)先級(jí)的輸入值必須為1 1到到6553565535之間的正整數(shù)。之間的正整數(shù)。處理處理器器指定用于執(zhí)行任務(wù)的處理器。默認(rèn)值為指定用于執(zhí)行任務(wù)的處理器。默認(rèn)值為-2-2,即,即LabVIEWLabVIEW自自動(dòng)分配處理器。如需手動(dòng)分配處理器,可輸入介于動(dòng)分配處理器。如需手動(dòng)分配處理器,可輸入介于0 0和和255255之間的任意值,之間的任意值,0 0代表當(dāng)前的處理器。輸入值超過可代表當(dāng)前的處理器。輸入值超過可用處理器的數(shù)量時(shí),可導(dǎo)致運(yùn)行時(shí)錯(cuò)誤

40、,定時(shí)結(jié)構(gòu)將停用處理器的數(shù)量時(shí),可導(dǎo)致運(yùn)行時(shí)錯(cuò)誤,定時(shí)結(jié)構(gòu)將停止執(zhí)行。止執(zhí)行。超時(shí)超時(shí)指定下一次循環(huán)開始執(zhí)行前的最長等待時(shí)間。超時(shí)的值指定下一次循環(huán)開始執(zhí)行前的最長等待時(shí)間。超時(shí)的值相對(duì)于上一次循環(huán)的結(jié)束時(shí)間,單位由幀定時(shí)源指定。相對(duì)于上一次循環(huán)的結(jié)束時(shí)間,單位由幀定時(shí)源指定。右側(cè)數(shù)據(jù)節(jié)點(diǎn)右側(cè)數(shù)據(jù)節(jié)點(diǎn):實(shí)際結(jié)束實(shí)際結(jié)束i-1i-1返回上一次循環(huán)返回上一次循環(huán)(i-1)(i-1)的實(shí)際結(jié)束時(shí)間。實(shí)際結(jié)束的值相的實(shí)際結(jié)束時(shí)間。實(shí)際結(jié)束的值相對(duì)于定時(shí)循環(huán)的開始時(shí)間,單位由定時(shí)源指定。對(duì)于定時(shí)循環(huán)的開始時(shí)間,單位由定時(shí)源指定。錯(cuò)誤錯(cuò)誤接收并傳遞定時(shí)循環(huán)的錯(cuò)誤,通過子程序框圖返回錯(cuò)誤。接收并傳遞定時(shí)循環(huán)

41、的錯(cuò)誤,通過子程序框圖返回錯(cuò)誤。預(yù)期結(jié)束預(yù)期結(jié)束i-1i-1返回上一次循環(huán)返回上一次循環(huán)(i-1)(i-1)的預(yù)期結(jié)束時(shí)間。預(yù)期結(jié)束的值相的預(yù)期結(jié)束時(shí)間。預(yù)期結(jié)束的值相對(duì)于定時(shí)循環(huán)的開始時(shí)間,單位由定時(shí)源指定。對(duì)于定時(shí)循環(huán)的開始時(shí)間,單位由定時(shí)源指定。延遲完成?延遲完成?i-1i-1如定時(shí)循環(huán)中的上一次循環(huán)未在指定期限之前完成,該如定時(shí)循環(huán)中的上一次循環(huán)未在指定期限之前完成,該接線端將返回接線端將返回TRUETRUE。全局結(jié)束全局結(jié)束時(shí)間時(shí)間返回上一次循環(huán)結(jié)束時(shí)的時(shí)間標(biāo)識(shí),以毫微秒為單位。返回上一次循環(huán)結(jié)束時(shí)的時(shí)間標(biāo)識(shí),以毫微秒為單位。循環(huán)持續(xù)循環(huán)持續(xù)時(shí)間時(shí)間返回執(zhí)行上一次循環(huán)所需時(shí)間的時(shí)間標(biāo)

42、識(shí)。循環(huán)持續(xù)時(shí)返回執(zhí)行上一次循環(huán)所需時(shí)間的時(shí)間標(biāo)識(shí)。循環(huán)持續(xù)時(shí)間的值相對(duì)于循環(huán)的開始時(shí)間,單位由定時(shí)源指定。間的值相對(duì)于循環(huán)的開始時(shí)間,單位由定時(shí)源指定。輸出節(jié)點(diǎn)輸出節(jié)點(diǎn): 向定時(shí)循環(huán)添加幀,可順序執(zhí)行多個(gè)子程序框圖并指定循向定時(shí)循環(huán)添加幀,可順序執(zhí)行多個(gè)子程序框圖并指定循環(huán)中每次循環(huán)的周期。多幀定時(shí)循環(huán)相當(dāng)一個(gè)帶有嵌入順環(huán)中每次循環(huán)的周期。多幀定時(shí)循環(huán)相當(dāng)一個(gè)帶有嵌入順序結(jié)構(gòu)的定時(shí)循環(huán)。如需每幀僅執(zhí)行一次,可右鍵單擊定序結(jié)構(gòu)的定時(shí)循環(huán)。如需每幀僅執(zhí)行一次,可右鍵單擊定時(shí)循環(huán)結(jié)構(gòu)外框并選擇替換為定時(shí)順序。時(shí)循環(huán)結(jié)構(gòu)外框并選擇替換為定時(shí)順序。右鍵單擊結(jié)構(gòu)邊框可右鍵單擊結(jié)構(gòu)邊框可添加添加、刪除刪除

43、及及合并合并幀。幀。多幀定時(shí)循環(huán)的每一幀包括若干節(jié)點(diǎn),如下圖所示。默認(rèn)狀態(tài)多幀定時(shí)循環(huán)的每一幀包括若干節(jié)點(diǎn),如下圖所示。默認(rèn)狀態(tài)下,定時(shí)循環(huán)不顯示所有可用的輸入端和輸出端。如需顯下,定時(shí)循環(huán)不顯示所有可用的輸入端和輸出端。如需顯示所有可用接線端,可調(diào)整節(jié)點(diǎn)大小或右鍵單擊節(jié)點(diǎn)并從示所有可用接線端,可調(diào)整節(jié)點(diǎn)大小或右鍵單擊節(jié)點(diǎn)并從快捷菜單中選擇快捷菜單中選擇顯示隱藏的接線端顯示隱藏的接線端。1 1 輸入節(jié)點(diǎn)輸入節(jié)點(diǎn) 2 2左側(cè)數(shù)據(jù)節(jié)點(diǎn)左側(cè)數(shù)據(jù)節(jié)點(diǎn) 3 3右側(cè)數(shù)據(jù)節(jié)點(diǎn)右側(cè)數(shù)據(jù)節(jié)點(diǎn) 4 4輸出節(jié)點(diǎn)輸出節(jié)點(diǎn)關(guān)于使用定時(shí)循環(huán)的范例見關(guān)于使用定時(shí)循環(huán)的范例見labviewexamplesgeneraltim

44、edloop.llblabviewexamplesgeneraltimedloop.llb。打開范例打開范例 瀏覽相關(guān)范例瀏覽相關(guān)范例 u多幀定時(shí)循環(huán)多幀定時(shí)循環(huán) 可將值連接到輸入節(jié)點(diǎn)的輸入端以可將值連接到輸入節(jié)點(diǎn)的輸入端以配置多幀定時(shí)循環(huán)配置多幀定時(shí)循環(huán),或右鍵,或右鍵單擊輸入節(jié)點(diǎn)并從快捷菜單中選擇單擊輸入節(jié)點(diǎn)并從快捷菜單中選擇 配置輸入節(jié)點(diǎn),在配置輸入節(jié)點(diǎn),在配置多幀配置多幀定時(shí)循環(huán)定時(shí)循環(huán)對(duì)話框的各選項(xiàng)中輸入需要的值。對(duì)話框的各選項(xiàng)中輸入需要的值。 定時(shí)循環(huán)幀的左側(cè)數(shù)據(jù)節(jié)點(diǎn)用于返回各配置參數(shù)值并提供上一定時(shí)循環(huán)幀的左側(cè)數(shù)據(jù)節(jié)點(diǎn)用于返回各配置參數(shù)值并提供上一次循環(huán)或幀的定時(shí)及狀態(tài)信息。右鍵

45、單擊右側(cè)數(shù)據(jù)節(jié)點(diǎn)并從快捷次循環(huán)或幀的定時(shí)及狀態(tài)信息。右鍵單擊右側(cè)數(shù)據(jù)節(jié)點(diǎn)并從快捷菜單中選擇菜單中選擇 配置輸入節(jié)點(diǎn),在配置輸入節(jié)點(diǎn),在配置下一幀定時(shí)配置下一幀定時(shí)對(duì)話框的各選項(xiàng)對(duì)話框的各選項(xiàng)中輸入需要的值。也可將數(shù)據(jù)連接到幀的右側(cè)數(shù)據(jù)節(jié)點(diǎn)以中輸入需要的值。也可將數(shù)據(jù)連接到幀的右側(cè)數(shù)據(jù)節(jié)點(diǎn)以動(dòng)態(tài)配動(dòng)態(tài)配置下一幀置下一幀。 輸出節(jié)點(diǎn)返回由輸入節(jié)點(diǎn)錯(cuò)誤輸入輸入端輸入的錯(cuò)誤信息、執(zhí)輸出節(jié)點(diǎn)返回由輸入節(jié)點(diǎn)錯(cuò)誤輸入輸入端輸入的錯(cuò)誤信息、執(zhí)行中結(jié)構(gòu)產(chǎn)生的錯(cuò)誤信息,或在定時(shí)循環(huán)內(nèi)執(zhí)行的子程序框圖所行中結(jié)構(gòu)產(chǎn)生的錯(cuò)誤信息,或在定時(shí)循環(huán)內(nèi)執(zhí)行的子程序框圖所產(chǎn)生的錯(cuò)誤信息。輸出節(jié)點(diǎn)還返回最后一幀的定時(shí)和狀態(tài)信息。產(chǎn)

46、生的錯(cuò)誤信息。輸出節(jié)點(diǎn)還返回最后一幀的定時(shí)和狀態(tài)信息。定時(shí)順序結(jié)構(gòu)由一個(gè)或多個(gè)子程序框圖(也稱定時(shí)順序結(jié)構(gòu)由一個(gè)或多個(gè)子程序框圖(也稱“幀幀”)組成)組成,在內(nèi)部或外部定時(shí)源控制下按順序執(zhí)行。與定時(shí)循環(huán)不同,在內(nèi)部或外部定時(shí)源控制下按順序執(zhí)行。與定時(shí)循環(huán)不同,定時(shí)順序結(jié)構(gòu)的每個(gè)幀只執(zhí)行一次,不重復(fù)執(zhí)行。如需每幀的定時(shí)順序結(jié)構(gòu)的每個(gè)幀只執(zhí)行一次,不重復(fù)執(zhí)行。如需每幀的執(zhí)行多于一次,可右鍵單擊定時(shí)順序結(jié)構(gòu)外框并選擇替換為定執(zhí)行多于一次,可右鍵單擊定時(shí)順序結(jié)構(gòu)外框并選擇替換為定時(shí)順序。定時(shí)順序結(jié)構(gòu)適于開發(fā)只執(zhí)行一次的精確定時(shí)、執(zhí)行時(shí)順序。定時(shí)順序結(jié)構(gòu)適于開發(fā)只執(zhí)行一次的精確定時(shí)、執(zhí)行反饋、定時(shí)特征等

47、動(dòng)態(tài)改變或有多層執(zhí)行優(yōu)先級(jí)的反饋、定時(shí)特征等動(dòng)態(tài)改變或有多層執(zhí)行優(yōu)先級(jí)的VIVI。在定時(shí)順序結(jié)構(gòu)的數(shù)據(jù)流中,定時(shí)循環(huán)總在優(yōu)先級(jí)未配置為在定時(shí)順序結(jié)構(gòu)的數(shù)據(jù)流中,定時(shí)循環(huán)總在優(yōu)先級(jí)未配置為實(shí)時(shí)優(yōu)先級(jí)的實(shí)時(shí)優(yōu)先級(jí)的VIVI前執(zhí)行。通過前執(zhí)行。通過改變定時(shí)順序結(jié)構(gòu)的優(yōu)先級(jí)改變定時(shí)順序結(jié)構(gòu)的優(yōu)先級(jí)可改可改變定時(shí)順序相對(duì)與程序框圖上其它定時(shí)結(jié)構(gòu)的執(zhí)行順序。變定時(shí)順序相對(duì)與程序框圖上其它定時(shí)結(jié)構(gòu)的執(zhí)行順序。注:注:如程序框圖中同時(shí)存在優(yōu)先級(jí)配置為實(shí)時(shí)的如程序框圖中同時(shí)存在優(yōu)先級(jí)配置為實(shí)時(shí)的VIVI和定時(shí)順序和定時(shí)順序 結(jié)構(gòu),將導(dǎo)致無法預(yù)計(jì)的定時(shí)行為。結(jié)構(gòu),將導(dǎo)致無法預(yù)計(jì)的定時(shí)行為。u 定時(shí)順序結(jié)構(gòu)定時(shí)順序

48、結(jié)構(gòu)右鍵單擊定時(shí)順序結(jié)構(gòu)邊框可右鍵單擊定時(shí)順序結(jié)構(gòu)邊框可添加添加、刪除刪除及及合并合并幀。與幀。與平鋪平鋪式順序結(jié)構(gòu)式順序結(jié)構(gòu)不同,定時(shí)順序結(jié)構(gòu)執(zhí)行前,結(jié)構(gòu)中的每一幀都必不同,定時(shí)順序結(jié)構(gòu)執(zhí)行前,結(jié)構(gòu)中的每一幀都必須具備所有的輸入。一頁幀的輸出不能為另一幀的輸入。須具備所有的輸入。一頁幀的輸出不能為另一幀的輸入。多幀順序結(jié)構(gòu)的每一幀包括若干節(jié)點(diǎn),如下圖所示。默認(rèn)狀多幀順序結(jié)構(gòu)的每一幀包括若干節(jié)點(diǎn),如下圖所示。默認(rèn)狀態(tài)下,定時(shí)順序結(jié)構(gòu)節(jié)點(diǎn)不顯示所有可用的輸入端和輸出端。態(tài)下,定時(shí)順序結(jié)構(gòu)節(jié)點(diǎn)不顯示所有可用的輸入端和輸出端。如需顯示所有可用接線端,可調(diào)整節(jié)點(diǎn)大小或右鍵單擊節(jié)點(diǎn)并如需顯示所有可用接線

49、端,可調(diào)整節(jié)點(diǎn)大小或右鍵單擊節(jié)點(diǎn)并從快捷菜單中選擇從快捷菜單中選擇顯示隱藏的接線端顯示隱藏的接線端。1 輸入節(jié)點(diǎn)輸入節(jié)點(diǎn) 2 左側(cè)數(shù)據(jù)節(jié)點(diǎn)左側(cè)數(shù)據(jù)節(jié)點(diǎn) 3 右側(cè)數(shù)據(jù)節(jié)點(diǎn)右側(cè)數(shù)據(jù)節(jié)點(diǎn) 4 輸出節(jié)點(diǎn)輸出節(jié)點(diǎn)可將值連接到輸入節(jié)點(diǎn)的輸入端以可將值連接到輸入節(jié)點(diǎn)的輸入端以配置一個(gè)定時(shí)順序結(jié)構(gòu)配置一個(gè)定時(shí)順序結(jié)構(gòu),或,或右鍵單擊輸入節(jié)點(diǎn)并從快捷菜單中選擇右鍵單擊輸入節(jié)點(diǎn)并從快捷菜單中選擇 配置輸入節(jié)點(diǎn),在配置輸入節(jié)點(diǎn),在配置配置定時(shí)順序定時(shí)順序?qū)υ捒虻母鬟x項(xiàng)中輸入需要的值。對(duì)話框的各選項(xiàng)中輸入需要的值。定時(shí)順序結(jié)構(gòu)中,每一幀的左側(cè)數(shù)據(jù)節(jié)點(diǎn)用于返回各配置參數(shù)定時(shí)順序結(jié)構(gòu)中,每一幀的左側(cè)數(shù)據(jù)節(jié)點(diǎn)用于返回各配置參數(shù)值和提供當(dāng)前及上一幀的定時(shí)及狀態(tài)信息,如預(yù)計(jì)起始時(shí)間、實(shí)值和提供當(dāng)前及上一幀的定時(shí)及狀態(tài)信息,如預(yù)計(jì)起始時(shí)間、實(shí)際起始時(shí)間及上一幀是否延遲完成。右鍵單擊右側(cè)數(shù)據(jù)節(jié)點(diǎn)并從際起始時(shí)間及上一幀是否延遲完成。右鍵單擊右側(cè)數(shù)據(jù)節(jié)點(diǎn)并從快捷菜單中選擇快捷菜單中選擇 配置輸入節(jié)點(diǎn),在配置輸入節(jié)點(diǎn),在配置下一次循環(huán)配置下一次循環(huán)對(duì)話框的各對(duì)話框的各選項(xiàng)中輸入需要的值。定時(shí)順序幀的右側(cè)數(shù)據(jù)節(jié)點(diǎn)用于選項(xiàng)中輸入需要的值。定時(shí)順序幀的右側(cè)數(shù)據(jù)節(jié)點(diǎn)用于動(dòng)態(tài)配置動(dòng)態(tài)配置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論