控制程序運(yùn)行的結(jié)構(gòu)_第1頁
控制程序運(yùn)行的結(jié)構(gòu)_第2頁
控制程序運(yùn)行的結(jié)構(gòu)_第3頁
控制程序運(yùn)行的結(jié)構(gòu)_第4頁
控制程序運(yùn)行的結(jié)構(gòu)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

關(guān)于控制程序運(yùn)行的結(jié)構(gòu)1第1頁,講稿共54頁,2023年5月2日,星期三2第5章控制程序運(yùn)行的結(jié)構(gòu)結(jié)構(gòu)是一種程序流程控制節(jié)點(diǎn),它們?cè)诔绦蚩驁D中的外形一般是一個(gè)大小可以縮放的邊框,當(dāng)它與其它節(jié)點(diǎn)的連線有數(shù)據(jù)傳遞過來時(shí),邊框內(nèi)的一段代碼或者反復(fù)執(zhí)行、或者有條件執(zhí)行、或者按照一定順序執(zhí)行。結(jié)構(gòu)內(nèi)的一段代碼叫做子程序框圖;結(jié)構(gòu)邊框上數(shù)據(jù)輸入輸出的接線端叫隧道。第2頁,講稿共54頁,2023年5月2日,星期三3隧道的創(chuàng)建方法(1)將結(jié)構(gòu)外的端子連接到結(jié)構(gòu)內(nèi)的端子,連接后結(jié)構(gòu)邊框上將出現(xiàn)一個(gè)表示隧道的矩形框;(2)通過將外部端子連接到結(jié)構(gòu)邊框來創(chuàng)建隧道,然后再進(jìn)一步將創(chuàng)建的隧道連接到內(nèi)部端子;For循環(huán)和While循環(huán)支持自動(dòng)索引。當(dāng)表示隧道的矩形框是實(shí)心時(shí),表示禁止自動(dòng)索引,是空心時(shí)表示自動(dòng)索引。第3頁,講稿共54頁,2023年5月2日,星期三45-1For循環(huán)5-1-1For循環(huán)的建立在結(jié)構(gòu)子選板中選中For循環(huán)圖標(biāo),在所有應(yīng)在For循環(huán)內(nèi)執(zhí)行的節(jié)點(diǎn)左上角單擊一下鼠標(biāo),然后按住鼠標(biāo)向右下角拖動(dòng),直到虛線框包圍所有應(yīng)在For循環(huán)內(nèi)執(zhí)行的節(jié)點(diǎn),松開鼠標(biāo)手,就得到一個(gè)大小和位置滿意的邊框。也可以先放好一個(gè)邊框,再向里面添代碼。第4頁,講稿共54頁,2023年5月2日,星期三5For循環(huán)有兩個(gè)固定的接線端。For循環(huán)邊框內(nèi)的代碼(子框圖)循環(huán)執(zhí)行一定次數(shù)??偩€接線端為輸入接線端,除非使用自動(dòng)索引功能,否則都要在For框外,為總線接線端連接一32位整型數(shù)(其它類型會(huì)強(qiáng)制轉(zhuǎn)換為最接近的整型數(shù)),指定循環(huán)執(zhí)行的次數(shù)。計(jì)數(shù)接線端是輸出接線端,輸出循環(huán)當(dāng)前執(zhí)行的次數(shù),循環(huán)次數(shù)從0開始計(jì)數(shù)??梢詮难h(huán)外邊連接一個(gè)數(shù)值到總線接線端,顯性地設(shè)置循環(huán)次數(shù),也可以利用自動(dòng)索引隱含地設(shè)置循環(huán)次數(shù)。For循環(huán)的接線端第5頁,講稿共54頁,2023年5月2日,星期三65-1-2For循環(huán)的時(shí)間控制與數(shù)據(jù)傳遞滿足循環(huán)條件情況下,循環(huán)結(jié)構(gòu)在一次結(jié)束后將盡快開始執(zhí)行下一次循環(huán)??刂蒲h(huán)速度的最常用方法是使用“編程定時(shí)”函數(shù)子選板中的“等待下一個(gè)整數(shù)倍毫秒”,程序執(zhí)行到該函數(shù)時(shí)將等待到它的“毫秒計(jì)時(shí)值”變?yōu)檩斎氲摹昂撩氡稊?shù)”參數(shù)的整數(shù)倍。因此可以控制循環(huán)按照固定的時(shí)間間隔執(zhí)行。循環(huán)結(jié)構(gòu)通道上的數(shù)據(jù)在循環(huán)執(zhí)行第一次時(shí)進(jìn)入循環(huán)框內(nèi),以后循環(huán)執(zhí)行過程中將不再理會(huì)該數(shù)據(jù)的變化;循環(huán)結(jié)構(gòu)執(zhí)行完后,才傳遞出數(shù)據(jù)。第6頁,講稿共54頁,2023年5月2日,星期三75-1-2For循環(huán)的時(shí)間控制與數(shù)據(jù)傳遞循環(huán)結(jié)構(gòu)的時(shí)間控制與數(shù)據(jù)傳遞.vi都不能實(shí)現(xiàn)100次循環(huán)過程中用滑鈕控制曲線變化如果For循環(huán)內(nèi)的程序執(zhí)行完以后,用時(shí)不足100ms,則等待到100ms后再開始下一次循環(huán)。如果循環(huán)內(nèi)的程序在100ms內(nèi)沒有執(zhí)行完,則在程序執(zhí)行完后再開始下一次循環(huán),即保證程序執(zhí)行時(shí)間不會(huì)少于100ms。第7頁,講稿共54頁,2023年5月2日,星期三85-1-3For循環(huán)對(duì)數(shù)組的自動(dòng)索引自動(dòng)索引是指使循環(huán)框外面的數(shù)組成員(隨著循環(huán)的進(jìn)行)逐個(gè)依次進(jìn)入循環(huán)框內(nèi),或使循環(huán)框內(nèi)的數(shù)據(jù)累加成一個(gè)數(shù)組輸出到循環(huán)框外面的功能(該數(shù)組要在循環(huán)結(jié)束后一次輸出?。?。使用自動(dòng)索引功能時(shí),從循環(huán)框外連接到輸入通道的二維數(shù)組將索引出一維數(shù)組,從一維數(shù)組將索引出單個(gè)成員。與此相反,在循環(huán)的輸出邊框,單個(gè)元素依次累加為一維數(shù)組,一維數(shù)組累加成為二維數(shù)組。For循環(huán)和While循環(huán)都支持自動(dòng)索引。但連接到For循環(huán)的數(shù)組默認(rèn)為自動(dòng)索引,而連接到While循環(huán)的數(shù)組默認(rèn)為不能自動(dòng)索引。在通道上右擊鼠標(biāo)彈出菜單可選”禁用索引“或”啟用索引“。第8頁,講稿共54頁,2023年5月2日,星期三9

里層的For循環(huán)將6次執(zhí)行時(shí)的循環(huán)次數(shù)累加成一個(gè)一維數(shù)組0~5輸出;外層For循環(huán)依次為這個(gè)一維數(shù)組各個(gè)成員加上當(dāng)前循環(huán)數(shù),最后將8次循環(huán)的8個(gè)一維數(shù)組累加成二維數(shù)組輸出。ab

外層的For循環(huán)每執(zhí)行一次循環(huán)從二維數(shù)組中索引出一行;里層的For循環(huán)每執(zhí)行一次從一維數(shù)組中索引出一個(gè)成員。

在循環(huán)外邊連接一個(gè)數(shù)值到計(jì)數(shù)端口,可顯示地設(shè)置計(jì)數(shù)值;也可使用自動(dòng)索引隱含設(shè)置計(jì)數(shù)值,此時(shí)For循環(huán)的執(zhí)行次數(shù)對(duì)于一維數(shù)組等于數(shù)組長(zhǎng)度,即把所有數(shù)組元素索引完為止;對(duì)于二維數(shù)組等于數(shù)組行數(shù),即一次索引1行,將所有行索引完。如果連接了計(jì)數(shù)端口值,同時(shí)還有其它數(shù)組執(zhí)行自動(dòng)索引進(jìn)入循環(huán),則循環(huán)按照其中的最小次數(shù)進(jìn)行。自動(dòng)索引.vi第9頁,講稿共54頁,2023年5月2日,星期三105-1-3For循環(huán)對(duì)數(shù)組的自動(dòng)索引

在循環(huán)外邊連接一個(gè)數(shù)值到計(jì)數(shù)端口,可顯示地設(shè)置計(jì)數(shù)值;也可使用自動(dòng)索引隱含設(shè)置計(jì)數(shù)值,此時(shí)For循環(huán)的執(zhí)行次數(shù)對(duì)于一維數(shù)組等于數(shù)組長(zhǎng)度,即把所有數(shù)組元素索引完為止;對(duì)于二維數(shù)組等于數(shù)組行數(shù),即一次索引1行,將所有行索引完。如果連接了計(jì)數(shù)端口值,同時(shí)還有其它數(shù)組執(zhí)行自動(dòng)索引進(jìn)入循環(huán),則循環(huán)按照其中的最小次數(shù)進(jìn)行。自動(dòng)索引.vi第10頁,講稿共54頁,2023年5月2日,星期三115-1-4移位寄存器和反饋節(jié)點(diǎn)1.移位寄存器

(1)建立移位寄存器

移位寄存器從一個(gè)循環(huán)向下一個(gè)循環(huán)傳遞數(shù)據(jù)。For循環(huán)和While循環(huán)都可以使用移位寄存器。創(chuàng)建移位寄存器的方法是在循環(huán)的左邊框或右邊框上彈出快捷菜單,然后選擇“添加移位寄存器”。一個(gè)While循環(huán)或For循環(huán)可建立多個(gè)移位寄存器。移位寄存器可以保存任何類型的數(shù)據(jù),數(shù)值型、布爾型、字符串和數(shù)組等。移位寄存器自動(dòng)適應(yīng)連接到它端口的第一個(gè)數(shù)據(jù)的類型。剛創(chuàng)建的移位寄存器包含兩個(gè)相對(duì)的端口,分別位于循環(huán)豎直的左右邊框上。右邊端口存儲(chǔ)循環(huán)結(jié)束時(shí)的數(shù)據(jù),到下一循環(huán)開始時(shí)該數(shù)據(jù)出現(xiàn)在左邊端口上。左邊端口可以增加附加端口以存儲(chǔ)多次循環(huán)的值,方法是用定位與選擇工具拖動(dòng)端口的方型縮放手柄,或彈出快捷菜單選“添加元素”。第11頁,講稿共54頁,2023年5月2日,星期三125-1-4移位寄存器和反饋節(jié)點(diǎn)——移位寄存器(2)移位寄存器傳遞數(shù)據(jù)的方法程序在循環(huán)開始前為移位寄存器左邊3個(gè)接線端都賦初始值5。循環(huán)開始執(zhí)行后循環(huán)數(shù)i不斷送入右邊框的移位寄存器接線端,并在每次循環(huán)結(jié)束時(shí)轉(zhuǎn)移到左側(cè)移位寄存器接線端。到下一次循環(huán)時(shí)這個(gè)循環(huán)數(shù)就出現(xiàn)在移位寄存器左邊最上邊的接線端中。而在每次循環(huán)中,移位寄存器左邊各接線端的值都向下移動(dòng)一位。到循環(huán)全部結(jié)束時(shí),右側(cè)接線端的數(shù)值轉(zhuǎn)移到左側(cè)接線端的同時(shí),輸出到循環(huán)邊框外。第12頁,講稿共54頁,2023年5月2日,星期三135-1-4移位寄存器和反饋節(jié)點(diǎn)——移位寄存器(2)移位寄存器傳遞數(shù)據(jù)的方法——用移位寄存器求最大值如果要初始化移位寄存器,就必須為所有的左側(cè)端口都賦值,而且要用同樣的數(shù)據(jù)類型。求最大值.vi第13頁,講稿共54頁,2023年5月2日,星期三14(3)移位寄存器的初始化除非顯式地初始化移位寄存器,否則當(dāng)首次執(zhí)行VI時(shí),移位寄存器將初始化為移位寄存器相應(yīng)數(shù)據(jù)類型的默認(rèn)值,(布爾型為False,數(shù)字型為0)。存儲(chǔ)在移位寄存器中的數(shù)據(jù)直到關(guān)閉VI才在內(nèi)存中消除,如果運(yùn)行的VI包含未初始化的移位寄存器,在以后執(zhí)行時(shí),移位寄存器獲得的初始值將是以前執(zhí)行后的最終值。由于這種情況難于檢測(cè),可能使VI調(diào)試變得困難。有時(shí)應(yīng)用移位寄存器就是為了在程序的一系列執(zhí)行過程中傳遞數(shù)據(jù),這時(shí)就不能對(duì)移位寄存器初始化。第14頁,講稿共54頁,2023年5月2日,星期三155-1-4移位寄存器和反饋節(jié)點(diǎn)2.反饋節(jié)點(diǎn)自動(dòng)創(chuàng)建反饋節(jié)當(dāng)For循環(huán)或While循環(huán)邊框比較大時(shí),使用移位寄存器會(huì)造成過長(zhǎng)的連線,因此LabVIEW提供了反饋節(jié)點(diǎn)。在For循環(huán)或While循環(huán)中,當(dāng)我們把一個(gè)節(jié)點(diǎn)的輸出連接到它的輸入時(shí),連線中會(huì)自動(dòng)插入一個(gè)反饋節(jié)點(diǎn),同時(shí)自動(dòng)創(chuàng)建了一個(gè)初始化接線端。第15頁,講稿共54頁,2023年5月2日,星期三165-1-4移位寄存器和反饋節(jié)點(diǎn)2.反饋節(jié)點(diǎn)反饋節(jié)點(diǎn)的數(shù)據(jù)傳遞反饋節(jié)點(diǎn)的箭頭方向表示數(shù)據(jù)流方向。反饋節(jié)點(diǎn)有兩個(gè)端口:(1)輸入端口:在每次循環(huán)結(jié)束時(shí)將當(dāng)前值存入;(2)輸出端口:在每次循環(huán)開始時(shí)將上一次循環(huán)存入的值輸出。反饋節(jié)點(diǎn)的數(shù)據(jù)傳遞.vi第16頁,講稿共54頁,2023年5月2日,星期三175-2While循環(huán)While循環(huán)控制程序反復(fù)執(zhí)行一段代碼,直到某個(gè)條件發(fā)生。建立While循環(huán)的方法與For循環(huán)是一樣的。While循環(huán)有兩個(gè)固定的接線端。“循環(huán)計(jì)數(shù)“是一個(gè)輸出接線端,它輸出循環(huán)當(dāng)前執(zhí)行的次數(shù)。循環(huán)數(shù)是從0開始計(jì)數(shù)的。“循環(huán)條件”是一個(gè)布爾量輸入接線端。程序在每次循環(huán)結(jié)束時(shí)檢查條件接線端。因此,While循環(huán)總是至少執(zhí)行一次。第17頁,講稿共54頁,2023年5月2日,星期三185-2While循環(huán)While循環(huán)終止條件死循環(huán)當(dāng)條件端口連接一個(gè)出錯(cuò)信息簇,則默認(rèn)設(shè)置是StoponError,即遇到已發(fā)生錯(cuò)誤的信息退出循環(huán);在條件端口彈出菜單可將設(shè)置改為ContinueWhileError。

如果產(chǎn)生循環(huán)終止條件的數(shù)據(jù)源放置在While循環(huán)的外邊,根據(jù)初始值的不同,可創(chuàng)建無限循環(huán)或僅執(zhí)行1次的循環(huán)。因?yàn)镚程序是在進(jìn)入循環(huán)之前讀取數(shù)據(jù)源的數(shù)據(jù)值,進(jìn)入循環(huán)后將不再理會(huì)循環(huán)框外面數(shù)據(jù)的變化——數(shù)據(jù)流編程!第18頁,講稿共54頁,2023年5月2日,星期三19While循環(huán)的自動(dòng)索引、循環(huán)時(shí)間控制方法以及移位寄存器的使用類似于for循環(huán)。由于while循環(huán)次數(shù)不是事先確定的,因此使用數(shù)組自動(dòng)索引功能時(shí)應(yīng)注意:(1)如個(gè)數(shù)組成員已經(jīng)索引告罄,則LabVIEW自動(dòng)在后面追加缺省值,數(shù)字型的缺省值為0,布爾型為false。

