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

下載本文檔

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

文檔簡介

1、第2章 程序結(jié)構(gòu)第第2 2章章 程序結(jié)構(gòu)程序結(jié)構(gòu)2.1 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 2.2 分支結(jié)構(gòu)分支結(jié)構(gòu) 2.3 順序結(jié)構(gòu)順序結(jié)構(gòu) 2.4 公式節(jié)點(diǎn)公式節(jié)點(diǎn) 習(xí)題習(xí)題2 第2章 程序結(jié)構(gòu) 本章將系統(tǒng)介紹LabVIEW提供的程序結(jié)構(gòu),包括While Loop(While循環(huán))、For Loop(For循環(huán))、Shift Register(移位寄存器)、Case Structure(分支結(jié)構(gòu))、Sequence Structure(順序結(jié)構(gòu))、Formula Node(公式節(jié)點(diǎn))等。第2章 程序結(jié)構(gòu)2.1 循循 環(huán)環(huán) 結(jié)結(jié) 構(gòu)構(gòu)在LabVIEW中有While循環(huán) 和 For循環(huán) 兩種循環(huán)結(jié)構(gòu)。二者的區(qū)別

2、是:While循環(huán)只要滿足循環(huán)退出的條件則退出相應(yīng)的循環(huán),否則變成死循環(huán);而For循環(huán)是預(yù)先確定循環(huán)次數(shù),當(dāng)循環(huán)體運(yùn)行完指定的次數(shù)后自動退出循環(huán)。2.1.1 While循環(huán)循環(huán)While循環(huán)是LabVIEW最基本的結(jié)構(gòu)之一。當(dāng)不需要指定循環(huán)次數(shù)時,使用While循環(huán)。圖2-1(a)所示為FunctionsExecution Control子模板,While循環(huán)是第一個模塊;圖2-1(b)所示為FunctionsStructures子模板,While循環(huán)在第二行的第二個模塊。二者的不同之處在于,Execution Control子模板中的While循環(huán)的Loop Condition數(shù)據(jù)端子已經(jīng)事

3、先連接了布爾型變量,用于控制何時退出循環(huán)。第2章 程序結(jié)構(gòu)圖2-1 While循環(huán)的位置第2章 程序結(jié)構(gòu)建立While循環(huán)的方法是,在函數(shù)模板中的Structures子模板中選擇While循環(huán)對象,把鼠標(biāo)移動到框圖上,鼠標(biāo)指針變成縮小的While循環(huán)的樣子,按下左鍵拖拽出虛線框,松開鼠標(biāo)左鍵后,While循環(huán)放置完畢。While循環(huán)有兩個固定的數(shù)據(jù)端子,分別是重復(fù)端子(Loop Iteration)和條件端子(Loop Condition)。重復(fù)端子表示當(dāng)前循環(huán)的次數(shù),初始值是0。條件端子連接一個布爾型變量,指示循環(huán)退出或循環(huán)繼續(xù)的條件。具體的循環(huán)繼續(xù)的條件有兩種,即Stop if True

4、和Continue if True ,具體采用哪種方式可在條件端子上彈出的快捷菜單里指定,也可以使用操作工具在端子上單擊鼠標(biāo),以切換兩種不同的條件。條件不同,端子的圖標(biāo)也不同,默認(rèn)是Stop if True。第2章 程序結(jié)構(gòu)While循環(huán)可以進(jìn)行嵌套。【例2.1】 使用While循環(huán)每0.5秒顯示一個隨機(jī)數(shù)和循環(huán)次數(shù),最后波形顯示所有隨機(jī)數(shù)序列。VI的前面板和程序框圖如圖2-2所示,While循環(huán)條件端子與布爾開關(guān)對象相連,只要開關(guān)狀態(tài)為“關(guān)”,程序重復(fù)執(zhí)行,直到條件端子為“開”,停止循環(huán)。While循環(huán)框內(nèi)放置一個隨機(jī)數(shù)對象和Time Delay Express VI,每0.5秒循環(huán)一次,在

