LabVIEW_順序結構_第1頁
LabVIEW_順序結構_第2頁
LabVIEW_順序結構_第3頁
LabVIEW_順序結構_第4頁
LabVIEW_順序結構_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、四、順序結構四、順序結構uLabVIEW_ _數據流運行機制數據流運行機制 傳統的編程語言,傳統的編程語言,程序運行是基于程序編碼的順序程序運行是基于程序編碼的順序,是指令驅,是指令驅動的動的代碼流代碼流。LabVIEW 的運行機制的運行機制是基于數據流的是基于數據流的。也就是說:。也就是說:當程序中的可執行元素(節點)在收到所有必須的輸入數據時才當程序中的可執行元素(節點)在收到所有必須的輸入數據時才開始執行。當該元素內的所有代碼執行完成后,數據才流出該執開始執行。當該元素內的所有代碼執行完成后,數據才流出該執行元素并流向其他元素。行元素并流向其他元素。 數據流的概念源于電子表格的數據處理思

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

3、。而且數據流機制具有制具有并發性并發性,可以使程序并行執行,大大提高運行效率。,可以使程序并行執行,大大提高運行效率。 必須牢記:必須牢記:LabVIEW 采用的采用的數據流運行機制數據流運行機制是依賴數是依賴數據來驅動的。這是初學者要認真注意的問題,忽略這個據來驅動的。這是初學者要認真注意的問題,忽略這個問題將會給程序設計帶來麻煩乃至災難。問題將會給程序設計帶來麻煩乃至災難。 數據流編程機制數據流編程機制為用戶帶來了方便,但同時也在為用戶帶來了方便,但同時也在某些方面存在不足。比如,程序框圖中如果兩個節某些方面存在不足。比如,程序框圖中如果兩個節點同時滿足執行條件,則會同時執行。但在實際問點

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

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

6、的順序不能改變,但可以先變換成層疊式再還原成平鋪式進行改變。可以先變換成層疊式再還原成平鋪式進行改變。傳輸特性:傳輸特性:由于該結構各幀都是平鋪可見的,因此各幀之由于該結構各幀都是平鋪可見的,因此各幀之間的數據可以直接傳輸,無須借助局部變量進行。間的數據可以直接傳輸,無須借助局部變量進行。l 基本操作:基本操作:添加空白幀:右擊添加空白幀:右擊相應邊框,通過快捷菜單添加、插相應邊框,通過快捷菜單添加、插入空白幀或合并幀。入空白幀或合并幀。增量按鈕:增量按鈕:向后翻頁向后翻頁. .層疊式:層疊式:按上下順序層疊排列按上下順序層疊排列選擇器標簽:選擇器標簽:以序號的形式標以序號的形式標示各子框頁的

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

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

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

10、計數器時間計數器到順序結構內記錄程序運行時的初始時間,并到順序結構內記錄程序運行時的初始時間,并與順序局部變量相連,此時黃色框內將會出現一個指向順序結構與順序局部變量相連,此時黃色框內將會出現一個指向順序結構外部的箭頭用以向外傳遞數據。外部的箭頭用以向外傳遞數據。時間計數器時間計數器位于:位于:函數函數編程編程定時定時時間計數器時間計數器。 . .選取第選取第 1 1 幀,實現等于給定值的幀,實現等于給定值的匹配運算匹配運算程序如圖:程序如圖: . .選取第選取第 2 2 幀,同樣放置一個時間計幀,同樣放置一個時間計數器用于返回當前時間,將它減去順數器用于返回當前時間,將它減去順序局部變量傳遞

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

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

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

14、數據傳遞。 另外,也會經常遇到這樣一種情況,對程序中一個控件另外,也會經常遇到這樣一種情況,對程序中一個控件對象,希望對象,希望既能寫入數據,又能讀出數據既能寫入數據,又能讀出數據,這在數據流編,這在數據流編程中是無法實現的,這也需要用局部變量或全局變量代替程中是無法實現的,這也需要用局部變量或全局變量代替該控件來實現。該控件來實現。 局部變量主要用于局部變量主要用于本本VI內內不同位置之間的數據傳遞,而不同位置之間的數據傳遞,而全局變量主要是針對全局變量主要是針對不同不同VI程序之間的數據通信。程序之間的數據通信。 談到局部變量,其實在介紹順序結構時就已經接觸過了,當時談到局部變量,其實在介