(2)while循環(huán)使用自動(dòng)索引時(shí)輸出數(shù)組長(zhǎng)度也是事先未知的。第19頁,講稿共54頁,2023年5月2日,星期三205-3定時(shí)循環(huán)如果需要對(duì)循環(huán)的執(zhí)行時(shí)間進(jìn)行更精確的控制和增加更多控制功能,可以使用定時(shí)循環(huán)。定時(shí)循環(huán).vi右邊框內(nèi)的輸出節(jié)點(diǎn)默認(rèn)情況下只顯示一個(gè)錯(cuò)誤信息接線端,這里選擇為dt,連接了一個(gè)輸入型控件,使得程序可以在執(zhí)行中改變循環(huán)的速度。第20頁,講稿共54頁,2023年5月2日,星期三215-4條件結(jié)構(gòu)

條件結(jié)構(gòu)類似于文本編程語言中的If…Then…Else語句。條件結(jié)構(gòu)包含有兩個(gè)以上子程序框圖,每個(gè)子程序框圖中的一段程序代碼對(duì)應(yīng)一個(gè)條件分支,程序運(yùn)行時(shí)選擇其中的一段執(zhí)行。這些代碼框像一疊卡片一樣重疊在一起,一次只能看到一張。第21頁,講稿共54頁,2023年5月2日,星期三225-4條件結(jié)構(gòu)5-4-1條件結(jié)構(gòu)的建立單擊遞減箭頭和遞增箭頭可分別查看或編輯前一個(gè)或后一個(gè)子框圖。在子框圖表示上單擊鼠標(biāo)左鍵,則出現(xiàn)所有存在的子框圖名,可以選擇顯示其中的任一個(gè)。第22頁,講稿共54頁,2023年5月2日,星期三235-4-1條件結(jié)構(gòu)的建立在選擇結(jié)構(gòu)邊框上彈出菜單可進(jìn)行“刪除本分支”、“復(fù)制分支”、“在前面添加分支”,“在后面添加分支”、“刪除條件結(jié)構(gòu)”等操作。連接到選擇端口的值可以是整型、布爾型、字符型或枚舉型,默認(rèn)布爾型。當(dāng)選擇端口連接一個(gè)枚舉量時(shí),邊框彈出的快捷菜單中有“為每個(gè)值添加分支”選項(xiàng),即有幾個(gè)枚舉值,就有幾個(gè)子框圖。第23頁,講稿共54頁,2023年5月2日,星期三245-4-2條件結(jié)構(gòu)的設(shè)置1.默認(rèn)選項(xiàng)的設(shè)置

