- 虛擬儀器應(yīng)用(第2版)
- 劉科 宋秦中
- 10152字
- 2020-05-28 17:56:42
項目2 認(rèn)識LabVIEW中的數(shù)據(jù)類型
LabVIEW數(shù)據(jù)大致被分為標(biāo)量類(單元素)、結(jié)構(gòu)類(包括一個以上的元素)兩大類。標(biāo)量類有數(shù)值、字符和布爾量等,結(jié)構(gòu)類有數(shù)組、簇和波形等。LabVIEW數(shù)據(jù)控件模板將各種類似的數(shù)據(jù)類型集中在一個子模板上以便于使用。
LabVIEW用顏色和連線來表示各類數(shù)據(jù)。表2-1給出了幾種常用的數(shù)據(jù)類型的端子圖標(biāo)及其顏色,更多的類型將在后面介紹。連線是程序設(shè)計中較為復(fù)雜的問題,程序框圖上的每一個對象都帶有自己的連線端子,連線將構(gòu)成對象之間的數(shù)據(jù)通道。因為這不是幾何意義上的連線,所以并非任意兩個端子間都可連線,連線類似于普通程序中的變量。數(shù)據(jù)單向流動,從源端口向一個或多個目的端口流動。不同的線型代表不同的數(shù)據(jù)類型。表2-2給出了幾種常用數(shù)據(jù)類型所對應(yīng)的顏色和線型。
表2-1 幾種常用的數(shù)據(jù)類型的端子圖標(biāo)及其顏色

表2-2 幾種常用數(shù)據(jù)類型所對應(yīng)的顏色和線型

2.1 任務(wù)1 字符串型數(shù)據(jù)操作
2.1.1 認(rèn)識控件與函數(shù)選板
在控件選板→新式中包含“字符串與路徑”子選板,如圖2-1所示。字符串(String)是LabVIEW中一種基本的數(shù)據(jù)類型;路徑是一種特殊的字符串,專門用于對文件路徑的處理。字符串型與路徑子選板中共有3種對象供用戶選擇,即字符串輸入/顯示、組合框和文件路徑輸入/顯示。

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

圖2-2 “字符串”函數(shù)子選板
路徑控件用于輸入或返回文件或目錄的地址。路徑控件與字符串控件的工作原理類似,但LabVIEW會根據(jù)用戶使用操作平臺的標(biāo)準(zhǔn)句法將路徑按一定格式處理。
組合框控件可用來創(chuàng)建一個字符串列表,在前面板上可按次序循環(huán)瀏覽該列表。在字符串控件中最常用的是字符串輸入和字符串顯示兩個控件。在默認(rèn)情況下創(chuàng)建的字符串輸入與顯示控件是單行的,長度固定。
圖2-3所示是一個字符串輸入、一個字符串顯示的簡單的字符串操作。

圖2-3 簡單的字符串操作
2.1.2 字符串的顯示方式
字符串控件用于輸入和顯示各種字符串。用鼠標(biāo)右鍵單擊字符串控件,在彈出的快捷菜單中,關(guān)于定義字符串的顯示方式有以下4種。
1)正常顯示。字符串控件在默認(rèn)情況下為正常顯示狀態(tài),顯示字符的一般形式,在字符串中可以直接輸入<Enter>或<空格>鍵,系統(tǒng)自動根據(jù)鍵盤動作為字符串創(chuàng)建隱藏的‘\’形式的轉(zhuǎn)義控制字符。
2)\代碼顯示。有些字符具有特殊含義或無法顯示,如<Enter>鍵等,可使用‘\’轉(zhuǎn)義代碼表示出來,如“\n”為換行符,該顯示方式適用于串口通信等。
3)密碼顯示。當(dāng)制作登入窗口時,密碼行需要使用該顯示方式。
4)十六進(jìn)制顯示。在一些設(shè)備交互數(shù)據(jù)或者讀寫文件時,需要使用十六進(jìn)制的方式顯示其中的數(shù)據(jù)。
圖2-4所示是輸入圖示字符串后不同顯示方式的對比。