15、紹順序結構時就已經接觸過了,當時是添加順序局部變量來傳遞程序初始時間,以便計算程序所執行是添加順序局部變量來傳遞程序初始時間,以便計算程序所執行的時間。目的是在不同選擇分支中都能夠對指示器進行賦值。的時間。目的是在不同選擇分支中都能夠對指示器進行賦值。 另一種方法是:另一種方法是:在右在右 擊控件對象的快捷菜擊控件對象的快捷菜 單中執行單中執行 “創建創建局局 部變量部變量”, ,如圖如圖 1.1.局部變量局部變量u建立局部變量:建立局部變量:建立局部變量的方法有兩種。建立局部變量的方法有兩種。 一種一種方法是:方法是:在程序框圖中直接添加,在程序框圖中直接添加,如圖:如圖:如此創建的變量屬于

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

17、以向它寫入數據以向它寫入數據5A5A;如果電流小于;如果電流小于5A5A時,則將電流通過時,則將電流通過一個一個 “電流顯示器電流顯示器” 來顯示,這時就需要將電流局部來顯示,這時就需要將電流局部變量改變為變量改變為讀取狀態讀取狀態,方法是在快捷菜單上執行,方法是在快捷菜單上執行 “轉轉化為讀取化為讀取” 命令。命令。 全局變量與局部變量不同,它是在不同的程序之間進行全局變量與局部變量不同,它是在不同的程序之間進行通信。通信。LabVIEW 的全局變量是一個獨立的的全局變量是一個獨立的VI,它是一種,它是一種特殊的程序,沒有程序框圖只有前面板,功能是保存一個特殊的程序,沒有程序框圖只有前面板,

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

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

20、全局變量時必須特別小心,因為它對所有的使用全局變量時必須特別小心,因為它對所有的 LabVIEW 程序都是通用的,稍有不慎就可能互相干擾,用戶必須清楚的知道程序都是通用的,稍有不慎就可能互相干擾,用戶必須清楚的知道全局變量的讀寫位置。全局變量的讀寫位置。 LabVIEW LabVIEW 語言編程是一種數據流,全局變量和局部變量語言編程是一種數據流,全局變量和局部變量提供了一種違反嚴格數據流的程序設計方式。大家有必要提供了一種違反嚴格數據流的程序設計方式。大家有必要了解競態條件的缺陷,當兩個或兩個以上的事件可以按任了解競態條件的缺陷,當兩個或兩個以上的事件可以按任何順序發生時就產生了競態條件。用

21、戶要想知道再多個并何順序發生時就產生了競態條件。用戶要想知道再多個并行的程序中一個全局變量什么時候被訪問是比較困難的。行的程序中一個全局變量什么時候被訪問是比較困難的。特別是再多線程編程中,對這種共享數據變量的競態條件特別是再多線程編程中,對這種共享數據變量的競態條件問題要求更加苛刻,使用全局變量會帶來意想不到的錯誤。問題要求更加苛刻,使用全局變量會帶來意想不到的錯誤。 如果用戶的應用程序中有全局變量,那么就存在大量的如果用戶的應用程序中有全局變量,那么就存在大量的數據復制的危險,因為用戶要想在不同的地方對數據進行數據復制的危險,因為用戶要想在不同的地方對數據進行處理,最終就有許多的數據備份,

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

23、制,基于數據流驅動的編程機制,在某些情況下,希望改變在某些情況下,希望改變這種運行這種運行方式,賦予人方式,賦予人為控制或程序控制的因素,這就需要借助于為控制或程序控制的因素,這就需要借助于事件事件結構結構來實現。來實現。 所謂所謂事件事件是活動(動作)發生的異步通知,它是活動(動作)發生的異步通知,它將打破數據流驅動的模式,引入將打破數據流驅動的模式,引入事件驅動事件驅動的編程的編程機制。事件的觸發來自機制。事件的觸發來自用戶控制、外部用戶控制、外部 I/O或程或程序控制序控制。事件結構是面。事件結構是面向對象編程向對象編程的基礎。的基礎。 六、事件結構六、事件結構2. 事件結構的基本組成事