在LabVIEW中使用條件結(jié)構(gòu),必須設(shè)置一個(gè)默認(rèn)子程序框圖處理超出選項(xiàng)范圍的情況,除非能夠?yàn)槊總€(gè)可能的選擇值都設(shè)置一個(gè)子程序框圖。設(shè)置缺省選項(xiàng)的方法是:當(dāng)顯示缺省子圖形代碼框時(shí),在結(jié)構(gòu)邊框上彈出菜單選擇Makethisthedefaultcase。第24頁,講稿共54頁,2023年5月2日,星期三255-4-2條件結(jié)構(gòu)的設(shè)置2.子程序框圖的設(shè)置用編輯文本工具修改選擇器標(biāo)簽中的選擇器值可以設(shè)置子程序框圖與選項(xiàng)的對(duì)應(yīng)關(guān)系。子圖形代碼框標(biāo)識(shí)可以是一個(gè)單值,例如3;也可以是一個(gè)表,例如1,2,3;也可以是一個(gè)范圍,例如5..10;范圍可以是開放的例如..1(小于或等于1)或9..(大于或等于9)。同一個(gè)子程序框圖中設(shè)置的范圍有重疊時(shí),自動(dòng)調(diào)整為緊湊形式,例如,輸入“5..15,12..20”,則顯示為5..20”。字符型和枚舉型數(shù)值在子圖形代碼框中被自動(dòng)加上雙引號(hào)。字符型選擇值表示范圍時(shí)不包括最后一個(gè)字符,例如“a”..“c”,包括字符a和字符b開頭的任何字符選項(xiàng)值,而不包括c開頭的字符選項(xiàng)值。第25頁,講稿共54頁,2023年5月2日,星期三26錯(cuò)誤的子框圖標(biāo)識(shí)被自動(dòng)地用紅色顯示。修改選擇結(jié)構(gòu)子圖形代碼框順序的方法是在結(jié)構(gòu)邊框彈出菜單選擇“重排分支”命令,彈出一對(duì)話框,在“分支列表”中拖動(dòng)條件選擇其標(biāo)簽值到需要的位置。第26頁,講稿共54頁,2023年5月2日,星期三275-4-2條件結(jié)構(gòu)的設(shè)置3.隧道的要求