圖2-4 輸入圖示字符串后不同顯示方式的對比
2.1.3 日期時間的顯示
創(chuàng)建一個字符串顯示控件要求程序運行后顯示系統(tǒng)當(dāng)前的日期和時間。
日期/時間字符串程序框圖如圖2-5所示。當(dāng)時間格式字符串為空的時候,顯示的是系統(tǒng)當(dāng)前的日期和時間,查看幫助信息可以獲得日期/時間的其他相關(guān)信息。

圖2-5 日期/時間字符串程序框圖
結(jié)合幫助信息,其他字符串函數(shù)將在后面用到時再進(jìn)行介紹。
2.2 任務(wù)2 數(shù)值型數(shù)據(jù)操作
2.2.1 認(rèn)識控件與函數(shù)選板
數(shù)值型(Numeric)是LabVIEW的一種基本的數(shù)據(jù)類型,可以是浮點數(shù)、整數(shù)、無符號整數(shù)和復(fù)數(shù)。新式的數(shù)值型控件包含了各種形象的輸入控件和顯示控件,如圖2-6所示。數(shù)值輸入控件快捷菜單如圖2-7所示。

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

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

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

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

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

圖2-11 運算中的強(qiáng)制類型轉(zhuǎn)換點
2.2.4 用隨機(jī)數(shù)產(chǎn)出模擬溫度
運用數(shù)值函數(shù)產(chǎn)生一個20±5的隨機(jī)數(shù),用該隨機(jī)數(shù)可以模擬某時刻室內(nèi)溫度的變化情況。
分析:±5的隨機(jī)數(shù)可以考慮0-1隨機(jī)數(shù)乘以10,然后減去5來實現(xiàn)。隨機(jī)數(shù)產(chǎn)生的具體VI實現(xiàn)如圖2-12所示,多次單擊運行或者連續(xù)運行,會發(fā)現(xiàn)結(jié)果隨機(jī)數(shù)在指定范圍的變化,為了看清數(shù)據(jù)變化情況,可加一個等待函數(shù)(ms),等待1s。

圖2-12 隨機(jī)數(shù)產(chǎn)生的具體VI實現(xiàn)
2.2.5 比較函數(shù)
與數(shù)值運算相關(guān)的還有“比較函數(shù)”子選板,如圖2-13所示。比較函數(shù)選板可以進(jìn)行數(shù)值比較、布爾值比較、字符串比較、數(shù)組比較和簇比較。不同數(shù)據(jù)類型的數(shù)據(jù)在進(jìn)行比較時適用的規(guī)則不同。

圖2-13 “比較函數(shù)”子選板
2.2.6 溫度的比較與警示
綜合應(yīng)用數(shù)值型數(shù)據(jù)、字符串和比較函數(shù),接上面的任務(wù),產(chǎn)生的溫度隨機(jī)數(shù)與21℃比較,當(dāng)高于21℃時,文本顯示為溫度偏高,否則文本顯示為溫度正常。
兩種狀態(tài)的溫度比較編程實現(xiàn)如圖2-14所示。多次單擊運行或連續(xù)運行,可以查看溫度情況顯示欄的結(jié)果變化。

圖2-14 兩種狀態(tài)的溫度比較編程實現(xiàn)
可以進(jìn)一步深入上述任務(wù),考慮兩個閥值的比較情況:將溫度低于18℃記為低溫警報,高于21℃設(shè)置為高溫警報。
該問題實際上有3種情況,即高溫警報、低溫警報和正常,可以考慮用兩個選擇函數(shù)實現(xiàn)。3種狀態(tài)的溫度比較編程實現(xiàn)如圖2-15所示。多次單擊運行或連續(xù)運行,可以查看結(jié)果變化。

圖2-15 3種狀態(tài)的溫度比較編程實現(xiàn)
2.3 任務(wù)3 布爾型數(shù)據(jù)操作
2.3.1 認(rèn)識控件與函數(shù)選板
布爾(Boolean)控件代表一個布爾值,也可認(rèn)為是邏輯變量,取值只能是真(True)或假(False)。這兩個值分別用一個字節(jié)來表示,當(dāng)該字節(jié)所有的數(shù)值為0的時候值為假,否則,值為真。“布爾”型控件選板如圖2-16所示,包括各種開關(guān)、按鈕和指示燈等。“布爾函數(shù)”選板包含在函數(shù)選板中的布爾子選板中,如圖2-17所示,包含了與、或和非等常用函數(shù)。與數(shù)值運算類似,布爾量的算法也可以支持標(biāo)量和數(shù)組的運算。

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

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

