官术网_书友最值得收藏!

項(xiàng)目2 認(rèn)識(shí)LabVIEW中的數(shù)據(jù)類(lèi)型

LabVIEW數(shù)據(jù)大致被分為標(biāo)量類(lèi)(單元素)、結(jié)構(gòu)類(lèi)(包括一個(gè)以上的元素)兩大類(lèi)。標(biāo)量類(lèi)有數(shù)值、字符和布爾量等,結(jié)構(gòu)類(lèi)有數(shù)組、簇和波形等。LabVIEW數(shù)據(jù)控件模板將各種類(lèi)似的數(shù)據(jù)類(lèi)型集中在一個(gè)子模板上以便于使用。

LabVIEW用顏色和連線(xiàn)來(lái)表示各類(lèi)數(shù)據(jù)。表2-1給出了幾種常用的數(shù)據(jù)類(lèi)型的端子圖標(biāo)及其顏色,更多的類(lèi)型將在后面介紹。連線(xiàn)是程序設(shè)計(jì)中較為復(fù)雜的問(wèn)題,程序框圖上的每一個(gè)對(duì)象都帶有自己的連線(xiàn)端子,連線(xiàn)將構(gòu)成對(duì)象之間的數(shù)據(jù)通道。因?yàn)檫@不是幾何意義上的連線(xiàn),所以并非任意兩個(gè)端子間都可連線(xiàn),連線(xiàn)類(lèi)似于普通程序中的變量。數(shù)據(jù)單向流動(dòng),從源端口向一個(gè)或多個(gè)目的端口流動(dòng)。不同的線(xiàn)型代表不同的數(shù)據(jù)類(lèi)型。表2-2給出了幾種常用數(shù)據(jù)類(lèi)型所對(duì)應(yīng)的顏色和線(xiàn)型。

表2-1 幾種常用的數(shù)據(jù)類(lèi)型的端子圖標(biāo)及其顏色

表2-2 幾種常用數(shù)據(jù)類(lèi)型所對(duì)應(yīng)的顏色和線(xiàn)型

2.1 任務(wù)1 字符串型數(shù)據(jù)操作

2.1.1 認(rèn)識(shí)控件與函數(shù)選板

在控件選板→新式中包含“字符串與路徑”子選板,如圖2-1所示。字符串(String)是LabVIEW中一種基本的數(shù)據(jù)類(lèi)型;路徑是一種特殊的字符串,專(zhuān)門(mén)用于對(duì)文件路徑的處理。字符串型與路徑子選板中共有3種對(duì)象供用戶(hù)選擇,即字符串輸入/顯示、組合框和文件路徑輸入/顯示。

圖2-1 “字符串與路徑”子選板

在程序框圖的函數(shù)選板中,也有關(guān)于字符串的運(yùn)算函數(shù)。“字符串”函數(shù)子選板如圖2-2所示。

圖2-2 “字符串”函數(shù)子選板

路徑控件用于輸入或返回文件或目錄的地址。路徑控件與字符串控件的工作原理類(lèi)似,但LabVIEW會(huì)根據(jù)用戶(hù)使用操作平臺(tái)的標(biāo)準(zhǔn)句法將路徑按一定格式處理。

組合框控件可用來(lái)創(chuàng)建一個(gè)字符串列表,在前面板上可按次序循環(huán)瀏覽該列表。在字符串控件中最常用的是字符串輸入和字符串顯示兩個(gè)控件。在默認(rèn)情況下創(chuàng)建的字符串輸入與顯示控件是單行的,長(zhǎng)度固定。

圖2-3所示是一個(gè)字符串輸入、一個(gè)字符串顯示的簡(jiǎn)單的字符串操作。

圖2-3 簡(jiǎn)單的字符串操作

2.1.2 字符串的顯示方式

字符串控件用于輸入和顯示各種字符串。用鼠標(biāo)右鍵單擊字符串控件,在彈出的快捷菜單中,關(guān)于定義字符串的顯示方式有以下4種。

1)正常顯示。字符串控件在默認(rèn)情況下為正常顯示狀態(tài),顯示字符的一般形式,在字符串中可以直接輸入<Enter>或<空格>鍵,系統(tǒng)自動(dòng)根據(jù)鍵盤(pán)動(dòng)作為字符串創(chuàng)建隱藏的‘\’形式的轉(zhuǎn)義控制字符。

2)\代碼顯示。有些字符具有特殊含義或無(wú)法顯示,如<Enter>鍵等,可使用‘\’轉(zhuǎn)義代碼表示出來(lái),如“\n”為換行符,該顯示方式適用于串口通信等。

3)密碼顯示。當(dāng)制作登入窗口時(shí),密碼行需要使用該顯示方式。

4)十六進(jìn)制顯示。在一些設(shè)備交互數(shù)據(jù)或者讀寫(xiě)文件時(shí),需要使用十六進(jìn)制的方式顯示其中的數(shù)據(jù)。

圖2-4所示是輸入圖示字符串后不同顯示方式的對(duì)比。

圖2-4 輸入圖示字符串后不同顯示方式的對(duì)比

2.1.3 日期時(shí)間的顯示

創(chuàng)建一個(gè)字符串顯示控件要求程序運(yùn)行后顯示系統(tǒng)當(dāng)前的日期和時(shí)間。

日期/時(shí)間字符串程序框圖如圖2-5所示。當(dāng)時(shí)間格式字符串為空的時(shí)候,顯示的是系統(tǒng)當(dāng)前的日期和時(shí)間,查看幫助信息可以獲得日期/時(shí)間的其他相關(guān)信息。

圖2-5 日期/時(shí)間字符串程序框圖

結(jié)合幫助信息,其他字符串函數(shù)將在后面用到時(shí)再進(jìn)行介紹。

2.2 任務(wù)2 數(shù)值型數(shù)據(jù)操作

2.2.1 認(rèn)識(shí)控件與函數(shù)選板