5、前面板顯示隨機(jī)數(shù)和循環(huán)次數(shù),最后利用While循環(huán)的自動索引功能將隨機(jī)數(shù)序列通過波形顯示出來,可以看到,波形的橫坐標(biāo)表示循環(huán)次數(shù),當(dāng)循環(huán)次數(shù)為115時,隨機(jī)數(shù)加1是1.38577。第2章 程序結(jié)構(gòu)圖2-2 例2.1的前面板和程序框圖第2章 程序結(jié)構(gòu)2.1.2 移位寄存器移位寄存器使用移位寄存器將上一次循環(huán)的值傳給下一次循環(huán)。添加移位寄存器的方法是:在循環(huán)結(jié)構(gòu)的左邊或右邊框上彈出快捷菜單,選擇菜單項(xiàng)Add Shift Register,可以添加一個移位寄存器,如圖2-3所示。新添加的移位寄存器由左、右兩個端子組成,都是黑色邊框、黃色底色,而且左、右端子分別有一個向下和向上的黑色黑色箭頭。此時,表

6、明移位寄存器中沒有接入任何數(shù)據(jù)沒有接入任何數(shù)據(jù)。當(dāng)接入某種數(shù)據(jù)后,移位寄存器的顏色會發(fā)生相應(yīng)的變化,以反映接入第2章 程序結(jié)構(gòu)數(shù)據(jù)的類型。連接到同一個寄存器端子的數(shù)據(jù)必須是同一類型連接到同一個寄存器端子的數(shù)據(jù)必須是同一類型的的??梢詣?chuàng)建多個左側(cè)移位寄存器,但只能有一個右端子可以創(chuàng)建多個左側(cè)移位寄存器,但只能有一個右端子。添加左端子的方法是:用鼠標(biāo)(定位工具狀態(tài))在左側(cè)移位寄存器的最下邊沿拖動,或在右鍵彈出快捷菜單中選擇Add Element,如圖2-4所示,這樣在多個左端子中保留前面多次循環(huán)的數(shù)據(jù)值。在左端子上,最近一次循環(huán)保留在右端子的數(shù)據(jù)進(jìn)入最上面的端子,原來的數(shù)據(jù)依次向下存放,最下面端子

7、中的數(shù)據(jù)被拋棄。建議為移位寄存器的左端子指定初始化值為移位寄存器的左端子指定初始化值。第2章 程序結(jié)構(gòu)圖2-3 為While循環(huán)添加移位寄存器第2章 程序結(jié)構(gòu)圖2-4 添加多個左側(cè)移位寄存器第2章 程序結(jié)構(gòu)圖2-5 移位寄存器中數(shù)據(jù)的操作流程第2章 程序結(jié)構(gòu)刪除該寄存器端子:在移位寄存器的端子彈出快捷菜單,選擇Remove Element命令可以刪除該寄存器端子,這種方法無論所要刪除的左端子是否連有數(shù)據(jù)都可以。另外一種方法是使用定位工具拖拽整個左端子隊(duì)列的最上沿(向下拖)或者最下沿(向上拖)。在拖的過程中,若遇到連接數(shù)據(jù)線的端子,則只能拖到此處。左側(cè)移位寄存器除了初始化時可以輸入數(shù)據(jù)外,其他情

8、況只能輸出數(shù)據(jù),而右側(cè)移位寄存器除了在循環(huán)結(jié)束時輸出數(shù)據(jù)外,其他情況只能輸入數(shù)據(jù)。 第2章 程序結(jié)構(gòu)【例2.2】 利用移位寄存器顯示多個數(shù)據(jù),理解數(shù)據(jù)在移位寄存器中的工作流程。VI的前面板和程序框圖如圖2-6所示,在While循環(huán)中使用移位寄存器訪問前三次的循環(huán)值。Ni表示循環(huán)次數(shù),此值在下一次循環(huán)開始傳給左端子。Ni-1表示前一次循環(huán)的值,Ni-2表示前兩次循環(huán)的值,Ni-3表示前三次循環(huán)的值。由于While循環(huán)重復(fù)端子的初始值為0,步長為1,因此前面板數(shù)字指示器按照逐漸遞增的順序依次顯示。第2章 程序結(jié)構(gòu)圖2-6 例2.2的前面板和程序框圖第2章 程序結(jié)構(gòu)2.1.3 For循環(huán)循環(huán)For循