圖2-18 “機(jī)械動作”選項
不同的機(jī)械動作模擬了不同種類的開關(guān)。第1行是轉(zhuǎn)換型的,如電燈的開關(guān);第2行是觸發(fā)型的,松手后開關(guān)恢復(fù)原位。按列來看,第1列是按下后立刻執(zhí)行動作;第2列是按下松手后才執(zhí)行動作;第3列是按下執(zhí)行動作,松手后又恢復(fù)原位。
2.3.3 簡單的布爾操作
簡單的布爾數(shù)據(jù)操作如圖2-19所示,比較布爾開關(guān)和布爾常量控制布爾燈的異同。

圖2-19 布爾數(shù)據(jù)操作
2.3.4 溫度報警程序設(shè)計
對應(yīng)上述問題,如果溫度出現(xiàn)報警情況時,亮紅色警示燈,否則亮綠燈。
本問題涉及兩個情況,對應(yīng)布爾燈的真和假,真的時候設(shè)置布爾燈顏色屬性為紅色,假的時候為綠色。高溫警報和低溫警報兩種情況用與函數(shù)連接,溫度報警的編程實現(xiàn)如圖2-20所示。多次單擊運行或連續(xù)運行,可以查看結(jié)果變化。

圖2-20 溫度報警的編程實現(xiàn)
2.4 任務(wù)4 數(shù)組和簇操作
2.4.1 認(rèn)識控件與函數(shù)選板
數(shù)組控件在“數(shù)組、矩陣與簇”選板中,如圖2-21所示。數(shù)組(Array)由元素和維度組成。元素是組成數(shù)組的數(shù)據(jù),維度是指數(shù)組的長度、深度。數(shù)組中存放的是相同的數(shù)據(jù)類型,可以是數(shù)值型,也可以是布爾型或字符型等,最常用的是數(shù)值型的數(shù)組。可以創(chuàng)建數(shù)組控件和數(shù)組常量。

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

圖2-22 創(chuàng)建數(shù)組
a)一維數(shù)組 b)二維數(shù)組 c)程序框圖中接線板的狀況
如圖2-22b所示,若需要創(chuàng)建的是二維數(shù)組只需要通過上下拖拉的方式,在左側(cè)索引部分即可得到所需維數(shù)的數(shù)組。圖2-22b所示得到的是一個二維數(shù)組,圖2-22b所示是程序框圖中接線板的狀況。
在程序框圖中,標(biāo)量的連線是一條細(xì)線,一維數(shù)組是較粗的實心線,二維數(shù)組的連線是由兩根細(xì)線組成的,如圖2-22c所示。除了可以創(chuàng)建數(shù)值型數(shù)組,還可以創(chuàng)建字符串型和布爾型數(shù)組。
對于數(shù)組的相關(guān)運算,其實在查看其他數(shù)據(jù)類型的例程時應(yīng)有所接觸。對數(shù)組可以進(jìn)行加減乘除的運算,此外,還可以索引某個元素、索引某行/某列、測量數(shù)組維度,重新組成新數(shù)組等。圖2-23所示是“數(shù)組”的函數(shù)選板。

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

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

圖2-25 二維數(shù)組的幾種索引方式比較
圖2-25所示為二維數(shù)組的幾種索引方式比較。
2.4.4 創(chuàng)建和使用簇
前面介紹的數(shù)組是同一類型數(shù)據(jù)的集合,若需要創(chuàng)建多種數(shù)據(jù)類型的集合,則需要使用LabVIEW中特有的數(shù)據(jù)類型——簇(Cluster),類似于C語言當(dāng)中的結(jié)構(gòu)體。
最常見的簇是LabVIEW中自帶的錯誤簇。錯誤簇中包含有布爾量、數(shù)值和字符串。在編程時使用錯誤簇,可以將所有子VI以及函數(shù)的錯誤簇按照數(shù)據(jù)流向的先后連接起來,這樣不僅可以將錯誤傳遞下去,而且方便找到對應(yīng)的錯誤源,還可以控制程序的執(zhí)行順序。
雖然簇可以包含多種數(shù)據(jù)類型(比如,在簇中可以包含另一個簇),但是在同一個簇中只能包含輸入控件或者顯示控件,不可能同時包含輸入/顯示控件。簇的創(chuàng)建與數(shù)組類似,即將簇的外框拖放到前面板上。簇的創(chuàng)建方式如圖2-26所示。