數(shù)值型(Numeric)是LabVIEW的一種基本的數(shù)據(jù)類(lèi)型,可以是浮點(diǎn)數(shù)、整數(shù)、無(wú)符號(hào)整數(shù)和復(fù)數(shù)。新式的數(shù)值型控件包含了各種形象的輸入控件和顯示控件,如圖2-6所示。數(shù)值輸入控件快捷菜單如圖2-7所示。

圖2-6 新式的數(shù)值型控件

圖2-7 數(shù)值輸入控件快捷菜單

數(shù)值運(yùn)算相關(guān)函數(shù)在數(shù)值子選板中,“數(shù)值”子選板如圖2-8所示。在函數(shù)選板的“編程”子選板和“數(shù)學(xué)”子選板中都可以找到。數(shù)值子選板包含了加減乘除等基本運(yùn)算函數(shù),還包含了一些常量。圖中的“數(shù)學(xué)與科學(xué)常量”中有Π、自然對(duì)數(shù)等。數(shù)值運(yùn)算函數(shù)支持標(biāo)量和數(shù)組的運(yùn)算。

圖2-8 “數(shù)值”子選板

2.2.2 數(shù)值屬性

數(shù)值控件中的“數(shù)值輸入控件”比較常用,圖2-9所示是“數(shù)值輸入控件屬性”對(duì)話(huà)框。選擇其中的選項(xiàng)可對(duì)該控件進(jìn)行一些操作和設(shè)置。“顯示項(xiàng)”包含標(biāo)簽、標(biāo)題、單位標(biāo)簽、增量/減量幾個(gè)選項(xiàng)。默認(rèn)勾選標(biāo)簽為可見(jiàn)和“顯示增量/減量按鈕”,如圖所示控件上的“數(shù)值”就是它的標(biāo)簽、空件右側(cè)的上下箭頭就是增量/減量,去掉勾選就不再顯示該部分。在圖2-7所示中選擇“查找接線(xiàn)端”就會(huì)切換到程序框圖的對(duì)應(yīng)接線(xiàn)端子上;“數(shù)據(jù)操作”用來(lái)進(jìn)行數(shù)據(jù)的復(fù)制粘貼等以及設(shè)置初始化默認(rèn)值、當(dāng)前值為默認(rèn)值。選擇“屬性”可以打開(kāi)屬性窗口,通過(guò)該窗口對(duì)數(shù)值外觀、數(shù)據(jù)類(lèi)型、數(shù)據(jù)輸入和顯示格式等屬性進(jìn)行設(shè)置,還可添加說(shuō)明信息、進(jìn)行數(shù)據(jù)綁定和設(shè)置快捷鍵等,如圖2-8所示。

圖2-9 “數(shù)值輸入控件屬性”對(duì)話(huà)框

2.2.3 數(shù)值表示法

在LabVIEW中的數(shù)值型的表示方法有多種,用鼠標(biāo)右鍵單擊數(shù)值控件或接線(xiàn)端子,在彈出的快捷菜單里選擇“表示法”,可以看到數(shù)據(jù)類(lèi)選項(xiàng)如圖2-10所示。默認(rèn)的數(shù)值類(lèi)型是雙精度浮點(diǎn)數(shù)(DBL),顏色為橙色。各類(lèi)型數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度是不相同的。

圖2-10 數(shù)據(jù)類(lèi)型選項(xiàng)

需要注意的是,在數(shù)值運(yùn)算過(guò)程中應(yīng)盡量做到數(shù)據(jù)類(lèi)型保持一致,否則會(huì)有強(qiáng)制類(lèi)型轉(zhuǎn)換點(diǎn)出現(xiàn),強(qiáng)制轉(zhuǎn)換是將低精度的數(shù)值轉(zhuǎn)換為高精度數(shù)值再進(jìn)行計(jì)算,運(yùn)算中的強(qiáng)制類(lèi)型轉(zhuǎn)換點(diǎn)如圖2-11所示。當(dāng)中的“數(shù)值”為雙精度浮點(diǎn)數(shù),而“數(shù)值2”為整數(shù),在進(jìn)行加法運(yùn)算時(shí),在數(shù)值2的接入端有一個(gè)紅點(diǎn),即為強(qiáng)制轉(zhuǎn)換點(diǎn)。有強(qiáng)制類(lèi)型轉(zhuǎn)換點(diǎn),就有內(nèi)存的重新分配,就會(huì)占用一定的資源,所以要盡量避免。

圖2-11 運(yùn)算中的強(qiáng)制類(lèi)型轉(zhuǎn)換點(diǎn)

2.2.4 用隨機(jī)數(shù)產(chǎn)出模擬溫度

運(yùn)用數(shù)值函數(shù)產(chǎn)生一個(gè)20±5的隨機(jī)數(shù),用該隨機(jī)數(shù)可以模擬某時(shí)刻室內(nèi)溫度的變化情況。

分析:±5的隨機(jī)數(shù)可以考慮0-1隨機(jī)數(shù)乘以10,然后減去5來(lái)實(shí)現(xiàn)。隨機(jī)數(shù)產(chǎn)生的具體VI實(shí)現(xiàn)如圖2-12所示,多次單擊運(yùn)行或者連續(xù)運(yùn)行,會(huì)發(fā)現(xiàn)結(jié)果隨機(jī)數(shù)在指定范圍的變化,為了看清數(shù)據(jù)變化情況,可加一個(gè)等待函數(shù)(ms),等待1s。

圖2-12 隨機(jī)數(shù)產(chǎn)生的具體VI實(shí)現(xiàn)

2.2.5 比較函數(shù)

與數(shù)值運(yùn)算相關(guān)的還有“比較函數(shù)”子選板,如圖2-13所示。比較函數(shù)選板可以進(jìn)行數(shù)值比較、布爾值比較、字符串比較、數(shù)組比較和簇比較。不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)在進(jìn)行比較時(shí)適用的規(guī)則不同。

圖2-13 “比較函數(shù)”子選板

2.2.6 溫度的比較與警示