24、件結構的基本組成(程序程序結構結構事件結構)事件結構)事件選擇標簽事件選擇標簽超時端子超時端子事件數據節點事件數據節點 超時端子:超時端子:用于設定用于設定一個超時時限,以一個超時時限,以毫秒毫秒為單位。為單位。 其值為其值為-1-1時將永遠處時將永遠處于等待狀態,直至指定于等待狀態,直至指定事件觸發為止。事件觸發為止。 該值該值為為00的整數的整數時,時,指定事件在等待期間內指定事件在等待期間內若觸發則已,否則若超若觸發則已,否則若超時,將終止事件觸發,時,將終止事件觸發,并返回一個并返回一個超時事件超時事件。 事件數據節點:事件數據節點:由若干由若干個事件數據端子組成,用個事件數據端子組成

25、,用來設計事件過程,完成具來設計事件過程,完成具體的事件,實現特定功能體的事件,實現特定功能與操作。與操作。 事件選擇標簽:事件選擇標簽:用于標識當前用于標識當前顯示子框圖所處理的事件源,以顯示子框圖所處理的事件源,以折疊方式進行切換。折疊方式進行切換。說明:說明:如果單獨使用一個事件過程,只能響應一次事件,為了能夠持續響應多個事如果單獨使用一個事件過程,只能響應一次事件,為了能夠持續響應多個事 件,常將其嵌套在件,常將其嵌套在 While 循環中。循環中。 事件結構執行時,將事件結構執行時,將等待一個事前指定事件等待一個事前指定事件的觸發,一旦該事件觸的觸發,一旦該事件觸發,將執行相應的條件

26、發,將執行相應的條件分支。一個事件處理完分支。一個事件處理完畢后,事件結構的執行畢后,事件結構的執行即告完成。即告完成。 如果在如果在等待等待事件觸發事件觸發的過程中超時,將轉去的過程中超時,將轉去執行特定的執行特定的超時分支超時分支。事件的執行:事件的執行:u工作原理:工作原理:事件結構的工作原理猶如具有內置事件結構的工作原理猶如具有內置等待通知等待通知函數的函數的條件結構條件結構。事件結構可包含多個分支,一個分支即一個獨立的事。事件結構可包含多個分支,一個分支即一個獨立的事件處理程序。件處理程序。 一個分支配置可處理一個或多個事件,但每次只能一個分支配置可處理一個或多個事件,但每次只能觸發

27、觸發(發生)(發生)這些事件中的一個事件。這些事件中的一個事件。 u事件觸發:事件觸發:一般事件只能通過外在用戶的動作來觸發,如單擊一般事件只能通過外在用戶的動作來觸發,如單擊鼠標、按鍵等。如果需要內部數據觸發事件(如當鼠標、按鍵等。如果需要內部數據觸發事件(如當 abab 條件滿足條件滿足時觸發一個事件),就需要用戶自定義事件時觸發一個事件),就需要用戶自定義事件通過編程通過編程來實現。來實現。u事件驅動:事件驅動:事件驅動程序通常包含在一個條件循環中,該循環事件驅動程序通常包含在一個條件循環中,該循環等待事件的等待事件的觸發觸發并執行代碼來響應事件,然后不斷重復以等待下并執行代碼來響應事件

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

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

30、事件的觸發,過濾事件過濾事件用來控制在執行某個動作后,系統尚未響應之用來控制在執行某個動作后,系統尚未響應之前進行前進行提醒提醒。當事件發生時,用戶可以過濾掉甚至完全放棄事件所觸發的活動。當事件發生時,用戶可以過濾掉甚至完全放棄事件所觸發的活動。4、應用舉例:、應用舉例:n前面板前面板n后面板后面板. . 點擊不同按鈕,顯示不同內容點擊不同按鈕,顯示不同內容l前面板:前面板: 密碼控制進行圖片顯示密碼控制進行圖片顯示l后面板:后面板:七、定時結構七、定時結構-定時循環和定時順序結構定時循環和定時順序結構 在程序框圖上使用定時循環或定時順序結構,可實在程序框圖上使用定時循環或定時順序結構,可實現

31、需要現需要限時限時和和延時延時的操作。定時循環將重復執行,直的操作。定時循環將重復執行,直到停止條件被滿足為止。到停止條件被滿足為止。 定時順序結構以特定結構執行代碼一次。多幀定時定時順序結構以特定結構執行代碼一次。多幀定時循環用于在限時及延時條件下按特定順序重復執行代循環用于在限時及延時條件下按特定順序重復執行代碼。碼。 定時循環是以指定的時間間隔執行一個子程序或幀。定定時循環是以指定的時間間隔執行一個子程序或幀。定時循環結構可用于開發重復執行且包括其它功能的時循環結構可用于開發重復執行且包括其它功能的VIVI,如,如多速率定時功能、精確定時、循環執行時反饋、動態改變多速率定時功能、精確定時