圖2-26 簇的創(chuàng)建方式
在簇中添加所需的元素,可創(chuàng)建一個新的簇。在程序框圖中的接線端如圖2-26d所示。如果需要簇的外框大小和其包含的元素大小相匹配,在簇控件上用鼠標(biāo)右鍵單擊,選擇“自適應(yīng)大小”(size to fit)就可以得到調(diào)整后的簇的外貌,并且會根據(jù)新修改的元素分布自動修改其外框大小。
“簇的函數(shù)”選板如圖2-27所示,最常用的4個選項是按名稱捆綁、捆綁、按名稱解除捆綁和解除捆綁。

圖2-27 “簇的函數(shù)”選板
當(dāng)有大量的數(shù)據(jù)需要傳遞的時候,若數(shù)據(jù)類型一致,則推薦使用數(shù)組將數(shù)據(jù)整合在一起;若數(shù)據(jù)類型有多種,則推薦使用簇將各種數(shù)據(jù)捆綁在一起,然后再進(jìn)行傳遞。
2.4.5 簇的編號與排序
在創(chuàng)建一個簇時,LabVIEW會按照簇中元素創(chuàng)建的先后次序給簇中的元素進(jìn)行默認(rèn)編號。編號從0開始,依次為1、2、…。當(dāng)然,也可根據(jù)編程需要自己定義元素的編號。在簇框架用鼠標(biāo)右鍵單擊彈出的選單中,選擇重新排序簇中的控件,如圖2-28所示,Lab-VIEW的前面板會變?yōu)樵仨樞蚓庉嬈鳎诰庉嬈髦杏檬髽?biāo)單擊元素的編號,即可改變元素的編號,其余編號依次輪回。在編輯完所有編號后,用鼠標(biāo)單擊工具條上的“OK”按鈕確定。

圖2-28 簇中控件的排序
2.5 任務(wù)5 圖形數(shù)據(jù)操作
強(qiáng)大的數(shù)據(jù)圖形化顯示功能是LabVIEW最大的優(yōu)點之一。利用圖形與圖表等形式來顯示測試數(shù)據(jù)和分析結(jié)果可以直觀地看出被測試對象的變化趨勢,從而使虛擬儀器的前面板變得更加形象和直觀。LabVIEW提供了豐富的圖形顯示控件。編程人員通過使用簡單的屬性設(shè)置和編程技巧就可以根據(jù)需求定制不同功能的“顯示屏幕”。
2.5.1 生成波形數(shù)據(jù)
波形是一種特殊類型的簇,元素的數(shù)量和類型固定,包括數(shù)據(jù)采集的起始時間t0、時間間隔dt、波形數(shù)據(jù)y和屬性。波形數(shù)據(jù)在“函數(shù)”→“信號處理”→“波形生成”選板,如圖2-29所示。該選板上的函數(shù)較多,使用基本相似。主要介紹正弦波形、基本函數(shù)發(fā)生器和仿真信號。

圖2-29 “波形生成”選板
1.正弦波形
正弦波形生成VI用來生成正弦波信號,有多個輸入端,可以進(jìn)行正弦波的幅值、頻率和相位等設(shè)置,如圖2-30所示,其中的輸入端子依次如下。