綜合應(yīng)用數(shù)值型數(shù)據(jù)、字符串和比較函數(shù),接上面的任務(wù),產(chǎn)生的溫度隨機(jī)數(shù)與21℃比較,當(dāng)高于21℃時(shí),文本顯示為溫度偏高,否則文本顯示為溫度正常。

兩種狀態(tài)的溫度比較編程實(shí)現(xiàn)如圖2-14所示。多次單擊運(yùn)行或連續(xù)運(yùn)行,可以查看溫度情況顯示欄的結(jié)果變化。

圖2-14 兩種狀態(tài)的溫度比較編程實(shí)現(xiàn)

可以進(jìn)一步深入上述任務(wù),考慮兩個(gè)閥值的比較情況:將溫度低于18℃記為低溫警報(bào),高于21℃設(shè)置為高溫警報(bào)。

該問(wèn)題實(shí)際上有3種情況,即高溫警報(bào)、低溫警報(bào)和正常,可以考慮用兩個(gè)選擇函數(shù)實(shí)現(xiàn)。3種狀態(tài)的溫度比較編程實(shí)現(xiàn)如圖2-15所示。多次單擊運(yùn)行或連續(xù)運(yùn)行,可以查看結(jié)果變化。

圖2-15 3種狀態(tài)的溫度比較編程實(shí)現(xiàn)

2.3 任務(wù)3 布爾型數(shù)據(jù)操作

2.3.1 認(rèn)識(shí)控件與函數(shù)選板

布爾(Boolean)控件代表一個(gè)布爾值,也可認(rèn)為是邏輯變量,取值只能是真(True)或假(False)。這兩個(gè)值分別用一個(gè)字節(jié)來(lái)表示,當(dāng)該字節(jié)所有的數(shù)值為0的時(shí)候值為假,否則,值為真。“布爾”型控件選板如圖2-16所示,包括各種開(kāi)關(guān)、按鈕和指示燈等。“布爾函數(shù)”選板包含在函數(shù)選板中的布爾子選板中,如圖2-17所示,包含了與、或和非等常用函數(shù)。與數(shù)值運(yùn)算類(lèi)似,布爾量的算法也可以支持標(biāo)量和數(shù)組的運(yùn)算。

圖2-16 “布爾”型控件選板

圖2-17 “布爾函數(shù)”選板

2.3.2 機(jī)械動(dòng)作

在布爾型輸入控件中一共有6種機(jī)械動(dòng)作。機(jī)械動(dòng)作的選擇在快捷菜單中,用鼠標(biāo)右鍵單擊布爾控件選擇“機(jī)械動(dòng)作”選項(xiàng),如圖2-18所示。

圖2-18 “機(jī)械動(dòng)作”選項(xiàng)

不同的機(jī)械動(dòng)作模擬了不同種類(lèi)的開(kāi)關(guān)。第1行是轉(zhuǎn)換型的,如電燈的開(kāi)關(guān);第2行是觸發(fā)型的,松手后開(kāi)關(guān)恢復(fù)原位。按列來(lái)看,第1列是按下后立刻執(zhí)行動(dòng)作;第2列是按下松手后才執(zhí)行動(dòng)作;第3列是按下執(zhí)行動(dòng)作,松手后又恢復(fù)原位。

2.3.3 簡(jiǎn)單的布爾操作

簡(jiǎn)單的布爾數(shù)據(jù)操作如圖2-19所示,比較布爾開(kāi)關(guān)和布爾常量控制布爾燈的異同。

圖2-19 布爾數(shù)據(jù)操作

2.3.4 溫度報(bào)警程序設(shè)計(jì)

對(duì)應(yīng)上述問(wèn)題,如果溫度出現(xiàn)報(bào)警情況時(shí),亮紅色警示燈,否則亮綠燈。

本問(wèn)題涉及兩個(gè)情況,對(duì)應(yīng)布爾燈的真和假,真的時(shí)候設(shè)置布爾燈顏色屬性為紅色,假的時(shí)候?yàn)榫G色。高溫警報(bào)和低溫警報(bào)兩種情況用與函數(shù)連接,溫度報(bào)警的編程實(shí)現(xiàn)如圖2-20所示。多次單擊運(yùn)行或連續(xù)運(yùn)行,可以查看結(jié)果變化。

圖2-20 溫度報(bào)警的編程實(shí)現(xiàn)

2.4 任務(wù)4 數(shù)組和簇操作

2.4.1 認(rèn)識(shí)控件與函數(shù)選板

數(shù)組控件在“數(shù)組、矩陣與簇”選板中,如圖2-21所示。數(shù)組(Array)由元素和維度組成。元素是組成數(shù)組的數(shù)據(jù),維度是指數(shù)組的長(zhǎng)度、深度。數(shù)組中存放的是相同的數(shù)據(jù)類(lèi)型,可以是數(shù)值型,也可以是布爾型或字符型等,最常用的是數(shù)值型的數(shù)組。可以創(chuàng)建數(shù)組控件和數(shù)組常量。

圖2-21 “數(shù)組、矩陣與簇”選板

2.4.2 創(chuàng)建數(shù)組

在控件選板中選擇如數(shù)值、字符串和布爾量等控件,將其拖放到之前的數(shù)組外框中,得到一個(gè)一維數(shù)組。創(chuàng)建數(shù)組如圖2-22所示。圖2-22a所示是放置一個(gè)雙精度的由數(shù)值控件構(gòu)成的一維數(shù)組。

圖2-22 創(chuàng)建數(shù)組

a)一維數(shù)組 b)二維數(shù)組 c)程序框圖中接線(xiàn)板的狀況

如圖2-22b所示,若需要?jiǎng)?chuàng)建的是二維數(shù)組只需要通過(guò)上下拖拉的方式,在左側(cè)索引部分即可得到所需維數(shù)的數(shù)組。圖2-22b所示得到的是一個(gè)二維數(shù)組,圖2-22b所示是程序框圖中接線(xiàn)板的狀況。

