虛擬儀器應用-項目3_第1頁
虛擬儀器應用-項目3_第2頁
虛擬儀器應用-項目3_第3頁
虛擬儀器應用-項目3_第4頁
虛擬儀器應用-項目3_第5頁
已閱讀5頁,還剩65頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目3

應用結構設計程序目錄3.1任務1應用For循環編寫VI3.2任務2應用While循環設計VI3.3應用條件結構設計VI3.4應用順序結構設計VI3.5應用事件結構設計VI

3.1任務1應用For循環編寫VI

LabVIEW中除了擁有C語言中所有的程序結構外,還有一些特殊的程序結構,如事件結構、公式節點等,通過這些可以方便快捷地實現任何復雜的程序結構。

同其它的文本語言一樣,LabVIEW中也有各種結構。LabVIEW中的結構主要有While循環、For循環、順序結構、條件結構、事件結構等。選擇函數選板→編程→結構,打開結構子選板。3.1任務1應用For循環編寫VILabVIEW中的結構放置在程序框圖中,其外形一般是一個大小可以縮放的邊框,當它與其他節點的連線有數據傳遞時,邊框內的一段代碼將反復執行或有條件執行或按某一定的順序執行。結構內的該段代碼則被稱為子框圖。LabVIEW中的循環與結構位于程序框圖的“函數”選板下的“結構”子選板中。3.1任務1應用For循環編寫VI“結構”子選板界面3.1任務1應用For循環編寫VI1.For循環結構

在結構子選板中找到For循環,鼠標左鍵單擊,移動鼠標到程序框圖上,找到合適位置,按下鼠標左鍵,定位框體的左上角,然后移動鼠標??梢钥吹诫S鼠標移動而變化的矩形虛線框。釋放鼠標左鍵,就出現一個For循環結構。3.1任務1應用For循環編寫VI3.1.1設計循環計數器

要求:應用For循環,設計循環計數器。設置“循環總數”為5,觀察“循環計數”的輸出,并記錄循環次數。

循環總數:輸入要循環的次數。循環次數為正整數,因此N為藍色。在默認的情況下確立了For循環執行的次數,一旦開始執行后,只有達到輸入的循環次數才能終止其運行。也可以給N輸入0值,此時不會執行該循環中的內容。循環計數:表示它是一個循環計數器i。計數由0開始計數,第一次循環結束,i計數為0,之后依次加1,一直記到i=N-1。3.1任務1應用For循環編寫VI步驟:1)新建一個VI。2)在“計數接線端”的右側端點上點擊鼠標右鍵,創建顯示控件,并把該控件命名為“循環計數”,用來顯示i的數值。3)構造反饋結構,實現每執行一次循環體內部程序,計數的數值加1,用來觀察循環次數;并顯示“循環次數”。4在循環體內放置一個“等待”節點,使得For循環每運行一次等待1秒。5)保存VI,切換到前面板,然后運行VI,觀察兩個數值控件數據變化情況:可以看到顯示控件的數據每秒加1;“循環計數”從0遞增到4、“循環次數”從1增加到5。3.1任務1應用For循環編寫VI從運行結果可以看出,For循環的循環次數由循環總數N決定;循環計數器從0開始計數,計到N-1For循環停止。3.1任務1應用For循環編寫VI1.For循環中的自動索引

自動索引的功能是使循環框外面的數組成員逐個進入循環框內,或使循環框內的數據累加成一個數組輸出到循環框外面。