9、環(huán)位于FunctionsStructures子模板上。For循環(huán)有兩個固定的數(shù)據(jù)端子,分別是計數(shù)端子(Loop Count)和重復(fù)端子(Loop Iteration),如圖2-8所示。其中計數(shù)端子連接整型數(shù)值,指定循環(huán)次數(shù);重復(fù)端子輸出已經(jīng)執(zhí)行循環(huán)的次數(shù),循環(huán)次數(shù)默認(rèn)從“0”開始計數(shù),依次增加“1”?!纠?.3】 利用For循環(huán)計算100個隨機(jī)數(shù)的最大值。VI的前面板和程序框圖如圖2-9所示。隨機(jī)發(fā)生的數(shù)和前面循環(huán)得到的最大值依次比較,循環(huán)100次,比較得到01之間的最大值。在前面板顯示100個隨機(jī)數(shù)形成的曲線圖和最大值。第2章 程序結(jié)構(gòu)圖2-7 For循環(huán)的位置 第2章 程序結(jié)構(gòu)圖2-8 F

10、or循環(huán)的計數(shù)端子和重復(fù)端子 第2章 程序結(jié)構(gòu)圖2-9 例2.3的前面板和程序框圖第2章 程序結(jié)構(gòu)2.1.4 反饋節(jié)點(diǎn)反饋節(jié)點(diǎn)反饋節(jié)點(diǎn)(Feedback Node)用于將子VI、函數(shù)或一組子VI和函數(shù)的輸出連接到同一個子VI、函數(shù)或組的輸入上,即創(chuàng)建反饋路徑。反饋節(jié)點(diǎn)只能用在While循環(huán)或For循環(huán)中,它和只有一個左端子的移位寄存器的功能完全相同,是一種更簡潔的表達(dá)方式。移位寄存器和反饋節(jié)點(diǎn)之間的轉(zhuǎn)換很容易。在移位寄存器的左或右端子上彈出快捷菜單,選擇Replace with Feedback Node,即可轉(zhuǎn)變?yōu)橥瑯庸δ艿姆答伖?jié)點(diǎn);在反饋節(jié)點(diǎn)本身或者其初始化端子上彈出快捷菜單,選擇Repl

11、ace with Shift Register,即可轉(zhuǎn)變?yōu)橥瑯庸δ艿囊莆患拇嫫鳌H鐖D2-10所示,先建立圖(a),然后把移位寄存器轉(zhuǎn)換為反饋節(jié)點(diǎn)就得到圖(b)。第2章 程序結(jié)構(gòu)圖2-10 移位寄存器和反饋節(jié)點(diǎn)轉(zhuǎn)換 (a)(b)第2章 程序結(jié)構(gòu)2.2 分分 支支 結(jié)結(jié) 構(gòu)構(gòu)分支結(jié)構(gòu)(Case Structure)是一種多分支程序控制結(jié)構(gòu),類似于文本編程語言中的IfThenElse語句。分支結(jié)構(gòu)包含多個子框圖代碼,這些子框圖就像一疊卡片,一次只能看見一張。分支結(jié)構(gòu)位于FunctionsExecution Control子模板和FunctionsStructures子模板上,如圖2-11所示。與Fo

