版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第五章 結(jié)構(gòu)學(xué)習(xí)目的: 學(xué)習(xí)For 循環(huán)、While循環(huán)、Case 結(jié)構(gòu)和順序結(jié)構(gòu) 了解在 LabVIEW 中如何使用定時函數(shù) 了解移位寄存器的應(yīng)用 熟悉公式節(jié)點(diǎn) 鑒別常見的結(jié)構(gòu)連線錯誤 本地變量和全局變量5.1 For 循環(huán) For循環(huán)用于將某段程序執(zhí)行指定次數(shù)。和While 循環(huán)一樣,它不會立刻出現(xiàn)在框圖中,而是出現(xiàn)一個小的圖標(biāo),而后您可以修改它的大小和位置。具體的方法是,先單擊所有端子的左上方,然后按下鼠標(biāo),拖曳出一個包含所有端子的矩形。釋放鼠標(biāo)時就創(chuàng)建了一個指定大小和位置的For循環(huán)。For Loop For循環(huán)有兩個端子:計數(shù)端子(輸入端子)和重復(fù)端子(輸出端子)計數(shù)端子N:要執(zhí)行循
2、環(huán)的次數(shù) 0將不執(zhí)行重復(fù)端子i:已執(zhí)行循環(huán)的次數(shù) 0-N-1次例:例:5.2 While 循環(huán) While 循環(huán)可以反復(fù)執(zhí)行循環(huán)體的程序,直至到達(dá)某個邊界條件。While 循環(huán)的框圖是一個大小可變的方框,用于執(zhí)行框中的程序,直到條件端子接收到的布爾值為 FALSE。 While循環(huán)有兩個端子:條件端子(輸入端子)和重復(fù)端子(輸出端子)。 循環(huán)變量條件端子該循環(huán)有如下特點(diǎn): 計數(shù)從0開始(i=0)。 先執(zhí)行循環(huán)體,而后i+1,如果循環(huán)只執(zhí)行一次,那么循環(huán)輸出值i=0。 循環(huán)至少要運(yùn)行一次。條件端子輸入的是布爾變量,它用于判斷循環(huán)在什么條件下停止執(zhí)行。它有兩種使用狀態(tài):Stop if True和C
3、ontinue if True 重復(fù)端子i為當(dāng)前循環(huán)的次數(shù)。輸入端子放在循環(huán)外部,只在循環(huán)運(yùn)行前讀入一次。例:產(chǎn)生隨機(jī)數(shù)For 循環(huán)和While循環(huán)的索引注:自動索引:循環(huán)次數(shù)由數(shù)組長度決定,多個數(shù)組輸入由最小的決定。 禁止索引:循環(huán)次數(shù)有計數(shù)端子決定。5.3 移位寄存器和反饋節(jié)點(diǎn) 移位寄存器可以將數(shù)據(jù)從一個循環(huán)周期傳遞到另外一個周期。在程序設(shè)計中,經(jīng)常要用到它創(chuàng)建一個移位寄存器的方法是,用鼠標(biāo)右鍵單擊循環(huán)的左邊或者右邊,在快捷菜單中選擇 添加移位寄存添加移位寄存器器。 移位寄存器在框圖上用在循環(huán)邊框上相應(yīng)的一對端子來表示。右邊的端子中存儲了一個周期完成后的數(shù)據(jù),這些數(shù)據(jù)在這個周期完成之后將被
4、轉(zhuǎn)移到左邊的端子,賦給下一個周期。移位寄存器可以轉(zhuǎn)移各種類型的數(shù)據(jù)數(shù)值、布爾數(shù)、數(shù)組、字符串等等。它會自動適應(yīng)與它連接的第一個對象的數(shù)據(jù)類型。下圖表示了它的工作過程。 通過設(shè)置移位寄存器,可以保留前面多次循環(huán)的數(shù)據(jù)值。添加多個移位寄存器的左端子,只能有一個右端子。舉例: 在For循環(huán)或While循環(huán)中,反饋節(jié)點(diǎn)用于將子VI、函數(shù)或一組子VI和函數(shù)的輸出連接到同一個子VI、函數(shù)或組的輸入上即創(chuàng)建反饋路徑。舉例:反饋節(jié)點(diǎn)的不同實(shí)現(xiàn)例例 求求 1001nn5.4 分支結(jié)構(gòu):Case Case結(jié)構(gòu)含有兩個或者更多的子程序(Case),執(zhí)行那一個取決于與選擇端子或者選擇對象的外部接口相連接的某個整數(shù)、布
5、爾數(shù)、字符串或者標(biāo)識的值。必須選擇一個默認(rèn)的Case以處理超出范圍的數(shù)值,或者直接列出所有可能的輸入數(shù)值。Case結(jié)構(gòu)見下圖,各個子程序占有各自的流程框,在其上沿中央有相應(yīng)的子程序標(biāo)識:真、假或、。按鈕用來改變當(dāng)前顯示的子程序(各子程序是重疊放在屏幕同一位置上的)。子程序標(biāo)識按鈕條件端子1 添加和刪除分支 指定默認(rèn)分支。2 連接輸入和輸出 對所有條件分支來說對于輸入通道的數(shù)據(jù)可以使用,也可以不使用。如果任何一個分支提供了輸出數(shù)據(jù),則所有分支也都必須提供。條件結(jié)構(gòu)應(yīng)注意的問題條件結(jié)構(gòu)應(yīng)注意的問題:在使用選擇結(jié)構(gòu)時,控制條件的數(shù)據(jù)類型必須與圖框標(biāo)識符在使用選擇結(jié)構(gòu)時,控制條件的數(shù)據(jù)類型必須與圖框標(biāo)
6、識符中的數(shù)據(jù)類型一致。二者若不匹配,中的數(shù)據(jù)類型一致。二者若不匹配,LabVIEW 會報錯,圖框會報錯,圖框標(biāo)識符中字體的顏色將變?yōu)榧t色。標(biāo)識符中字體的顏色將變?yōu)榧t色。在在 LabVIEW 中,對于數(shù)值型條件必須包含處理超出范圍值中,對于數(shù)值型條件必須包含處理超出范圍值的默認(rèn)分支,對于其它類型的條件可設(shè)或不設(shè),但必須明確的默認(rèn)分支,對于其它類型的條件可設(shè)或不設(shè),但必須明確地列出每一個可能的輸入值。地列出每一個可能的輸入值。例:利用條件結(jié)構(gòu)編寫溫度采集報警程序,當(dāng)采集溫度高于設(shè)定值時產(chǎn)生報警。 練習(xí): 設(shè)計一個評分程序,輸入不同的分?jǐn)?shù)會得到不同的評論。分?jǐn)?shù)小于60,“警告”指示燈會亮起來,同時顯
7、示字符串“你沒有通過考試!”;分?jǐn)?shù)在6099之間,“通過”指示燈會亮起來,同時顯示字符串“你考試通過了!”;分?jǐn)?shù)為100,“恭喜”指示燈會亮起來,同時顯示字符串“你是第一名!”;如果輸入為0100以外的數(shù)字,會有錯誤提示,同時顯示字符串“錯誤!”。5.5 順序結(jié)構(gòu)(Sequence Structure) 在代碼式的傳統(tǒng)編程語言中,默認(rèn)的情況是,程序語句按照排列順序執(zhí)行,但LabVIEW中不同,它是一種圖形化的數(shù)據(jù)流式編程語言。在圖中,假設(shè)有A、B、C、D個節(jié)點(diǎn),其數(shù)據(jù)流向如圖所示。按照數(shù)據(jù)流式語言的約定,任何一個節(jié)點(diǎn)只有在所有的輸入數(shù)據(jù)有效時才會執(zhí)行,所以圖中,當(dāng)且僅當(dāng)A、B、C個節(jié)點(diǎn)執(zhí)行完,
8、使得D節(jié)點(diǎn)的個輸入數(shù)據(jù)都到達(dá)D節(jié)點(diǎn)后,D節(jié)點(diǎn)才執(zhí)行。但是你要注意,這里并沒有規(guī)定A、B、C個節(jié)點(diǎn)的執(zhí)行順序。在LabVIEW中這種情況下,A、B、C的執(zhí)行順序是不確定的,如果你需要對它們規(guī)定一個確定的順序,那就需要使用本節(jié)介紹的“順序結(jié)構(gòu)”。 ADCB平鋪式平鋪式選擇標(biāo)簽選擇標(biāo)簽注:順序結(jié)構(gòu)輸出隧道只能有一個數(shù)據(jù)源。 要想節(jié)約框圖空間選用疊層順序結(jié)構(gòu),使用單層順序結(jié)構(gòu)可以避免使用局部變量。避免過度使用順序結(jié)構(gòu)。例:計算生成等于某個給定值的隨機(jī)數(shù)據(jù)所用時間例:計算生成等于某個給定值的隨機(jī)數(shù)據(jù)所用時間5.6 公式節(jié)點(diǎn)(公式節(jié)點(diǎn)(Formula Node) 公式節(jié)點(diǎn)是一個大小可變的方框,可以利用它直
9、接在流程圖中輸入公式。從函數(shù)選板結(jié)構(gòu)中選擇公式節(jié)點(diǎn)就可以把它放到流程圖中。當(dāng)某個等式有很多變量或者非常復(fù)雜時,這個功能就非常有用。例如等式:y = x2 + x + 1使用公式節(jié)點(diǎn)可以表示為: 公式節(jié)點(diǎn)的創(chuàng)建通常按以下步驟進(jìn)行公式節(jié)點(diǎn)的創(chuàng)建通常按以下步驟進(jìn)行第一步創(chuàng)建公式節(jié)點(diǎn)第一步創(chuàng)建公式節(jié)點(diǎn) 第二步添加輸入、輸出端口第二步添加輸入、輸出端口 第三步輸入程序代碼第三步輸入程序代碼 使用文本編輯工具來輸入公式。創(chuàng)建公式節(jié)點(diǎn)的輸入和輸出端子的方法是,從節(jié)點(diǎn)邊框上彈出快捷菜單中,選擇添加輸入 (添加輸出)。再在節(jié)點(diǎn)框中輸入變量名稱。變量名對大小寫敏感。然后就可以在框中輸入公式。每個公式語句都必須以分
10、號(;)結(jié)尾 。 注:公式節(jié)點(diǎn)中使用的每一個變量必須聲明為輸入或輸出之一,兩個輸入或輸出不能具有相同的名字。abs(x)絕對值函數(shù)絕對值函數(shù)ln(x)自然對數(shù)函數(shù)自然對數(shù)函數(shù)exp(x)指數(shù)函數(shù)指數(shù)函數(shù)log(x)對數(shù)函數(shù)對數(shù)函數(shù)sin(x)三角函數(shù)三角函數(shù)max(x) min(x)返回返回x,y中的最大和最小值中的最大和最小值pow(x)返回返回x的的y次方次方rand(x)產(chǎn)生產(chǎn)生(0,1)區(qū)間上的隨機(jī)數(shù)區(qū)間上的隨機(jī)數(shù)Int(x)返回距返回距x最近的整數(shù)最近的整數(shù)mod(x)求模運(yùn)算求模運(yùn)算ceil(x)返回大于返回大于x的最小整數(shù)的最小整數(shù)pisqrt(x)求求x的平方根的平方根+ -
11、* /四則運(yùn)算四則運(yùn)算!= =不等于不等于 等于等于位異或位異或&邏輯與邏輯與*求冪求冪函數(shù)名函數(shù)名說明說明函數(shù)名函數(shù)名說明說明abs(x)絕對值lnp1(x)返回ln(x)+1acos(x)反余弦,x弧度log(x)以10為底對數(shù)acosh(x)反雙曲余弦,x弧度log2(x)以2為底對數(shù)asin(x)反正弦max(x,y)xy中最大值者asinh(x)min(x,y)xy中最小值者atan(x)反正切函數(shù)mod(x,y)求模,xy的整數(shù)值 atanh(x)反雙曲正切pi(x)X*ceil(x)返回大于1的最小整數(shù)pow(x,y)xyci(x)余弦積分,x為非負(fù)實(shí)數(shù)rand( )(0
12、,1)區(qū)間的隨機(jī)數(shù)cos(x)余弦函數(shù)rem(x,y)返回xy的余數(shù)cosh(x)雙曲余弦sec(x)正割cot(x)余切函數(shù)sign(x)符號csc(x)余割函數(shù)sin(x)正弦,x弧度exp(x)指數(shù)函數(shù)sinc(x)sin(x)/xexpm1(x)exp(x)-1sinh(x)雙曲正弦floor(x)返回小于x的最大整數(shù)sqrt(x)平方根int(x)返回距x最近的整數(shù)tan(x)正切intrz(x)返回0-x間最近的整數(shù)tanh(x)雙曲正切l(wèi)n(x)自然對數(shù)函數(shù)公式節(jié)點(diǎn)的運(yùn)算符公式節(jié)點(diǎn)的運(yùn)算符運(yùn)算符運(yùn)算符說明說明運(yùn)算符運(yùn)算符說明說明?:?:條件賦值條件賦值大于等于大于等于&邏
13、輯與邏輯與小于等于小于等于邏輯或邏輯或算術(shù)移位(右移)算術(shù)移位(右移)!邏輯非邏輯非算術(shù)移位(左移)算術(shù)移位(左移)&位與位與加加位或位或減減位異或位異或*乘乘!不等于不等于除除等于等于加加1大于大于減減1小于小于*乘方乘方計算y=x-e*sin(x) (0e1)練習(xí)練習(xí):創(chuàng)建一個創(chuàng)建一個VI,它用公式節(jié)點(diǎn)計算下列等式:,它用公式節(jié)點(diǎn)計算下列等式:y1 = x 3 x 2 + 5y2 = m* x + b x的范圍是的范圍是從從0到到10??梢詫@兩個公式??梢詫@兩個公式使用同一個公式節(jié)點(diǎn)使用同一個公式節(jié)點(diǎn),并在同一個圖表中顯示結(jié)果。并在同一個圖表中顯示結(jié)果。5.8 結(jié)構(gòu)連線中的一些
14、常見問題 給順序結(jié)構(gòu)局部變量多次復(fù)制對順序結(jié)構(gòu)中的多個幀進(jìn)行連線未在Case結(jié)構(gòu)的所有分支中連接隧道隧道重疊創(chuàng)建隧道5.9本地變量和全局變量 局部變量和全局變量是LabVIEW用來傳遞數(shù)據(jù)的工具。LabVIEW編程是一種數(shù)據(jù)流編程,它是通過連線來傳遞數(shù)據(jù)的。但是如果一個程序太復(fù)雜的話,有時連線會很困難甚至無法連線,這時就需要用到局部變量。另外,需要在兩個程序之間交換數(shù)據(jù)時,靠連線的方式是無法實(shí)現(xiàn)的,在這種情況下,就需要使用全局變量。 本地變量相當(dāng)于傳統(tǒng)編程語言中的局部變量,可以在同一個程序內(nèi)部使用。 創(chuàng)建局部變量的方法有兩種創(chuàng)建局部變量的方法有兩種: :(1 1)直接為前面板對象創(chuàng)建局部變量)
15、直接為前面板對象創(chuàng)建局部變量(2 2)通過函數(shù)選板創(chuàng)建局部變量)通過函數(shù)選板創(chuàng)建局部變量 注意:局部變量具有讀、寫兩種屬性注意:局部變量具有讀、寫兩種屬性例:采集產(chǎn)生一個隨機(jī)數(shù),大于等于0.5LDE燈亮 局部變量的特點(diǎn):(1)局部變量只能在同一個)局部變量只能在同一個VI中使用,其生存期與它中使用,其生存期與它所在的所在的VI模塊密切相關(guān),模塊密切相關(guān),VI停止運(yùn)行,在此停止運(yùn)行,在此VI內(nèi)定義的內(nèi)定義的局部變量自動消失。局部變量自動消失。(2)局部變量必須依附在一個前面板對象上。一個前)局部變量必須依附在一個前面板對象上。一個前面板對象可以建立多個局部變量,但一個局部變量只能面板對象可以建立
16、多個局部變量,但一個局部變量只能有一個端點(diǎn)與其對應(yīng)。有一個端點(diǎn)與其對應(yīng)。(3)局部變量就是其相應(yīng)前面板對象的一個數(shù)據(jù)拷貝,)局部變量就是其相應(yīng)前面板對象的一個數(shù)據(jù)拷貝,要占用一定的內(nèi)存。要占用一定的內(nèi)存。 全局變量可以在不同的全局變量可以在不同的VIVI之間進(jìn)行數(shù)據(jù)傳遞。之間進(jìn)行數(shù)據(jù)傳遞。全局變量是內(nèi)置的全局變量是內(nèi)置的LabVIEWLabVIEW對象。創(chuàng)建全局變量時,對象。創(chuàng)建全局變量時,LabVIEWLabVIEW將自動創(chuàng)建一個前面板但無程序框圖的特將自動創(chuàng)建一個前面板但無程序框圖的特殊全局殊全局VIVI。向該全局。向該全局VIVI的前面板添加輸入控件和的前面板添加輸入控件和顯示控件可定義
17、其中所含全局變量的數(shù)據(jù)類型。顯示控件可定義其中所含全局變量的數(shù)據(jù)類型。 1.創(chuàng)建全局變量創(chuàng)建全局變量 (1)新建一個)新建一個VI,從函數(shù)選板的結(jié)構(gòu)子選板中選,從函數(shù)選板的結(jié)構(gòu)子選板中選擇一個全局變量,將其放置在程序框圖中擇一個全局變量,將其放置在程序框圖中 (2)使用操作工具雙擊全局變量節(jié)點(diǎn),會自動打)使用操作工具雙擊全局變量節(jié)點(diǎn),會自動打開全局變量開全局變量VI的前面板,然后在前面板上放置所的前面板,然后在前面板上放置所需的控制或顯示對象需的控制或顯示對象 (3)保存全局變量文件。方法是在主菜單中選擇)保存全局變量文件。方法是在主菜單中選擇【文件文件】【保存保存】。然后關(guān)閉全局變量的前面。
18、然后關(guān)閉全局變量的前面板窗口。板窗口。 (4)使用操作工具單擊第一步所創(chuàng)建的全局變量)使用操作工具單擊第一步所創(chuàng)建的全局變量圖標(biāo),或在其右擊彈出快捷菜單中選擇圖標(biāo),或在其右擊彈出快捷菜單中選擇【選擇選擇項(xiàng)項(xiàng)】,彈出的子菜單列出了全局變量所包含的所,彈出的子菜單列出了全局變量所包含的所有對象的名稱,根據(jù)需要選擇相應(yīng)的對象。有對象的名稱,根據(jù)需要選擇相應(yīng)的對象。 2. 全局變量的調(diào)用全局變量的調(diào)用(1 1)在)在VI VI 的功能模板上選擇的功能模板上選擇【選擇選擇VIVI】,在彈,在彈出的出的【選擇需打開的選擇需打開的VIVI】對話框中,選擇所需的對話框中,選擇所需的全局變量聲明文件,單擊確定按鈕,在程序框圖全局變量聲明文件,單擊確定按鈕,在程序框圖中放置這個全局變量;中放置這個全局變量;(2 2)右擊全局變量節(jié)點(diǎn),在彈出的快捷菜單上選取)右擊全局變量節(jié)點(diǎn),在彈出的快捷菜單上選取【選擇項(xiàng)選擇項(xiàng)】,在列出的所有變量對象中選擇所需,在列出的所有變量對象中選擇所需對象;對象;(3 3)若在一個)若在一個VIVI中需要使用多個全局變量,可使用中需要使用多個全局變量,可使用拷貝和粘貼全局變量的方法實(shí)現(xiàn)全局變量的復(fù)制??截惡驼迟N全局變量的方法實(shí)現(xiàn)全局變量的復(fù)制。例:例: 第一個第一個VI測量溫度,測量溫度,送至全局變量中,第二個送至全局變量
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度汽車維修與租賃業(yè)務(wù)管理服務(wù)合同2篇
- 四年級下學(xué)期教學(xué)計劃集錦五篇
- 小學(xué)三年級上冊英語教案
- 元旦晚會主持稿集合15篇
- 寫給老師的道歉信模板集合八篇
- 秋天的校園作文400字范文(10篇)
- 幼兒園春季學(xué)期工作總結(jié)5篇
- 我的愿望小學(xué)作文15篇
- 畢業(yè)實(shí)習(xí)總結(jié)(集合15篇)
- 工程居間協(xié)議協(xié)議書3篇
- 礦井軌道質(zhì)量標(biāo)準(zhǔn)及架線維護(hù)規(guī)程
- 打字測試評分標(biāo)準(zhǔn)
- VBOXTools軟件操作手冊
- 外研版(三年級起點(diǎn))五年級上冊重點(diǎn)知識點(diǎn)復(fù)習(xí)
- 2023-2024學(xué)年四川省涼山州小學(xué)數(shù)學(xué)六年級上冊期末自測試卷
- 2023年報告文學(xué)研究(自考)(重點(diǎn))題庫(帶答案)
- GB/T 18691.5-2021農(nóng)業(yè)灌溉設(shè)備灌溉閥第5部分:控制閥
- 安全帶管理登記臺帳
- 第26課《詩詞五首-漁家傲》課件【教材精講精研】部編版語文八年級上冊
- 湖南省高等教育自學(xué)考試 畢業(yè)生登記表
- 湖北省武漢市江漢區(qū)2021-2022七年級初一上學(xué)期期末數(shù)學(xué)試卷+答案
評論
0/150
提交評論