For循環的索引可通過鼠標右鍵單擊循環邊框的數據通道來啟動和關閉,For循環默認開啟自動索引功能。3.1.2利用For循環創建二維數組3.1任務1應用For循環編寫VI用自動索引后,循環框內的標量數據在循環框外變成一維數組;循環框內一維數組在循環框外就變成二維數組,因此通過自動索引可改變數組維度。2.創建二維數組要求:利用兩個嵌套的For循環,創建一個4行5列的二維數組,數組如下:123451112131415212223242531323334353.1任務1應用For循環編寫VI步驟:1)新建一個VI,在程序框圖窗口工作區放置放置兩個個嵌套的For循環,把循環總數內層設為5,外層設為4。2)生成行元素一維數組。3)生成二維數組。4)保存VI,命名為“創建二維數組”。5)運行該VI,二維數組有4行、5列??梢?,外層循環總數為數組行數,內層循環總數為數組列數。3.1任務1應用For循環編寫VI3.1任務1應用For循環編寫VI3.1.3移位寄存器使用移位寄存器是LabVIEW循環結構中的一個附加對象,其功能是將當前循環完成的某個數據傳遞給下一個循環開始。在For循環的左邊框或右邊框上右擊,打開快捷菜單,選擇“添加移位寄存器”。此時左右框各出現一個黑色移位寄存器端口。右邊端口存儲檔次循環結束時的數據,下次循環開始時,該數據傳遞給左邊端口。3.1任務1應用For循環編寫VI3.1.3移位寄存器使用為了存儲多次循環的數據,可以在寄存器的左端添加端口。方法是在端口上右擊,打開的菜單中選擇“添加元素”或“刪除元素”來改變移位寄存器的位數。(a)添加寄存器(b)寄存器賦值(c)初始化與添加端口3.1任務1應用For循環編寫VI一般來說,移位寄存器可以存儲任何類型的數據,但是連接在同一個寄存器兩個端子上的數據必須是同一類型的。在使用移位寄存器之前,可對寄存器進行初始化,即在左側寄存器端口連接一個常量作為初始值。如果不進行初始化,首次運行,把“0”作為初始值;非首次運行則把上次運行的數據作為初始值。3.1任務1應用For循環編寫VI移位寄存器用來將本次循環的數據存儲下來,以備下一次循環使用,在下一次循環使用以后,其中的數據被新的數據所覆蓋。把初始化數據設為“5”,在每個端口添加一個顯示控件,并放置一個探針,如圖3-7所示。運行VI時,右端口數據送入左測的第1個端口,左側數據按照三角箭頭的方向傳遞,1號端口數據送入2號端口,依次下傳。第0次運行i=0,“0”被送給右側端口,左側3個端口被賦值“5”,運行結果為“0,5,5,5”;第1次運行,數據為“1,0,5,5”;第2次結果“2,1,0,5”,第3次“3,2,1,0”……第9次運行結果。3.1任務1應用For循環編寫VI3.1任務1應用For循環編寫VI3.2任務2應用While循環設計VI1.While循環結構While循環也在函數選板的結構子選板中,放置方法與For循環相同,功能結構也與For循環類似。While循環由循環框架、循環計數端子、條件端子三個部分組成。While循環無固定的運行次數,當滿足停止條件時,循環停止。循環計數端子i由0開始計數,也就是說第一次循環結束,i計數為0,之后依次累加1。條件端子需要輸入一個布爾量,否則程序無法運行。默認狀態是指當條件輸入為真(True)時,循環停止。點擊條件端子,其會變為,此時條件輸入為假(False)時,循環停止。3.2.1設計復數運算VI2.設計復數運算VI要求:設計VI實現復數運算代數式和指數式的互相轉換。該任務中要用到“復數”和“數學與科學常量”兩個子選板。這兩個子選板都在數值子選板中。3.2任務2應用While循環設計VI3.2任務2應用While循環設計VI步驟:1)新建一個VI,在程序框圖上放置一個While循環,在條件停止端子上創建一個輸入控件,用來停止該循環。2)實現把復數的極坐標式轉換成代數式,并在該控件屬性里設置“精度位數”為小數點后2位。3)實現把復數的代數式轉換成極坐標式,數值顯示控件的“精度位數”設置為小數點后2位。4)運行該VI。?在模和幅角輸入控件分別輸入5和36.87,觀察代數式輸出為4+3i。?在實部和虛部輸入控件分別輸入4和3,得到的模是5,幅角是36.87度。3.2任務2應用While循環設計VI3.2任務2應用While循環設計VI3.2.2設計溫度轉換與報警VI要求:溫度測量輸入為攝氏溫度,調用在“1.3任務3創建VI”中創建的“ConvertCtoF.vi”,把攝氏溫度轉換成華氏溫度。當溫度超過華氏200度時,指示燈點亮,并停止運行VI。3.2任務2應用While循環設計VI3.2任務2應用While循環設計VI1.While循環與For循環比較1)For循環的數組默認為自動索引開啟,While循環中的數組默認為自動索引禁用??稍谘h的通道上單擊鼠標右鍵彈出快捷菜單選擇“啟用\禁用索引”選項。另外,在創建二維數組時一般使用For循環而不使用While循環。2)和For循環一樣,While循環也有移位寄存器,使用方法和For循環一樣。