12、r循環(huán)和While循環(huán)結(jié)構(gòu)的使用一樣,通過拖拽Case結(jié)構(gòu)圖標(biāo)將其放置在框圖上,并使其邊框包圍所希望的對象;也可以先將Case結(jié)構(gòu)放置在框圖上,然后根據(jù)需要調(diào)整大小并將對象放到結(jié)構(gòu)內(nèi)部。第2章 程序結(jié)構(gòu)第2章 程序結(jié)構(gòu)圖2-11 分支結(jié)構(gòu)的位置第2章 程序結(jié)構(gòu)分支結(jié)構(gòu)左邊框圖上有一個輸入端子,中心顯示問號,稱做選擇器端子(Selector Terminal);上邊框是分支選擇器標(biāo)簽(Case Selector Label)。選擇器端子的數(shù)據(jù)類型可以是布爾型、字符串型、整型或枚舉型。默認(rèn)的選擇器端子為布爾類型默認(rèn)的選擇器端子為布爾類型,即LabVIEW自動生成兩個子框圖,標(biāo)簽分別為True和Fa

13、lse,如圖2-12所示。當(dāng)選擇端子為數(shù)字整型時,分支選擇器標(biāo)簽的值為整數(shù)0,1,2,;當(dāng)選擇端子為字符串型或枚舉類型時,分支選擇器標(biāo)簽的值為由雙引號括起來的字符串。選擇框架的個數(shù)根據(jù)實(shí)際需要確定,如圖2-13所示。第2章 程序結(jié)構(gòu)圖2-12 分支結(jié)構(gòu)的組成及默認(rèn)狀態(tài)第2章 程序結(jié)構(gòu)圖2-13 不同類型的分支結(jié)構(gòu)第2章 程序結(jié)構(gòu)注意,在使用選擇結(jié)構(gòu)時,控制端子的數(shù)據(jù)類型必須與分支選擇器標(biāo)簽中的數(shù)據(jù)類型一致。二者如果不匹配,LabVIEW會報錯,同時,分支選擇器標(biāo)簽中的字體顏色變?yōu)榧t色。分支結(jié)構(gòu)子框圖是層疊在一起的,用鼠標(biāo)(對象操作工具狀態(tài))單擊分支選擇器標(biāo)簽遞增或遞減按鈕可以將當(dāng)前的選擇框架切

14、換到前一個或后一個選擇框架;單擊標(biāo)簽右端的向下黑色箭頭,彈出所有已經(jīng)定義的標(biāo)簽列表,可以在多個子框圖之間快速跳轉(zhuǎn)。如圖2-14所示,當(dāng)前顯示的框圖分支對應(yīng)的標(biāo)簽前有“”標(biāo)記。 第2章 程序結(jié)構(gòu)圖2-14 多個子框圖之間切換 第2章 程序結(jié)構(gòu)2.2.1 添加、刪除和排序分支添加、刪除和排序分支在分支結(jié)構(gòu)邊框上彈出的快捷菜單為用戶提供很多選項(xiàng),如圖2-15所示。選擇Add Case After(在后面添加分支)或Add Case Before(在前面添加分支)可以在當(dāng)前顯示的分支的后面或前面添加分支;選擇Duplicate Case(副本分支)可以復(fù)制當(dāng)前顯示的分支;選擇Delete Case可以

15、刪除當(dāng)前顯示的分支;選擇Remove Empty Cases可刪除所有不包含代碼的空分支。當(dāng)添加或刪除Case結(jié)構(gòu)中的分支時,框圖標(biāo)識符自動更新以反映出插入或刪除的子框圖。我們習(xí)慣看到分支的順序是從小到大依次排列,但有時會出現(xiàn)2、5、3、4、1的排序,這樣,我們可以重新排序。重新排序后,框圖結(jié)構(gòu)的分支顯示不會影響Case結(jié)構(gòu)的運(yùn)行結(jié)構(gòu),第2章 程序結(jié)構(gòu)僅僅是編程上的習(xí)慣。在彈出的快捷菜單中選擇Rearrange Cases(重排分支),彈出圖2-15所示的對話框。為了改變選擇器的位置,單擊要移動的選擇器值(當(dāng)選中時該值加亮)并將其拖拽到列表中所希望的位置。Sort按鈕將以第一個選擇器值為基準(zhǔn)對