在程序框圖中,標(biāo)量的連線(xiàn)是一條細(xì)線(xiàn),一維數(shù)組是較粗的實(shí)心線(xiàn),二維數(shù)組的連線(xiàn)是由兩根細(xì)線(xiàn)組成的,如圖2-22c所示。除了可以創(chuàng)建數(shù)值型數(shù)組,還可以創(chuàng)建字符串型和布爾型數(shù)組。

對(duì)于數(shù)組的相關(guān)運(yùn)算,其實(shí)在查看其他數(shù)據(jù)類(lèi)型的例程時(shí)應(yīng)有所接觸。對(duì)數(shù)組可以進(jìn)行加減乘除的運(yùn)算,此外,還可以索引某個(gè)元素、索引某行/某列、測(cè)量數(shù)組維度,重新組成新數(shù)組等。圖2-23所示是“數(shù)組”的函數(shù)選板。

圖2-23 “數(shù)組”的函數(shù)選板

2.4.3 數(shù)組的大小和索引運(yùn)算

圖2-24所示是一維數(shù)組函數(shù)的綜合運(yùn)用,即創(chuàng)建數(shù)組、使用數(shù)組函數(shù),并在創(chuàng)建的數(shù)組中進(jìn)行數(shù)組大小運(yùn)算和索引運(yùn)算。

圖2-24 一維數(shù)組函數(shù)的綜合運(yùn)用

對(duì)于二維數(shù)組常常涉及索引,索引從0開(kāi)始,函數(shù)中索引端口的順序是先行后列,即先是行索引,后是列索引。如果行索引為空,只有列索引,那么索引的是對(duì)應(yīng)的列,反之是行;如果既有行索引又有列索引,那么索引的將是對(duì)應(yīng)的元素,圖2-25所示的例子能很好地說(shuō)明這一點(diǎn)。另外,創(chuàng)建一維、二維數(shù)組可以用后面將要講到的for循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。

圖2-25 二維數(shù)組的幾種索引方式比較

圖2-25所示為二維數(shù)組的幾種索引方式比較。

2.4.4 創(chuàng)建和使用簇

前面介紹的數(shù)組是同一類(lèi)型數(shù)據(jù)的集合,若需要?jiǎng)?chuàng)建多種數(shù)據(jù)類(lèi)型的集合,則需要使用LabVIEW中特有的數(shù)據(jù)類(lèi)型——簇(Cluster),類(lèi)似于C語(yǔ)言當(dāng)中的結(jié)構(gòu)體。

最常見(jiàn)的簇是LabVIEW中自帶的錯(cuò)誤簇。錯(cuò)誤簇中包含有布爾量、數(shù)值和字符串。在編程時(shí)使用錯(cuò)誤簇,可以將所有子VI以及函數(shù)的錯(cuò)誤簇按照數(shù)據(jù)流向的先后連接起來(lái),這樣不僅可以將錯(cuò)誤傳遞下去,而且方便找到對(duì)應(yīng)的錯(cuò)誤源,還可以控制程序的執(zhí)行順序。

雖然簇可以包含多種數(shù)據(jù)類(lèi)型(比如,在簇中可以包含另一個(gè)簇),但是在同一個(gè)簇中只能包含輸入控件或者顯示控件,不可能同時(shí)包含輸入/顯示控件。簇的創(chuàng)建與數(shù)組類(lèi)似,即將簇的外框拖放到前面板上。簇的創(chuàng)建方式如圖2-26所示。

圖2-26 簇的創(chuàng)建方式

在簇中添加所需的元素,可創(chuàng)建一個(gè)新的簇。在程序框圖中的接線(xiàn)端如圖2-26d所示。如果需要簇的外框大小和其包含的元素大小相匹配,在簇控件上用鼠標(biāo)右鍵單擊,選擇“自適應(yīng)大小”(size to fit)就可以得到調(diào)整后的簇的外貌,并且會(huì)根據(jù)新修改的元素分布自動(dòng)修改其外框大小。

“簇的函數(shù)”選板如圖2-27所示,最常用的4個(gè)選項(xiàng)是按名稱(chēng)捆綁、捆綁、按名稱(chēng)解除捆綁和解除捆綁。

圖2-27 “簇的函數(shù)”選板

當(dāng)有大量的數(shù)據(jù)需要傳遞的時(shí)候,若數(shù)據(jù)類(lèi)型一致,則推薦使用數(shù)組將數(shù)據(jù)整合在一起;若數(shù)據(jù)類(lèi)型有多種,則推薦使用簇將各種數(shù)據(jù)捆綁在一起,然后再進(jìn)行傳遞。

2.4.5 簇的編號(hào)與排序

在創(chuàng)建一個(gè)簇時(shí),LabVIEW會(huì)按照簇中元素創(chuàng)建的先后次序給簇中的元素進(jìn)行默認(rèn)編號(hào)。編號(hào)從0開(kāi)始,依次為1、2、…。當(dāng)然,也可根據(jù)編程需要自己定義元素的編號(hào)。在簇框架用鼠標(biāo)右鍵單擊彈出的選單中,選擇重新排序簇中的控件,如圖2-28所示,Lab-VIEW的前面板會(huì)變?yōu)樵仨樞蚓庉嬈鳎诰庉嬈髦杏檬髽?biāo)單擊元素的編號(hào),即可改變?cè)氐木幪?hào),其余編號(hào)依次輪回。在編輯完所有編號(hào)后,用鼠標(biāo)單擊工具條上的“OK”按鈕確定。

圖2-28 簇中控件的排序

2.5 任務(wù)5 圖形數(shù)據(jù)操作

強(qiáng)大的數(shù)據(jù)圖形化顯示功能是LabVIEW最大的優(yōu)點(diǎn)之一。利用圖形與圖表等形式來(lái)顯示測(cè)試數(shù)據(jù)和分析結(jié)果可以直觀地看出被測(cè)試對(duì)象的變化趨勢(shì),從而使虛擬儀器的前面板變得更加形象和直觀。LabVIEW提供了豐富的圖形顯示控件。編程人員通過(guò)使用簡(jiǎn)單的屬性設(shè)置和編程技巧就可以根據(jù)需求定制不同功能的“顯示屏幕”。