3.2.3設計循環累加器3.2任務2應用While循環設計VI3)For循環是在執行前檢查是否符合條件,While循環是在執行后再檢查條件端子。因此當While循環的條件端子停止條件為“真”時,也要執行一次,即While循環至少執行一次;而對于For循環,當總數接線端N=0時,不執行For循環內的程序。4)在默認的情況下,在For循環的總數接線端N輸入數值,確定For循環執行的次數,一旦開始執行后,只有達到N次才能終止;而While循環事先不設置循環次數,只要滿足條件端子的停止條件,就停止循環跳出循環體。如果一定要用For循環實現滿足條件,停止循環跳出循環體,只需在其邊框上的任意位置右擊,在快彈出的捷菜單里選擇“條件接線端”,可用來實現滿足停止條件,停止循環。3.2任務2應用While循環設計VI2.設計循環累加器要求:設計VI實現產生隨機數,并進行累加,當累加和大于10或者累加20次時停止運行。分析:從要求上看,應該使用For循環的條件停止。3.2任務2應用While循環設計VI

1.真假條件在文本語言中有if…else語句、Switch語句等,在LabVIEW中也有與之類似的結構—條件(Case)結構當條件選擇器上連接的是布爾量時,相當于if…else語句。條件選擇器上還可以連接其它數據類型,如數值、字符串、枚舉型、錯誤簇等。條件結構由結構框架、條件選擇端口、選擇器標簽、遞增/減按鈕組成。條件結構一般可與For循環、While循環配合使用。3.3.1設計數值選擇輸出VI3.3應用條件結構設計VI3.3應用條件結構設計VI2.設計數值選擇輸出VI要求:生成10個0~10的隨機數,當隨機數的數值大于等于5時取整;小于5時取值5。然后把這10個數組成數組顯示。3.3應用條件結構設計VI3.3.2編寫水果總價計算VI1.多種選擇條件分支不一定要使用輸入數據或提供輸出數據,但是如果任一分支有輸出數據,則其他所有的分支也必須在該數據通道有數據輸出,否則將可能導致編程中的代碼錯誤。如果有多種選擇的情況,可以為分支選擇器連接一個“枚舉”輸入控件。在條件結構框架上單擊鼠標右鍵,在彈出的快捷菜單中選擇“在后面添加分支”菜單項用戶就可以為條件結構添加新的分支。添加完新分支后可在快捷菜單中選擇“重排分支”菜單項。打開“重排分支”對話框,在對話框的分支列表中用鼠標拖動列表項可以對分支重新排序。通常,排序按鈕以第一個選擇值為基準對選擇器標簽值進行排序。刪除分支的操作與添加分支相同。3.3應用條件結構設計VI3.3應用條件結構設計VI2.水果總價計算VI要求:列出4種水果,如蘋果、香蕉、橙子、梨子。選擇水果種類,輸入重量,運行VI,計算該種水果的總價。3.3應用條件結構設計VI步驟:1)創建VI,命名為“水果總價計算.vi”2)編輯前面板。在控件選板的“新式→字符串與路徑”子選板中找到組合框,拖放在前面板,并把標簽修改為“水果種類”。鼠標右擊該控件,選擇“編輯項”選項,打開編輯項屬性對話框進行編輯。完成項的編輯然后點擊“確定”按鈕。在前面板放置一個數值輸入控件,標簽為“重量”;放置一個數值顯示控件,標簽為“總價”。

3.3應用條件結構設計VI

圖3-20組合框編輯項窗口3.3應用條件結構設計VI3)在程序框圖窗口,放置條件結構,把組合框連接到條件結構的分支選擇器上。把選擇器標簽修改為“a”、“b”。在“b”分支上右擊鼠標,在彈出的快捷菜單中選擇“在后面添加分支”,來添加、“p”分支。在a分支把重量與蘋果的單價相乘,b分支把重量與香蕉單價相乘,o分支重量與橙子單價相乘,p分支重量與梨子單價相乘。把每個分支的乘積與“總價”相連。把以上的程序代碼放到While循環中。

