LabVIEW虛擬儀器技術(shù)基礎(chǔ)教程 課件 第3、4章 LabVIEW基本數(shù)據(jù)類型、LabVIEW復(fù)合數(shù)據(jù)類型_第1頁
LabVIEW虛擬儀器技術(shù)基礎(chǔ)教程 課件 第3、4章 LabVIEW基本數(shù)據(jù)類型、LabVIEW復(fù)合數(shù)據(jù)類型_第2頁
LabVIEW虛擬儀器技術(shù)基礎(chǔ)教程 課件 第3、4章 LabVIEW基本數(shù)據(jù)類型、LabVIEW復(fù)合數(shù)據(jù)類型_第3頁
LabVIEW虛擬儀器技術(shù)基礎(chǔ)教程 課件 第3、4章 LabVIEW基本數(shù)據(jù)類型、LabVIEW復(fù)合數(shù)據(jù)類型_第4頁
LabVIEW虛擬儀器技術(shù)基礎(chǔ)教程 課件 第3、4章 LabVIEW基本數(shù)據(jù)類型、LabVIEW復(fù)合數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章LabVIEW基本數(shù)據(jù)類型CONTENTSprintthepresentationandmakeitintoafilmtobeusedinawiderfieldPART01PART02PART03PART04PART04數(shù)值型字符串布爾型

枚舉型與下拉列表路徑printthepresentationandmakeitintoafilmtobeusedinawiderfield3.1數(shù)值型LabVIEW中有關(guān)數(shù)據(jù)的內(nèi)容,首先需要大家掌握是數(shù)據(jù)的組織形式、數(shù)據(jù)的表現(xiàn)形式和數(shù)據(jù)類型三個(gè)概念。首先是數(shù)據(jù)的組織形式。在LabVIEW中,數(shù)據(jù)的組織形式有3種,分別是輸入控件、顯示控件和常量。其中,輸入控件和顯示控件都在前面板上的控件選板上,而常量卻是在程序框圖面板的函數(shù)選板上。一般而言,輸入控件是用來輸入?yún)?shù)的,而顯示控件是用來顯示VI的測(cè)量、分析、計(jì)算及處理結(jié)果的。其次是數(shù)據(jù)的表現(xiàn)形式。以數(shù)值型數(shù)據(jù)為例,它可以表現(xiàn)為數(shù)值輸入控件、儀表(表盤)、量表和滑動(dòng)桿等多種形式,它們都是從實(shí)際需求中衍生而來的。實(shí)際生活和工作場(chǎng)景中,有各式各樣的測(cè)量?jī)x表,如溫度計(jì)、速度計(jì)、電能表、水表等等,雖然它們的外表很不相同,所反映的物理量也不同,但數(shù)據(jù)類型是相同的,即都是數(shù)值。LabVIEW基本數(shù)據(jù)類型LabVIEW基本數(shù)據(jù)類型最后才是數(shù)據(jù)類型。LabVIEW中,除了基本的數(shù)據(jù)類型,例如數(shù)值、布爾量和字符串等之外,還提供有幾種所謂復(fù)合數(shù)據(jù)類型,包括有數(shù)組、簇、波形和DDT。本章主要學(xué)習(xí)LabVIEW中的基本數(shù)據(jù)類型,主要有數(shù)值、字符串、布爾量、枚舉/下拉列表和路徑。不同數(shù)據(jù)類型采用不同的顏色表示,如表3.1所示。標(biāo)量是單實(shí)線,一維數(shù)組是加粗的實(shí)線,二維數(shù)組是兩根單實(shí)線。數(shù)據(jù)類型顏色標(biāo)量一維數(shù)組二維數(shù)組整數(shù)型數(shù)值藍(lán)色浮點(diǎn)型數(shù)值橙色布爾型綠色字符串粉紅色3.1.1數(shù)值的數(shù)據(jù)類型在本節(jié)中,將介紹最基本的數(shù)據(jù)類型—數(shù)值。LabVIEW中的數(shù)值控件有很多種表現(xiàn)形式,并提供有很多對(duì)數(shù)值的操作函數(shù)。LabVIEW以浮點(diǎn)數(shù)、定點(diǎn)數(shù)、整數(shù)、無符號(hào)整數(shù)以及復(fù)數(shù)等不同數(shù)據(jù)類型表示數(shù)值數(shù)據(jù)。那么,LabVIEW中的數(shù)值數(shù)據(jù)類型是如何進(jìn)行設(shè)置的呢?3.1.1數(shù)值的數(shù)據(jù)類型下面,以一個(gè)數(shù)值輸入控件為例進(jìn)行介紹(顯示控件以及常量是類似的)。首先,在前面板上創(chuàng)建一個(gè)數(shù)值輸入控件,然后,經(jīng)鼠標(biāo)操作來到程序框圖面板。這時(shí),程序框圖面板上已經(jīng)出現(xiàn)了一個(gè)數(shù)值輸入控件的圖標(biāo),它與在前面板上生成的數(shù)值輸入控件相對(duì)應(yīng),如圖3.1所示。此情況下,LabVIEW默認(rèn)生成的數(shù)值的數(shù)據(jù)類型為雙精度64位實(shí)數(shù)。這個(gè)信息是如何得到的呢?一個(gè)辦法是,通過查看該數(shù)值輸入控件在程序框圖面板上的顯示圖標(biāo)來判斷其當(dāng)前的數(shù)據(jù)類型。3.1.1數(shù)值的數(shù)據(jù)類型因?yàn)樵贚abVIEW中,不同數(shù)據(jù)類型的數(shù)值控件的圖標(biāo)顏色和形式是不一樣的,如果3.1所示的數(shù)值輸入控件是雙精度類型,所以在程序框圖中的顏色應(yīng)該是橙色的。(如圖3.1所示的數(shù)值輸入控件的圖標(biāo)是橙色的),而且下面有標(biāo)識(shí)“DBL”,這表明,該數(shù)值輸入控件中的數(shù)據(jù)當(dāng)前的數(shù)據(jù)類型為雙精度浮點(diǎn)數(shù)。LabVIEW中的數(shù)值數(shù)據(jù)類型有多種,除了實(shí)數(shù)(橙色)和整數(shù)(藍(lán)色)通過顏色可以快速地辨識(shí)出來外,想要知道某數(shù)值輸入控件中當(dāng)前的具體數(shù)據(jù)信息,僅靠其圖標(biāo)上的標(biāo)識(shí)來判斷,還不能保證準(zhǔn)確無誤。鑒于此,一個(gè)簡(jiǎn)便、可靠的辦法,是調(diào)用LabVIEW的即時(shí)幫助功能。具體地,在程序框圖上,選中所關(guān)注的數(shù)值輸入控件的圖標(biāo),然后按下Ctrl十H組合鍵,就會(huì)在程序框圖面板上彈出一個(gè)即時(shí)幫助窗口,顯示出該輸入控件當(dāng)前的數(shù)值數(shù)據(jù)類型,如圖3.2所示。3.1.1數(shù)值的數(shù)據(jù)類型圖3.1在前面板和程序框圖面板中的數(shù)值輸入控件圖3.2即時(shí)幫助中顯示的數(shù)值輸入控件的數(shù)據(jù)類型信息

另外,數(shù)值輸入控件當(dāng)前的數(shù)據(jù)類型也是可以改變的。如圖3.3所示,改變數(shù)值輸入控件當(dāng)前的數(shù)據(jù)類型的方法如下:

首先,在程序框圖上選中所關(guān)注數(shù)值輸入控件的圖標(biāo),右擊,選擇“表示法”,可以看到共有15種數(shù)據(jù)類型,且當(dāng)前選中的是“DBL”;改為選擇下方的“I32”,隨即,程序框圖中該輸入控件的圖標(biāo)就變成了藍(lán)色,即時(shí)幫助窗口中給出的信息也改為32位的整數(shù),如圖3.4所示。如此,就將輸入控件中的雙精度浮點(diǎn)數(shù)改成了整型數(shù)。LabVIEW中的15種數(shù)據(jù)類型各自的具體含義見表3.2。3.1.1數(shù)值的數(shù)據(jù)類型3.1.1數(shù)值的數(shù)據(jù)類型圖3.3改變數(shù)值輸入控件的數(shù)據(jù)類型圖3.4輸入控件的數(shù)據(jù)類型為整型3.1.1數(shù)值的數(shù)據(jù)類型縮寫含義EXT擴(kuò)展精度浮點(diǎn)數(shù),保存其到存儲(chǔ)介質(zhì)時(shí),LabVIEW會(huì)將其保存為獨(dú)立于平臺(tái)的128位格式。內(nèi)存中,數(shù)據(jù)的大小和精度會(huì)根據(jù)平臺(tái)的不同而有所不同,只在確有需要時(shí),才會(huì)使用擴(kuò)展精度的浮點(diǎn)型數(shù)值。擴(kuò)展精度浮點(diǎn)數(shù)的算術(shù)運(yùn)行速度,會(huì)因所用平臺(tái)的不同而有所不同DBL雙精度浮點(diǎn)數(shù),具有64位IEEE雙精度格式,是雙精度時(shí)數(shù)值對(duì)象的默認(rèn)格式,即大多數(shù)情況下,應(yīng)使用雙精度浮點(diǎn)數(shù)SGL單精度浮點(diǎn)數(shù),具有32位IEEE單精度格式。如所用計(jì)算機(jī)的內(nèi)存空間有限,且實(shí)施的應(yīng)用和計(jì)算等絕對(duì)不會(huì)出現(xiàn)數(shù)值范圍溢出情況,應(yīng)使用單精度浮點(diǎn)數(shù)FXP定點(diǎn)型I6464位整型(-1e19~1e19)表3.2LabVIEW的15種數(shù)值數(shù)據(jù)類型3.1.1數(shù)值的數(shù)據(jù)類型表3.2LabVIEW的15種數(shù)值數(shù)據(jù)類型I32有符號(hào)長(zhǎng)整型(-2147483648~2147483647)I16雙字節(jié)整型(-32768~32767)I8單字節(jié)整型(-128~127)U64無符號(hào)64位整型(0~2e19)U32無符號(hào)長(zhǎng)整型(0~4294967295)U16無符號(hào)雙字節(jié)整型(0~65535)U8無符號(hào)單字節(jié)整型(0~255)CXT擴(kuò)展精度浮點(diǎn)復(fù)數(shù)CDB雙精度浮點(diǎn)復(fù)數(shù)CSG單精度浮點(diǎn)復(fù)數(shù)3.1.1數(shù)值的數(shù)據(jù)類型在進(jìn)行VI編程時(shí),特別要注意對(duì)數(shù)據(jù)類型的正確使用,否則VI運(yùn)行中出現(xiàn)問題時(shí),可能很難找到出錯(cuò)的原因。下面以例3.1進(jìn)行說明數(shù)據(jù)類型出錯(cuò)的原因和調(diào)試方法。3.1.1數(shù)值的數(shù)據(jù)類型

[例3.1]求平均數(shù)。

在第2章中,已經(jīng)編寫出了求平均數(shù)的VI。對(duì)于求平均數(shù)這個(gè)命題,有的初學(xué)者編寫的VI如圖3.5和圖3.6所示。在圖3.5中的Result顯示控件是整型數(shù)據(jù),在程序框圖中應(yīng)該顯示為藍(lán)色。(可以看到,其中的Result顯示控件是藍(lán)色的,表明它當(dāng)中的數(shù)據(jù)是整型的。)而且,在除數(shù)即數(shù)值常量2與除法函數(shù)相連處出現(xiàn)了一個(gè)紅點(diǎn)——表示這里發(fā)生了數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換,即整型數(shù)被轉(zhuǎn)換成了浮點(diǎn)數(shù)。同樣,在Result顯示控件的輸入端子上也出現(xiàn)了一個(gè)紅點(diǎn),紅點(diǎn)表示此處發(fā)生了強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換。橙色的連線代表傳輸?shù)氖歉↑c(diǎn)數(shù),而藍(lán)色的Result顯示控件代表接收到的應(yīng)是整型數(shù)據(jù),所以,在此處也發(fā)生了數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換。這個(gè)VI通過了程序編譯,并沒有語法上的錯(cuò)誤,但是當(dāng)它運(yùn)行完畢后,就會(huì)出現(xiàn)錯(cuò)誤。如圖3.5所示,當(dāng)輸入l和2,結(jié)果本應(yīng)該是1.5,但此VI的計(jì)算結(jié)果卻為2。問題就出在Result控控件的數(shù)據(jù)類型上?;氐皆揤I的程序框圖上,將Result顯示控件的數(shù)據(jù)類型改為“DBL”即雙精度浮點(diǎn)數(shù),然后再運(yùn)行VI,就會(huì)得到正確的結(jié)果了。3.1.1數(shù)值的數(shù)據(jù)類型圖3.5求平均數(shù)VI的程序框圖圖3.6求平均數(shù)VI的前面板3.1.2數(shù)值控件數(shù)值控件又分為數(shù)值輸入控件和數(shù)值顯示控件,這些控件均位于“控件”選板→“新式”→“數(shù)值”子選板上。數(shù)值輸入控件和數(shù)值顯示控件各自都有很多種表現(xiàn)形式,如圖3.7所示。在控件選板上,它們又分為新式、銀色、系統(tǒng)和經(jīng)典等,即還具有不同的風(fēng)格,使用者可根據(jù)自己的喜好選擇使用。圖3.7為前面板中的數(shù)值控件分別為“新式”、“銀色”、“系統(tǒng)”和“經(jīng)典”這幾種風(fēng)格時(shí)的控件。數(shù)值函數(shù)均位于“函數(shù)”選板→“編程”→“數(shù)值”上,如圖3.8所示,這些數(shù)值函數(shù)的圖表都很形象,使用起來比較簡(jiǎn)單,可以根據(jù)實(shí)際需要選擇相應(yīng)的函數(shù),隨機(jī)數(shù)和常量也位于這個(gè)選板中。如圖3.9所示,提供有很多實(shí)現(xiàn)數(shù)值數(shù)據(jù)類型轉(zhuǎn)換的函數(shù),如此,就可以通過編程的方式改變數(shù)值的數(shù)據(jù)類型了。3.1.2數(shù)值控件圖3.7數(shù)值控件的幾種風(fēng)格3.1.2數(shù)值控件圖3.8數(shù)值函數(shù)圖3.9轉(zhuǎn)換子選板3.1.2數(shù)值控件下面,通過例3.2,介紹“隨機(jī)數(shù)”函數(shù)和“表達(dá)式節(jié)點(diǎn)”的使用要點(diǎn)?!纠?.2】

“隨機(jī)數(shù)”函數(shù)和“表達(dá)式節(jié)點(diǎn)”的使用。3.1.2數(shù)值控件例3.2的VI如圖3.10所示,其中調(diào)用了“表達(dá)式節(jié)點(diǎn)”?!氨磉_(dá)式節(jié)點(diǎn)”用于計(jì)算含有單個(gè)變量的表達(dá)式。使用“表達(dá)式節(jié)點(diǎn)”時(shí),要注意采用正確的語法、運(yùn)算符和函數(shù)?!半S機(jī)數(shù)”函數(shù)的圖標(biāo),外觀看起來像兩個(gè)錯(cuò)落放置在一起的骰子,調(diào)用它可以生成數(shù)值范圍在0至1的一個(gè)隨機(jī)數(shù),在需要生成隨機(jī)信號(hào)的編程場(chǎng)合經(jīng)常會(huì)用到它。圖3.10表達(dá)式節(jié)點(diǎn)例3.2VI的程序框圖和前面板printthepresentationandmakeitintoafilmtobeusedinawiderfield3.2字符串字符串LabVIEW中,字符串是指ASCII字符的集合,用于文本傳送、文本顯示及數(shù)據(jù)存儲(chǔ)等。在對(duì)實(shí)際存在的儀器和設(shè)備進(jìn)行控制操作時(shí),控制命令和數(shù)據(jù)等大多都是按字符串格式加以傳輸?shù)摹?.2.1字符串控件LabVIEW中的字符串控件,位于“控件”選板→“新式”→“字符串與路徑”子選板和“列表與表格”子選板上。字符串控件也分為輸入控件和顯示控件兩種。