2.5.1 生成波形數(shù)據(jù)

波形是一種特殊類(lèi)型的簇,元素的數(shù)量和類(lèi)型固定,包括數(shù)據(jù)采集的起始時(shí)間t0、時(shí)間間隔dt、波形數(shù)據(jù)y和屬性。波形數(shù)據(jù)在“函數(shù)”→“信號(hào)處理”→“波形生成”選板,如圖2-29所示。該選板上的函數(shù)較多,使用基本相似。主要介紹正弦波形、基本函數(shù)發(fā)生器和仿真信號(hào)。

圖2-29 “波形生成”選板

1.正弦波形

正弦波形生成VI用來(lái)生成正弦波信號(hào),有多個(gè)輸入端,可以進(jìn)行正弦波的幅值、頻率和相位等設(shè)置,如圖2-30所示,其中的輸入端子依次如下。

圖2-30 正弦波形生成VI

偏移量:波形信號(hào)的直流偏移量,默認(rèn)值為0.0。

重置信號(hào):值為T(mén)RUE時(shí),相位可重置為相位控件的值,時(shí)間標(biāo)識(shí)可重置為0,默認(rèn)值為FALSE。

頻率:波形的頻率,單位為赫茲,默認(rèn)值為10。

幅值:波形的幅值,默認(rèn)值為1.0。

相位:波形的初始相位,以度為單位,默認(rèn)值為0。如重置信號(hào)為FALSE,則VI忽略相位。

錯(cuò)誤輸入:表明節(jié)點(diǎn)運(yùn)行前發(fā)生的錯(cuò)誤。該輸入將提供標(biāo)準(zhǔn)錯(cuò)誤輸入功能。

采樣信息:包括Fs(每秒采樣率,默認(rèn)值為1000),#s(波形的采樣數(shù),默認(rèn)值為1000)。

信號(hào)輸出:生成的正弦波信號(hào)。

錯(cuò)誤輸出:包含錯(cuò)誤信息,該輸出將提供標(biāo)準(zhǔn)錯(cuò)誤輸出功能。

2.基本函數(shù)發(fā)生器

基本函數(shù)發(fā)生器如圖2-31所示,該函數(shù)能夠根據(jù)信號(hào)類(lèi)型創(chuàng)建輸出波形。信號(hào)類(lèi)型選項(xiàng)有:Sine Wave(正弦波)、Triangle Wave(三角波)、Square Wave(方波)和Sawtooth Wave(鋸齒波)。該函數(shù)還可以進(jìn)行幅值、頻率、相位、偏移量以及采樣信息等的設(shè)置。

圖2-31 基本函數(shù)發(fā)生器

3.仿真信號(hào)

仿真信號(hào)是一個(gè)Express VI,該VI能仿真正弦波、方波、三角波、鋸齒波和噪聲等信號(hào)。圖標(biāo)如圖2-32所示。信號(hào)類(lèi)型的選擇及一些信息的配置,在交互式對(duì)話(huà)框中進(jìn)行。放置該VI或者在放置好的節(jié)點(diǎn)上雙擊鼠標(biāo)左鍵,彈出對(duì)話(huà)框如圖2-33所示。在該對(duì)話(huà)框中,最上面是信號(hào)類(lèi)型復(fù)選框,可以在此選擇信號(hào)類(lèi)型類(lèi)(比如選擇正選信號(hào)),下面就要對(duì)這個(gè)信號(hào)進(jìn)行頻率、幅值、相位和偏移量等的設(shè)置,如果是方波信號(hào)還可以設(shè)置占空比。對(duì)該信號(hào)還可以加入噪聲,噪聲類(lèi)型也有多個(gè)選項(xiàng),詳細(xì)描述參見(jiàn)幫助文件。

圖2-32 仿真信號(hào)

圖2-33 “配置仿真信號(hào)”對(duì)話(huà)框

2.5.2 分析處理波形數(shù)據(jù)

波形分析處理相關(guān)函數(shù)位于“函數(shù)”→“編程”→“波形”選板,如圖2-34所示。其中包含了分解波形數(shù)據(jù)、組成波形數(shù)據(jù)的函數(shù)以及波形分析和波形文件保存等。

圖2-34 “波形”選板

在“信號(hào)處理”選板中,除了波形生成外,還有一些與波形分析處理有關(guān)的函數(shù),如圖2-35所示。圖中的每個(gè)選項(xiàng)展開(kāi)后都包含了多個(gè)函數(shù),這些函數(shù)以后用到再詳細(xì)介紹,這里簡(jiǎn)單介紹一下“信號(hào)生成”選板。

圖2-35 “信號(hào)處理”選板

在圖2-35中的“信號(hào)處理”選板中,各個(gè)函數(shù)的功能與“波形生成”的功能相似,生成的信號(hào)類(lèi)型也類(lèi)似。它們的主要區(qū)別是“波形生成”模板包含了信號(hào)的時(shí)間信息,波形是時(shí)間的函數(shù);而“信號(hào)生成”模板則不包括。“波形生成”模板中各模塊參數(shù)設(shè)置更為靈活,功能更強(qiáng)大,其中的許多模塊是在“信號(hào)生成”模板的基礎(chǔ)上進(jìn)一步開(kāi)發(fā)的。

2.5.3 顯示波形數(shù)據(jù)

波形(Waveform)控件在“圖形”控件子選板中,如圖2-36所示。其中3個(gè)常用的波形控件有波形圖表、波形圖、XY圖和Express XY圖。波形圖表主要用來(lái)顯示波形數(shù)據(jù),如最常見(jiàn)的正弦波、方波等。所有從外部硬件采集到的數(shù)據(jù)都可以用波形圖表來(lái)顯示。在波形中顯示的數(shù)據(jù)有數(shù)組、標(biāo)量和波形數(shù)據(jù)等。

圖2-36 “圖形”控件子選板

1.波形圖表