16、分支選擇器值進(jìn)行排序。在LabVIEW的分支結(jié)構(gòu)中,如果結(jié)構(gòu)不能遍歷所有可能的條件或情況,就必須設(shè)置一個默認(rèn)的情況用來處理超出條件選設(shè)置一個默認(rèn)的情況用來處理超出條件選項(xiàng)范圍的情況項(xiàng)范圍的情況。設(shè)置默認(rèn)Case分支的方法是:當(dāng)顯示默認(rèn)子Case框圖時,在分支結(jié)構(gòu)邊框上彈出快捷菜單中選擇Make This Default Case項(xiàng)。對于用戶定義的默認(rèn)分支,將在Case結(jié)構(gòu)頂部的選擇器標(biāo)簽中顯示“Default”字樣。 第2章 程序結(jié)構(gòu)圖2-15 在Case結(jié)構(gòu)中添加、刪除和排序分支第2章 程序結(jié)構(gòu)2.2.2 輸入和輸出數(shù)據(jù)輸入和輸出數(shù)據(jù)向Case結(jié)構(gòu)內(nèi)引入連線,或從Case結(jié)構(gòu)向外引出連線時,

17、會在邊框上生成隧道。輸入隧道的數(shù)據(jù)對所有分支都可以使用。分支不一定要使用輸入數(shù)據(jù)或提供輸出數(shù)據(jù),但如果任何一個分支提供了輸出數(shù)據(jù),則所有的分支也必須提供輸出數(shù)據(jù),否則會導(dǎo)致代碼錯誤,程序無法運(yùn)行。此時,輸出隧道的圖標(biāo)是空心的,表示部分分支中沒有接入輸入值。只有每個分支的輸出隧道都連接數(shù)據(jù)后,圖標(biāo)才變成實(shí)心,程序才能正常運(yùn)行。如果不想為每個分支都明確指定輸出隧道的輸入值,可以讓LabVIEW為沒有接入隧道輸入值的分支接入隧道的默認(rèn)數(shù)據(jù)類型,方法是在輸出隧道上右鍵彈出快捷菜單,選擇Use Default If Unwired,如圖2-16所示。第2章 程序結(jié)構(gòu)圖2-16 在輸出隧道沒有接入數(shù)據(jù)的分

18、支采用默認(rèn)值第2章 程序結(jié)構(gòu)【例2.4】 求一個數(shù)的平方根,若該數(shù)大于或等于0,則計算其平方根,并輸出結(jié)果;若該數(shù)小于0,則讓系統(tǒng)產(chǎn)生蜂鳴。本例中使用布爾型Case結(jié)構(gòu),由前面板數(shù)字控制器輸入數(shù)字,若該數(shù)大于或等于0,則由數(shù)字顯示器顯示該數(shù)的平方根,否則發(fā)出蜂鳴聲。VI的前面板和程序框圖如圖2-17所示。VI執(zhí)行TRUE分支或FALSE分支,當(dāng)輸入的數(shù)據(jù)大于或等于0時,VI執(zhí)行TRUE分支并將計算結(jié)果顯示到前面板;當(dāng)輸入的數(shù)據(jù)小于0時,系統(tǒng)發(fā)出蜂鳴聲。從圖上看到輸入“-5”,輸出的是“0”,這是因?yàn)閷τ贔ALSE分支的輸出端選擇了Use Default If Unwire。另外,Beep.vi

19、在vi.libplatformsystem.lib庫中。第2章 程序結(jié)構(gòu)圖2-17 例2.4的前面板和程序框圖第2章 程序結(jié)構(gòu)2.3 順順 序序 結(jié)結(jié) 構(gòu)構(gòu)順序結(jié)構(gòu)(Sequence Structure)順序地執(zhí)行每個子框架,包括層疊的順序結(jié)構(gòu)(Stacked Sequence Structure)和平鋪的順序結(jié)構(gòu)(Flat Sequence Structure)兩類。平鋪的順序結(jié)構(gòu)位于FunctionsExecution Control子模板上。兩種順序結(jié)構(gòu)都能從FunctionsStructures子模板上找到,見圖2-11。2.3.1 層疊的順序結(jié)構(gòu)層疊的順序結(jié)構(gòu)層疊的順序結(jié)構(gòu)的表現(xiàn)形式