圖3.11展示的是字符串組合控件的使用示例。該控件可以寫入多個(gè)字符串,每個(gè)稱為一個(gè)“項(xiàng)”,并對(duì)應(yīng)一個(gè)“值”。選中組合框控件,右擊,彈出快捷菜單,選擇“屬性”→“編輯項(xiàng)”,可對(duì)“項(xiàng)”和“值”進(jìn)行編輯,如圖3.12所示。

圖3.11字符串組合控件3.2.1字符串控件圖3.12字符串組合控件的屬性設(shè)置3.2.2字符串的顯示方式字符串的顯示方式有四種:1)NormalDisplay,即正常顯示,它是字符串控件的默認(rèn)設(shè)置;2)\CodesDisplay,即\代碼顯示,用以查看在正常方式下不可顯示的字符代碼,其在程序調(diào)試、向儀器設(shè)備傳輸字符時(shí)較為常用;3)PasswordDisplay,即口令顯示,在這種方式下,用戶輸入的字符均改以字符*代替;4)HexDisplay,即十六進(jìn)制顯示,字符以對(duì)應(yīng)的十六進(jìn)制ASCII碼的形式顯示,在程序調(diào)試和VI通信時(shí)比較常用。3.2.2字符串的顯示方式圖3..13所示的VI,給出了同一段字符串的四種顯示方式。LabVIEW中的一些特殊字符及其含義,提供在表3.3中。圖3.13字符串的四種顯示方式3.2.2字符串的顯示方式代碼LabVIEW中含義代碼LabVIEW中含義\b退格符\t制表符\f進(jìn)格符\s空格符\n換行符\\反斜線:\\r回車符%%百分比符號(hào)表3.3LabVIEW中的特殊字符3.2.3字符串函數(shù)LabVIEW中提供有可對(duì)字符串進(jìn)行操作的若干函數(shù),簡(jiǎn)稱字符串函數(shù),它們位于“函數(shù)”選板→“編程”→“字符串”子選板上,常用的字符串函數(shù)見表3.4。下面將通過三個(gè)示例,對(duì)常用的字符串函數(shù)進(jìn)行介紹。3.2.3字符串函數(shù)序號(hào)名稱圖標(biāo)和連接端口功能說明1轉(zhuǎn)換為大寫字母將輸入字符串轉(zhuǎn)換為大寫形式2轉(zhuǎn)換為小寫字母將輸入字符串轉(zhuǎn)換為小寫形式3格式化寫入字符串把字符串、數(shù)值、路徑或布爾量轉(zhuǎn)換為字符串格式4電子表格字符串至數(shù)組轉(zhuǎn)換把電子表格格式的字符串轉(zhuǎn)換成數(shù)組5格式化日期/時(shí)間字符串以指定的格式顯示時(shí)間字符串6字符串長(zhǎng)度返回字符串長(zhǎng)度7連接字符串把幾個(gè)字符串連接起來組成一個(gè)新字符串8截取字符串從輸入字符串的“偏移量”位置開始,取出要求長(zhǎng)度的子字符串9替換子字符串在指定位置插入、刪除或替換子字符串表3.4字符串函數(shù)3.2.3字符串函數(shù)【例3.3】

“格式化寫入字符串”函數(shù)的使用。

為例3.3編寫好的VI的程序框圖如圖3.14(a)所示,其中調(diào)用了“格式化寫入字符串”函數(shù),將字符串“頭”、數(shù)值和字符串“尾”連接在一起,生成新的字符串;并調(diào)用了“字符串長(zhǎng)度”函數(shù)。該VI的前面板如圖3.14(b)所示,可見,在前面板上,是將字符串“頭”設(shè)置為“SET”,將數(shù)值設(shè)為“5.5”,將字符串“尾”設(shè)為“VOLTS”。運(yùn)行此VI可以看到,連接后的字符串為“SET5.50VOLTS”,且計(jì)算出了此字符串的長(zhǎng)度為14。3.2.3字符串函數(shù)圖3.14格式化寫入字符串函數(shù)VI的程序框圖和前面板注意:“格式化寫入字符串”函數(shù)圖標(biāo)邊框上沿的中間處,是進(jìn)行字符串連接的格式輸入端口,雙擊該函數(shù)圖標(biāo),可以彈出對(duì)話框,如圖3.15所示,在該對(duì)話框內(nèi),可對(duì)連接字符串的格式進(jìn)行設(shè)置。圖3.15編輯字符串格式的界面3.2.3字符串函數(shù)【例3.4】

字符串的分解。為例3.4編寫的VI中,調(diào)用了“截取字符串”和“掃描字符串”兩個(gè)函數(shù),具體是要將輸入字符串“VOLTSDC+1.345E+02”中的“DC”和數(shù)值“1.345E+02”分解出來。該例題VI的程序框圖和前面板如圖3.16所示。圖3.16字符串分解示例VI的程序框圖和前面板3.2.3字符串函數(shù)

在實(shí)際應(yīng)用中,例如計(jì)算機(jī)從下位機(jī)(單片機(jī))接收到的數(shù)據(jù)都是字符串類型的,那經(jīng)常要做的一項(xiàng)工作,就是要從一段字符串中提取出實(shí)際感興趣的信息。例3.4就實(shí)現(xiàn)了類似的功能,如提取出的“DC”,就表明是直流電壓;提取出的“1.345E+02”,意味著獲得了當(dāng)前直流電壓數(shù)值的大小。例3.4的實(shí)現(xiàn)方法,是已知要提取的元素在整個(gè)字符串中的位置,以此為根據(jù),將所感興趣的元素提取出來。那么,如果不知道感興趣元素的具體位置,又該如何實(shí)現(xiàn)上述目標(biāo)呢?對(duì)此,例3.5給出了另外一種實(shí)現(xiàn)思路。3.2.3字符串函數(shù)【例3.5】

利用“匹配正則表達(dá)式”函數(shù)進(jìn)行字符串的分解。

為例3.5編寫的VI中,調(diào)用了“匹配正則表達(dá)式”函數(shù),用以實(shí)現(xiàn)字符串的分解。該VI的前面板和程序框圖如圖3.17所示,其中,[Dd]表示字符串第一個(gè)字符是大寫或小寫的D,[Cc]表示字符串第二個(gè)字符是大寫或小寫的C,如此,就將源字符串中的子字符串“DC”找到了,并將源字符串從“DC”處分解成了三段,匹配之前為VOLTS,匹配之后為字符串“+1.345E+02”,再將其轉(zhuǎn)換成數(shù)值類型,即輸出數(shù)字“134.5”。3.2.3字符串函數(shù)正則表達(dá)式的功能非常強(qiáng)大,例3.5只給出了一個(gè)簡(jiǎn)單應(yīng)用。有關(guān)正則表達(dá)式的語法,請(qǐng)參看LabVIEW的幫助文件。從例3.4和例3.5的VI實(shí)現(xiàn)方式的比較可以看出,為實(shí)現(xiàn)相同的功能,LabVIEW可能有很多種方法,故在實(shí)際進(jìn)行編程時(shí),要根據(jù)已知條件來設(shè)計(jì)自己的VI。圖3.17“匹配正則表達(dá)式”函數(shù)使用示例的前面板和程序框圖printthepresentationandmakeitintoafilmtobeusedinawiderfield3.3布爾型3.3布爾型