向case結(jié)構(gòu)框內(nèi)輸入數(shù)據(jù)時(shí),各子圖形代碼框連接或不連接這個(gè)數(shù)據(jù)都可以;從case結(jié)構(gòu)框向外輸出數(shù)據(jù)時(shí),各子圖形代碼框都必須為這個(gè)數(shù)據(jù)通道連接數(shù)據(jù),否則通道圖標(biāo)是中空的,程序運(yùn)行按鈕是斷開的。當(dāng)各子圖形代碼框都為這個(gè)通道連好數(shù)據(jù)以后,通道圖標(biāo)才成為實(shí)心的,程序才可運(yùn)行。如果允許沒有連線的子圖形代碼框輸出默認(rèn)值,可在數(shù)據(jù)通道上彈出菜單,選擇“未連線時(shí)使用默認(rèn)值”,這時(shí)數(shù)據(jù)通道變?yōu)榛疑?,程序?zhí)行到?jīng)]有為其連接數(shù)據(jù)通道連線的子圖形代碼框時(shí),就輸出相應(yīng)數(shù)據(jù)類型的默認(rèn)值。第27頁,講稿共54頁,2023年5月2日,星期三285-4-3條件結(jié)構(gòu)應(yīng)用示例1.使While循環(huán)先檢查條件接線端再執(zhí)行代碼While循環(huán)是先執(zhí)行完循環(huán)框內(nèi)的代碼,再檢查條件端口,循環(huán)框內(nèi)的代碼至少要被執(zhí)行1次。利用選擇結(jié)構(gòu),可實(shí)現(xiàn)使用While循環(huán)時(shí)先檢查后執(zhí)行。While循環(huán)的先檢查后執(zhí)行.vi第28頁,講稿共54頁,2023年5月2日,星期三295-4-3條件結(jié)構(gòu)應(yīng)用示例2.按一定條件分離數(shù)組元素將一個(gè)浮點(diǎn)數(shù)數(shù)組的正負(fù)數(shù)成員分離成兩個(gè)數(shù)組。按條件分離數(shù)組成員.vi第29頁,講稿共54頁,2023年5月2日,星期三305-4-3條件結(jié)構(gòu)應(yīng)用示例3.用條件結(jié)構(gòu)處理錯(cuò)誤