波形圖表是一個(gè)圖形控件,使用波形圖表可以將新獲取的數(shù)據(jù)添加到原圖形中去,波形圖表的坐標(biāo)可以是線(xiàn)性或是對(duì)數(shù)分布的,其橫坐標(biāo)表示數(shù)據(jù)序號(hào),縱坐標(biāo)表示數(shù)據(jù)值。在波形圖表控件的鼠標(biāo)右鍵快捷菜單中,有著豐富的內(nèi)容,其中顯示項(xiàng)中包含圖表標(biāo)簽、標(biāo)尺和輔助組件等。

在一個(gè)波形圖表中可以顯示多條曲線(xiàn)。對(duì)于二維數(shù)組,在波形圖表中默認(rèn)情況下它將輸入數(shù)組轉(zhuǎn)置,即把生成數(shù)組的每一列數(shù)據(jù)當(dāng)作一條一維數(shù)組來(lái)生成曲線(xiàn)。圖2-37a所示的2行6列數(shù)組默認(rèn)為2個(gè)點(diǎn)的6條曲線(xiàn);數(shù)組轉(zhuǎn)置后,變成6個(gè)點(diǎn)的2條曲線(xiàn)。對(duì)應(yīng)程序框圖如圖2-37b所示。曲線(xiàn)上加點(diǎn)的方法是:用鼠標(biāo)右鍵單擊波形圖標(biāo),選擇“屬性”,在打開(kāi)的屬性對(duì)話(huà)框上選擇“曲線(xiàn)”,打開(kāi)圖2-38所示的界面。可以對(duì)曲線(xiàn)0、曲線(xiàn)1……進(jìn)行加點(diǎn)、填充和修改顏色等屬性設(shè)置。

圖2-37 波形圖表

a)波形圖表前面板 b)波形圖表程序框圖

圖2-38 曲線(xiàn)屬性設(shè)置

波形圖標(biāo)的曲線(xiàn)可以進(jìn)行分格顯示,如圖2-39所示。把右上角的“圖例”拖拽,出現(xiàn)“曲線(xiàn)0”“曲線(xiàn)1”。在曲線(xiàn)顯示區(qū)用鼠標(biāo)右鍵單擊,選擇“分格顯示”,2條曲線(xiàn)就分別顯示在兩個(gè)窗口中。把圖例每個(gè)曲線(xiàn)波形的Y標(biāo)尺幅度可以單獨(dú)進(jìn)行設(shè)置,使不同大小的曲線(xiàn)都能清晰地在波形圖表中顯示。

圖2-39 波形圖表分格顯示

如果要在一個(gè)波形圖表繪制多條曲線(xiàn),需要用捆綁函數(shù)將兩個(gè)數(shù)據(jù)捆綁成一個(gè)簇,然后連接到波形圖表中。

2.波形圖

盡管波形圖和波形圖表在外觀及很多附件功能上相似,但對(duì)比波形圖表,波形圖不能輸入標(biāo)量數(shù)據(jù),也不具備數(shù)字顯示和歷史數(shù)據(jù)查看功能;輸入二維數(shù)組時(shí),默認(rèn)為輸入數(shù)組不轉(zhuǎn)置。

波形圖在顯示時(shí)先清空歷史數(shù)據(jù),然后將傳遞給它的數(shù)據(jù)一次繪制成曲線(xiàn)顯示出來(lái)。在自動(dòng)刻度下,它的橫坐標(biāo)初始值恒為0,終值等于數(shù)據(jù)量;在固定刻度下,橫坐標(biāo)在程序運(yùn)行時(shí)保持固定,用戶(hù)可以根據(jù)要求設(shè)置橫坐標(biāo)的初始值和終值。波形圖表在已有采集數(shù)據(jù)的基礎(chǔ)上不斷更新顯示新的輸入數(shù)據(jù),適用于實(shí)時(shí)檢測(cè)數(shù)據(jù)波形。而波形圖屬于事后記錄波形數(shù)據(jù)的圖表,適用于事后數(shù)據(jù)的分析。此外,波形圖控件的游標(biāo)圖例功能可以在波形記錄后方便地查詢(xún)曲線(xiàn)上任意曲線(xiàn)點(diǎn)的坐標(biāo)值或采樣點(diǎn)值。和波形圖表一樣,波形圖的輸入數(shù)據(jù)可以是一維數(shù)組、二維數(shù)組和波形數(shù)據(jù)。不同的是波形圖不能輸入標(biāo)量數(shù)據(jù),但可以輸入由3個(gè)元素組成的簇?cái)?shù)組。

1)程序框圖如圖2-40a所示,當(dāng)輸入數(shù)據(jù)為一維數(shù)組時(shí),波形圖直接根據(jù)輸入的一維數(shù)組數(shù)據(jù)繪制一條曲線(xiàn),圖2-40b所示的波形圖顯示。還可以為波形圖的橫坐標(biāo)添加時(shí)間,方法是在波形圖上用鼠標(biāo)右鍵單擊,在彈出的快捷菜單上選擇“屬性”,打開(kāi)屬性對(duì)話(huà)框,選擇“顯示格式”選項(xiàng),如圖2-40c所示,圖中的時(shí)間(X軸)類(lèi)型中選擇“絕對(duì)時(shí)間”,時(shí)間格式選擇“24小時(shí)制”,日期格式選擇“系統(tǒng)日期格式”。

圖2-40 波形圖顯示

a)程序框圖 b)前面板 c)X軸日期時(shí)間設(shè)置

送入波形圖2中的數(shù)據(jù)是“簇”,它包含了t0=10;Δt=2,以及y(一維數(shù)組)的信息。把這3個(gè)信息按照順序捆綁起來(lái)即可,波形顯示圖2-40b所示的波形圖2。比較兩個(gè)波形圖的顯示,各點(diǎn)的取值y相同,計(jì)時(shí)起點(diǎn)和步長(zhǎng)不同。