圖2-30 正弦波形生成VI
偏移量:波形信號的直流偏移量,默認(rèn)值為0.0。
重置信號:值為TRUE時,相位可重置為相位控件的值,時間標(biāo)識可重置為0,默認(rèn)值為FALSE。
頻率:波形的頻率,單位為赫茲,默認(rèn)值為10。
幅值:波形的幅值,默認(rèn)值為1.0。
相位:波形的初始相位,以度為單位,默認(rèn)值為0。如重置信號為FALSE,則VI忽略相位。
錯誤輸入:表明節(jié)點運行前發(fā)生的錯誤。該輸入將提供標(biāo)準(zhǔn)錯誤輸入功能。
采樣信息:包括Fs(每秒采樣率,默認(rèn)值為1000),#s(波形的采樣數(shù),默認(rèn)值為1000)。
信號輸出:生成的正弦波信號。
錯誤輸出:包含錯誤信息,該輸出將提供標(biāo)準(zhǔn)錯誤輸出功能。
2.基本函數(shù)發(fā)生器
基本函數(shù)發(fā)生器如圖2-31所示,該函數(shù)能夠根據(jù)信號類型創(chuàng)建輸出波形。信號類型選項有:Sine Wave(正弦波)、Triangle Wave(三角波)、Square Wave(方波)和Sawtooth Wave(鋸齒波)。該函數(shù)還可以進(jìn)行幅值、頻率、相位、偏移量以及采樣信息等的設(shè)置。

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

圖2-32 仿真信號

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

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

圖2-35 “信號處理”選板
在圖2-35中的“信號處理”選板中,各個函數(shù)的功能與“波形生成”的功能相似,生成的信號類型也類似。它們的主要區(qū)別是“波形生成”模板包含了信號的時間信息,波形是時間的函數(shù);而“信號生成”模板則不包括。“波形生成”模板中各模塊參數(shù)設(shè)置更為靈活,功能更強(qiáng)大,其中的許多模塊是在“信號生成”模板的基礎(chǔ)上進(jìn)一步開發(fā)的。
2.5.3 顯示波形數(shù)據(jù)
波形(Waveform)控件在“圖形”控件子選板中,如圖2-36所示。其中3個常用的波形控件有波形圖表、波形圖、XY圖和Express XY圖。波形圖表主要用來顯示波形數(shù)據(jù),如最常見的正弦波、方波等。所有從外部硬件采集到的數(shù)據(jù)都可以用波形圖表來顯示。在波形中顯示的數(shù)據(jù)有數(shù)組、標(biāo)量和波形數(shù)據(jù)等。

圖2-36 “圖形”控件子選板
1.波形圖表
波形圖表是一個圖形控件,使用波形圖表可以將新獲取的數(shù)據(jù)添加到原圖形中去,波形圖表的坐標(biāo)可以是線性或是對數(shù)分布的,其橫坐標(biāo)表示數(shù)據(jù)序號,縱坐標(biāo)表示數(shù)據(jù)值。在波形圖表控件的鼠標(biāo)右鍵快捷菜單中,有著豐富的內(nèi)容,其中顯示項中包含圖表標(biāo)簽、標(biāo)尺和輔助組件等。
在一個波形圖表中可以顯示多條曲線。對于二維數(shù)組,在波形圖表中默認(rèn)情況下它將輸入數(shù)組轉(zhuǎn)置,即把生成數(shù)組的每一列數(shù)據(jù)當(dāng)作一條一維數(shù)組來生成曲線。圖2-37a所示的2行6列數(shù)組默認(rèn)為2個點的6條曲線;數(shù)組轉(zhuǎn)置后,變成6個點的2條曲線。對應(yīng)程序框圖如圖2-37b所示。曲線上加點的方法是:用鼠標(biāo)右鍵單擊波形圖標(biāo),選擇“屬性”,在打開的屬性對話框上選擇“曲線”,打開圖2-38所示的界面。可以對曲線0、曲線1……進(jìn)行加點、填充和修改顏色等屬性設(shè)置。

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

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