LabVIEW的很多VI輸出一個(gè)“錯(cuò)誤輸出”參數(shù),指出這個(gè)VI執(zhí)行中是否發(fā)生錯(cuò)誤,通知后續(xù)程序進(jìn)行必要的處理。用case結(jié)構(gòu)處理錯(cuò)誤.vi第30頁,講稿共54頁,2023年5月2日,星期三315-5順序結(jié)構(gòu)基于文本的編程語言,程序是按照語句出現(xiàn)的順序執(zhí)行?!皵?shù)據(jù)流”控制LabVIEW程序的運(yùn)行方式。數(shù)據(jù)流程序中一個(gè)節(jié)點(diǎn)(函數(shù))只有當(dāng)它所有的輸入端的數(shù)據(jù)都成為有效數(shù)據(jù)后才能被執(zhí)行,而且只有當(dāng)它執(zhí)行完成后,它的所有輸出端口上的數(shù)據(jù)才成為有效。第31頁,講稿共54頁,2023年5月2日,星期三32

如上圖所示,這個(gè)VI程序把兩個(gè)輸入數(shù)值相乘,再把乘積減去50.0。這個(gè)程序中,框圖程序從左往右執(zhí)行,這個(gè)執(zhí)行次序不是由于對(duì)象的擺放位置,而是由于相減運(yùn)算函數(shù)的一個(gè)輸入量是相乘函數(shù)的運(yùn)算結(jié)果,它只有當(dāng)相乘運(yùn)算完成并把結(jié)果送到減運(yùn)算的輸入口后才能繼續(xù)下去。