32、、循環執行時反饋、動態改變定時功能或者多種執行優先級。定時功能或者多種執行優先級。 與與 While 循環不同,定時循環的循環不同,定時循環的條件接線端條件接線端不一定不一定 要要連線。但是,如定時循環的條件接線端未進行任何連線。但是,如定時循環的條件接線端未進行任何 連線,連線,循環將循環將無限運行無限運行下去。下去。1.1.定時循環結構定時循環結構 輸入節點輸入節點 左側數據節點左側數據節點 右側數據節點右側數據節點 輸出節點輸出節點 輸入節點輸入節點: :期限期限指定定時循環必須完成指定定時循環必須完成一次循環的時間一次循環的時間。如未給期限賦值,。如未給期限賦值,則期限等于周期。期限的

33、值相對于循環的開始時間,單位則期限等于周期。期限的值相對于循環的開始時間,單位由定時源指定。由定時源指定。錯誤錯誤在結構中傳遞錯誤。當接收到在結構中傳遞錯誤。當接收到錯誤狀態錯誤狀態時,定時循環將不時,定時循環將不執行。執行。模式模式指定定時循環處理執行延遲的方式。指定定時循環處理執行延遲的方式。共有五種模式:共有五種模式:無改無改變;根據初始狀態處理錯過的周期;忽略初始狀態,處理變;根據初始狀態處理錯過的周期;忽略初始狀態,處理錯過的周期;放棄錯過的周期,維持初始狀態;忽略初始錯過的周期;放棄錯過的周期,維持初始狀態;忽略初始狀態,放棄錯過的周期。狀態,放棄錯過的周期。名稱名稱指定定時循環的

34、名稱。指定定時循環的名稱。偏移量偏移量指定定時循環開始執行前的等待時間。偏移量的值相對于指定定時循環開始執行前的等待時間。偏移量的值相對于循環的開始時間,單位是定時源的絕對單位。循環的開始時間,單位是定時源的絕對單位。周期周期指定定時循環的周期,單位是定時源的相對單位。指定定時循環的周期,單位是定時源的相對單位。優先級優先級指定定時循環中的執行優先級。定時結構的優先級用于指定定時循環中的執行優先級。定時結構的優先級用于指定定時結構相對于程序框圖上其它對象的執行開始時指定定時結構相對于程序框圖上其它對象的執行開始時間。優先級的輸入值必須為間。優先級的輸入值必須為1 1到到6553565535之間

35、的正整數。之間的正整數。處理器處理器指定用于執行任務的處理器。默認值為指定用于執行任務的處理器。默認值為-2-2,即,即LabVIEWLabVIEW自自動分配處理器。如需手動分配處理器,可輸入介于動分配處理器。如需手動分配處理器,可輸入介于0 0和和255255之間的任意值,之間的任意值,0 0代表當前的處理器。輸入值超過可代表當前的處理器。輸入值超過可用處理器的數量時,可導致運行時錯誤,定時結構將停用處理器的數量時,可導致運行時錯誤,定時結構將停止執行。止執行。源名稱源名稱指定用于控制結構的定時源的名稱。定時源必須通過指定用于控制結構的定時源的名稱。定時源必須通過創創建定時源建定時源VIVI

36、在程序框圖上創建,或從在程序框圖上創建,或從配置定時循環配置定時循環對話對話框中選擇。框中選擇。超時超時指定定時循環開始執行前的最長等待時間。超時的值相指定定時循環開始執行前的最長等待時間。超時的值相對于定時循環的開始時間或上一次循環的結束時間,單對于定時循環的開始時間或上一次循環的結束時間,單位由幀定時源指定。位由幀定時源指定。輸入節點輸入節點: :右側數據節點右側數據節點:期限期限指定定時循環必須完成下一次循環的時間。期限的值相對指定定時循環必須完成下一次循環的時間。期限的值相對于下一次循環的開始時間,單位由定時源指定。默認值為于下一次循環的開始時間,單位由定時源指定。默認值為-1-1,表