2)把“基本函數(shù)發(fā)生器”生成的波形數(shù)據(jù)用波形圖顯示,程序如圖2-41所示。圖2-41a為程序框圖,在基本函數(shù)發(fā)生器的信號(hào)類(lèi)型、頻率、幅值、相位、采樣信息和占空比等端子上用鼠標(biāo)右鍵單擊,創(chuàng)建輸入控件,前面板就會(huì)放置相應(yīng)的輸入控件,如圖2-41b所示。在前面板的信號(hào)類(lèi)型控件上單擊鼠標(biāo),選擇Triangle Wave(三角波),頻率默認(rèn)10.0Hz,修改為2Hz,其他選項(xiàng)不變。運(yùn)行程序,顯示效果見(jiàn)圖2-41b。選擇不同類(lèi)型信號(hào)或修改頻率、相位和幅值等信息,波形顯示會(huì)相應(yīng)變化;選擇Square Wave(方波時(shí))還可以修改占空比。

圖2-41 波形圖顯示基本函數(shù)波形

a)顯示基本函數(shù)波形程序框圖 b)顯示基本函數(shù)波形前面板

3.XY圖

在顯示均勻波形數(shù)據(jù)時(shí)通常使用波形圖,其橫軸默認(rèn)為采樣點(diǎn)序號(hào),Y軸默認(rèn)為測(cè)量數(shù)值,這是一種理想情況。但在大多數(shù)情況下,繪制非均勻采樣數(shù)據(jù)或封閉曲線(xiàn)圖時(shí)無(wú)法使用波形圖。因此,當(dāng)數(shù)據(jù)以不規(guī)則的時(shí)間間隔出現(xiàn)或當(dāng)要根據(jù)兩個(gè)相互依賴(lài)的變量(如Y/X)時(shí),就需要使用XY圖,即笛卡兒圖。它可以繪制多值函數(shù)曲線(xiàn),如圓、雙曲線(xiàn)等。XY圖也是波形圖的一種,它需要同時(shí)輸入X軸和Y軸的數(shù)據(jù),X、Y之間相互聯(lián)系,不要求X坐標(biāo)等間距,且通過(guò)編程能方便地繪制任意曲線(xiàn)。與波形圖類(lèi)似,XY圖也是一次性完成波形的顯示刷新。

當(dāng)X數(shù)組、Y數(shù)組的長(zhǎng)度不一致時(shí),在XY圖中將以長(zhǎng)度較短的數(shù)據(jù)組為參考,而長(zhǎng)度較長(zhǎng)的數(shù)據(jù)組多出來(lái)的數(shù)據(jù)將在圖中無(wú)法顯示。在使用XY圖來(lái)繪制曲線(xiàn)時(shí),需要注意數(shù)據(jù)類(lèi)型的轉(zhuǎn)換。

例如,要畫(huà)一個(gè)心形圖案,給出X數(shù)據(jù)和Y數(shù)據(jù),分別是20個(gè)元素的一維數(shù)組,把兩一維數(shù)組捆綁后,送XY圖顯示,如圖2-42所示。設(shè)置顯示曲線(xiàn)寬度,并加點(diǎn),可以看到,圖中用20個(gè)點(diǎn)繪制了一條心形曲線(xiàn)。

圖2-42 用XY圖顯示心形曲線(xiàn)

a)程序框圖 b)XY圖顯示

2.5.4 圖形數(shù)據(jù)操作

1.讀取顯示二維圖片

二維圖片控件位置在“控件”→“圖形”→“控件”,如圖2-43所示。與二維圖片相關(guān)的函數(shù)位于“編程”→“圖形與聲音”選板,如圖2-44所示。其中的“圖片函數(shù)”和“圖形格式”中,包含了大量與圖片相關(guān)函數(shù)。下面用一個(gè)例子來(lái)說(shuō)明這些函數(shù)的使用方法。

圖2-43 “圖形”控件選板

圖2-44 “圖形與聲音”函數(shù)選板

1)事先做好一個(gè)BMP格式的圖片,可以命名為“二維圖片.BMP”。在前面板放置一個(gè)二維圖片控件,并拖拽,再放置一個(gè)“文件路徑輸入控件”(位置在“控件”→“新式”→“字符串與路徑”),并修改為“BMP文件路徑”。在程序框圖窗口編寫(xiě)程序如圖2-45a所示。圖中的“讀取BMP文件”在“圖形格式”選板中;“繪制平化像素圖”在“圖片函數(shù)”選板中。

圖2-45 二維圖片顯示

a)程序框圖 b)前面板

2)在“二維圖片”上用鼠標(biāo)右鍵單擊,彈出的快捷菜單中選擇“創(chuàng)建”→“屬性節(jié)點(diǎn)”→“可見(jiàn)”,用來(lái)創(chuàng)建一個(gè)可見(jiàn)屬性節(jié)點(diǎn)。在該屬性節(jié)點(diǎn)上用鼠標(biāo)右鍵單擊,在快捷菜單上選擇“全部轉(zhuǎn)為寫(xiě)入”。在前面板上放置一個(gè)“水平搖桿開(kāi)關(guān)”,把開(kāi)關(guān)連接到屬性節(jié)點(diǎn)的“Visible”輸入端(見(jiàn)圖2-45a)。前面板如圖2-45b所示,找到“二維圖片.BMP”所在位置,把路徑填寫(xiě)到路徑控件中。單擊連續(xù)運(yùn)行按鈕,運(yùn)行程序。運(yùn)行時(shí),開(kāi)關(guān)撥向左側(cè),圖片不可見(jiàn),撥到右側(cè),圖片可見(jiàn)。

2.繪制三維圖