第32頁,講稿共54頁,2023年5月2日,星期三33

在這個(gè)例子中,我們無法知道哪一個(gè)節(jié)點(diǎn)函數(shù)首先執(zhí)行,因?yàn)樗休斎肓繋缀跬瑫r(shí)到達(dá)。對(duì)于這樣一種相互獨(dú)立的數(shù)據(jù)流程,如果又必須明確指定節(jié)點(diǎn)執(zhí)行的先后次序,就必須使用順序(Sequence)結(jié)構(gòu)來明確執(zhí)行次序。第33頁,講稿共54頁,2023年5月2日,星期三345-5順序結(jié)構(gòu)

在數(shù)據(jù)流程序中,只要一個(gè)節(jié)點(diǎn)所有需要輸入的數(shù)據(jù)全部到達(dá)就開始執(zhí)行。如果有時(shí)需要某個(gè)節(jié)點(diǎn)先于其它節(jié)點(diǎn)執(zhí)行,可以用順序結(jié)構(gòu)作為控制節(jié)點(diǎn)執(zhí)行次序的一種方法。5-5-1順序結(jié)構(gòu)的建立順序結(jié)構(gòu)可包含一個(gè)或多個(gè)子框圖,每個(gè)子框圖稱為一個(gè)“幀”。子框圖編號(hào)從0開始,順序結(jié)構(gòu)從0號(hào)程序圖框內(nèi)的代碼開始,按順序執(zhí)行。第34頁,講稿共54頁,2023年5月2日,星期三35有層疊(StackedSequenceStructure)和平鋪(FlatSequenceStructure)2種順序結(jié)構(gòu)形式。剛放入程序框圖的順序結(jié)構(gòu)只有一個(gè)子框圖。在順序結(jié)構(gòu)邊框彈出菜單,選“在后面添加幀”或“在前面添加幀”逐個(gè)增加子框圖。第35頁,講稿共54頁,2023年5月2日,星期三36層疊順序結(jié)構(gòu)在層疊順序結(jié)構(gòu)邊框上彈出快捷菜單可進(jìn)行:(1)子框圖的復(fù)制、刪除或移除整個(gè)順序結(jié)構(gòu),移除整個(gè)順序結(jié)構(gòu)后時(shí)只剩下頂層內(nèi)的程序框圖。(2)選擇“本幀設(shè)置為”命令可為當(dāng)前幀指定順序號(hào)。(3)選擇“替換”命令可把它替換為平鋪順序結(jié)構(gòu)或選擇結(jié)構(gòu);選擇結(jié)構(gòu)也可替換為層疊順序結(jié)構(gòu)。層疊順序結(jié)構(gòu)節(jié)省程序框圖空間,但掩蓋了程序代碼關(guān)系。第36頁,講稿共54頁,2023年5月2日,星期三37平鋪順序結(jié)構(gòu)與層疊順序結(jié)構(gòu)的不同(1)不可復(fù)制子框圖。(2)只能替換為層疊順序結(jié)構(gòu),不能直接替換為選擇結(jié)構(gòu)。(3)移除平鋪順序結(jié)構(gòu)后各子框圖的代碼都保留。(4)平鋪順序結(jié)構(gòu),不會(huì)掩蓋程序代碼,但占用程序框圖空間大。第37頁,講稿共54頁,2023年5月2日,星期三385-5-2順序結(jié)構(gòu)中數(shù)據(jù)輸入輸出與傳遞向順序結(jié)構(gòu)框內(nèi)輸入數(shù)據(jù)時(shí),各子圖形代碼框連接或不連接這個(gè)數(shù)據(jù)都可以(與條件結(jié)構(gòu)相同)。從順序結(jié)構(gòu)框向外輸出數(shù)據(jù)時(shí),各子圖形代碼框只能有一個(gè)連接這個(gè)數(shù)據(jù)通道。否則通道圖標(biāo)是中空的,程序運(yùn)行按鈕是斷開的。注意條件結(jié)構(gòu)要求各子圖形代碼框都必須為這個(gè)數(shù)據(jù)通道連接數(shù)據(jù)。不論由哪一層圖形代碼向外傳遞數(shù)據(jù),都要等所有子圖形代碼框順序執(zhí)行完后才能傳出數(shù)據(jù)。各個(gè)子框圖之間傳遞數(shù)據(jù),平鋪順序結(jié)構(gòu)可以直接連線,但層疊順序結(jié)構(gòu)要借助順序結(jié)構(gòu)變量。第38頁,講稿共54頁,2023年5月2日,星期三39