3.3應用條件結構設計VI4)運行VI,在前面板組合框“水果種類”中選擇一種水果(如蘋果),選擇框里面就會顯示該種水果名稱。再輸入重量,“總價”顯示控件中就會顯示該水果的總價。3.3應用條件結構設計VI3.4應用順序結構設計VI3.4.1順序結構在LabVIEW中,可以用順序結構來控制程序執行順序。順序結構由多個框架組成,從框架0到框架n。程序運行時,首先執行的是放在框架0中的程序,然后執行的是放在框架1中的程序,……,這樣依次執行下去。這些子框圖看起來就像一幀幀的電影膠片,因此每個框架稱為一幀。在程序運行時,只有上一個框架中的程序運行結束后才能運行下一個框架中的程序。順序結構共有兩種類型:層疊式順序結構和平鋪式順序結構。平鋪式,結構比較簡單,從第0號開始依次排列;層疊式每次只能看到一幀,與條件結構類似,框架上端有“選擇器標簽”,可以選擇某一幀來察看該幀的程序。這兩種類型選擇器功能相同,順序結構簡單直觀不需要在框架之間的切換;層疊結構使程序簡潔,節省視覺空間;兩種類型之間是可以互相切換。3.4應用順序結構設計VI3.4.2編寫順序點亮指示燈VI