“三維圖片”控件在“控件”→“新式”→“圖形”選板。三維圖片相關(guān)函數(shù)位于“函數(shù)”→“圖形與聲音”→“三維圖片控件”,如圖2-46所示。圖中的“幾何”選板中函數(shù)用于繪制基本形狀,如錐面、柱面、長(zhǎng)方體和網(wǎng)格等;“對(duì)象”選板中函數(shù)集包含了創(chuàng)建、查找對(duì)象兩個(gè)函數(shù)。對(duì)于一個(gè)三維場(chǎng)景來(lái)說(shuō),對(duì)象是一個(gè)最基本的元素。一個(gè)三維場(chǎng)景中可以有一個(gè)或多個(gè)對(duì)象;在一個(gè)對(duì)象中,也可以放置一些基本的形狀,也能導(dǎo)入三維建模文件中的模型,也能插入更多的子對(duì)象。對(duì)三維圖片控件的編程,實(shí)質(zhì)就是對(duì)對(duì)象的編程。“變形”控制三維場(chǎng)景中對(duì)象變形的函數(shù)。如控制或獲取某對(duì)象的旋轉(zhuǎn)、縮放和平移等,此函選板有9個(gè)函數(shù)。“助手”是用戶(hù)設(shè)置三維場(chǎng)景時(shí)的常見(jiàn)操作,如設(shè)置光源、設(shè)置某對(duì)象的表面圖像等。“加載文件”用于在三維場(chǎng)景中加載來(lái)自于第三方文件的幾何模型,有加載ASE幾何、加載STL幾何和加載VRML文件。

圖2-46 三維圖片相關(guān)函數(shù)

下面來(lái)繪制一個(gè)圓錐三維圖,并且讓該圖按照要求旋轉(zhuǎn)。步驟如下:

1)在“幾何”中選擇“創(chuàng)建錐面”,放置在程序框圖窗口,并在該函數(shù)的每個(gè)輸入端上創(chuàng)建輸入控件,如圖2-47a所示。

圖2-47 三維圖繪制程序

a)程序框圖 b)設(shè)置調(diào)用節(jié)點(diǎn) c)前面板 d)視角控制器設(shè)置

2)在“對(duì)象”中選擇“創(chuàng)建對(duì)象”,放置在程序框圖窗口,在“名稱(chēng)”端子上創(chuàng)建常量,命名為“圓錐”。

3)放置一個(gè)調(diào)用節(jié)點(diǎn),位置在函數(shù)選板上“編程”→“應(yīng)用程序控制”→“調(diào)用節(jié)點(diǎn)”,該節(jié)點(diǎn)的“引用”端子連接到“創(chuàng)建對(duì)象”的“場(chǎng)景:新對(duì)象”端子上,該節(jié)點(diǎn)如圖2-47b所示。在節(jié)點(diǎn)的“方法”上單擊鼠標(biāo)左鍵,彈出的快捷菜單上選擇“設(shè)置可繪制對(duì)象”。“創(chuàng)建錐面”函數(shù)的“新錐形引用句柄”作為調(diào)用節(jié)點(diǎn)“Dravable(可繪制對(duì)象)”端的輸入信號(hào)。此時(shí),在前面板放置一個(gè)“三維圖片”控件就可以顯示該三維圖了。

4)在“三維圖片”上用鼠標(biāo)右鍵單擊,創(chuàng)建屬性節(jié)點(diǎn),選擇“背景色”,并在該節(jié)點(diǎn)的背景色輸入端創(chuàng)建一個(gè)輸入控件,就可以對(duì)背景進(jìn)行顏色設(shè)置了。

5)前面板如圖2-47c所示。“顏色”控件中是三原色紅、綠、藍(lán)以及Alpha(用于指定RGB顏色的不透明度),用來(lái)設(shè)置三維圖的顏色,取值在0~1之間;“背景色”控件用來(lái)設(shè)置背景的顏色。“高度”控件用來(lái)設(shè)定圓錐對(duì)象垂直軸的長(zhǎng)度、“半徑”控件用來(lái)設(shè)定對(duì)象的半徑、“詳細(xì)”控件用來(lái)設(shè)置繪制對(duì)象時(shí)至高點(diǎn)的數(shù)量。詳細(xì)值越高,幾何對(duì)象的近似度就越大,取值在0~1之間,默認(rèn)值為1。

在前面板的“三維圖片”控件上用鼠標(biāo)右鍵單擊,“視角控制器”選項(xiàng)中,“球面”和“自動(dòng)重繪”選項(xiàng)前面打勾。可以實(shí)現(xiàn)運(yùn)行時(shí),用鼠標(biāo)拖動(dòng)三維圖形,來(lái)按照固定點(diǎn)旋轉(zhuǎn),見(jiàn)圖2-47d。

6)如果希望該三維圖形旋轉(zhuǎn)起來(lái),就需要一個(gè)While循環(huán),把“三維圖片”至于循環(huán)體內(nèi),用函數(shù)“旋轉(zhuǎn)對(duì)象”來(lái)實(shí)現(xiàn)旋轉(zhuǎn)功能,在該函數(shù)的兩個(gè)輸入端創(chuàng)建輸入控件,用來(lái)設(shè)置旋轉(zhuǎn)軸和旋轉(zhuǎn)角度。把該函數(shù)的“場(chǎng)景.對(duì)象輸出”引用端子連接到“三維圖片”的輸入端,即完成程序設(shè)計(jì)。

2.6 思考題

1.用0~100的隨機(jī)數(shù)代替攝氏溫度,將每500ms采集的溫度變化波形表示出來(lái),并設(shè)定上限為85,下限為45,溫度高于上限或者低于下限分別點(diǎn)亮對(duì)應(yīng)的指示燈,并將其上、下限也一并在波形中表示出來(lái)。

2.生成一個(gè)0~100的隨機(jī)整數(shù),與60比較,大于等于60記為通過(guò),綠燈亮;小于60記為不及格,紅燈亮;將比較結(jié)果捆綁后放在一個(gè)簇里顯示。

主站蜘蛛池模板: 新安县| 岳池县| 宁陕县| 陇西县| 罗山县| 阿克陶县| 玉溪市| 东光县| 怀集县| 富源县| 永宁县| 南投县| 杭锦后旗| 南充市| 漯河市| 琼结县| 九寨沟县| 石楼县| 原平市| 界首市| 莱州市| 上杭县| 利辛县| 徐汇区| 庆安县| 土默特右旗| 新兴县| 攀枝花市| 龙州县| 霍城县| 彭阳县| 弥勒县| 浦县| 安阳县| 离岛区| 长寿区| 祁门县| 民和| 海南省| 建始县| 双辽市|