布爾量只有兩個(gè)狀態(tài),要么真,要么假。布爾控件位于“控件”選板→“新式”→“布爾”子選板上,如圖3.18所示。與布爾量對(duì)應(yīng),每個(gè)布爾控件都具有兩個(gè)值,即真和假。布爾控件的表現(xiàn)形式有很多種,例如有指示燈、開關(guān)或按鈕等。對(duì)布爾量實(shí)施操作的函數(shù)簡(jiǎn)稱布爾函數(shù),它們位于“函數(shù)”選板→“編程”→“布爾”子選板上,如圖3.19所示。3.3布爾型圖3.18布爾控件子選板圖3.19布爾函數(shù)子選板3.3布爾型在使用按鈕控件時(shí),要注意其“機(jī)械動(dòng)作”屬性的設(shè)置。選中按鈕控件,右擊,在彈出的快捷菜單中,選擇“機(jī)械動(dòng)作”,如圖3.20所示??梢钥吹?,LabVIEW提供有6種機(jī)械動(dòng)作。各種機(jī)械動(dòng)作所代表的含義見表3.5。圖3.20停止按鈕的機(jī)械動(dòng)作3.3布爾型圖標(biāo)含義單擊時(shí)轉(zhuǎn)換單擊時(shí)觸發(fā)釋放時(shí)轉(zhuǎn)換釋放時(shí)觸發(fā)保持轉(zhuǎn)換直至釋放保持觸發(fā)直至釋放printthepresentationandmakeitintoafilmtobeusedinawiderfield3.4枚舉型與下拉列表3.4枚舉型與下拉列表LabVIEW中,枚舉控件位于“控件”→“新式”→“下拉列表和枚舉”子選板上,如圖3.21所示?!跋吕斜砗兔杜e”多用于具有多個(gè)分支的情況,經(jīng)常與條件結(jié)構(gòu)配合使用。下面通過一個(gè)例子介紹“枚舉和下拉列表”控件的使用。圖3.21枚舉和下拉列表控件3.4枚舉型與下拉列表【例3.6】

設(shè)計(jì)一個(gè)簡(jiǎn)易的計(jì)算器,當(dāng)在其前面板上選擇不同的功能時(shí),它應(yīng)給出相應(yīng)的計(jì)算結(jié)果。對(duì)此例,如圖3.22所示,選中一個(gè)枚舉控件,將其拖曳到前面板上,選中此控件,右擊,在彈出的快捷菜單(如圖3.23所示)中選擇編輯項(xiàng),如此,會(huì)彈出如圖3.24所示的界面,隨后,在項(xiàng)的表格中,可以輸入項(xiàng)的名稱,比如在此例中輸入“相加”,單擊右側(cè)的插入按鈕,便可以添加新的項(xiàng)。以如上述相同的操作,再創(chuàng)建另外兩項(xiàng)“相乘”和“相減”,如圖3.24和圖3.25所示。3.4枚舉型與下拉列表圖3.22前面板圖3.23枚舉控件的快捷菜單3.4枚舉型與下拉列表圖3.24編輯項(xiàng)界面圖3.25編輯項(xiàng)界面3.4枚舉型與下拉列表

在為此例編寫的VI的程序框圖中,調(diào)用了一個(gè)條件結(jié)構(gòu),它位于“函數(shù)”選板→“編程”→“結(jié)構(gòu)”子選板上。將“枚舉”控件連至條件結(jié)構(gòu)的選擇器端子上,如此,條件結(jié)構(gòu)會(huì)自動(dòng)辨識(shí)出其中的兩個(gè)分支,如圖3.26所示。剩余的分支,需要再經(jīng)手動(dòng)添加上去。如圖3.27所示。具體地,選中條件分支,右擊,在彈出的快捷菜單中選擇“在后面添加分支”,如此,就將后一分支設(shè)置好了。而條件結(jié)構(gòu)是按照這些分支在枚舉控件中的值屬性依次添加的。例如,默認(rèn)的分支是值為0和l,對(duì)于本例而言,是“相乘”和“相減”。這樣,繼續(xù)添加的分支是值為2的“相加”。最后三個(gè)分支如圖3.29所示。然后,再在條件結(jié)構(gòu)的各個(gè)分支中加入相應(yīng)的代碼,如圖3.29所示。3.4枚舉型與下拉列表圖3.26默認(rèn)的兩個(gè)分支圖3.27添加新的分支3.4枚舉型與下拉列表3.4枚舉型與下拉列表圖3.28最終的三個(gè)分支(a)“相乘”分支(b)“相減”分支(c)“相加”分支圖3.29例3.6簡(jiǎn)易計(jì)算器VI的程序框圖3.4枚舉型與下拉列表

對(duì)例3.6所要求實(shí)現(xiàn)的功能編寫VI時(shí),也可改為利用“下拉列表”來實(shí)現(xiàn)。具體地,VI的前面板和程序框圖如圖3.30和圖3.31所示。其中,利用“下拉列表”的道理與之前利用“枚舉”控件是一樣的,也是利用了條件結(jié)構(gòu)。所以,這里只給出條件結(jié)構(gòu)的一個(gè)分支的代碼,而不再贅述。對(duì)“下拉列表”添加項(xiàng)和編輯項(xiàng)的操作方法,與對(duì)“枚舉”控件的幾乎一模一樣,兩者的區(qū)別,是當(dāng)把“下拉列表”控件連至條件結(jié)構(gòu)的選擇器端子時(shí),條件結(jié)構(gòu)識(shí)別的不是標(biāo)簽,而是值,如圖3.31所示。所以,使用“下拉列表”時(shí),需要注意將前面板“下拉列表”的標(biāo)簽與條件結(jié)構(gòu)中各個(gè)分支的值要對(duì)應(yīng)正確。3.4枚舉型與下拉列表圖3.30利用“下拉列表”實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器VI的前面板圖3.31利用“下拉列表”實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器VI的程序框圖3.4枚舉型與下拉列表

在LabVIEW中,還有別的控件也可以實(shí)現(xiàn)上述功能,例如“滑動(dòng)桿”控件、“組合框”控件等。使用“滑動(dòng)桿”控件實(shí)現(xiàn)簡(jiǎn)易計(jì)算器的VI的前面板如圖3.32所示?!盎瑒?dòng)桿”控件位于“控件”選板→“新式”→“數(shù)值”子選板上。使用“滑動(dòng)桿”控件時(shí),需要進(jìn)行以下設(shè)置,選中“滑動(dòng)桿”控件,右擊,在彈出的快捷菜單(如圖3.33所示)中設(shè)置相關(guān)參數(shù),這些設(shè)置包括:①選中“文本標(biāo)簽”;②在表示法中,將數(shù)據(jù)類型改為整型,如圖3.34所示的I8;③單擊“屬性”,在彈出的界面上進(jìn)行文本標(biāo)簽值的輸入,如圖3.35所示,這里的操作,與前述的“枚舉”控件和“下拉列表”控件的操作相類似。3.4枚舉型與下拉列表圖3.32利用“滑動(dòng)桿”的前面板3.4枚舉型與下拉列表如圖3.36所示,在利用“滑動(dòng)桿”實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器VI的程序框圖中,當(dāng)將“滑動(dòng)桿”連接至條件結(jié)構(gòu)的選擇器標(biāo)簽上時(shí),條件結(jié)構(gòu)識(shí)別的也是“值”,即0、l和2,所以,使用“滑動(dòng)桿”控件時(shí),也要注意條件結(jié)構(gòu)中的分支要與“滑動(dòng)桿”控件中的標(biāo)簽對(duì)應(yīng)正確。圖3.33“滑動(dòng)桿”的參數(shù)設(shè)置菜單圖3.34表示法設(shè)置3.4枚舉型與下拉列表圖3.35屬性對(duì)話框圖3.36利用“滑動(dòng)桿”控件實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器VI的程序框圖3.4枚舉型與下拉列表