圖2-39 波形圖表分格顯示
如果要在一個波形圖表繪制多條曲線,需要用捆綁函數(shù)將兩個數(shù)據(jù)捆綁成一個簇,然后連接到波形圖表中。
2.波形圖
盡管波形圖和波形圖表在外觀及很多附件功能上相似,但對比波形圖表,波形圖不能輸入標(biāo)量數(shù)據(jù),也不具備數(shù)字顯示和歷史數(shù)據(jù)查看功能;輸入二維數(shù)組時,默認(rèn)為輸入數(shù)組不轉(zhuǎn)置。
波形圖在顯示時先清空歷史數(shù)據(jù),然后將傳遞給它的數(shù)據(jù)一次繪制成曲線顯示出來。在自動刻度下,它的橫坐標(biāo)初始值恒為0,終值等于數(shù)據(jù)量;在固定刻度下,橫坐標(biāo)在程序運行時保持固定,用戶可以根據(jù)要求設(shè)置橫坐標(biāo)的初始值和終值。波形圖表在已有采集數(shù)據(jù)的基礎(chǔ)上不斷更新顯示新的輸入數(shù)據(jù),適用于實時檢測數(shù)據(jù)波形。而波形圖屬于事后記錄波形數(shù)據(jù)的圖表,適用于事后數(shù)據(jù)的分析。此外,波形圖控件的游標(biāo)圖例功能可以在波形記錄后方便地查詢曲線上任意曲線點的坐標(biāo)值或采樣點值。和波形圖表一樣,波形圖的輸入數(shù)據(jù)可以是一維數(shù)組、二維數(shù)組和波形數(shù)據(jù)。不同的是波形圖不能輸入標(biāo)量數(shù)據(jù),但可以輸入由3個元素組成的簇數(shù)組。
1)程序框圖如圖2-40a所示,當(dāng)輸入數(shù)據(jù)為一維數(shù)組時,波形圖直接根據(jù)輸入的一維數(shù)組數(shù)據(jù)繪制一條曲線,圖2-40b所示的波形圖顯示。還可以為波形圖的橫坐標(biāo)添加時間,方法是在波形圖上用鼠標(biāo)右鍵單擊,在彈出的快捷菜單上選擇“屬性”,打開屬性對話框,選擇“顯示格式”選項,如圖2-40c所示,圖中的時間(X軸)類型中選擇“絕對時間”,時間格式選擇“24小時制”,日期格式選擇“系統(tǒng)日期格式”。

圖2-40 波形圖顯示
a)程序框圖 b)前面板 c)X軸日期時間設(shè)置
送入波形圖2中的數(shù)據(jù)是“簇”,它包含了t0=10;Δt=2,以及y(一維數(shù)組)的信息。把這3個信息按照順序捆綁起來即可,波形顯示圖2-40b所示的波形圖2。比較兩個波形圖的顯示,各點的取值y相同,計時起點和步長不同。
2)把“基本函數(shù)發(fā)生器”生成的波形數(shù)據(jù)用波形圖顯示,程序如圖2-41所示。圖2-41a為程序框圖,在基本函數(shù)發(fā)生器的信號類型、頻率、幅值、相位、采樣信息和占空比等端子上用鼠標(biāo)右鍵單擊,創(chuàng)建輸入控件,前面板就會放置相應(yīng)的輸入控件,如圖2-41b所示。在前面板的信號類型控件上單擊鼠標(biāo),選擇Triangle Wave(三角波),頻率默認(rèn)10.0Hz,修改為2Hz,其他選項不變。運行程序,顯示效果見圖2-41b。選擇不同類型信號或修改頻率、相位和幅值等信息,波形顯示會相應(yīng)變化;選擇Square Wave(方波時)還可以修改占空比。

圖2-41 波形圖顯示基本函數(shù)波形
a)顯示基本函數(shù)波形程序框圖 b)顯示基本函數(shù)波形前面板
3.XY圖
在顯示均勻波形數(shù)據(jù)時通常使用波形圖,其橫軸默認(rèn)為采樣點序號,Y軸默認(rèn)為測量數(shù)值,這是一種理想情況。但在大多數(shù)情況下,繪制非均勻采樣數(shù)據(jù)或封閉曲線圖時無法使用波形圖。因此,當(dāng)數(shù)據(jù)以不規(guī)則的時間間隔出現(xiàn)或當(dāng)要根據(jù)兩個相互依賴的變量(如Y/X)時,就需要使用XY圖,即笛卡兒圖。它可以繪制多值函數(shù)曲線,如圓、雙曲線等。XY圖也是波形圖的一種,它需要同時輸入X軸和Y軸的數(shù)據(jù),X、Y之間相互聯(lián)系,不要求X坐標(biāo)等間距,且通過編程能方便地繪制任意曲線。與波形圖類似,XY圖也是一次性完成波形的顯示刷新。
當(dāng)X數(shù)組、Y數(shù)組的長度不一致時,在XY圖中將以長度較短的數(shù)據(jù)組為參考,而長度較長的數(shù)據(jù)組多出來的數(shù)據(jù)將在圖中無法顯示。在使用XY圖來繪制曲線時,需要注意數(shù)據(jù)類型的轉(zhuǎn)換。
例如,要畫一個心形圖案,給出X數(shù)據(jù)和Y數(shù)據(jù),分別是20個元素的一維數(shù)組,把兩一維數(shù)組捆綁后,送XY圖顯示,如圖2-42所示。設(shè)置顯示曲線寬度,并加點,可以看到,圖中用20個點繪制了一條心形曲線。