要求:用平鋪式順序結構編寫VI,實現紅、黃、綠三個指示燈依次點亮3秒。分析:用平鋪式順序結構,需要3幀,第1幀紅燈亮,黃燈和綠燈滅;第2幀黃燈亮,紅燈和綠燈滅;第3幀綠燈亮,紅燈和黃燈滅。3幀當中都要用到紅、黃、綠三個指示燈,因此要用到變量。3.4應用順序結構設計VI(a)平鋪式順序結構(b)層疊式順序結構3.4應用順序結構設計VI1.局部變量與全局變量在LabVIEW環境中,各個對象之間傳遞數據的基本途徑是通過連線。但是需要在幾個同時運行的程序之間傳遞數據時,顯然是不能通過連線的;即使在一個程序內部各部分之間傳遞數據時,有時也會遇到連線的困難;還有的時候,需要在程序中多個位置訪問同一個前面板對象,甚至有些是對它寫入數據、有些是由它讀出數據。在這些情況下,就需要使用全局變量和局部變量。3.4應用順序結構設計VI1.局部變量與全局變量在LabVIEW中的變量是程序框圖中的元素,通過它可以在另一位置訪問或存儲數據。根據不同的變量類型,數據的實際位置也不一樣,局部變量將數據存儲在前面板的輸入控件和顯示控件中;全局變量將數據存儲在特殊的可以通過多個VI訪問的倉庫中。局部變量的作用域是整個VI,用于在單個VI中傳輸數據;全局變量的作用域是整臺計算機,主要用在多個VI之間共享數據。3.4應用順序結構設計VI1)局部變量為控件創建局部變量的方法有兩種,一是在已有的控件對應端子上右擊,從彈出的快捷菜單中選擇創建→局部變量,如圖3-23所示。這樣就得到該對象的一個局部變量。另一種方法是選擇函數選板→結構→局部變量,然后將其拖到框圖上,就可得到一個圖標。鼠標左鍵單擊該圖標,將其與框圖中已有的變量建立關聯,即完成。3.4應用順序結構設計VI局部變量可以是“寫入”也可以是“讀取”。默認情況下為寫入型,可以鼠標右鍵單擊圖標,選擇轉換為讀取。局部變量只是原變量的一個數據拷貝,但是它的屬性可以修改,并且這種改變不會影響原變量。局部變量有三種基本的用途:控制初始化、協調控制功能、臨時保存數據和傳遞數據。3.4應用順序結構設計VI2)全局變量全局變量是LabVIEW中一個與VI地位等同的模塊,它以獨立文件的形式保存在磁盤中,文件后綴為.gbl。通過全局變量不同VI之間可以交換數據。創建全局變量的方法是在函數選板的“結構→全局變量”,將其圖標拖到框圖中,得到全局變量,圖標。雙擊全局變量圖標,打開其前面板,在該面板上放上所需要的變量,例如一個數值量、一個布爾量、一個字符串變量等。保存這個變量,默認名稱為“全局1.gbl”。至此,全局變量創建完備,下面就可以用調用子VI的方法調用這個全局變量。3.4應用順序結構設計VI全局變量的創建和調用3.4應用順序結構設計VI在一個VI中調用全局變量的方法同調用子VI的方法,即在函數下選擇“選擇VI”然后打開所需的全局變量文件,如“全局1.gbl”。鼠標左鍵單擊全局變量圖標,“全局1”中包含的3個變量就以列表形式出現,見圖8-17。選擇其中的布爾,該變量就是“布爾”控件的全局變量。有時需要從全局變量中讀數,有時需要向全局變量寫數。這時可利用快捷菜單改變其屬性。方法是右擊全局變量圖標,選擇“轉換為讀取”或“轉換為寫入”來改變讀寫方式。全局變量不僅可以在不同VI間傳遞數據,而且可以通過它傳遞消息,控制各VI的協調執行。它在程序設計中很有用。3.4應用順序結構設計VI無論是全局變量,還是局部變量使用過多也會帶來一些其它問題,必須引起注意。首先,從程序的靜態結構上看,會使程序結構不直觀,造成混亂。其次在程序運行過程中可能帶來數據狀態的競態現象,這主要指因為全局變量作為一種可讀可寫的中間變量,應當嚴格控制讀寫的操作,最好是使它們處于“一寫多讀”的狀態。否則可能帶來問題。3.4應用順序結構設計VI2.程序設計步驟1)把平鋪式順序結構拖放到工作區,在后面添加2個分支。2)在第一個分支放置3個指示燈,分別為紅、黃、綠。在紅燈上右擊鼠標,創建一個常量,單擊一下改為真常量,為黃燈和綠燈分別創建一個假常量。3)在指示燈上右擊鼠標,分別創建紅、黃、綠燈的局部變量,放置在第二幀中,并設置黃燈為真,紅燈和綠燈為假;同樣方法在第三幀中,紅燈和黃燈將為假,綠燈為真。4)在每一幀中放置“等待(ms)”,并設置等待時間為3000ms3.4應用順序結構設計VI2.程序設計步驟5)在前面板,改變指示燈的顏色。指示燈默認點亮為亮綠色,熄滅為暗綠色,因此,紅燈和黃燈需要修改一下。在紅燈上右擊鼠標,在彈出的快捷菜單中選擇“屬性”,打開屬性對話框。在標簽為“外觀”選項界面,看到顏色屬性中的“開”為亮綠色,單擊該綠色方塊,彈出顏色選擇窗口,選擇紅色。再單擊“關”對應的色塊,選擇暗紅色,然后單擊確定按鈕,即完成紅燈顏色設置。同樣方法設置黃燈的顏色。6)運行程序,觀察指示燈點亮過程。3.4應用順序結構設計VI3.4應用順序結構設計VI3.5應用事件結構設計VI在LabVIEW中另一個常用的結構就是事件結構(Events),事件結構用來作界面響應。當前面板上有數值變化、按鍵按下等情況時,就觸發事件結構中的對應幀,實現相應的功能。事件結構避免了程序運行中不斷地輪詢前面板是否有用戶交互事件的發生,而是在有事件發生時才做響應,避免了不必要的資源占用。3.5.1事件結構所謂事件,是指對活動發生的異步通知。事件可以來自于用戶界面、外部I/O或其他方式。用戶界面事件包括鼠標點擊、鍵盤按鍵等動作;外部I/O事件則指諸如數據采集完畢或發生錯誤時硬件觸發器或定時器發出信號。其他方式的事件可通過編程生成并與程序的不同部分進行通信。LabVIEW支持用戶界面事件和通過編程生成的事件,但不支持外部I/O事件。LabVIEW中的事件結構也是一種能改變數據流執行方式的一種結構,使用事件結構可以實現用戶在前面板的操作(事件)與程序執行的互動。3.5應用事件結構設計VI一個標準的事件結構由框架、超時端子、事件數據節點、遞增/減按鈕、選擇器標簽組成。事件結構也可以由多層框架組成,但與條件結構不同的是,事件結構雖然每次只能運行一個框圖,但可以同時響應幾個事件。事件結構中,“超時端子”用來設定超時時間,其接入數據是以毫秒為單位的整數值。當超時時間設置成“-1”時,表示永不超時,程序運行時就不會進入超時幀。3.5應用事件結構設計VI事件結構注冊事件函數選板3.5應用事件結構設計VI“事件數據節點”由若干個事件數據端子構成,數據端子的增減可以通過拖拉事件數據節點來進行,也可以通過單擊鼠標右鍵從彈出的快捷菜單中選擇“添加/刪除元素”選項進行。事件結構同樣支持隧道。3.5應用事件結構設計VI動態事件結構的創建就需要使用注冊事件節點注冊事件(指定事件結構中事件的事件源和事件類型的過程稱為注冊事件),再將結果輸出到事件結構動態事件注冊端子上。若要創建一個事件動態注冊端子,可以在事件結構框圖上單擊鼠標右鍵,在彈出的快捷菜單中選擇“顯示動態事件接線端”選項即可。3.5應用事件結構設計VI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論