在3.2.1節(jié),曾學(xué)習(xí)過“組合框”控件,其數(shù)據(jù)類型屬于字符串。按照?qǐng)D3.12所示的方法,編輯好“組合框”控件的“項(xiàng)”。對(duì)例3.6的命題,改用“組合框”控件實(shí)現(xiàn)簡(jiǎn)易計(jì)算器VI的前面板和程序框圖分別如圖3.37和圖3.38所示。在該VI的程序框圖中,將“組合框”控件連至條件結(jié)構(gòu)的選擇器端子上,隨后,條件結(jié)構(gòu)會(huì)自動(dòng)識(shí)別兩個(gè)分支(“真”和“假”)。注意,這里的“真”和“假”是帶雙引號(hào)的,所以是字符串類型。接下來,只需將“真”和“假”改成相應(yīng)的標(biāo)簽,比如“相加”和“相減”。因?yàn)榇嬖谌齻€(gè)分支,所以同前所述,還需要再添加新的分支。3.4枚舉型與下拉列表圖3.37利用“組合框”控件實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器VI的前面板圖3.38利用“組合框”控件實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器VI的程序框圖可以看出,利用上面介紹的幾種控件(“枚舉”“下拉列表”“滑動(dòng)桿”和“組合框”),都可以實(shí)現(xiàn)對(duì)多個(gè)不同狀態(tài)的選擇。printthepresentationandmakeitintoafilmtobeusedinawiderfield路徑3.53.5路徑路徑控件位于“控件”選板→“新式”→“字符串與路徑”子選板上,如圖3.39所示。路徑常量及函數(shù)位于“函數(shù)”選板→“編程”→“文件I/O”→“文件常量”子選板上,如圖3.40所示。在LabVIEW中,路徑用綠色表示。下面通過例3.7來介紹LabVIEW中的路徑操作。圖3.39路徑控件圖3.40路徑常量及函數(shù)3.5路徑【例3.7】

提取當(dāng)前VI的路徑。

這是利用LabVIEW編程時(shí)經(jīng)常會(huì)用到的一個(gè)小功能,即如何獲得當(dāng)前VI的路徑,一個(gè)編寫好的實(shí)現(xiàn)其功能的VI的程序框圖如圖3.41所示。其中,調(diào)用了“當(dāng)前VI路徑”函數(shù),該函數(shù)位于“函數(shù)”選板→“編程”→“文件I/O”→“文件常量”子選板上。從其前面板的運(yùn)行結(jié)果(見圖3.41),即控件“當(dāng)前VI路徑”的值可以看出,調(diào)用該函數(shù)得到的路徑包含了當(dāng)前VI的名稱。而實(shí)際中,更希望得到此VI的位置,即要去掉VI名稱之后剩下前的“D:\DSP”。這個(gè)功能,可以通到調(diào)用“拆分路徑”函數(shù)實(shí)現(xiàn),此函數(shù)位于“函數(shù)”選板→“編程”→“文件I/O”子選板上。如此,如果想向此目錄下寫入一個(gè)新的文件,文件名稱取名為“data.txt”,再調(diào)用“創(chuàng)建路徑”函數(shù),就可以得到新文件“data.Txt”在LabVIEW中的路徑了。3.5路徑圖3.41實(shí)現(xiàn)例3.7功能的VI的程序框圖和前面板

THANKYOU第4章LabVIEW復(fù)合數(shù)據(jù)類型CONTENTSprintthepresentationandmakeitintoafilmtobeusedinawiderfieldPART01PART02PART03數(shù)組簇波形printthepresentationandmakeitintoafilmtobeusedinawiderfield4.1

數(shù)組4.1數(shù)組

數(shù)組是相同類型元素的集合。在LabVIEW中,數(shù)組的索引號(hào)從0開始,可以是一維或多維的。與C語言不同的是,在LabVIEW中,創(chuàng)建數(shù)組時(shí),不用事先指定數(shù)組的大小,即數(shù)組的長(zhǎng)度可以根據(jù)VI的需求而改變。4.1.1數(shù)組數(shù)據(jù)的組成

4.1.1數(shù)組數(shù)據(jù)的組成不論是幾維,數(shù)組中的每一個(gè)元素都有唯一的索引與之對(duì)應(yīng),對(duì)數(shù)組中每個(gè)元素的訪問都是通過索引進(jìn)行的。圖4.1數(shù)組數(shù)據(jù)的組成示意圖4.1.2數(shù)組的創(chuàng)建在前面板和程序框圖中都可以創(chuàng)建數(shù)值、布爾、字符、波形和簇等數(shù)據(jù)類型的數(shù)組。按照以下步驟,我們學(xué)習(xí)如何在LabVIEW中創(chuàng)建一個(gè)數(shù)組。1)先創(chuàng)建數(shù)組框架。數(shù)組框架有兩種(如圖4.2和圖4.3所示):一種用于建立輸入控件和顯示控件,找到它的路徑是“控件”選板→“新式”→“數(shù)組、矩陣與簇”→“數(shù)組”子選板;另一種用于建立常量,找到它的路徑為“函數(shù)”選板→“編程”→“數(shù)組”子選板→“數(shù)組常量”。LabVIEW默認(rèn)初建的數(shù)組框架是一維的。4.1.2數(shù)組的創(chuàng)建空間選板

前面板控件圖4.2在前面板創(chuàng)建的數(shù)組框架

圖4.3在程序框圖面板創(chuàng)建數(shù)組常量框架圖4.1.2數(shù)組的創(chuàng)建控件選板前面板控件圖4.2在前面板創(chuàng)建的數(shù)組框架

4.1.2數(shù)組的創(chuàng)建此時(shí)創(chuàng)建的只不過是一個(gè)數(shù)組的“殼”,里面還沒有任何內(nèi)容,接下來需要為這個(gè)數(shù)組控件添加一個(gè)數(shù)據(jù)類型。2)向數(shù)組框架中添加“元素”,以確定數(shù)組元素的數(shù)據(jù)類型。比如我們創(chuàng)建一個(gè)數(shù)值型數(shù)組,單擊【數(shù)值型控件】,并將其拖曳到【數(shù)組控件】中,如圖4-4所示。圖4.4創(chuàng)建數(shù)值型數(shù)組4.1.2數(shù)組的創(chuàng)建3)以拖動(dòng)方式操作,來確定數(shù)組元素的可視大小,如圖4.5所示;通過拖曳鼠標(biāo),可同時(shí)顯示多個(gè)元素,具體如圖4.6所示。圖4.5改變數(shù)組元素的可視大小(以數(shù)組常量為例)圖4.6同時(shí)顯示多個(gè)元素(以數(shù)組常量為例)4.1.2數(shù)組的創(chuàng)建4)增加數(shù)組的維度。有兩種實(shí)現(xiàn)方法:一種是用鼠標(biāo)選中數(shù)組,右擊鼠標(biāo),彈出快捷菜單,選擇“添加維度”或“刪除維度”;另一種是將鼠標(biāo)移至數(shù)組左上角區(qū)域,通過拖曳,可以改變數(shù)組的維數(shù)。

按照上述步驟創(chuàng)建好的一個(gè)數(shù)組輸入控件如圖4.7(a)所示。有時(shí),需要將數(shù)組中的某個(gè)元素刪除,操作步驟如下:將鼠標(biāo)放在要?jiǎng)h除的元素(比如元素5)處,右擊鼠標(biāo),選擇“數(shù)據(jù)操作”中的“刪除元素”(如圖4.7(b)所示)。刪除元素5后的數(shù)組如圖4.7(c)所示。4.1.2數(shù)組的創(chuàng)建(a)

(b)(c)圖4.7刪除數(shù)組中的元素4.1.3數(shù)組函數(shù)LabVIEW中提供有一些數(shù)組函數(shù),它們都在“函數(shù)”選板→“編程”→“數(shù)組”子選板上。表4.1列出了5個(gè)常用的數(shù)組函數(shù),下面通過幾個(gè)示例對(duì)這幾個(gè)數(shù)組函數(shù)做具體介紹。4.1.3數(shù)組函數(shù)序號(hào)名稱圖標(biāo)和連接端口功能說明1數(shù)組大小提供該數(shù)組各維的長(zhǎng)度2索引數(shù)組返回n維數(shù)組在索引位置的元素或子數(shù)組3數(shù)組子集返回?cái)?shù)組的一部分,從索引處開始,包含長(zhǎng)度個(gè)元素4初始化數(shù)組創(chuàng)建一個(gè)n維數(shù)組,其中的每個(gè)元素都被初始化為元素的值4.1.3數(shù)組函數(shù)5創(chuàng)建數(shù)組將若干個(gè)輸入數(shù)組和元素組合成一個(gè)新的數(shù)組4.1.3數(shù)組函數(shù)【例4.1】