圖2-42 用XY圖顯示心形曲線
a)程序框圖 b)XY圖顯示
2.5.4 圖形數(shù)據(jù)操作
1.讀取顯示二維圖片
二維圖片控件位置在“控件”→“圖形”→“控件”,如圖2-43所示。與二維圖片相關(guān)的函數(shù)位于“編程”→“圖形與聲音”選板,如圖2-44所示。其中的“圖片函數(shù)”和“圖形格式”中,包含了大量與圖片相關(guān)函數(shù)。下面用一個例子來說明這些函數(shù)的使用方法。

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

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

圖2-45 二維圖片顯示
a)程序框圖 b)前面板
2)在“二維圖片”上用鼠標(biāo)右鍵單擊,彈出的快捷菜單中選擇“創(chuàng)建”→“屬性節(jié)點”→“可見”,用來創(chuàng)建一個可見屬性節(jié)點。在該屬性節(jié)點上用鼠標(biāo)右鍵單擊,在快捷菜單上選擇“全部轉(zhuǎn)為寫入”。在前面板上放置一個“水平搖桿開關(guān)”,把開關(guān)連接到屬性節(jié)點的“Visible”輸入端(見圖2-45a)。前面板如圖2-45b所示,找到“二維圖片.BMP”所在位置,把路徑填寫到路徑控件中。單擊連續(xù)運行按鈕,運行程序。運行時,開關(guān)撥向左側(cè),圖片不可見,撥到右側(cè),圖片可見。
2.繪制三維圖
“三維圖片”控件在“控件”→“新式”→“圖形”選板。三維圖片相關(guān)函數(shù)位于“函數(shù)”→“圖形與聲音”→“三維圖片控件”,如圖2-46所示。圖中的“幾何”選板中函數(shù)用于繪制基本形狀,如錐面、柱面、長方體和網(wǎng)格等;“對象”選板中函數(shù)集包含了創(chuàng)建、查找對象兩個函數(shù)。對于一個三維場景來說,對象是一個最基本的元素。一個三維場景中可以有一個或多個對象;在一個對象中,也可以放置一些基本的形狀,也能導(dǎo)入三維建模文件中的模型,也能插入更多的子對象。對三維圖片控件的編程,實質(zhì)就是對對象的編程。“變形”控制三維場景中對象變形的函數(shù)。如控制或獲取某對象的旋轉(zhuǎn)、縮放和平移等,此函選板有9個函數(shù)。“助手”是用戶設(shè)置三維場景時的常見操作,如設(shè)置光源、設(shè)置某對象的表面圖像等。“加載文件”用于在三維場景中加載來自于第三方文件的幾何模型,有加載ASE幾何、加載STL幾何和加載VRML文件。

圖2-46 三維圖片相關(guān)函數(shù)
下面來繪制一個圓錐三維圖,并且讓該圖按照要求旋轉(zhuǎn)。步驟如下:
1)在“幾何”中選擇“創(chuàng)建錐面”,放置在程序框圖窗口,并在該函數(shù)的每個輸入端上創(chuàng)建輸入控件,如圖2-47a所示。