20、與Case結(jié)構(gòu)很相似,都是在框圖窗口的同一位置層疊多個子框架。剛創(chuàng)建的順序結(jié)構(gòu)是單框架順序結(jié)構(gòu)(見圖2-18),只能執(zhí)行一步操作,起不到控制多個代碼段順序執(zhí)行的作用。順序結(jié)構(gòu)執(zhí)行的過程好像逐幀放第2章 程序結(jié)構(gòu)電影一樣,所以LabVIEW中順序結(jié)構(gòu)的每個子框架都稱為一個幀(frame)。在單框架的基礎(chǔ)上創(chuàng)建多框架順序結(jié)構(gòu)。方法是:在順序結(jié)構(gòu)邊框上彈出快捷菜單中選擇Add Frame After或Add Frame Before,在當(dāng)前幀的后面或前面添加一個空白幀,如圖2-19所示。另外,Add Sequence Local選項(xiàng)為順序結(jié)構(gòu)添加局部變量(關(guān)于局部變量見第8章);Remove Seq

21、uence移除順序結(jié)構(gòu),同時保留當(dāng)前幀代碼;Duplicate Frame是對當(dāng)前幀進(jìn)行復(fù)制,并把復(fù)制的結(jié)果作為新的一幀放到當(dāng)前幀的后面;Delete This Frame是刪除當(dāng)前幀,只有一幀的時候此項(xiàng)不能用,如圖2-19(a)所示,只有一幀時,Delete This Frame為不可選項(xiàng)。第2章 程序結(jié)構(gòu)圖2-18 剛創(chuàng)建時的層疊的順序結(jié)構(gòu)第2章 程序結(jié)構(gòu)(a) (b)圖2-19 添加多個幀第2章 程序結(jié)構(gòu)最基本的順序結(jié)構(gòu)由順序框架和選擇器標(biāo)簽組成,如圖2-19(b)所示,選擇器標(biāo)簽的內(nèi)容是10.2,表示該順序結(jié)構(gòu)含有第0到第2幀共3幀,并且第1幀是當(dāng)前幀。選擇器標(biāo)簽左右的兩個箭頭分別為減

22、量按鈕和增量按鈕,用于瀏覽全部幀。單擊向下黑色箭頭打開幀列表,可以實(shí)現(xiàn)多個幀之間的切換。程序運(yùn)行時,順序結(jié)構(gòu)是按照選擇器標(biāo)簽中0、1、2、的順序依次執(zhí)行框架中的代碼。2.3.2 平鋪的順序結(jié)構(gòu)平鋪的順序結(jié)構(gòu)平鋪的順序結(jié)構(gòu)的功能和用法與層疊的順序結(jié)構(gòu)基本相同,區(qū)別是表現(xiàn)形式不同。最初建立的平鋪順序結(jié)構(gòu)也只有一幀,通過添加幀后的形式如圖2-20所示。新添加的幀寬度比較小,拖拽邊框可以改變其大小。第2章 程序結(jié)構(gòu)圖2-20 為平鋪的順序結(jié)構(gòu)添加幀第2章 程序結(jié)構(gòu)平鋪的順序結(jié)構(gòu)把按照順序執(zhí)行的幀從左到右依次鋪開,占用的空間比較大,而層疊的順序結(jié)構(gòu)節(jié)省框圖窗口空間。而平鋪的順序結(jié)構(gòu)優(yōu)點(diǎn)是,在幀數(shù)不多時,