在各個(gè)子程序框圖之間傳遞數(shù)據(jù),平鋪順序結(jié)構(gòu)可以直接連線。第39頁,講稿共54頁,2023年5月2日,星期三40建立順序局部變量的方法是在順序結(jié)構(gòu)邊框上彈出快捷菜單,選擇“添加順序局部變量”,出現(xiàn)一黃色小方框。為這個(gè)小方框連接數(shù)據(jù)后它的中間出現(xiàn)一個(gè)指向數(shù)據(jù)結(jié)構(gòu)框外的箭頭。不能在為順序局部變量賦值的子代碼圖形框之前訪問該數(shù)據(jù)。在這些子框圖中順序局部變量圖標(biāo)沒有箭頭,也不允許連線。在為順序局部變量賦值的子框圖之后,所有子框圖都可以訪問這個(gè)數(shù)據(jù),這些子框圖的順序局部變量圖標(biāo)都有一個(gè)向內(nèi)的箭頭。層疊順序結(jié)構(gòu)傳遞數(shù)據(jù).vi第40頁,講稿共54頁,2023年5月2日,星期三415-5-3順序結(jié)構(gòu)應(yīng)用示例

使用平鋪順序結(jié)構(gòu)計(jì)時(shí)

使用順序結(jié)構(gòu)計(jì)時(shí).vi第41頁,講稿共54頁,2023年5月2日,星期三425-5-3順序結(jié)構(gòu)應(yīng)用示例