“數(shù)組大小”函數(shù)。例4.1的VI的程序框圖和前面板如圖4.8所示。它完成的是將一個(gè)三維數(shù)組常量連至“數(shù)組大小”函數(shù),然后將此函數(shù)的輸出結(jié)果提供給“大小”顯示控件。運(yùn)行此VI,從前面板上“大小”顯示控件的結(jié)果可以看出,這個(gè)數(shù)組的大小為2頁、3行和4列。4.1.3數(shù)組函數(shù)圖4.8“數(shù)組大小”函數(shù)使用示例4.1.3數(shù)組函數(shù)【例4.2】

“索引數(shù)組”函數(shù)。

例4.2的VI程序框圖和前面板如圖4.9所示。它所實(shí)現(xiàn)的是將一個(gè)5行3列的二維數(shù)組常量連至“索引數(shù)組”函數(shù)。擺放位置在上的被調(diào)用的“索引數(shù)組”函數(shù),索引的是原二維數(shù)組第1行的元素,輸出結(jié)果是原二維數(shù)組的一個(gè)子數(shù)組,且是一個(gè)一維數(shù)組。而擺放位置在下的被調(diào)用的“索引數(shù)組”函數(shù),其索引的是原二維數(shù)組中第l行第2列的那個(gè)元素,輸出的是一個(gè)數(shù)值常量。4.1.3數(shù)組函數(shù)圖4.9“索引數(shù)組”函數(shù)使用示例4.1.3數(shù)組函數(shù)【例4.3】“數(shù)組子集”函數(shù)。

例4.3的VI的程序框圖和前面板如圖4.10所示。它完成的是將一個(gè)5行3列的二維數(shù)組常量連至“數(shù)組子集”函數(shù)。其中,“數(shù)組子集”函數(shù)索引的是原二維數(shù)組從第1行開始、長(zhǎng)度為3的一個(gè)子二維數(shù)組,具體輸出的子二維數(shù)組有3行3列。4.1.3數(shù)組函數(shù)圖4.10“數(shù)組子集”函數(shù)使用示例4.1.3數(shù)組函數(shù)【例4.4】

“刪除數(shù)組元素”函數(shù)。

例4.4的VI的程序框圖和前面板如圖4.11所示。輸入的數(shù)組是一維的,共有5個(gè)元素,分別是(1,2,3,4,5)。該VI調(diào)用了“刪除數(shù)組元素”函數(shù),將輸入數(shù)組中的索引號(hào)為2、長(zhǎng)度為1的元素刪除掉了。結(jié)果如圖4.11所示,即元素3被刪掉了。4.1.3數(shù)組函數(shù)圖4.11“刪除數(shù)組元素”函數(shù)使用示例4.1.3數(shù)組函數(shù)【例4.5】

“初始化數(shù)組”函數(shù)。

例4.5的VI的程序框圖和前面板如圖4.12所示。其中,第1個(gè)“初始化數(shù)組”函數(shù)(擺放位置在上的)創(chuàng)建了一個(gè)長(zhǎng)度(大?。?的一維數(shù)組,且其中的每個(gè)元素都是1;第2個(gè)“初始化數(shù)組”函數(shù)創(chuàng)建了一個(gè)5行3列的二維數(shù)組,且其每個(gè)元素都是2。4.1.3數(shù)組函數(shù)圖4.12“初始化數(shù)組”函數(shù)使用示例4.1.3數(shù)組函數(shù)【例4.6】

“創(chuàng)建數(shù)組”函數(shù)。

在圖4.13所示VI的程序框圖面板上,基于兩個(gè)一維數(shù)組常量,利用“創(chuàng)建數(shù)組”函數(shù)生成了一個(gè)新數(shù)組。其中,擺放位置在上的“創(chuàng)建數(shù)組”函數(shù)的“連接輸入”選項(xiàng)是是勾選的,可實(shí)現(xiàn)將兩個(gè)一維數(shù)組串接起來,生成一個(gè)新的一維數(shù)組。而擺放位置在下的“創(chuàng)建數(shù)組”函數(shù)的“連接輸入”選項(xiàng)是未選擇的,其實(shí)現(xiàn)的是將兩個(gè)一維數(shù)組作為元素,生成另一個(gè)新的二維數(shù)組,并以原最長(zhǎng)的一維數(shù)組的大小作為新建的二維數(shù)組相應(yīng)維的大小,且對(duì)缺少的部位進(jìn)行自動(dòng)補(bǔ)0。4.1.3數(shù)組函數(shù)圖4.13“創(chuàng)建數(shù)組”函數(shù)使用示例printthepresentationandmakeitintoafilmtobeusedinawiderfield4.2簇4.2簇

簇是多個(gè)元素的集合。與數(shù)組不同的是,簇的元素可以是不同類型的,類似于C語言的結(jié)構(gòu)體。利用簇,可以在編寫VI的過程中將分布在程序框圖上不同位置的數(shù)據(jù)元素組合起來,這樣可以減少連線的擁擠程度;另外,還可以減少子VI中連接端子的數(shù)量。在實(shí)際應(yīng)用中,當(dāng)要對(duì)一個(gè)所編寫的測(cè)量?jī)x器VI的若干個(gè)不同性質(zhì)參數(shù)進(jìn)行配置時(shí),就可以使用簇來實(shí)現(xiàn)[1-4]。4.2.1簇的創(chuàng)建LabVIEW中簇的創(chuàng)建方法與創(chuàng)建數(shù)組相類似,共有如下3個(gè)步驟。1)首先要?jiǎng)?chuàng)建簇框架,如圖4.14所示。同數(shù)組一樣,簇框架也有兩種:一種是簇輸

入控件和簇顯示控件框架,位于“控件”選板→“新式”→“數(shù)組、矩陣與簇”子選板上;另一種是簇常量框架,位于“函數(shù)”選板→“編程”→“簇、類與變體”子選板上。2)向簇框架中添加元素,如圖4.14所示。3)通過拖曳確定簇的可視大小,如圖4.15所示。4.2.1簇的創(chuàng)建圖4.14在前面板上創(chuàng)建簇4.2.1簇的創(chuàng)建圖4.15在程序框圖面板上創(chuàng)建簇常量4.2.1簇的創(chuàng)建

在簇框架上右擊,彈出的快捷菜單中“自動(dòng)調(diào)整大小”子菜單中的4個(gè)選項(xiàng)可以用來調(diào)整簇框架的大小以及簇元素的布局?!盁o”選項(xiàng)不對(duì)簇框架做出調(diào)整;“調(diào)整為匹配大小”選項(xiàng)用于調(diào)整簇框架的大小,以適合所包含的所有元素;“水平排列”選項(xiàng)在水平方向壓縮排列所有元素;“垂直排列”選項(xiàng)則在垂直方向壓縮排列所有元素。如圖4.16所示。4.2.1簇的創(chuàng)建圖4.16更改簇的外觀大小4.2.1簇的創(chuàng)建

簇中元素的順序是可以改變的。具體的操作是,在簇框架上右擊鼠標(biāo),彈出快捷菜單,選擇“重新排序簇中控件”,則就打開了簇元素順序的編輯狀態(tài)。如圖4.17所示,簇元素上有兩個(gè)序號(hào),左側(cè)的為新序號(hào);右側(cè)的是舊序號(hào)。第一次,單擊簇元素之一,改變其序號(hào);隨后,對(duì)其他的元素重復(fù)上述過程,直到改好所有元素的順序?yàn)橹?,單擊上方工具欄中的,“確認(rèn)”按鈕,保存此次所做的修改。圖4.17簇的順序4.2.2簇函數(shù)下表分別是“捆綁”函數(shù)、“解除捆綁”函數(shù)、“按名稱捆綁”函數(shù)和“按名稱解除捆綁”函數(shù)。序號(hào)名稱圖標(biāo)和連接端口功能說明1捆綁(1)將所有輸入元素打包成簇(2)替換成新簇2解除捆綁將簇中的元素分解出來3按名稱捆綁(1)將標(biāo)簽替換“輸入簇”中的元素;替換結(jié)果從“輸出簇”提供出來(2)“輸入簇”必須接入,且要求其至少1個(gè)元素有標(biāo)簽4按名稱解除捆綁(1)將輸入簇中的元素按標(biāo)簽解除捆綁(2)在函數(shù)輸出端,只能獲得擁有標(biāo)簽的簇元素4.2.2簇函數(shù)【例4.7】“捆綁”函數(shù)。