23、將各個幀平鋪開來比較直觀,方便閱讀代碼。平鋪的順序結(jié)構(gòu)和層疊的順序結(jié)構(gòu)的另一個區(qū)別是不能添加局部變量,可以從前一幀直接連線到后一幀來傳遞數(shù)據(jù),不需要借助局部變量這種機(jī)制傳遞數(shù)據(jù)。在圖2-20給出的層疊的順序結(jié)構(gòu)邊框上彈出快捷菜單,選擇Replace-Replace with Flat Sequence可以轉(zhuǎn)換為圖2-21的平鋪順序結(jié)構(gòu),反之亦可。我們可以看到幀1的輸出數(shù)據(jù)直接穿過幀壁傳送到幀2,幀2的計算結(jié)果通過幀壁傳送給幀3,不需要引入局部變量傳送數(shù)據(jù)。 第2章 程序結(jié)構(gòu)圖2-21 平鋪順序結(jié)構(gòu) 第2章 程序結(jié)構(gòu)【例2.5】 將隨機(jī)產(chǎn)生的數(shù)值與給定數(shù)值比較,計算當(dāng)兩數(shù)相等時所需的時間。該例是

24、順序結(jié)構(gòu)的典型應(yīng)用。第一幀確定程序運(yùn)行前的系統(tǒng)時間;第二幀運(yùn)行程序;第三幀確定程序運(yùn)行結(jié)束后的系統(tǒng)時間;最后兩時間相減得到程序運(yùn)行的時間。采用層疊的順序結(jié)構(gòu),VI的前面板和程序框圖如圖2-22所示。幀0和幀2中采用Tick Count(ms)函數(shù),該函數(shù)位于Time & Dialog子模版上,用于返回當(dāng)前系統(tǒng)時間,以毫秒為單位。采用局部變量將程序運(yùn)行前的時間傳遞給幀2與當(dāng)前時間相減的差值就是隨機(jī)數(shù)與給定數(shù)據(jù)相等時所花費(fèi)的時間,結(jié)果除以1000,將時間單位轉(zhuǎn)換為秒,在前面板顯示。第2章 程序結(jié)構(gòu)圖2-22 例2.5的前面板和程序框圖第2章 程序結(jié)構(gòu)【例2.6】 利用平鋪的順序結(jié)構(gòu)實(shí)現(xiàn)例2

25、.5的功能。框圖程序如圖2-23所示,平鋪的順序結(jié)構(gòu)沒有局部變量,需要向后續(xù)的幀傳遞數(shù)據(jù)時,只需要將數(shù)據(jù)直接連接到后續(xù)幀中即可。第2章 程序結(jié)構(gòu)圖2-23 例2.6的框圖程序第2章 程序結(jié)構(gòu)2.4 公公 式式 節(jié)節(jié) 點(diǎn)點(diǎn)一些復(fù)雜的算法如果完全依賴于圖形代碼實(shí)現(xiàn),框圖程序會十分復(fù)雜,工作量大,而且不直觀,調(diào)試和改錯也不方便。LabVIEW提供了一種專門用于處理數(shù)學(xué)公式編輯的特殊結(jié)構(gòu)形式,稱為公式節(jié)點(diǎn)(Formula Node)。在框架內(nèi),可以直接輸入數(shù)學(xué)公式或者方程式,并連接相應(yīng)的輸入、輸出端口。公式節(jié)點(diǎn)位于FunctionsStructures子模板上,見圖2-11。從節(jié)點(diǎn)邊框上彈出快捷菜單中選擇Add Input或Add Output創(chuàng)建輸入變量和輸出變量端口,并使用標(biāo)簽工具為每個變量命名,如圖2-24所示。第2章 程序結(jié)構(gòu)變量名有大小寫之分,必須與公式中的變量匹配。輸出變量的邊框比輸入變量寬一些,通過從快捷菜單中選擇Change to Output或Change to Input可選擇輸出或輸入,同時也可在公式節(jié)點(diǎn)的邊框上添加多個變量。輸入公式時,每個公式一定要用分號結(jié)束;若有很多公式,可以從公式節(jié)點(diǎn)(不是邊框)彈出快捷菜單中選擇Visible It

溫馨提示

  • 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

提交評論