使用層疊順序結(jié)構(gòu)計(jì)時(shí)使用順序結(jié)構(gòu)計(jì)時(shí).vi第42頁,講稿共54頁,2023年5月2日,星期三435-5-4順序結(jié)構(gòu)的缺陷與人為的數(shù)據(jù)依從關(guān)系

NI公司在LabVIEW中提供了順序結(jié)構(gòu),卻不提倡過多使用它。原因主要有兩點(diǎn)。順序結(jié)構(gòu)妨礙了作為L(zhǎng)abVIEW優(yōu)點(diǎn)之一的程序并行運(yùn)行機(jī)制。順序結(jié)構(gòu)掩蓋了部分程序代碼,中斷了作為L(zhǎng)abVIEW

主要特點(diǎn)的數(shù)據(jù)流形式。這一點(diǎn)已經(jīng)通過使用平鋪的順序結(jié)構(gòu)解決。第43頁,講稿共54頁,2023年5月2日,星期三445-8公式節(jié)點(diǎn)5-8-1公式節(jié)點(diǎn)的用途圖形編程的數(shù)學(xué)計(jì)算

公式節(jié)點(diǎn)的數(shù)學(xué)計(jì)算程序中的復(fù)雜運(yùn)算可使用公式節(jié)點(diǎn)使程序簡(jiǎn)潔公式節(jié)點(diǎn).vi第44頁,講稿共54頁,2023年5月2日,星期三455-8公式節(jié)點(diǎn)5-8-2公式節(jié)點(diǎn)的建立 在“編程—>結(jié)構(gòu)”函數(shù)子選板和“數(shù)學(xué)—>腳本與公式”函數(shù)子選板都可以找到公式節(jié)點(diǎn)。在程序框圖中放置公式節(jié)點(diǎn)的方法以及公式節(jié)點(diǎn)邊框大小的調(diào)整與其它結(jié)構(gòu)是一樣的。5-8-3公式節(jié)點(diǎn)的語法

公式節(jié)點(diǎn)中的代碼看上去就像一小段C語言的程序。公式節(jié)點(diǎn)中也可以聲明變量,可以使用C語言的語法,可以加語句注釋,每個(gè)公式語句也是以分號(hào)結(jié)束。公式節(jié)點(diǎn)的變量可以與輸入輸出接線端連線無關(guān),但是變量不能有單位。第45頁,講稿共54頁,2023年5月2日,星期三465.8公式節(jié)點(diǎn)FormulaNode

用“編輯文本工具”往公式節(jié)點(diǎn)中輸入公式;在公式節(jié)點(diǎn)邊框上彈出菜單,選擇“添加輸入”或“添加輸出”為公式節(jié)點(diǎn)創(chuàng)建輸入或輸出端口在端口小方框中輸入變量名(分大小寫),將提供變量值的控制件或前面的程序節(jié)點(diǎn)連接到輸入端口,將輸出端口連接到顯示件或需要此數(shù)據(jù)的后續(xù)節(jié)點(diǎn)。第46頁,講稿共54頁,2023年5月2日,星期三47公式節(jié)點(diǎn)常用運(yùn)算符意義符號(hào)賦值=加、減、乘、除、乘方+、-、*、/、**邏輯或、

溫馨提示

  • 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)論