例4.7的VI的程序框圖和前面板如圖4.18和圖4.19所示。從圖4.18所示的程序框圖可見,該VI利用“捆綁”函數(shù)將3個(gè)常量(字符串常量abc、數(shù)值常量1和布爾常量True)打包成一個(gè)簇,其結(jié)果經(jīng)前面板的“輸出簇”控件顯示出來?!袄墶焙瘮?shù)的另一個(gè)功能是替換成新簇,圖4.18所示的VI展示了這一用法。已知一個(gè)簇,其中的元素為字符串常量ABC、數(shù)值常量2和布爾常量False,將這個(gè)簇提供給“捆綁”函數(shù),該函數(shù)就會(huì)自動(dòng)識(shí)別輸入簇中各元素的數(shù)據(jù)類型,并在輸入端口上給出標(biāo)示,比如“捆綁”函數(shù)的第一個(gè)連線輸入口上有abc的標(biāo)示,表示簇中的第—個(gè)元素為字符串常量。然后,將一個(gè)新字符串常量abc連至“捆綁”函數(shù)的第1個(gè)輸入端口上,布爾常量True連至第3個(gè)輸入端口上,再將“捆綁”函數(shù)的輸出結(jié)果賦給“輸出簇”控件。運(yùn)行此VI可以看到,初始簇中的大寫ABC被小寫abc所替換,同時(shí),布爾常量也由False變?yōu)榱薚rue。4.2.2簇函數(shù)圖4.18捆綁函數(shù)應(yīng)用示例1圖4.19捆綁函數(shù)應(yīng)用示例24.2.2簇函數(shù)【例4.8】

“解除捆綁”函數(shù)。

例4.8給出了“解除捆綁”函數(shù)的使用示例,實(shí)現(xiàn)它功能的VI的程序框圖和前面板如圖4.20所示。從程序框圖可見,一個(gè)簇常量連至“解除捆綁”函數(shù)上,該函數(shù)對(duì)輸入簇進(jìn)行解包,并會(huì)自動(dòng)辨識(shí)出各元素的數(shù)據(jù)類型,最后將各元素連至相對(duì)應(yīng)的顯示控件,在前面板上顯示出來。4.2.2簇函數(shù)圖4.20解除捆綁函數(shù)應(yīng)用示例4.2.2簇函數(shù)“按名稱捆綁”函數(shù)的功能是按照簇中元素的名稱替換簇中的元素,其功能類似于捆綁函數(shù)。與捆綁函數(shù)不同的是,該函數(shù)是按名稱,而不是按簇中元素的位置引用簇元素。

“按名稱捆綁”函數(shù),相當(dāng)于“捆綁”函數(shù)的替換成新簇的功能。使用該函數(shù)時(shí),要求“輸入簇”必須接入,且至少其中的1個(gè)元素有標(biāo)簽。下面通過例4.9學(xué)習(xí)該函數(shù)的使用。4.2.2簇函數(shù)【例4.9】“按名稱捆綁”函數(shù)。

例4.9給出了“按名稱捆綁”函數(shù)使用示例的VI,其程序框圖和前面板如圖4.21所示。從程序框圖可見,一個(gè)簇常量連至“按名稱捆綁”函數(shù),該函數(shù)會(huì)自動(dòng)辨識(shí)出輸入簇中有標(biāo)簽的元素;將新元素連至“按名稱捆綁”函數(shù)的輸入端口上,替換生成的新簇會(huì)通過輸出簇控件在前面板顯示出來。運(yùn)行此VI可以看出,新元素(abc和true,已經(jīng)替換了原簇常量中的相應(yīng)元素(ABC和false)。4.2.2簇函數(shù)圖4.21“按名稱捆綁”函數(shù)應(yīng)用示例4.2.2簇函數(shù)“按名稱解除捆綁”函數(shù)的功能是將輸入簇中的元素按標(biāo)簽解除捆綁。在該函數(shù)的輸出端,只能獲得帶有標(biāo)簽的簇元素。下面將通過例4.10學(xué)習(xí)該函數(shù)的使用。【例4.10】“按名稱解除捆綁”函數(shù)。例4.10給出了“按名稱解除捆綁”函數(shù)使用示例的VI,它的程序框圖和前面板如圖4.22所示。在它的程序框圖上,是將一個(gè)簇常量連至“按名稱解除捆綁”函數(shù),該函數(shù)會(huì)自動(dòng)辨識(shí)出輸入簇中帶有標(biāo)簽的元素,然后,再將解包出的元素連至相對(duì)應(yīng)的顯示控件上。4.2.2簇函數(shù)圖4.22“按名稱解除捆綁”函數(shù)使用示例與“按名稱捆綁”函數(shù)一樣,“按名稱解除捆綁”函數(shù)初建時(shí)也只有一個(gè)輸出端子。單擊其標(biāo)簽域,可彈出帶有標(biāo)簽的簇元素列表;為看到這些帶有不同標(biāo)簽的簇元素,必須對(duì)其分別建立相應(yīng)的顯示控件。printthepresentationandmakeitintoafilmtobeusedinawiderfield4.3波形4.3.1波形數(shù)據(jù)的組成1.變體LabVIEW提供了變體數(shù)據(jù)作為“通用”數(shù)據(jù)類型,是多種數(shù)據(jù)類型的容器。將其他數(shù)據(jù)轉(zhuǎn)換為變體時(shí),變體將存儲(chǔ)數(shù)據(jù)和數(shù)據(jù)的原始類型,保證日后可將變體數(shù)據(jù)反向轉(zhuǎn)換。例如,如將字符串?dāng)?shù)據(jù)轉(zhuǎn)換為變體,變體將存儲(chǔ)字符串的文本,以及說明該數(shù)據(jù)是從字符串轉(zhuǎn)換而來的信息。

另外,變體數(shù)據(jù)類型還可以存儲(chǔ)數(shù)據(jù)屬性。屬性定義的是數(shù)據(jù)及變體數(shù)據(jù)類型所存儲(chǔ)的數(shù)據(jù)信息。例如,需要知道某個(gè)數(shù)據(jù)的創(chuàng)建時(shí)間,可將該數(shù)據(jù)存儲(chǔ)為變體數(shù)據(jù)并添加—個(gè)時(shí)間屬性,用于存儲(chǔ)時(shí)間字符串。屬性數(shù)據(jù)可以是任意數(shù)據(jù)類型,也可以從變體數(shù)據(jù)中刪除或獲取屬性。4.3.1波形數(shù)據(jù)的組成變體數(shù)據(jù)類型主要應(yīng)用在ActiveX技術(shù)中,以方便不同程序之間的數(shù)據(jù)交互。變體數(shù)據(jù)類型在前面板位于“控件”→“新式”→“變體與類”子選板以及“經(jīng)典”→“經(jīng)典數(shù)組、矩陣與簇”子選板中,如圖4.23所示。圖4.23“控件”選板中的“變體”子選板4.3.1波形數(shù)據(jù)的組成

