版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章程序結(jié)構(gòu)本章將系統(tǒng)介紹LabVIEW提供的程序結(jié)構(gòu),包括While
Loop(While循環(huán))、For
Loop(For循環(huán))、Shift
Register(移位寄存器)、CaseStructure(分支結(jié)構(gòu))、Sequence
Structure(順序結(jié)構(gòu))、Formula
Node(公式節(jié)點(diǎn))等。目前一頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)2.1 循環(huán)結(jié)構(gòu)在LabVIEW中有While循環(huán)和For循環(huán)
兩種循環(huán)結(jié)構(gòu)。二者的區(qū)別是: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)While循環(huán)是LabVIEW最基本的結(jié)構(gòu)之一。當(dāng)不需要指定循環(huán)次數(shù)
時(shí),使用While循環(huán)。圖2-1(a)所示為Functions→Execution
Control子模板,While循環(huán)是第一個(gè)模塊;圖2-1(b)所示為Functions→Structures子模板,While循環(huán)在第二行的第二個(gè)模塊。二者的不同之處在于,Execution
Control子模板中的While循環(huán)的Loop
Condition數(shù)據(jù)端子已經(jīng)事先連接了布爾型變量,用于控制何時(shí)退出循環(huán)。目前二頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-1
While循環(huán)的位置目前三頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)n)建立While循環(huán)的方法是,在函數(shù)模板中的Structures子模板中選擇While循環(huán)對(duì)象,把鼠標(biāo)移動(dòng)到框圖上,鼠標(biāo)指針變成縮小的While循環(huán)的樣子,按下左鍵拖拽出虛線框,松開鼠標(biāo)左鍵后,While循環(huán)放置完畢。While循環(huán)有兩個(gè)固定的數(shù)據(jù)端子,分別是重復(fù)端子(Loop
Iteratio
和條件端子(Loop
Condition)
。重復(fù)端子表示當(dāng)前循環(huán)的次數(shù),初始值是0。條件端子連接一個(gè)布爾型變量,指示循環(huán)退出或循環(huán)繼續(xù)的條件。具體的循環(huán)繼續(xù)的條件有兩
種,即Stop
if
True
和Continue
if
True
,具體采用哪種方式可在條件端子上彈出的快捷菜單里指定,也可以使用操作
工具在端子上單擊鼠標(biāo),以切換兩種不同的條件。條件不同,
端子的圖標(biāo)也不同,默認(rèn)是Stop
if
True。目前四頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第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)條件端子與布爾開關(guān)對(duì)象相連,只要開關(guān)狀態(tài)為“關(guān)”,程序重復(fù)執(zhí)行,直到條件端子為“開”,停止循環(huán)。While循環(huán)框內(nèi)放置一個(gè)隨機(jī)數(shù)對(duì)象和Time
DelayExpress
VI,每0.5秒循環(huán)一次,在前面板顯示隨機(jī)數(shù)和循環(huán)次數(shù),最后利用While循環(huán)的自動(dòng)索引功能將隨機(jī)數(shù)序列通過波形顯示出來(lái),可以看到,波形的橫坐標(biāo)表示循環(huán)次數(shù),當(dāng)循環(huán)次數(shù)為115時(shí),隨機(jī)數(shù)加1是1.38577。目前五頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-2例2.1的前面板和程序框圖目前六頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第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í),表明移位寄存器中沒有接入任何數(shù)據(jù)。當(dāng)接入某種數(shù)據(jù)后,移位寄
存器的顏色會(huì)發(fā)生相應(yīng)的變化,以反映接入目前七頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)數(shù)據(jù)的類型。連接到同一個(gè)寄存器端子的數(shù)據(jù)必須是同一類型的??梢詣?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ù)依次向下存放,最下面端子中的數(shù)據(jù)被拋棄。建議為移位寄存器的左端子指定初始化值。目前八頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-3
為While循環(huán)添加移位寄存器目前九頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-4
添加多個(gè)左側(cè)移位寄存器目前十頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-5
移位寄存器中數(shù)據(jù)的操作流程目前十一頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)刪除該寄存器端子:在移位寄存器的端子彈出快捷菜單,選擇Remove
Element命令可以刪除該寄存器端子,這種方法無(wú)論所
要?jiǎng)h除的左端子是否連有數(shù)據(jù)都可以。另外一種方法是使用定位工具拖拽整個(gè)左端子隊(duì)列的最上沿(向下拖)或者最下沿(向上拖)。在拖的過程中,若遇到連接數(shù)據(jù)線的端子,則只能拖到此處。左側(cè)移位寄存器除了初始化時(shí)可以輸入數(shù)據(jù)外,其他情況只能輸出數(shù)據(jù),而右側(cè)移位寄存器除了在循環(huán)結(jié)束時(shí)輸出數(shù)據(jù)外,其他情況只能輸入數(shù)據(jù)。目前十二頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)【例2.2】利用移位寄存器顯示多個(gè)數(shù)據(jù),理解數(shù)據(jù)在移位寄存器中的工作流程。VI的前面板和程序框圖如圖2-6所示,在While循環(huán)中使用移位寄存器訪問前三次的循環(huán)值。N[i]表示循環(huán)次數(shù),此值在下一次循環(huán)開始傳給左端子。N[i-1]表示前一次循環(huán)的值,N[i-2]表示前兩次循環(huán)的值,N[i-3]表示前三次循環(huán)的值。由于While循環(huán)重復(fù)端子的初始值為0,步
長(zhǎng)為1,因此前面板數(shù)字指示器按照逐漸遞增的順序依次顯示。目前十三頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-6
例2.2的前面板和程序框圖目前十四頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)2.1.3
For循環(huán)For循環(huán)位于Functions→Structures子模板上。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”開始計(jì)數(shù),依次增加“1”?!纠?.3】利用For循環(huán)計(jì)算100個(gè)隨機(jī)數(shù)的最大值。VI的前面板和程序框圖如圖2-9所示。隨機(jī)發(fā)生的數(shù)和前面循環(huán)得到的最大值依次比較,循環(huán)100次,比較得到0~1之間的最大值。在前面板顯示100個(gè)隨機(jī)數(shù)形成的曲線圖和最大值。目前十五頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-7
For循環(huán)的位置目前十六頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-8
For循環(huán)的計(jì)數(shù)端子和重復(fù)端子目前十七頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-9例2.3的前面板和程序框圖目前十八頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)2.1.4反饋節(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)本身或者其初始化端子上彈出快捷菜單,選擇Replace
with
Shift
Register,即可轉(zhuǎn)變?yōu)橥瑯庸δ艿囊莆患拇嫫?。如圖2-10所示,先建立圖(a),然后把移位寄存器轉(zhuǎn)換為反饋節(jié)點(diǎn)就得到圖(b)。目前十九頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)(b)圖2-10
移位寄存器和反饋節(jié)點(diǎn)轉(zhuǎn)換(a)目前二十頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)2.2
分支結(jié)構(gòu)分支結(jié)構(gòu)(Case
Structure)是一種多分支程序控制結(jié)構(gòu),類似于文本編程語(yǔ)言中的If…Then…Else語(yǔ)句。分支結(jié)構(gòu)包含多個(gè)子框圖代碼,這些子框圖就像一疊卡片,一次只能看見一張。分支結(jié)構(gòu)位于Functions→Execution
Control子模板和Functions→Structures子模板上,如圖2-11所示。與For循環(huán)和While循環(huán)結(jié)構(gòu)的使用一樣,通過拖拽Case結(jié)構(gòu)圖標(biāo)將其放置在框圖上,并使其邊框包圍所希望的對(duì)象;也可以先將Case結(jié)構(gòu)放置在框圖上,然后根據(jù)需要調(diào)整大小并將對(duì)象放到結(jié)構(gòu)內(nèi)部。目前二十一頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)目前二十二頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-11
分支結(jié)構(gòu)的位置目前二十三頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)分支結(jié)構(gòu)左邊框圖上有一個(gè)輸入端子,中心顯示問號(hào),稱做選擇器端子(Selector
Terminal);上邊框是分支選擇器標(biāo)簽(Case
Selector
Label)。選擇器端子的數(shù)據(jù)類型可以是布爾型、字符串型、整型或枚舉型。默認(rèn)的選擇器端子為布爾類型,即LabVIEW自動(dòng)生成兩個(gè)子框圖,標(biāo)簽分別為True和False,如圖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所示。目前二十四頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-12
分支結(jié)構(gòu)的組成及默認(rèn)狀態(tài)目前二十五頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-13不同類型的分支結(jié)構(gòu)目前二十六頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第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)前的選擇框架切換到前一個(gè)或后一個(gè)選擇框架;單擊標(biāo)簽右端的向下黑色箭頭,彈出所有已經(jīng)定義的標(biāo)簽列表,可以在多個(gè)子框圖之間快速跳轉(zhuǎn)。如圖2-14所示,當(dāng)前顯示的框圖分支對(duì)應(yīng)的標(biāo)簽前有“√”標(biāo)記。目前二十七頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-14多個(gè)子框圖之間切換目前二十八頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)2.2.1
添加、刪除和排序分支在分支結(jié)構(gòu)邊框上彈出的快捷菜單為用戶提供很多選項(xiàng),如圖2-15所示。選擇Add
Case
After(在后面添加分支)或Add
CaseBefore(在前面添加分支)可以在當(dāng)前顯示的分支的后面或前面添加分支;選擇Duplicate
Case(副本分支)可以復(fù)制當(dāng)前顯示的分支;選擇DeleteCase可以刪除當(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),目前二十九頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)僅僅是編程上的習(xí)慣。在彈出的快捷菜單中選擇Rearrange
Cases(重排分
支),彈出圖2-15所示的對(duì)話框。為了改變選擇器的位置,單擊要移動(dòng)的選擇器值(當(dāng)選中時(shí)該值加亮)并將其拖拽到列表中所希望的位置。Sort按鈕將以第一個(gè)選擇器值為基準(zhǔn)對(duì)分支選擇器值進(jìn)行排序。在LabVIEW的分支結(jié)構(gòu)中,如果結(jié)構(gòu)不能遍歷所有可能的條件或情
況,就必須設(shè)置一個(gè)默認(rèn)的情況用來(lái)處理超出條件選項(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”字樣。目前三十頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-15
在Case結(jié)構(gòu)中添加、刪除和排序分支目前三十一頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)2.2.2
輸入和輸出數(shù)據(jù)向Case結(jié)構(gòu)內(nèi)引入連線,或從Case結(jié)構(gòu)向外引出連線時(shí),會(huì)在邊框上生成隧道。輸入隧道的數(shù)據(jù)對(duì)所有分支都可以使用。分支不一定要使用輸入數(shù)據(jù)或提供輸出數(shù)據(jù),但如果任何一個(gè)分支提供了輸出數(shù)據(jù),
則所有的分支也必須提供輸出數(shù)據(jù),否則會(huì)導(dǎo)致代碼錯(cuò)誤,程序無(wú)法運(yùn)行。此時(shí),輸出隧道的圖標(biāo)是空心的,表示部分分支中沒有接入輸入值。只有每個(gè)分支的輸出隧道都連接數(shù)據(jù)后,圖標(biāo)才變成實(shí)心,程序才能正常運(yùn)行。如果不想為每個(gè)分支都明確指定輸出隧道的輸入值,可以讓LabVIEW為沒有接入隧道輸入值的分支接入隧道的默認(rèn)數(shù)據(jù)類型,方法是在輸出隧道上右鍵彈出快捷菜單,選擇Use
Default
If
Unwired,如圖2-16所示。目前三十二頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-16在輸出隧道沒有接入數(shù)據(jù)的分支采用默認(rèn)值目前三十三頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎ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在vi.lib\platform\system.lib庫(kù)中。目前三十四頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-17
例2.4的前面板和程序框圖目前三十五頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)2.3
順序結(jié)構(gòu)順序結(jié)構(gòu)(Sequence
Structure)順序地執(zhí)行每個(gè)子框架,包括層疊的順序結(jié)構(gòu)(Stacked
Sequence
Structure)和平鋪的順序結(jié)構(gòu)(FlatSequence
Structure)兩類。平鋪的順序結(jié)構(gòu)位于Functions→ExecutionControl子模板上。兩種順序結(jié)構(gòu)都能從Functions→Structures子模板上找到,見圖2-11。2.3.1
層疊的順序結(jié)構(gòu)層疊的順序結(jié)構(gòu)的表現(xiàn)形式與Case結(jié)構(gòu)很相似,都是在框圖窗口的同一位置層疊多個(gè)子框架。剛創(chuàng)建的順序結(jié)構(gòu)是單框架順序結(jié)構(gòu)(見圖
2-18),只能執(zhí)行一步操作,起不到控制多個(gè)代碼段順序執(zhí)行的作用。順序結(jié)構(gòu)執(zhí)行的過程好像逐幀放目前三十六頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第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所示。另外,AddSequence
Local選項(xiàng)為順序結(jié)構(gòu)添加局部變量(關(guān)于局部變量見第8章);Remove
Sequence移除順序結(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)。目前三十七頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-18剛創(chuàng)建時(shí)的層疊的順序結(jié)構(gòu)目前三十八頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)(a)(b)圖2-19
添加多個(gè)幀目前三十九頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)最基本的順序結(jié)構(gòu)由順序框架和選擇器標(biāo)簽組成,如圖2-19(b)所示,選擇器標(biāo)簽的內(nèi)容是1[0..2],表示該順序結(jié)構(gòu)含有第0到第2幀共3幀,并且第1幀是當(dāng)前幀。選擇器標(biāo)簽左右的兩個(gè)箭頭分別為減量按鈕和增量按鈕,用于瀏覽全部幀。單擊向下黑色箭頭打開幀列表,可以實(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)基本相同,區(qū)別是表現(xiàn)形式不同。最初建立的平鋪?lái)樞蚪Y(jié)構(gòu)也只有一幀,通過添加幀后的形式如圖2-20所示。新添加的幀寬度比較小,拖拽邊框可以改變其大小。目前四十頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-20
為平鋪的順序結(jié)構(gòu)添加幀目前四十一頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)平鋪的順序結(jié)構(gòu)把按照順序執(zhí)行的幀從左到右依次鋪開,占用的空間比較大,而層疊的順序結(jié)構(gòu)節(jié)省框圖窗口空間。而平鋪的順序結(jié)構(gòu)優(yōu)點(diǎn)是,在幀數(shù)不多時(shí),將各個(gè)幀平鋪開來(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ù)直接穿過幀壁傳送到幀2,幀2的計(jì)算結(jié)果通過幀壁傳送給幀3,不需要引入局部變量傳送數(shù)據(jù)。目前四十二頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-21
平鋪?lái)樞蚪Y(jié)構(gòu)目前四十三頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)【例2.5】將隨機(jī)產(chǎn)生的數(shù)值與給定數(shù)值比較,計(jì)算當(dāng)兩數(shù)相等時(shí)所需的時(shí)間。該例是順序結(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)換為秒,在前面板顯示。目前四十四頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-22例2.5的前面板和程序框圖目前四十五頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)【例2.6】利用平鋪的順序結(jié)構(gòu)實(shí)現(xiàn)例2.5的功能??驁D程序如圖2-23所示,平鋪的順序結(jié)構(gòu)沒有局部變量,需要向后續(xù)的幀傳遞數(shù)據(jù)時(shí),只需要將數(shù)據(jù)直接連接到后續(xù)幀中即可。目前四十六頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)圖2-23
例2.6的框圖程序目前四十七頁(yè)\總數(shù)五十七頁(yè)\編于十四點(diǎn)第2章程序結(jié)構(gòu)2.4
公式節(jié)點(diǎn)一些復(fù)雜的算法如果完全依賴于圖形代碼實(shí)現(xiàn),框圖程序會(huì)十分復(fù)雜,工作量大,而且不直觀,調(diào)試和改錯(cuò)也不方便。LabVIEW提供了一種專門用于處
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鉆井平臺(tái)水手安全文明競(jìng)賽考核試卷含答案
- 2026年質(zhì)量員之土建質(zhì)量基礎(chǔ)知識(shí)考試題庫(kù)及答案(奪冠系列)
- 2026年高校教師資格證之高等教育法規(guī)考試題庫(kù)及答案【必刷】
- 吉林省吉林市舒蘭市2023-2024學(xué)年八年級(jí)上學(xué)期第二次月考物理試題含參考答案
- 淀粉糖制造工安全實(shí)操評(píng)優(yōu)考核試卷含答案
- 鉆井液工安全技能測(cè)試模擬考核試卷含答案
- 新手教師職業(yè)成長(zhǎng)問題及解決對(duì)策
- 微信小程序功能需求策劃方案書
- 電子廢棄物處理工崗前技術(shù)實(shí)務(wù)考核試卷含答案
- 電解電容器裝配工操作知識(shí)考核試卷含答案
- 2026年門診年度護(hù)理工作計(jì)劃例文(3篇)
- 貨車合伙人合同范本
- 上海醫(yī)藥公司償債能力分析
- 2025美國(guó)心臟協(xié)會(huì)心肺復(fù)蘇(CPR)與心血管急救(ECC)指南解讀課件
- 經(jīng)營(yíng)租賃合同協(xié)議書
- 湖北楚禹水務(wù)科技有限公司面向社會(huì)招聘5人筆試歷年參考題庫(kù)附帶答案詳解
- 茶百道員工培訓(xùn)
- 2025廣東5G通訊技術(shù)產(chǎn)業(yè)鏈?zhǔn)袌?chǎng)發(fā)展態(tài)勢(shì)分析及имый超頻通訊投資
- 腫瘤科疾病課件
- 應(yīng)急管理知識(shí)題庫(kù)及答案
- 公共場(chǎng)所從業(yè)人員衛(wèi)生知識(shí)培訓(xùn)試卷及答案
評(píng)論
0/150
提交評(píng)論