圖2-47 三維圖繪制程序
a)程序框圖 b)設(shè)置調(diào)用節(jié)點 c)前面板 d)視角控制器設(shè)置
2)在“對象”中選擇“創(chuàng)建對象”,放置在程序框圖窗口,在“名稱”端子上創(chuàng)建常量,命名為“圓錐”。
3)放置一個調(diào)用節(jié)點,位置在函數(shù)選板上“編程”→“應(yīng)用程序控制”→“調(diào)用節(jié)點”,該節(jié)點的“引用”端子連接到“創(chuàng)建對象”的“場景:新對象”端子上,該節(jié)點如圖2-47b所示。在節(jié)點的“方法”上單擊鼠標(biāo)左鍵,彈出的快捷菜單上選擇“設(shè)置可繪制對象”。“創(chuàng)建錐面”函數(shù)的“新錐形引用句柄”作為調(diào)用節(jié)點“Dravable(可繪制對象)”端的輸入信號。此時,在前面板放置一個“三維圖片”控件就可以顯示該三維圖了。
4)在“三維圖片”上用鼠標(biāo)右鍵單擊,創(chuàng)建屬性節(jié)點,選擇“背景色”,并在該節(jié)點的背景色輸入端創(chuàng)建一個輸入控件,就可以對背景進(jìn)行顏色設(shè)置了。
5)前面板如圖2-47c所示。“顏色”控件中是三原色紅、綠、藍(lán)以及Alpha(用于指定RGB顏色的不透明度),用來設(shè)置三維圖的顏色,取值在0~1之間;“背景色”控件用來設(shè)置背景的顏色。“高度”控件用來設(shè)定圓錐對象垂直軸的長度、“半徑”控件用來設(shè)定對象的半徑、“詳細(xì)”控件用來設(shè)置繪制對象時至高點的數(shù)量。詳細(xì)值越高,幾何對象的近似度就越大,取值在0~1之間,默認(rèn)值為1。
在前面板的“三維圖片”控件上用鼠標(biāo)右鍵單擊,“視角控制器”選項中,“球面”和“自動重繪”選項前面打勾。可以實現(xiàn)運行時,用鼠標(biāo)拖動三維圖形,來按照固定點旋轉(zhuǎn),見圖2-47d。
6)如果希望該三維圖形旋轉(zhuǎn)起來,就需要一個While循環(huán),把“三維圖片”至于循環(huán)體內(nèi),用函數(shù)“旋轉(zhuǎn)對象”來實現(xiàn)旋轉(zhuǎn)功能,在該函數(shù)的兩個輸入端創(chuàng)建輸入控件,用來設(shè)置旋轉(zhuǎn)軸和旋轉(zhuǎn)角度。把該函數(shù)的“場景.對象輸出”引用端子連接到“三維圖片”的輸入端,即完成程序設(shè)計。
2.6 思考題
1.用0~100的隨機(jī)數(shù)代替攝氏溫度,將每500ms采集的溫度變化波形表示出來,并設(shè)定上限為85,下限為45,溫度高于上限或者低于下限分別點亮對應(yīng)的指示燈,并將其上、下限也一并在波形中表示出來。
2.生成一個0~100的隨機(jī)整數(shù),與60比較,大于等于60記為通過,綠燈亮;小于60記為不及格,紅燈亮;將比較結(jié)果捆綁后放在一個簇里顯示。
- 實用工程機(jī)械傳動裝置設(shè)計手冊
- 機(jī)械制圖習(xí)題集
- 圖解液壓輔件維修
- 儀表維修工職業(yè)操作技能培訓(xùn)教材
- 襯墊型自潤滑關(guān)節(jié)軸承的失效機(jī)理與壽命評估
- 現(xiàn)代機(jī)械概念設(shè)計與應(yīng)用
- 簡易升降機(jī)安全操作與管理
- 《高等院校機(jī)械類專業(yè)實驗實訓(xùn)教學(xué)基地環(huán)境建設(shè)要求》工作指南
- 液壓與氣動系統(tǒng)拆裝及維修(第2版)
- 機(jī)械設(shè)計基礎(chǔ)
- 聚合物3D打印與3D復(fù)印技術(shù)
- 彩色顯示器原理與檢修
- 磁力耦合傳動技術(shù)及裝置的理論設(shè)計與應(yīng)用
- 機(jī)械制圖與識圖化難為易
- 輕松看懂液壓氣動系統(tǒng)原理圖(雙色精華版)