![LABVIEW第2章程序結(jié)構(gòu)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/1b955eb8-9313-4209-b161-25d12763e80a/1b955eb8-9313-4209-b161-25d12763e80a1.gif)
![LABVIEW第2章程序結(jié)構(gòu)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/1b955eb8-9313-4209-b161-25d12763e80a/1b955eb8-9313-4209-b161-25d12763e80a2.gif)
![LABVIEW第2章程序結(jié)構(gòu)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/1b955eb8-9313-4209-b161-25d12763e80a/1b955eb8-9313-4209-b161-25d12763e80a3.gif)
![LABVIEW第2章程序結(jié)構(gòu)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/1b955eb8-9313-4209-b161-25d12763e80a/1b955eb8-9313-4209-b161-25d12763e80a4.gif)
![LABVIEW第2章程序結(jié)構(gòu)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/1b955eb8-9313-4209-b161-25d12763e80a/1b955eb8-9313-4209-b161-25d12763e80a5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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ù)后自動(dòng)退出循環(huán)。2.1.1 While循環(huán)循環(huán)While循環(huán)是LabVIEW最基本的結(jié)構(gòu)之一。當(dāng)不需要指定循環(huán)次數(shù)時(shí),使用While循環(huán)。圖2-1(a)所示為FunctionsExecution Control子模板,While循環(huán)是第一個(gè)模塊;圖2-1(b)所示為FunctionsStructures子模板,While循環(huán)在第二行的第二個(gè)模塊。二者的不同之處在于,Execution Control子模板中的While循環(huán)的Loop Condition數(shù)據(jù)端子已經(jīng)事
3、先連接了布爾型變量,用于控制何時(shí)退出循環(huán)。第2章 程序結(jié)構(gòu)圖2-1 While循環(huán)的位置第2章 程序結(jié)構(gòu)建立While循環(huán)的方法是,在函數(shù)模板中的Structures子模板中選擇While循環(huán)對(duì)象,把鼠標(biāo)移動(dòng)到框圖上,鼠標(biāo)指針變成縮小的While循環(huán)的樣子,按下左鍵拖拽出虛線框,松開(kāi)鼠標(biāo)左鍵后,While循環(huán)放置完畢。While循環(huán)有兩個(gè)固定的數(shù)據(jù)端子,分別是重復(fù)端子(Loop Iteration)和條件端子(Loop Condition)。重復(fù)端子表示當(dāng)前循環(huán)的次數(shù),初始值是0。條件端子連接一個(gè)布爾型變量,指示循環(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)行嵌套?!纠?.1】 使用While循環(huán)每0.5秒顯示一個(gè)隨機(jī)數(shù)和循環(huán)次數(shù),最后波形顯示所有隨機(jī)數(shù)序列。VI的前面板和程序框圖如圖2-2所示,While循環(huán)條件端子與布爾開(kāi)關(guān)對(duì)象相連,只要開(kāi)關(guān)狀態(tài)為“關(guān)”,程序重復(fù)執(zhí)行,直到條件端子為“開(kāi)”,停止循環(huán)。While循環(huán)框內(nèi)放置一個(gè)隨機(jī)數(shù)對(duì)象和Time Delay Express VI,每0.5秒循環(huán)一次,在
5、前面板顯示隨機(jī)數(shù)和循環(huán)次數(shù),最后利用While循環(huán)的自動(dòng)索引功能將隨機(jī)數(shù)序列通過(guò)波形顯示出來(lái),可以看到,波形的橫坐標(biāo)表示循環(huán)次數(shù),當(dāng)循環(huán)次數(shù)為115時(shí),隨機(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,可以添加一個(gè)移位寄存器,如圖2-3所示。新添加的移位寄存器由左、右兩個(gè)端子組成,都是黑色邊框、黃色底色,而且左、右端子分別有一個(gè)向下和向上的黑色黑色箭頭。此時(shí),表
6、明移位寄存器中沒(méi)有接入任何數(shù)據(jù)沒(méi)有接入任何數(shù)據(jù)。當(dāng)接入某種數(shù)據(jù)后,移位寄存器的顏色會(huì)發(fā)生相應(yīng)的變化,以反映接入第2章 程序結(jié)構(gòu)數(shù)據(jù)的類型。連接到同一個(gè)寄存器端子的數(shù)據(jù)必須是同一類型連接到同一個(gè)寄存器端子的數(shù)據(jù)必須是同一類型的的。可以創(chuàng)建多個(gè)左側(cè)移位寄存器,但只能有一個(gè)右端子可以創(chuàng)建多個(gè)左側(cè)移位寄存器,但只能有一個(gè)右端子。添加左端子的方法是:用鼠標(biāo)(定位工具狀態(tài))在左側(cè)移位寄存器的最下邊沿拖動(dòng),或在右鍵彈出快捷菜單中選擇Add Element,如圖2-4所示,這樣在多個(gè)左端子中保留前面多次循環(huán)的數(shù)據(jù)值。在左端子上,最近一次循環(huán)保留在右端子的數(shù)據(jù)進(jìn)入最上面的端子,原來(lái)的數(shù)據(jù)依次向下存放,最下面端子
7、中的數(shù)據(jù)被拋棄。建議為移位寄存器的左端子指定初始化值為移位寄存器的左端子指定初始化值。第2章 程序結(jié)構(gòu)圖2-3 為While循環(huán)添加移位寄存器第2章 程序結(jié)構(gòu)圖2-4 添加多個(gè)左側(cè)移位寄存器第2章 程序結(jié)構(gòu)圖2-5 移位寄存器中數(shù)據(jù)的操作流程第2章 程序結(jié)構(gòu)刪除該寄存器端子:在移位寄存器的端子彈出快捷菜單,選擇Remove Element命令可以刪除該寄存器端子,這種方法無(wú)論所要?jiǎng)h除的左端子是否連有數(shù)據(jù)都可以。另外一種方法是使用定位工具拖拽整個(gè)左端子隊(duì)列的最上沿(向下拖)或者最下沿(向上拖)。在拖的過(guò)程中,若遇到連接數(shù)據(jù)線的端子,則只能拖到此處。左側(cè)移位寄存器除了初始化時(shí)可以輸入數(shù)據(jù)外,其他情
8、況只能輸出數(shù)據(jù),而右側(cè)移位寄存器除了在循環(huán)結(jié)束時(shí)輸出數(shù)據(jù)外,其他情況只能輸入數(shù)據(jù)。 第2章 程序結(jié)構(gòu)【例2.2】 利用移位寄存器顯示多個(gè)數(shù)據(jù),理解數(shù)據(jù)在移位寄存器中的工作流程。VI的前面板和程序框圖如圖2-6所示,在While循環(huán)中使用移位寄存器訪問(wèn)前三次的循環(huán)值。Ni表示循環(huán)次數(shù),此值在下一次循環(huán)開(kāi)始傳給左端子。Ni-1表示前一次循環(huán)的值,Ni-2表示前兩次循環(huán)的值,Ni-3表示前三次循環(huán)的值。由于While循環(huán)重復(fù)端子的初始值為0,步長(zhǎng)為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)有兩個(gè)固定的數(shù)據(jù)端子,分別是計(jì)數(shù)端子(Loop Count)和重復(fù)端子(Loop Iteration),如圖2-8所示。其中計(jì)數(shù)端子連接整型數(shù)值,指定循環(huán)次數(shù);重復(fù)端子輸出已經(jīng)執(zhí)行循環(huán)的次數(shù),循環(huán)次數(shù)默認(rèn)從“0”開(kāi)始計(jì)數(shù),依次增加“1”?!纠?.3】 利用For循環(huán)計(jì)算100個(gè)隨機(jī)數(shù)的最大值。VI的前面板和程序框圖如圖2-9所示。隨機(jī)發(fā)生的數(shù)和前面循環(huán)得到的最大值依次比較,循環(huán)100次,比較得到01之間的最大值。在前面板顯示100個(gè)隨機(jī)數(shù)形成的曲線圖和最大值。第2章 程序結(jié)構(gòu)圖2-7 For循環(huán)的位置 第2章 程序結(jié)構(gòu)圖2-8 F
10、or循環(huán)的計(jì)數(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ù)的輸出連接到同一個(gè)子VI、函數(shù)或組的輸入上,即創(chuàng)建反饋路徑。反饋節(jié)點(diǎn)只能用在While循環(huán)或For循環(huán)中,它和只有一個(gè)左端子的移位寄存器的功能完全相同,是一種更簡(jiǎ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)橥瑯庸δ艿囊莆患拇嫫?。如圖2-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),類似于文本編程語(yǔ)言中的IfThenElse語(yǔ)句。分支結(jié)構(gòu)包含多個(gè)子框圖代碼,這些子框圖就像一疊卡片,一次只能看見(jiàn)一張。分支結(jié)構(gòu)位于FunctionsExecution Control子模板和FunctionsStructures子模板上,如圖2-11所示。與Fo
12、r循環(huán)和While循環(huán)結(jié)構(gòu)的使用一樣,通過(guò)拖拽Case結(jié)構(gòu)圖標(biāo)將其放置在框圖上,并使其邊框包圍所希望的對(duì)象;也可以先將Case結(jié)構(gòu)放置在框圖上,然后根據(jù)需要調(diào)整大小并將對(duì)象放到結(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)左邊框圖上有一個(gè)輸入端子,中心顯示問(wèn)號(hào),稱做選擇器端子(Selector Terminal);上邊框是分支選擇器標(biāo)簽(Case Selector Label)。選擇器端子的數(shù)據(jù)類型可以是布爾型、字符串型、整型或枚舉型。默認(rèn)的選擇器端子為布爾類型默認(rèn)的選擇器端子為布爾類型,即LabVIEW自動(dòng)生成兩個(gè)子框圖,標(biāo)簽分別為True和Fa
13、lse,如圖2-12所示。當(dāng)選擇端子為數(shù)字整型時(shí),分支選擇器標(biāo)簽的值為整數(shù)0,1,2,;當(dāng)選擇端子為字符串型或枚舉類型時(shí),分支選擇器標(biāo)簽的值為由雙引號(hào)括起來(lái)的字符串。選擇框架的個(gè)數(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í),控制端子的數(shù)據(jù)類型必須與分支選擇器標(biāo)簽中的數(shù)據(jù)類型一致。二者如果不匹配,LabVIEW會(huì)報(bào)錯(cuò),同時(shí),分支選擇器標(biāo)簽中的字體顏色變?yōu)榧t色。分支結(jié)構(gòu)子框圖是層疊在一起的,用鼠標(biāo)(對(duì)象操作工具狀態(tài))單擊分支選擇器標(biāo)簽遞增或遞減按鈕可以將當(dāng)前的選擇框架切
14、換到前一個(gè)或后一個(gè)選擇框架;單擊標(biāo)簽右端的向下黑色箭頭,彈出所有已經(jīng)定義的標(biāo)簽列表,可以在多個(gè)子框圖之間快速跳轉(zhuǎn)。如圖2-14所示,當(dāng)前顯示的框圖分支對(duì)應(yīng)的標(biāo)簽前有“”標(biāo)記。 第2章 程序結(jié)構(gòu)圖2-14 多個(gè)子框圖之間切換 第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)中的分支時(shí),框圖標(biāo)識(shí)符自動(dòng)更新以反映出插入或刪除的子框圖。我們習(xí)慣看到分支的順序是從小到大依次排列,但有時(shí)會(huì)出現(xiàn)2、5、3、4、1的排序,這樣,我們可以重新排序。重新排序后,框圖結(jié)構(gòu)的分支顯示不會(huì)影響Case結(jié)構(gòu)的運(yùn)行結(jié)構(gòu),第2章 程序結(jié)構(gòu)僅僅是編程上的習(xí)慣。在彈出的快捷菜單中選擇Rearrange Cases(重排分支),彈出圖2-15所示的對(duì)話框。為了改變選擇器的位置,單擊要移動(dòng)的選擇器值(當(dāng)選中時(shí)該值加亮)并將其拖拽到列表中所希望的位置。Sort按鈕將以第一個(gè)選擇器值為基準(zhǔn)對(duì)
16、分支選擇器值進(jìn)行排序。在LabVIEW的分支結(jié)構(gòu)中,如果結(jié)構(gòu)不能遍歷所有可能的條件或情況,就必須設(shè)置一個(gè)默認(rèn)的情況用來(lái)處理超出條件選設(shè)置一個(gè)默認(rèn)的情況用來(lái)處理超出條件選項(xiàng)范圍的情況項(xiàng)范圍的情況。設(shè)置默認(rèn)Case分支的方法是:當(dāng)顯示默認(rèn)子Case框圖時(shí),在分支結(jié)構(gòu)邊框上彈出快捷菜單中選擇Make This Default Case項(xiàng)。對(duì)于用戶定義的默認(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)向外引出連線時(shí),
17、會(huì)在邊框上生成隧道。輸入隧道的數(shù)據(jù)對(duì)所有分支都可以使用。分支不一定要使用輸入數(shù)據(jù)或提供輸出數(shù)據(jù),但如果任何一個(gè)分支提供了輸出數(shù)據(jù),則所有的分支也必須提供輸出數(shù)據(jù),否則會(huì)導(dǎo)致代碼錯(cuò)誤,程序無(wú)法運(yùn)行。此時(shí),輸出隧道的圖標(biāo)是空心的,表示部分分支中沒(méi)有接入輸入值。只有每個(gè)分支的輸出隧道都連接數(shù)據(jù)后,圖標(biāo)才變成實(shí)心,程序才能正常運(yùn)行。如果不想為每個(gè)分支都明確指定輸出隧道的輸入值,可以讓LabVIEW為沒(méi)有接入隧道輸入值的分支接入隧道的默認(rèn)數(shù)據(jù)類型,方法是在輸出隧道上右鍵彈出快捷菜單,選擇Use Default If Unwired,如圖2-16所示。第2章 程序結(jié)構(gòu)圖2-16 在輸出隧道沒(méi)有接入數(shù)據(jù)的分
18、支采用默認(rèn)值第2章 程序結(jié)構(gòu)【例2.4】 求一個(gè)數(shù)的平方根,若該數(shù)大于或等于0,則計(jì)算其平方根,并輸出結(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時(shí),VI執(zhí)行TRUE分支并將計(jì)算結(jié)果顯示到前面板;當(dāng)輸入的數(shù)據(jù)小于0時(shí),系統(tǒng)發(fā)出蜂鳴聲。從圖上看到輸入“-5”,輸出的是“0”,這是因?yàn)閷?duì)于FALSE分支的輸出端選擇了Use Default If Unwire。另外,Beep.vi
19、在vi.libplatformsystem.lib庫(kù)中。第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í)行每個(gè)子框架,包括層疊的順序結(jié)構(gòu)(Stacked Sequence Structure)和平鋪的順序結(jié)構(gòu)(Flat Sequence Structure)兩類。平鋪的順序結(jié)構(gòu)位于FunctionsExecution Control子模板上。兩種順序結(jié)構(gòu)都能從FunctionsStructures子模板上找到,見(jiàn)圖2-11。2.3.1 層疊的順序結(jié)構(gòu)層疊的順序結(jié)構(gòu)層疊的順序結(jié)構(gòu)的表現(xiàn)形式
20、與Case結(jié)構(gòu)很相似,都是在框圖窗口的同一位置層疊多個(gè)子框架。剛創(chuàng)建的順序結(jié)構(gòu)是單框架順序結(jié)構(gòu)(見(jiàn)圖2-18),只能執(zhí)行一步操作,起不到控制多個(gè)代碼段順序執(zhí)行的作用。順序結(jié)構(gòu)執(zhí)行的過(guò)程好像逐幀放第2章 程序結(jié)構(gòu)電影一樣,所以LabVIEW中順序結(jié)構(gòu)的每個(gè)子框架都稱為一個(gè)幀(frame)。在單框架的基礎(chǔ)上創(chuàng)建多框架順序結(jié)構(gòu)。方法是:在順序結(jié)構(gòu)邊框上彈出快捷菜單中選擇Add Frame After或Add Frame Before,在當(dāng)前幀的后面或前面添加一個(gè)空白幀,如圖2-19所示。另外,Add Sequence Local選項(xiàng)為順序結(jié)構(gòu)添加局部變量(關(guān)于局部變量見(jiàn)第8章);Remove Seq
21、uence移除順序結(jié)構(gòu),同時(shí)保留當(dāng)前幀代碼;Duplicate Frame是對(duì)當(dāng)前幀進(jìn)行復(fù)制,并把復(fù)制的結(jié)果作為新的一幀放到當(dāng)前幀的后面;Delete This Frame是刪除當(dāng)前幀,只有一幀的時(shí)候此項(xiàng)不能用,如圖2-19(a)所示,只有一幀時(shí),Delete This Frame為不可選項(xiàng)。第2章 程序結(jié)構(gòu)圖2-18 剛創(chuàng)建時(shí)的層疊的順序結(jié)構(gòu)第2章 程序結(jié)構(gòu)(a) (b)圖2-19 添加多個(gè)幀第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)簽左右的兩個(gè)箭頭分別為減
22、量按鈕和增量按鈕,用于瀏覽全部幀。單擊向下黑色箭頭打開(kāi)幀列表,可以實(shí)現(xiàn)多個(gè)幀之間的切換。程序運(yùn)行時(shí),順序結(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)形式不同。最初建立的平鋪?lái)樞蚪Y(jié)構(gòu)也只有一幀,通過(guò)添加幀后的形式如圖2-20所示。新添加的幀寬度比較小,拖拽邊框可以改變其大小。第2章 程序結(jié)構(gòu)圖2-20 為平鋪的順序結(jié)構(gòu)添加幀第2章 程序結(jié)構(gòu)平鋪的順序結(jié)構(gòu)把按照順序執(zhí)行的幀從左到右依次鋪開(kāi),占用的空間比較大,而層疊的順序結(jié)構(gòu)節(jié)省框圖窗口空間。而平鋪的順序結(jié)構(gòu)優(yōu)點(diǎn)是,在幀數(shù)不多時(shí),
23、將各個(gè)幀平鋪開(kāi)來(lái)比較直觀,方便閱讀代碼。平鋪的順序結(jié)構(gòu)和層疊的順序結(jié)構(gòu)的另一個(gè)區(qū)別是不能添加局部變量,可以從前一幀直接連線到后一幀來(lái)傳遞數(shù)據(jù),不需要借助局部變量這種機(jī)制傳遞數(shù)據(jù)。在圖2-20給出的層疊的順序結(jié)構(gòu)邊框上彈出快捷菜單,選擇Replace-Replace with Flat Sequence可以轉(zhuǎn)換為圖2-21的平鋪?lái)樞蚪Y(jié)構(gòu),反之亦可。我們可以看到幀1的輸出數(shù)據(jù)直接穿過(guò)幀壁傳送到幀2,幀2的計(jì)算結(jié)果通過(guò)幀壁傳送給幀3,不需要引入局部變量傳送數(shù)據(jù)。 第2章 程序結(jié)構(gòu)圖2-21 平鋪?lái)樞蚪Y(jié)構(gòu) 第2章 程序結(jié)構(gòu)【例2.5】 將隨機(jī)產(chǎn)生的數(shù)值與給定數(shù)值比較,計(jì)算當(dāng)兩數(shù)相等時(shí)所需的時(shí)間。該例是
24、順序結(jié)構(gòu)的典型應(yīng)用。第一幀確定程序運(yùn)行前的系統(tǒng)時(shí)間;第二幀運(yùn)行程序;第三幀確定程序運(yùn)行結(jié)束后的系統(tǒng)時(shí)間;最后兩時(shí)間相減得到程序運(yùn)行的時(shí)間。采用層疊的順序結(jié)構(gòu),VI的前面板和程序框圖如圖2-22所示。幀0和幀2中采用Tick Count(ms)函數(shù),該函數(shù)位于Time & Dialog子模版上,用于返回當(dāng)前系統(tǒng)時(shí)間,以毫秒為單位。采用局部變量將程序運(yùn)行前的時(shí)間傳遞給幀2與當(dāng)前時(shí)間相減的差值就是隨機(jī)數(shù)與給定數(shù)據(jù)相等時(shí)所花費(fèi)的時(shí)間,結(jié)果除以1000,將時(shí)間單位轉(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的功能??驁D程序如圖2-23所示,平鋪的順序結(jié)構(gòu)沒(méi)有局部變量,需要向后續(xù)的幀傳遞數(shù)據(jù)時(shí),只需要將數(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),框圖程序會(huì)十分復(fù)雜,工作量大,而且不直觀,調(diào)試和改錯(cuò)也不方便。LabVIEW提供了一種專門用于處理數(shù)學(xué)公式編輯的特殊結(jié)構(gòu)形式,稱為公式節(jié)點(diǎn)(Formula Node)。在框架內(nèi),可以直接輸入數(shù)學(xué)公式或者方程式,并連接相應(yīng)的輸入、輸出端口。公式節(jié)點(diǎn)位于FunctionsStructures子模板上,見(jiàn)圖2-11。從節(jié)點(diǎn)邊框上彈出快捷菜單中選擇Add Input或Add Output創(chuàng)建輸入變量和輸出變量端口,并使用標(biāo)簽工具為每個(gè)變量命名,如圖2-24所示。第2章 程序結(jié)構(gòu)變量名有大小寫(xiě)之分,必須與公式中的變量匹配。輸出變量的邊框比輸入變量寬一些,通過(guò)從快捷菜單中選擇Change to Output或Change to Input可選擇輸出或輸入,同時(shí)也可在公式節(jié)點(diǎn)的邊框上添加多個(gè)變量。輸入公式時(shí),每個(gè)公式一定要用分號(hào)結(jié)束;若有很多公式,可以從公式節(jié)點(diǎn)(不是邊框)彈出快捷菜單中選擇Visible It
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年日照貨運(yùn)資格證試題及答案
- 2025年阿勒泰駕駛資格證模擬考試
- 2025年甘肅貨運(yùn)從業(yè)資格證年考試題及答案
- 2025年銅仁從業(yè)資格證模擬考試題貨運(yùn)考題
- 監(jiān)理工程師考試合同(2篇)
- 電力實(shí)時(shí)監(jiān)測(cè)合同(2篇)
- 2024-2025學(xué)年高中生物第3章第1節(jié)細(xì)胞膜-系統(tǒng)的邊界練習(xí)含解析新人教版必修1
- 華師大版數(shù)學(xué)七年級(jí)下冊(cè)《多邊形的外角和》聽(tīng)評(píng)課記錄3
- 學(xué)生暑假實(shí)習(xí)總結(jié)
- 幼兒園中班月工作總結(jié)月工作總結(jié)
- 現(xiàn)代漢語(yǔ)詞匯學(xué)精選課件
- PCB行業(yè)安全生產(chǎn)常見(jiàn)隱患及防范措施課件
- 上海音樂(lè)學(xué)院 樂(lè)理試題
- SAP中國(guó)客戶名單
- DB32∕T 186-2015 建筑消防設(shè)施檢測(cè)技術(shù)規(guī)程
- 2022年福建泉州中考英語(yǔ)真題【含答案】
- 汽車座椅骨架的焊接夾具畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(共23頁(yè))
- 露天礦山職業(yè)危害預(yù)先危險(xiǎn)分析表
- 淺談固定資產(chǎn)的審計(jì)
- WZCK-20系列微機(jī)直流監(jiān)控裝置使用說(shuō)明書(shū)(v1.02)
- 模糊推理方法
評(píng)論
0/150
提交評(píng)論