《LabVIEW編程及虛擬儀器設計(第三講)》由會員分享,可在線閱讀,更多相關(guān)《LabVIEW編程及虛擬儀器設計(第三講)(39頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,LabVIEW編程及虛擬儀器設計,講課教師:趙偉,黃松嶺,輔導教師:郝麗,郭建全,電話:62772049(o),E-mail:,第三講,:,數(shù)據(jù)類型及其操作函數(shù),1,上節(jié)課內(nèi)容回顧(1),一、,循環(huán)結(jié)構(gòu),二、條件結(jié)構(gòu),三、順序結(jié)構(gòu),四、公式節(jié)點,五、事件結(jié)構(gòu),While,循環(huán),For,循環(huán),循環(huán)結(jié)構(gòu)內(nèi)外的數(shù)據(jù)交換,自動索引,移位寄存器,注意:,(1),While循環(huán)是先執(zhí)行、后判斷;而For循環(huán)的循環(huán)次數(shù)則是事先定,且具體操作為先判斷、后執(zhí)行(0就不執(zhí)行)。,(2),循環(huán)前讀入一次,循環(huán)完才輸出。,(3
2、),對For循環(huán),在循環(huán)計數(shù)端子空置、有輸入數(shù)組條件下,循環(huán)次數(shù)由數(shù)組元素個數(shù)確定;若接入多個數(shù)組且均處在自動索引狀態(tài),同時循環(huán)計數(shù)端子也接入有一正整型常量,則循環(huán)次數(shù)取這些輸入中的最小值。,(4),While循環(huán)的執(zhí)行次數(shù),僅受循環(huán)體內(nèi)給條件端子置入的具體循環(huán)條件制約。,2,上節(jié)課內(nèi)容回顧,(2),一、循環(huán)結(jié)構(gòu),二、,條件結(jié)構(gòu),三、順序結(jié)構(gòu),四、公式節(jié)點,五、事件結(jié)構(gòu),要么在選擇器標簽中列出所有可能的情況;要么必須給出一種默認情況。,進行條件結(jié)構(gòu)內(nèi)外的數(shù)據(jù)交換時,會在其邊框上生成隧道。輸入隧道在每個分支中都可使用;而輸出隧道必須從每個分支都得到明確的(輸入)值,否則程序無法運行。,(只是 6
3、,Default 分支的顯示),3,上節(jié)課內(nèi)容回顧(3),一、循環(huán)結(jié)構(gòu),二、條件結(jié)構(gòu),三、,順序結(jié)構(gòu),四、公式節(jié)點,五、事件結(jié)構(gòu),輸入數(shù)據(jù)在順序結(jié)構(gòu)運行前讀入,各幀均可用;輸出數(shù)據(jù)在順序結(jié)構(gòu)執(zhí)行完才輸出,只跟最后一幀有關(guān),。,層疊式順序結(jié)構(gòu)中可設立局部變量,用于在不同幀之間實現(xiàn)數(shù)據(jù)傳遞。平鋪式順序結(jié)構(gòu)無需局部變量,數(shù)據(jù)傳遞直接經(jīng)隧道實現(xiàn)。平鋪式與層疊式順序結(jié)構(gòu)實現(xiàn)功能相同,只是表現(xiàn)形式不同。,4,當公式節(jié)點中的代碼很多,一屏顯示不下時,可在代碼區(qū)域彈出快捷菜單,選擇“顯示項”,-,“滾動條”,從而實現(xiàn)滾動瀏覽。,一、循環(huán)結(jié)構(gòu),二、分支結(jié)構(gòu),三、順序結(jié)構(gòu),四、,公式節(jié)點,五、事件結(jié)構(gòu),各輸入、輸
4、出端子的名稱必須與公式節(jié)點中的變量名稱完全相同。各輸入端子間、各輸出端子間不允許重名,但輸入端子與輸出端子可重名。,輸入端子,輸出端子,滾動條,中間變量也必須在邊框上定義,但可以不與外部連接。,上節(jié)課內(nèi)容回顧(4),5,本節(jié)課內(nèi)容,一、數(shù)組,二、簇,三、波形,除整數(shù)、浮點數(shù)、布爾數(shù)和字符串等基本數(shù)據(jù)類型以及相應的運算、操作外,,LabVIEW中,還提供有幾種復合數(shù)據(jù),包括,數(shù)組,、,簇,和,波形,,以及對它們進行操作的函數(shù)。靈活使用這些復合類型的數(shù)據(jù)及相應的操作函數(shù),可簡化程序代碼,方便虛擬儀器即VI的編程。,6,一、數(shù)組(1),1.數(shù)組的創(chuàng)建(1),1)創(chuàng)建數(shù)組框架(,輸入、顯示、常量,);
5、,2)向數(shù)組框架中添加“元素”,以確定數(shù)組元素的數(shù)據(jù)類型;,3)以拖動方式操作,可確定數(shù)組的可視大?。?4)給數(shù)組賦值(指定具體元素)。,數(shù)組,是相同類型元素的集合。在,LabVIEW,中,數(shù)組可以隨意改變長度。,數(shù)組輸入控件,和,數(shù)組常量,可作為,數(shù)據(jù)源,;,數(shù)組顯示控件,則作為數(shù)據(jù)流動的目標容器。,到達,數(shù)組輸入控件框架,亦即,數(shù)組顯示控件框架,的路徑為,:(前),控件選板,-,新式,-,數(shù)組、矩陣與簇,-,數(shù)組,;,而,數(shù)組常量框架(后面板),,經(jīng),函數(shù)選板,-,編程,-,數(shù)組,-,數(shù)組常量,找到,。,7,一、數(shù)組(2),1.數(shù)組的創(chuàng)建,(2),b),向框架的元素區(qū)域,中添加數(shù)據(jù)類型,“
6、元素”(,不論,輸入,、顯示,還是,常量,),a)建框架,c)調(diào)整元素的可,視大小和個數(shù),改變元素大小,同時顯示多個元素,注意:,只有確定了所建數(shù)組的性質(zhì),才能進行調(diào)整數(shù)組元素可視個數(shù)的操作。,8,一、數(shù)組(3),1.數(shù)組的創(chuàng)建(3),d)賦值;改變數(shù)組元素的默認值,默認值的設置方式,:在第0號(即首個)元素上彈出快捷菜單,選擇,“數(shù)據(jù)操作”-“當前值設置為默認值”,。,顯示4個元素表格形式,的空整型數(shù)組輸入控件,在第0號元素上把當,前值1指定為默認值,為第0號元素,指定整型值1,索引,(,坐標、下標,)從0開始,9,一、數(shù)組(4),數(shù)組的快捷操作(這里,以,數(shù)組常量,索引區(qū)的快捷菜單為例),
7、在,數(shù)組常量,的索引區(qū)和邊,框上右擊鼠標,彈出,快捷菜單,10,一、數(shù)組(5),3.數(shù)組的行、列、頁,注意:,一般來說,任何類型數(shù)據(jù)的,輸入、顯示,控件和常量,均可用來定義數(shù)組的元素類型。但是,數(shù)組、,子面板,控件,(,控件,-,新式,-,容器,-,子面板,),、,選項卡,控件,(,控件,-,新式,-,容器,-,選項卡控件,),、,ActiveX,控件、,波形圖表,、,XY 圖等,不能作為數(shù)組的元素。,頁索引,行索引,列索引,注意:索引區(qū)域顯示的值,永遠是元素區(qū)域所顯示的左上角元素的索引值(即元素下標;從第0頁、0行、0列記起),。上例:2頁3行4列;下例:3行3列,以數(shù)組常,量為例,以數(shù)組顯
8、示控件為例,11,一、數(shù)組(6),4.數(shù)組操作函數(shù),(1)數(shù)組大小,其輸入“數(shù)組”,可是,任意維的數(shù)組;輸出,“大小”,提供該數(shù)組,各維的長度。如果,輸入,“,數(shù)組”是一,維的,,輸出“大小”便給出,一個整數(shù)值;若輸入,“數(shù)組”是,多維的,則,輸出“大小”提供的(也稱返回的)就是1,個一維的整型數(shù)組,其每個分量對應輸入,數(shù)組,中相應維的長度。,路徑:函數(shù)選板,-,編程,-,數(shù)組,子選板,這里,對應前頁中的上例(2頁、3行、4列)。點擊該函數(shù)圖標的右端,可直接生成數(shù)組顯示器。,12,一、數(shù)組(7),4.數(shù)組操作函數(shù),(2)索引數(shù)據(jù),路徑:“函數(shù)”選板,-“,編程”,-“,數(shù)組”子選板,使用該函數(shù)
9、,可,獲得,對該數(shù)組中感興趣部分的數(shù)據(jù)。,這里只顯示了,輸入,數(shù)組的第0頁;,獲得(顯示)了其,第0頁第1行。,13,一、數(shù)組(8),4.數(shù)組操作函數(shù),(3)替換數(shù)組子集,路徑:“函數(shù)”選板,-“,編程”,-“,數(shù)組”子選板,這里,,輸入仍是前述的2頁3行4列的數(shù)組(僅給出了第0頁);給,該函數(shù)只接入了數(shù)組,某行,的索引值,具體為,1,,即要替換輸入數(shù)組所有頁的第1行(成一個新三維數(shù)組)。送給輸入端子,“新元素/子數(shù)組”的,二維數(shù)組,是,替換新元素,它的第,0,行去替換原三維數(shù)組第0頁的第1行;而其第,1,行,去替換原數(shù)組第1頁的第1行。,顯示的僅是,結(jié)果的第0頁,(索引號從0計起),。,14
10、,一、數(shù)組(9),4.數(shù)組操作函數(shù),(4)初始化數(shù)組,路徑:“函數(shù)”選板,-“,編程”,-“,數(shù)組”子選板,功能:,創(chuàng)建,n,維數(shù)組。每一維的長度,分別由“,維數(shù)大小 0”“維數(shù)大小n-1”這n個輸入端輸入的數(shù)值確,定。剛創(chuàng)建成僅一維,拖曳其圖標下邊框,可增加輸入端子數(shù),從而創(chuàng)建多維數(shù)組;且數(shù)組剛創(chuàng)建成時,其每個元素的值均與,“元素”端子輸入的值,相同。,15,一、數(shù)組(10),4.數(shù)組操作函數(shù),(5)創(chuàng)建數(shù)組,路徑:“函數(shù)”選板,-“,編程”,-“,數(shù)組”子選板,功能:,將若干個輸入數(shù)組即,“數(shù)組”與“元素”,組合成一個數(shù)組。該函數(shù)圖標上彈出的快捷菜單中有,“連接輸入”,選項,當它被選中時,
11、該函數(shù)輸出端會提供將所有輸入連接在一起的結(jié)果,此輸出數(shù)組的維數(shù),與所有輸入中的最高維數(shù)相同;,該選項,被關(guān)閉,所有輸入的維數(shù)必須相同,該函數(shù)輸出的數(shù)組比輸入(數(shù)組)高一維;若所有輸入均為標量,,“連接輸入”,選項被自動關(guān)閉,函數(shù)輸出一維數(shù)組,按順序輸出所有輸入的參數(shù)(作為它的元素)。,拖曳下邊框可增加輸入端子。,16,一、數(shù)組(11),4.數(shù)組操作函數(shù),(6)數(shù)組子集,路徑:“函數(shù)”選板,-“,編程”,-“,數(shù)組”子選板,功能:,輸出(返回)輸入的數(shù)組中從,“索引”參數(shù),指定的位置開始、由“長度”參數(shù)指定長度的數(shù)組子集。每個,“索引”與,一個,“長度”,構(gòu)成一對;,“索引-長度”,對的數(shù)目與輸
12、入?yún)?shù),“索引”的,維數(shù)相同;輸出,“子數(shù)組”,的維數(shù),也與,“數(shù)組”的維數(shù),相同。,17,一、數(shù)組(12),5.操作函數(shù)的多態(tài)化,多態(tài)化是指一種函數(shù)功能,即它可以協(xié)調(diào)/接納不同格式、不同維數(shù)或不同顯示模式的輸入數(shù)據(jù)。在 LabVIEW中提供的大多數(shù)功能函數(shù)均是多態(tài)化的。,18,二、簇(1),1.簇(Cluster)的創(chuàng),建,(1),a)創(chuàng)建簇框架;,b)向簇框架中添加元素;,c)拖動確定簇的可視大小。,簇可以包含任意數(shù)目、任意類型的元素。簇不能在運行時添加新元素(而數(shù)組的長度在運行時可以自由改變)。簇類似于C語言中的結(jié)構(gòu)(structure)。,簇輸入控件和簇顯示控件的框架在(前),控件選板
13、,-,新式,-,數(shù)組、矩陣與簇,子選板上;,而簇常量的框架,則在(框圖)函數(shù)選板-,編程,-,簇與變體子選板上。,簇與數(shù)組最明顯的區(qū)別是,一個簇中的所有元素,不必同時為輸入控件、顯示控件或常量。但數(shù)組則不然。,19,二、簇(2),1.簇的創(chuàng)建,(2),可向其中再放入其他數(shù)據(jù)類型的“輸入控件元素”。,以構(gòu)建一個簇控件、僅放入一個數(shù)值輸入控件的情況為例。,20,二、簇(3),2.簇元素的順序,在簇中,元素有一定的排列順序,該順序即為創(chuàng)建該簇時添加元素的順序。簇元素的排列順序很重要,是完成很多操作的依據(jù)。,改變簇中元素的排序:在簇框架上彈出快捷菜單,選擇“,重新排序簇中控件”,即,打開了簇元素順序編
14、輯狀態(tài)。簇元素上有兩個序號,左側(cè)反顯的為新序號;右側(cè)加灰的是舊序號。單擊簇元素之一,將把該元素設置為第,0號,元素;對其他重復此過程,直到改好所有元素的順序,點擊上方工具欄,OK,按鈕,確認所做修改。,在簇邊框上彈出快捷菜單,選“自動調(diào)整大小”子菜單,可實現(xiàn)左圖所示的所需操作。,21,二、簇(4),3.簇的操作函數(shù),(1)捆綁 之一,“,函數(shù)”選板-“編程”-“簇與變體”子選板,功能一:,將所有輸入元素打包成簇。,(元素均是“常量”,但可為不同數(shù)據(jù)類型),22,二、簇(5),3.簇的操作函數(shù),(1)捆綁 之二,“,函數(shù)”選板-“編程”-“簇與變體”子選板,功能二:,替換成新簇,。,23,二、簇
15、(6),3.簇的操作函數(shù),(2)解除捆綁,“函數(shù)”選板-“編程”-“簇與變體”子選板,24,二、簇(7),3.簇的操作函數(shù),(3)按名稱打包,(捆綁),“,函數(shù)”選板-“編程”-“簇與變體”子選板,功能:,按標簽替換,“輸入簇”,中的元素;替換結(jié)果從,“輸出簇”提供出來,。,故,“輸入簇”,必須接入,且要求其至少1個元素有標簽。,添加標簽:,在對象(簇某元素)上彈出快捷菜單,從“顯示項”子菜單選中“標簽”,可為對象添加標簽。,25,二、簇(8),3.簇的操作函數(shù),(4)按名稱解除捆綁,“,函數(shù)”選板-“編程”-“簇與變體”子選板,功能:,把輸入簇中的元素按標簽解除捆綁。在函數(shù)輸出端,只能獲得擁
16、有標簽的簇元素。,函數(shù)初建時,只有一個輸出端子;單擊其標簽域,可彈出帶有標簽的簇元素的列表;必須對其分別建立相應的顯示器。,26,二、簇(9),3.簇的操作函數(shù),(5)簇與數(shù)組的相互轉(zhuǎn)換,“,函數(shù)”選板-“編程”-“簇與變體”子選板,功能,:,把所有簇元素按順序組合成一維數(shù)組經(jīng),“數(shù)組”端子,輸出。,顯然,它,要求簇的所有元素的類型要相同。,把,“數(shù)組”端子輸入的數(shù)組,中的元素,按順序捆綁成簇,并經(jīng),“簇”端子,輸出。,27,三、波形(1),1.波形的創(chuàng)建,(屬于輸出、顯示)1,路徑:,控件選板,-“,新式”,-“,I/O”,子選板,波形數(shù)據(jù)含有4個組成部分:,t0,為時間標識常量類型,表示波形數(shù)據(jù)的時間起點;,dt,屬于雙精度浮點類型,表示波形相鄰數(shù)據(jù)點間的時間間隔,以秒為單位;,Y,是雙精度浮點數(shù)組,它按時間順序給出整個波形的所有數(shù)據(jù)點;,“屬性”,具有變體類型,用于攜帶任意的屬性信息。,28,三、波形(2),波形的創(chuàng)建,2,(,a,),時間標識(,zhi,),時間標識,又稱時間戳,是,LabVIEW,中記錄時間的專用數(shù)據(jù)類型;,它,屬于,常量,,獲取它的路徑,:,函數(shù)選板,-,編