37、示無改變。,表示無改變。錯誤錯誤將子程序框圖中的錯誤傳出定時循環。如錯誤接收到錯誤將子程序框圖中的錯誤傳出定時循環。如錯誤接收到錯誤狀態,定時循環將結束當前循環,退出定時循環,并在輸狀態,定時循環將結束當前循環,退出定時循環,并在輸出節點返回錯誤狀態。出節點返回錯誤狀態。模式模式指定定時循環下一次循環的模式。共有五種模式:無改變;指定定時循環下一次循環的模式。共有五種模式:無改變;根據初始狀態處理錯過的周期;忽略初始狀態,處理錯過根據初始狀態處理錯過的周期;忽略初始狀態,處理錯過的周期;放棄錯過的周期,維持初始狀態;忽略初始狀態,的周期;放棄錯過的周期,維持初始狀態;忽略初始狀態,放棄錯過的周

38、期。放棄錯過的周期。偏移量偏移量指定下一次循環開始執行前的等待時間。偏移量的值相對指定下一次循環開始執行前的等待時間。偏移量的值相對于下一次循環的開始時間,單位由定時源指定。默認值為于下一次循環的開始時間,單位由定時源指定。默認值為-1-1,表示無改變。如設置下一次循環的偏移量,則必須設,表示無改變。如設置下一次循環的偏移量,則必須設置新的模式值。置新的模式值。周期周期指定定時循環下一次循環的周期,單位由定時源指定。指定定時循環下一次循環的周期,單位由定時源指定。默認值為默認值為-1-1,表示無改變。,表示無改變。優先優先級級指定下一次循環的執行優先級。定時結構的優先級用于指定下一次循環的執行

39、優先級。定時結構的優先級用于指定下一次循環相對于程序框圖上其它對象的執行開始指定下一次循環相對于程序框圖上其它對象的執行開始時間。優先級的輸入值必須為時間。優先級的輸入值必須為1 1到到6553565535之間的正整數。之間的正整數。處理處理器器指定用于執行任務的處理器。默認值為指定用于執行任務的處理器。默認值為-2-2,即,即LabVIEWLabVIEW自自動分配處理器。如需手動分配處理器,可輸入介于動分配處理器。如需手動分配處理器,可輸入介于0 0和和255255之間的任意值,之間的任意值,0 0代表當前的處理器。輸入值超過可代表當前的處理器。輸入值超過可用處理器的數量時,可導致運行時錯誤

40、,定時結構將停用處理器的數量時,可導致運行時錯誤,定時結構將停止執行。止執行。超時超時指定下一次循環開始執行前的最長等待時間。超時的值指定下一次循環開始執行前的最長等待時間。超時的值相對于上一次循環的結束時間,單位由幀定時源指定。相對于上一次循環的結束時間,單位由幀定時源指定。右側數據節點右側數據節點:實際結束實際結束i-1i-1返回上一次循環返回上一次循環(i-1)(i-1)的實際結束時間。實際結束的值相的實際結束時間。實際結束的值相對于定時循環的開始時間,單位由定時源指定。對于定時循環的開始時間,單位由定時源指定。錯誤錯誤接收并傳遞定時循環的錯誤,通過子程序框圖返回錯誤。接收并傳遞定時循環

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

42、識。循環持續時返回執行上一次循環所需時間的時間標識。循環持續時間的值相對于循環的開始時間,單位由定時源指定。間的值相對于循環的開始時間,單位由定時源指定。輸出節點輸出節點: 向定時循環添加幀,可順序執行多個子程序框圖并指定循向定時循環添加幀,可順序執行多個子程序框圖并指定循環中每次循環的周期。多幀定時循環相當一個帶有嵌入順環中每次循環的周期。多幀定時循環相當一個帶有嵌入順序結構的定時循環。如需每幀僅執行一次,可右鍵單擊定序結構的定時循環。如需每幀僅執行一次,可右鍵單擊定時循環結構外框并選擇替換為定時順序。時循環結構外框并選擇替換為定時順序。右鍵單擊結構邊框可右鍵單擊結構邊框可添加添加、刪除刪除

43、及及合并合并幀。幀。多幀定時循環的每一幀包括若干節點,如下圖所示。默認狀態多幀定時循環的每一幀包括若干節點,如下圖所示。默認狀態下,定時循環不顯示所有可用的輸入端和輸出端。如需顯下,定時循環不顯示所有可用的輸入端和輸出端。如需顯示所有可用接線端,可調整節點大小或右鍵單擊節點并從示所有可用接線端,可調整節點大小或右鍵單擊節點并從快捷菜單中選擇快捷菜單中選擇顯示隱藏的接線端顯示隱藏的接線端。1 1 輸入節點輸入節點 2 2左側數據節點左側數據節點 3 3右側數據節點右側數據節點 4 4輸出節點輸出節點關于使用定時循環的范例見關于使用定時循環的范例見labviewexamplesgeneraltim