任何數(shù)據(jù)類型都可以轉(zhuǎn)化為變體類型數(shù)據(jù),然后為其添加屬性,并在需要時(shí)轉(zhuǎn)換為原來的數(shù)據(jù)類型。為了完成變體數(shù)據(jù)的操作及屬性的添加、刪除和獲取,LabVIEW提供了變體函數(shù),位于“函數(shù)”→“編程”→“簇、類與變體”→“變體”子選板中,如圖4.24所示。圖4.24“函數(shù)”選板中的“變體”函數(shù)4.3.1波形數(shù)據(jù)的組成表4.3列出了變體函數(shù)的功能說明圖標(biāo)函數(shù)名稱說明轉(zhuǎn)換為變體轉(zhuǎn)換任意LabVIEW數(shù)據(jù)為變體數(shù)據(jù)。也可用于將ActiveX數(shù)據(jù)轉(zhuǎn)換為變體數(shù)據(jù)變體至數(shù)據(jù)轉(zhuǎn)換轉(zhuǎn)換變體數(shù)據(jù)為L(zhǎng)abVIEW可顯示或處理的數(shù)據(jù)類型。也將變體數(shù)據(jù)轉(zhuǎn)換為ActiveX數(shù)據(jù)變體常量變體常量用于傳遞空變體至程序框圖,不能設(shè)置變體常量的值平化字符串至變體轉(zhuǎn)換將平化數(shù)據(jù)轉(zhuǎn)換為變體數(shù)據(jù)變體至平化字符串轉(zhuǎn)換轉(zhuǎn)換變體數(shù)據(jù)為平化的字符串以及代表數(shù)據(jù)類型的整數(shù)數(shù)組。ActiveX變本數(shù)據(jù)無法平化設(shè)置變體屬性用于創(chuàng)建或改變變體數(shù)據(jù)的屬性或值獲取變體屬性依據(jù)是否連接名稱參數(shù),從單個(gè)屬性的所有屬性或值中獲取名稱和值刪除變體屬性刪除變體數(shù)據(jù)中的屬性和值數(shù)據(jù)類型解析子菜單內(nèi)VI和函數(shù)用于獲取和比較變體或其他數(shù)據(jù)類型中保存的數(shù)據(jù)類型4.3.1波形數(shù)據(jù)的組成

為了進(jìn)一步理解變體數(shù)據(jù)類型及函數(shù),圖4.25所示為一個(gè)變體的應(yīng)用示例。在該示例中,首先將一個(gè)數(shù)組轉(zhuǎn)化為數(shù)組變體,然后為其添加一個(gè)“創(chuàng)建時(shí)間”屬性,并獲取數(shù)組信息,最后再將變體轉(zhuǎn)換為數(shù)據(jù)類型—數(shù)組。圖4.25變體應(yīng)用示例4.3.1波形數(shù)據(jù)的組成2時(shí)間標(biāo)識(shí)時(shí)間標(biāo)識(shí)又稱時(shí)間戳,是LabVIEW中記錄時(shí)間的專用數(shù)據(jù)類型。找到時(shí)間標(biāo)識(shí)常量的路徑是“函數(shù)”選板→“編程”→“定時(shí)”→“時(shí)間標(biāo)識(shí)常量”。而找到時(shí)間標(biāo)識(shí)的輸入控件和顯示控件的路徑為:“控件”選板→“新式”→“數(shù)值”子選板。時(shí)間標(biāo)識(shí)路徑、常量及控件如圖4.26所示。圖4.26時(shí)間標(biāo)識(shí)常量及控件4.3.1波形數(shù)據(jù)的組成3波形數(shù)據(jù)波形,可以理解為是一種特殊的簇。在LabVIEW中,波形含有4個(gè)組成部分,分別是t0、dt、“數(shù)組Y”和“屬性”。其中,t0為時(shí)間標(biāo)識(shí),表示波形數(shù)據(jù)的時(shí)間起點(diǎn);dt為雙精度浮點(diǎn)類型,表示波形數(shù)據(jù)中相鄰數(shù)據(jù)點(diǎn)之間的時(shí)間間隔,以秒為單位;Y是雙精度浮點(diǎn)數(shù)組,它按時(shí)間順序給出整個(gè)波形的所有數(shù)據(jù)點(diǎn);“屬性”是變體類型,用于攜帶任意的屬性信息。波形控件位于“控件”選板→“新式”→“I/O”子選板上。LabVIEW利用“波形”控件和“數(shù)字波形”控件分別存放模擬波形數(shù)據(jù)和數(shù)字波形數(shù)據(jù),兩種控件位于“控件”→“新式”→“I/O”子選板上、“控件”→“銀色”→“I/O”子選板上以及“經(jīng)典”→“經(jīng)典I/O”和“經(jīng)典”→“經(jīng)典數(shù)值”子選板中。將控件放置在前面板,默認(rèn)情況下只顯示3個(gè)元素(t0、dt和Y),在右鍵彈出的快捷菜單中選擇“顯示項(xiàng)”→“屬性”,可顯示屬性欄。4.3.2波形函數(shù)表4.4列出了幾種典型的波形函數(shù),它們位于“函數(shù)”選板→“編程”→“波形”子選板上。其中,在默認(rèn)情況下,“創(chuàng)建波形”函數(shù)只有“波形”和“波形成分”(Y輸入端子);拖拽該函數(shù)圖標(biāo)的邊框,可增加dt、t0和Attributes(變體類型)輸入端子;如果“波形”端子接入了已有的波形數(shù)據(jù),則該函數(shù)會(huì)根據(jù)經(jīng)“波形成分”接入的參數(shù)修改波形數(shù)據(jù)并輸出。“獲取波形成分”函數(shù)的功能是將波形數(shù)據(jù)解包。默認(rèn)情況下,該函數(shù)圖標(biāo)只有Y輸出端子;拖曳該函數(shù)圖標(biāo)的邊框,可增加dt、t0和屬性(變體類型)的輸出端子;也可以單擊輸出端子,在彈出的菜單中選擇希望從該輸出端子輸出波形的哪個(gè)成分(數(shù)組Y、dt或者t0等)。4.3.2波形函數(shù)表4.4波形函數(shù)序號(hào)名稱圖標(biāo)和連接端口功能說明1創(chuàng)建波形創(chuàng)建波形或修改已有波形2獲取波形成分將波形數(shù)據(jù)解包3設(shè)置波形屬性為輸入的波形數(shù)據(jù)添加“名稱”和“值”的屬性4獲取波形屬性獲取波形中名為“名稱”的屬性4.3.2波形函數(shù)【例4.11】

生成一段隨機(jī)信號(hào),并將其波形在前面板上顯示出來。

例4.11VI的程序框圖和前面板分別如圖4.27和圖4.28所示,它的功能是先利用For循環(huán)生成一個(gè)一維數(shù)組,該數(shù)組元素為隨機(jī)數(shù),數(shù)組長(zhǎng)度為100。隨后,將該數(shù)組賦給“創(chuàng)建波形”函數(shù)的Y數(shù)組的輸入端子,并為“創(chuàng)建波形”函數(shù)的dt輸入端子賦一個(gè)常量l,表示數(shù)組中兩兩相鄰元素之間的時(shí)間間隔為1s。最后,將生成的波形提供給波形圖控件和波形顯示控件。利用波形圖控件,可以直觀地看到所生成的這段隨機(jī)信號(hào)隨時(shí)間變化的情況;利用波形顯示控件,則可以看到所產(chǎn)生的隨機(jī)信號(hào)波形的具體信息。4.3.2波形函數(shù)圖4.27例4.11的VI程序框圖圖4.28例4.11的VI前面板4.3.2波形函數(shù)【例4.12】

生成一段正弦波形,要求其頻率為50Hz,幅值為2,初相位為60度。

這個(gè)例子的VI的程序框圖如圖4.29所示,其前面板見圖4.30。對(duì)該VI需要說明的有:①它調(diào)用了“正弦”函數(shù),此函數(shù)經(jīng)“函數(shù)”選板→“數(shù)學(xué)”→“初等與特殊函數(shù)”,在“三角函數(shù)”子選板上可以找到;②幅值輸入控件中的數(shù)值是單個(gè)值,將其乘以For循環(huán)生成的數(shù)值,即幅值輸入控件中的數(shù)值將依次與數(shù)組中的每個(gè)元素相乘;③正弦波形的周期為其頻率的倒數(shù),波形中任意兩個(gè)相鄰數(shù)據(jù)點(diǎn)之間的時(shí)間間隔dt等于周期除以“點(diǎn)數(shù)/周期”。很容易理解,如果將For循環(huán)中的“正弦”函數(shù)換成其他函數(shù),那該VI就可以產(chǎn)生其他函數(shù)的波形。4.3.2波形函數(shù)圖4.29例4.12VI

溫馨提示

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