44、edloop.llblabviewexamplesgeneraltimedloop.llb。打開范例打開范例 瀏覽相關范例瀏覽相關范例 u多幀定時循環多幀定時循環 可將值連接到輸入節點的輸入端以可將值連接到輸入節點的輸入端以配置多幀定時循環配置多幀定時循環,或右鍵,或右鍵單擊輸入節點并從快捷菜單中選擇單擊輸入節點并從快捷菜單中選擇 配置輸入節點,在配置輸入節點,在配置多幀配置多幀定時循環定時循環對話框的各選項中輸入需要的值。對話框的各選項中輸入需要的值。 定時循環幀的左側數據節點用于返回各配置參數值并提供上一定時循環幀的左側數據節點用于返回各配置參數值并提供上一次循環或幀的定時及狀態信息。右鍵

45、單擊右側數據節點并從快捷次循環或幀的定時及狀態信息。右鍵單擊右側數據節點并從快捷菜單中選擇菜單中選擇 配置輸入節點,在配置輸入節點,在配置下一幀定時配置下一幀定時對話框的各選項對話框的各選項中輸入需要的值。也可將數據連接到幀的右側數據節點以中輸入需要的值。也可將數據連接到幀的右側數據節點以動態配動態配置下一幀置下一幀。 輸出節點返回由輸入節點錯誤輸入輸入端輸入的錯誤信息、執輸出節點返回由輸入節點錯誤輸入輸入端輸入的錯誤信息、執行中結構產生的錯誤信息,或在定時循環內執行的子程序框圖所行中結構產生的錯誤信息,或在定時循環內執行的子程序框圖所產生的錯誤信息。輸出節點還返回最后一幀的定時和狀態信息。產

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

47、動態改變或有多層執行優先級的反饋、定時特征等動態改變或有多層執行優先級的VIVI。在定時順序結構的數據流中,定時循環總在優先級未配置為在定時順序結構的數據流中,定時循環總在優先級未配置為實時優先級的實時優先級的VIVI前執行。通過前執行。通過改變定時順序結構的優先級改變定時順序結構的優先級可改可改變定時順序相對與程序框圖上其它定時結構的執行順序。變定時順序相對與程序框圖上其它定時結構的執行順序。注:注:如程序框圖中同時存在優先級配置為實時的如程序框圖中同時存在優先級配置為實時的VIVI和定時順序和定時順序 結構,將導致無法預計的定時行為。結構,將導致無法預計的定時行為。u 定時順序結構定時順序

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

49、端,可調整節點大小或右鍵單擊節點并從快捷菜單中選擇從快捷菜單中選擇顯示隱藏的接線端顯示隱藏的接線端。1 輸入節點輸入節點 2 左側數據節點左側數據節點 3 右側數據節點右側數據節點 4 輸出節點輸出節點可將值連接到輸入節點的輸入端以可將值連接到輸入節點的輸入端以配置一個定時順序結構配置一個定時順序結構,或,或右鍵單擊輸入節點并從快捷菜單中選擇右鍵單擊輸入節點并從快捷菜單中選擇 配置輸入節點,在配置輸入節點,在配置配置定時順序定時順序對話框的各選項中輸入需要的值。對話框的各選項中輸入需要的值。定時順序結構中,每一幀的左側數據節點用于返回各配置參數定時順序結構中,每一幀的左側數據節點用于返回各配置參數值和提供當前及上一幀的定時及狀態信息,如預計起始時間、實值和提供當前及上一幀的定時及狀態信息,如預計起始時間、實際起始時間及上一幀是否延遲完成。右鍵單擊右側數據節點并從際起始時間及上一幀是否延遲完成。右鍵單擊右側數據節點并從快捷菜單中選擇快捷菜單中選擇 配置輸入節點,在配置輸入節點,在配置下一次循環配置下一次循環對話框的各對話框的各選項中輸入需要的值。定時順序幀的右側數據節點用于選項中輸入需要的值。定時順序幀的右側數據節點用于動態配置動態配置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論