計算機虛擬儀器圖形編程 LabVIEW實驗教材
北京中科泛華測控技術(shù)有限公司
目錄
第一課 LABVIEW概述 第一節(jié) 虛擬儀器(VI)的概念 第二節(jié) LabVIEW的操作模板 工具模板(Tools Palette) 控制模板(Controls Palette) 功能模板(Functions Palette) 第三節(jié) 創(chuàng)建一個VI程序 1. 前面板 框圖程序 從框圖程序窗口創(chuàng)建前面板對象 4. 數(shù)據(jù)流編程 第四節(jié) 程序調(diào)試技術(shù) 1. 找出語法錯誤 2. 設(shè)置執(zhí)行程序高亮 3. 斷點與單步執(zhí)行 4. 探針 第五節(jié) 練習(xí)1-1 第六節(jié) 把一個VI程序作為子VI程序調(diào)用 第七節(jié) 練習(xí)1-2 第八節(jié) 練習(xí)1-3 第九節(jié) 練習(xí)1-4 第十節(jié) 練習(xí)1-5 第二課 數(shù)據(jù)采集 第一節(jié) 概述 第二節(jié) 數(shù)據(jù)采集VI程序的調(diào)用方法 第三節(jié) 模擬輸入與輸出 練習(xí)2-1 第四節(jié) 波形的采集與產(chǎn)生 練習(xí)2-2 第五節(jié) 掃描多個模擬輸入通道 練習(xí)2-3 第六節(jié) 連續(xù)數(shù)據(jù)采集
練習(xí)2-4 第三課 儀器控制 第一節(jié) 概述 第二節(jié) 串行通訊 第三節(jié) IEEE 488(GPIB)概述 練習(xí)3-1 第四節(jié) VISA編程 練習(xí)3-2 第五節(jié) 用LabVIEW編寫儀器驅(qū)動程序 第六節(jié) 驗證儀器驅(qū)動軟件 練習(xí)3-3 第四課 分析軟件 第一節(jié) 概述 第二節(jié)、高級分析功能程序 第三節(jié) 信號產(chǎn)生 練習(xí)4-1 第四節(jié) 信號處理 練習(xí)4-2 第五節(jié) 數(shù)字濾波器 練習(xí)4-3 第六節(jié) 曲線擬合 練習(xí)4-4 練習(xí)4-5 第五課 實用工具軟件包 第一節(jié) 概述 第二節(jié) 常用軟件工具箱 第三節(jié) 分析工具軟件
第一課 LabVIEW概述第一節(jié) 虛擬儀器(VI)的概念使用LabVIEW開發(fā)平臺編制的程序稱為虛擬儀器程序,簡稱為VI。VI包括三個部分:程序前面板、框圖程序和圖標/連接器。 
程序前面板用于設(shè)置輸入數(shù)值和觀察輸出量,用于模擬真實儀表的前面板。在程序前面板上,輸入量被稱為控制(Controls),輸出量被稱為顯示(Indicators)。控制和顯示是以各種圖標形式出現(xiàn)在前面板上,如旋鈕、開關(guān)、按鈕、圖表、圖形等,這使這得前面板直觀易懂。下面是一個溫度計程序(Thermometer VI)的前面板。

每一個程序前面板都對應(yīng)著一段框圖程序。框圖程序用LabVIEW圖形編程語言編寫,可以把它理解成傳統(tǒng)程序的源代碼。框圖程序由端口、節(jié)點、圖框和連線構(gòu)成。其中端口被用來同程序前面板的控制和顯示傳遞數(shù)據(jù),節(jié)點被用來實現(xiàn)函數(shù)和功能調(diào)用,圖框被用來實現(xiàn)結(jié)構(gòu)化程序控制命令,而連線代表程序執(zhí)行過程中的數(shù)據(jù)流,定義了框圖內(nèi)的數(shù)據(jù)流動方向。上述溫度計程序(Thermometer VI)的框圖程序如下:
圖標/連接器是子VI被其它VI調(diào)用的接口。圖標是子VI在其他程序框圖中被調(diào)用的節(jié)點表現(xiàn)形式;而連接器則表示節(jié)點數(shù)據(jù)的輸入/輸出口,就象函數(shù)的參數(shù)。用戶必須指定連接器端口與前面板的控制和顯示一一對應(yīng)。下面圖示為溫度計程序(Thermometer VI)的圖標和連接器。連接器一般情況下隱含不顯示,除非用戶選擇打開觀察它。 
LabVIEW的強大功能歸因于它的層次化結(jié)構(gòu),用戶可以把創(chuàng)建的VI程序當作子程序調(diào)用,以創(chuàng)建更復(fù)雜的程序,而這種調(diào)用的層次是沒有限制的。 舉一個例子,我們把前面創(chuàng)建的溫度計程序(Thermometer VI)作為一個子程序用在當前新建程序里,當前程序的前面板如下圖所示,先前的溫度計子程序用于采集數(shù)據(jù),而當前的程序用于顯示溫度曲線,并在前面板上設(shè)定測量次數(shù)和每次測量間隔的延時。
當前程序的框圖如下圖所示,它把溫度計子程序放置在一個FOR循環(huán)里,每次循環(huán)過程采集一次測量結(jié)果,當循環(huán)執(zhí)行了設(shè)定的次數(shù)后,程序把采集的數(shù)據(jù)送到前面板的圖表上顯示。 
LabVIEW這種創(chuàng)建和調(diào)用子程序的方法,使創(chuàng)建的程序結(jié)構(gòu)模塊化,更易于調(diào)試、理解和維護。
第二節(jié) LabVIEW的操作模板LabVIEW具有多個圖形化的操作模板,用于創(chuàng)建和運行程序。這些操作模板可以隨意在屏幕上移動,并可以放置在屏幕的任意位置。操縱模板共有三類,為工具(Tools)模板、控制(Controls)模板和功能(Functions)模板。 工具模板(Tools Palette) 工具模板為編程者提供了各種用于創(chuàng)建、修改和調(diào)試VI程序的工具。如果該模板沒有出現(xiàn),則可以在Windows菜單下選擇Show Tools Palette命令以顯示該模板。當從模板內(nèi)選擇了任一種工具后,鼠標箭頭就會變成該工具相應(yīng)的形狀。當從Windows菜單下選擇了Show Help Window功能后,把工具模板內(nèi)選定的任一種工具光標放在框圖程序的子程序(Sub VI)或圖標上,就會顯示相應(yīng)的幫助信息。工具圖標有如下幾種:
 操作工具:使用該工具來操作前面板的控制和顯示。使用它向數(shù)字或字符串控制中鍵入值時,工具會變成標簽工具的形狀。 選擇工具:用于選擇、移動或改變對象的大小。當它用于改變對象的連框大小時,會變成相應(yīng)形狀。 標簽工具:用于輸入標簽文本或者創(chuàng)建自由標簽。當創(chuàng)建自由標簽時它會變成相應(yīng)形狀。 連線工具:用于在框圖程序上連接對象。如果聯(lián)機幫助的窗口被打開時,把該工具放在任一條連線上,就會顯示相應(yīng)的數(shù)據(jù)類型。  對象彈出菜單工具:用左鼠標鍵可以彈出對象的彈出式菜單。
 漫游工具:使用該工具就可以不需要使用滾動條而在窗口中漫游。
 斷點工具:使用該工具在VI的框圖對象上設(shè)置斷點。
 探針工具:可以在框圖程序內(nèi)的數(shù)據(jù)流線上設(shè)置探針。程序調(diào)試員可以通過控針窗口來觀察該數(shù)據(jù)流線上的數(shù)據(jù)變化狀況。  顏色提取工具:使用該工具來提取顏色用于編輯其他的對象。
 顏色工具:用來給對象定義顏色。它也顯示出對象的前景色和背景色。
與上述工具模板不同,控制和功能模板只顯示頂層子模板的圖標。在這些頂層子模板中包含許多不同的控制或功能子模板。通過這些控制或功能子模板可以找到創(chuàng)建程序所需的面板對象和框圖對象。用鼠標點擊頂層子模板圖標就可以展開對應(yīng)的控制或功能子模板,只需按下控制或功能子模板左上角的大頭針就可以把對這個子模板變成浮動板留在屏幕上。
控制模板(Controls Palette) 用控制模板可以給前面板添加輸入控制和輸出顯示。每個圖標代表一個子模板。如果控制模板不顯示,可以用Windows菜單的Show Controls Palette功能打開它,也可以在前面板的空白處,點擊鼠標右鍵,以彈出控制模板。 注:只有當打開前面板窗口時才能調(diào)用控制模板。
控制模板如左圖所示,它包括如圖所示的幾個子模板。 數(shù)值子模板:包含數(shù)值的控制和顯示。
 布爾值子模塊:邏輯數(shù)值的控制和顯示。
 字符串子模板:字符串和表格的控制和顯示。
 列表和環(huán)(Ring)子模板:菜單環(huán)和列表欄的控制和顯示。
 數(shù)組和群子模板:復(fù)合型數(shù)據(jù)類型的控制和顯示。
 圖形子模板:顯示數(shù)據(jù)結(jié)果的趨勢圖和曲線圖。
 路徑和參考名(Refnum)子模板:文件路徑和各種標識的控制和顯示。
 控件容器庫子模板:用于操作OLE、ActiveX等功能。
 對話框子模板:用于輸入對話框的顯示控制。
 修飾子模板:用于給前面板進行裝飾的各種圖形對象。
用戶自定義的控制和顯示。
 調(diào)用存儲在文件中的控制和顯示的接口。
功能模板(Functions Palette)功能模板是創(chuàng)建框圖程序的工具。該模板上的每一個頂層圖標都表示一個子模板。若功能模板不出現(xiàn),則可以用Windows菜單下的Show Functions Palette功能打開它,也可以在框圖程序窗口的空白處點擊鼠標右鍵以彈出功能模板。
注:只有打開了框圖程序窗口,才能出現(xiàn)功能模板。
功能模板如下圖所示。
  結(jié)構(gòu)子模板:包括程序控制結(jié)構(gòu)命令,例如循環(huán)控制等,以及全局變量和局部變量。
 數(shù)值運算子模板:包括各種常用的數(shù)值運算符,如+、-等;以及各種常見的數(shù)值運算式,如+1運算;還包括數(shù)制轉(zhuǎn)換、三角函數(shù)、對數(shù)、復(fù)數(shù)等運算,以及各種數(shù)值常數(shù)。
 布爾邏輯子模板:包括各種邏輯運算符以及布爾常數(shù)。
 字符串運算子模板:包含各種字符串操作函數(shù)、數(shù)值與字符串之間的轉(zhuǎn)換函數(shù),以及字符(串)常數(shù)等。
 數(shù)組子模板:包括數(shù)組運算函數(shù)、數(shù)組轉(zhuǎn)換函數(shù),以及常數(shù)數(shù)組等。
 群子模板。包括群的處理函數(shù),以及群常數(shù)等。這里的群相當于C語言中的結(jié)構(gòu)。
 比較子模板:包括各種比較運算函數(shù),如大于、小于、等于。
 時間和對話框子模板:包括對話框窗口、時間和出錯處理函數(shù)等。
 文件輸入/輸出子模板:包括處理文件輸入/輸出的程序和函數(shù)。
儀器控制子模板:包括GPIB(488、488.2)、串行、VXI儀器控制的程序和函數(shù),以及VISA的操作功能函數(shù)。 儀器驅(qū)動程序庫:用于裝入各種儀器驅(qū)動程序。
數(shù)據(jù)采集子模板:包括數(shù)據(jù)采集硬件的驅(qū)動程序,以及信號調(diào)理所需的各種功能模塊。 信號處理子模板:包括信號發(fā)生、時域及頻域分析功能模塊。
數(shù)學(xué)模型子模塊:包括統(tǒng)計、曲線擬合、公式框節(jié)點等功能模塊,以及數(shù)值微分、積分等數(shù)值計算工具模塊。  圖形與聲音子模塊:包括3D、OpenGL、聲音播放等功能模塊。
 通訊子模板:包括TCP、DDE、ActiveX和OLE等功能的處理模塊。
 應(yīng)用程序控制子模塊:包括動態(tài)調(diào)用VI、標準可執(zhí)行程序的功能函數(shù)。
 底層接口子模塊:包括調(diào)用動態(tài)連接庫和CIN節(jié)點等功能的處理模塊。
 文檔生成子模板。
 示教課程子模板:包括LabVIEW示教程序。
 用戶自定義的子VI模板。
 “選擇…VI子程序”子模板:包括一個對話框,可以選擇一個VI程序作為子程序(SUB VI)插入當前程序中。
其它幾個子模板是LabVIEW的附加Toolkit安裝上去的。在LabVIEW完全版中不包括這些子模板。
第三節(jié) 創(chuàng)建一個VI程序請記住,VI程序具有三個要素:前面板、框圖程序和圖標/連接器。我們將在練習(xí)1-1中討論圖標/連接器。
1. 前面板使用輸入控制和輸出顯示來構(gòu)成前面板。控制是用戶輸入數(shù)據(jù)到程序的接口。而顯示是輸出程序產(chǎn)生的數(shù)據(jù)接口?刂坪惋@示有許多種類,可以從控制模板的各個子模板中選取。 兩種最常用的前面板對象是數(shù)字控制和數(shù)字顯示。若想要在數(shù)字控制中輸入或修改數(shù)值,你只需要用操作工具(見工具模板)點擊控制部件和增減按鈕,或者用操作工具或標簽工具雙擊數(shù)值欄進行輸入數(shù)值修改。 2. 
框圖程序框圖程序是由節(jié)點、端點、圖框和連線四種元素構(gòu)成的。
節(jié)點類似于文本語言程序的語句、函數(shù)或者子程序。LabVIEW有二種節(jié)點類型----[ i]函數(shù)節(jié)點和[ i]子[ i]VI[ i]節(jié)點。兩者的區(qū)別在于:函數(shù)節(jié)點是LabVIEW以編譯好了的機器代碼供用戶使用的,而子VI節(jié)點是以圖形語言形式提供給用戶的。用戶可以訪問和修改任一子VI節(jié)點的代碼,但無法對函數(shù)節(jié)點進行修改。上面的框圖程序所示的VI程序有兩個功能函數(shù)節(jié)點,一個函數(shù)使兩個數(shù)值相加,另一個函數(shù)使兩數(shù)相減。
端點是只有一路輸入/輸出,且方向固定的節(jié)點。LabVIEW有三類端點----[ i]前面板對象端點、[ i]全局與局部變量端點和[ i]常量端點。對象端點是數(shù)據(jù)在框圖程序部分和前面板之間傳輸?shù)慕涌凇R话銇碚f,一個VI的前面板上的對象(控制或顯示)都在框圖中有一個對象端點與之一一對應(yīng)。當在前面板創(chuàng)建或刪除面板對象時,可以自動創(chuàng)建或刪除相應(yīng)的對象端點。控制對象對應(yīng)的端點在框圖中是用粗框框住的,如例子中的A和B端點。它們只能在VI程序框圖中作為數(shù)據(jù)流源點。顯示對象對應(yīng)的端點在框圖中是用細框框住的。如例子中的A+B和A-B端點。它們只能在VI程序框圖中作為數(shù)據(jù)流終點。常量端點永遠只能在VI程序框圖中作為數(shù)據(jù)流源點。
圖框是LabVIEW實現(xiàn)程序結(jié)構(gòu)控制命令的圖形表示。如循環(huán)控制、條件分支控制和順序控制等,編程人員可以使用它們控制VI程序的執(zhí)行方式。代碼接口節(jié)點(CIN)是框圖程序與用戶提供的C語言文本程序的接口。
連線是端口間的數(shù)據(jù)通道。它們類似于普通程序中的變量。數(shù)據(jù)是單向流動的,從源端口向一個或多個目的端口流動。不同的線型代表不同的數(shù)據(jù)類型。在彩顯上,每種數(shù)據(jù)類型還以不同的顏色予以強調(diào)。
下面是一些常用數(shù)據(jù)類型所對應(yīng)的線型和顏色:
整 形 數(shù)蘭色
浮點數(shù) 橙色
邏輯量 綠色
字符串 粉色
文件路徑 青色
當需要連接兩個端點時,在第一個端點上點擊連線工具(從工具模板欄調(diào)用),然后移動到另一個端點,再點擊第二個端點。端點的先后次序不影響數(shù)據(jù)流動的方向。
當把連線工具放在端點上時,該端點區(qū)域?qū)W爍,表示連線將會接通該端點。當把連線工具從一個端口接到另一個端口時,不需要按住鼠標鍵。當需要連線轉(zhuǎn)彎時,點擊一次鼠標鍵,即可以正交垂直方向地彎曲連線,按空格鍵可以改變轉(zhuǎn)角的方向。
3. 從框圖程序窗口創(chuàng)建前面板對象用選擇和連線工具,你都可以用鼠標右鍵點擊任一節(jié)點和端點,然后從彈出菜單中選擇“創(chuàng)建常數(shù)”,“創(chuàng)建控制”,或“創(chuàng)建顯示”等命令。LabVIEW會自動地在被創(chuàng)建的端點與所點擊對象之間接好連線。 4. 數(shù)據(jù)流編程 控制VI程序的運行方式叫做“數(shù)據(jù)流”。對一個節(jié)點而言,只有當它的所有輸入端口上的數(shù)據(jù)都成為有效數(shù)據(jù)時,它才能被執(zhí)行。當節(jié)點程序運行完畢后,它把結(jié)果數(shù)據(jù)送給所有的輸出端口,使之成為有效數(shù)據(jù)。并且數(shù)據(jù)很快從源送到目的端口。 如左圖所示,這個VI程序把兩個輸入數(shù)值相乘,再把乘積減去50.0。這個程序中,框圖程序從左往右執(zhí)行,這個執(zhí)行次序不是由于對象的擺放位置,而是由于相減運算函數(shù)的一個輸入量是相乘函數(shù)的運算結(jié)果,它只有當相乘運算完成并把結(jié)果送到減運算的輸入口后才能繼續(xù)下去。請記住,一個節(jié)點(函數(shù))只有當它所有的輸入端的數(shù)據(jù)都成為有效數(shù)據(jù)后才能被執(zhí)行,而且只有當它執(zhí)行完成后,它的所有輸出端口上的數(shù)據(jù)才成為有效。 再看另一個程序(見右圖),你認為哪一個節(jié)點函數(shù)將先執(zhí)行 – 是乘法還是除法?在這個例子中,我們無法知道哪一個節(jié)點函數(shù)首先執(zhí)行,因為所有輸入量幾乎同時到達。對于這樣一種相互獨立的數(shù)據(jù)流程,如果又必須明確指定節(jié)點執(zhí)行的先后次序,就必須使用順序(Sequence)結(jié)構(gòu)來明確執(zhí)行次序。
第四節(jié) 程序調(diào)試技術(shù)1. 找出語法錯誤如果一個VI程序存在語法錯誤,則在面板工具條上的運行按鈕將會變成一個折斷的箭頭,表示程序不能被執(zhí)行。這時這個按鈕被稱作錯誤列表。點擊它,則LabVIEW彈出錯誤清單窗口,點擊其中任何一個所列出的錯誤,選用Find功能,則出錯的對象或端口就會變成高亮。
2. 設(shè)置執(zhí)行程序高亮在LabVIEW的工具條上有一個畫著燈泡的按鈕,這個按鈕叫做“高亮執(zhí)行”按鈕上。點擊這個按鈕使該按鈕圖標變成高亮形式,再點擊運行按鈕,VI程序就以較慢的速度運行,沒有被執(zhí)行的代碼灰色顯示,執(zhí)行后的代碼高亮顯示,并顯示數(shù)據(jù)流線上的數(shù)據(jù)值。這樣,你就可以在根據(jù)數(shù)據(jù)的流動狀態(tài)跟蹤程序的執(zhí)行。
3. 斷點與單步執(zhí)行為了查找程序中的邏輯錯誤,你也許希望框圖程序一個節(jié)點一個節(jié)點地執(zhí)行。使用斷點工具可以在程序的某一地點中止程序執(zhí)行,用探針或者單步方式查看數(shù)據(jù)。使用斷點工具時,點擊你希望設(shè)置或者清除斷點的地方。斷點的顯示對于節(jié)點或者圖框表示為紅框,對于連線表示為紅點。當VI程序運行到斷點被設(shè)置處,程序被暫停在將要執(zhí)行的節(jié)點,以閃爍表示。按下單步執(zhí)行按鈕,閃爍的節(jié)點被執(zhí)行,下一個將要執(zhí)行的節(jié)點變?yōu)殚W爍,指示它將被執(zhí)行。你也可以點擊暫停按鈕,這樣程序?qū)⑦B續(xù)執(zhí)行直到下一個斷點。
4. 探針你可以用探針工具來查看當框圖程序流經(jīng)某一根連接線時的數(shù)據(jù)值。從Tools工具模板選擇探針工具,再用鼠標左建點擊你希望放置探針的連接線。這時顯示器上會出現(xiàn)一個探針顯示窗口。該窗口總是被顯示在前面板窗口或框圖窗口的上面。在框圖中使用選擇工具或連線工具,在連線上點擊鼠標右鍵,在連線的彈出式菜單中選擇“探針”命令,同樣可以為該連線加上一個探針。
第五節(jié) 練習(xí)1-1目的:創(chuàng)建一個VI程序,以便以后作為子VI程序使用。
創(chuàng)建一個VI程序模擬溫度測量。假設(shè)傳感器輸出電壓與溫度成正比。例如,當溫度為70°[ i]F時,傳感器輸出電壓為0.7V。本程序也可以用攝氏溫度來代替華氏溫度顯示。 本程序用軟件代替了DAQ數(shù)據(jù)采集卡。使用Demo Read Voltage子程序來仿真電壓測量,然后把所測得的電壓值轉(zhuǎn)換成攝氏或華氏溫度讀數(shù)。
前面板:

用File菜單的New選項打開一個新的前面板窗口。
- 在前面板窗口的空白處點擊鼠標鍵,然后從彈出的Numeric子模板中選擇Thermometer。
- 在高亮的文本框中輸入“溫度計”,再點擊鼠標鍵按鈕。
- 重新設(shè)定溫度計的標尺范圍為0.0到100.0。使用標簽工具A,雙擊溫度計標尺的10.0,輸入100.0,再點擊鼠標鍵或者工具欄中的V按鈕。
- 在面板窗口的空白處點擊鼠標鍵,然后彈出的Boolean子模板中選擇Vertical Switch,在文本框中輸入“溫度值單位”,再點擊鼠標鍵或者工具欄中的V按鈕。
- 使用標簽工具A,在開關(guān)的“條件真”(true)位置旁邊輸入自由標簽“攝氏”,再在“條件假”(false)位置旁邊輸入自由標簽“華氏”。
框圖程序:- 從Windows菜單下選擇Show Diagram功能打開框圖程序窗口。
- 點擊框圖程序窗口的空白處,彈出功能模板,從彈出的菜單中選擇所需的對象。本程序用到下面的對象:
Demo Read Voltage VI程序(Tutorial子模板)。在本例中,該程序模擬從DAQ卡的0通道讀取電壓值。
Multiply(乘法)功能(Numeric子模板)。在本例中,將讀取電壓值乘以100.00,以獲得華氏溫度。
Subtract(減法)功能(Numeric子模板)。在本例中,從華氏溫度中減去32.0,以轉(zhuǎn)換成攝氏溫度。
Divide(除法)功能(Numeric子模板)。在本例中,把相減的結(jié)果除以1.8以轉(zhuǎn)換成攝氏溫度。
Select(選擇)功能(Comparison子模板)。取決于溫標選擇開關(guān)的值。該功能輸出華氏溫度(當選擇開關(guān)為false)或者攝氏溫度(選擇開關(guān)為True)數(shù)值。
數(shù)值常數(shù)。用連線工具,點擊你希望連接一個數(shù)值常數(shù)的對象,并選擇Create Constant功能。若要修改常數(shù)值,用標簽工具雙點數(shù)值,再寫入新的數(shù)值。
字符串常量。用連線工具,點擊你希望連接字符串常量的對象,再選擇Create Constant功能。要輸入字符串,用標簽工具雙擊字符串,再輸入新的字符串。
- 使用移位工具(Positioning tool),把圖標移至圖示的位置,再用連線工具連接起來。
Demo Read Voltage VI子程序模擬從數(shù)據(jù)采集卡的0通道讀取電壓,我們的程序再將讀數(shù)乘以100.0轉(zhuǎn)換成華氏溫度讀 數(shù),或者再把華氏溫度轉(zhuǎn)換成攝氏溫度。
- 選擇前面板窗口,使之變成當前窗口,并運行VI程序。點擊連續(xù)運行按鈕,便程序運行于連續(xù)運行模式。
- 再點擊連續(xù)運行按鈕,關(guān)閉連續(xù)運行模式。
此圖標可以將現(xiàn)程序作為子程序在其他程序中調(diào)用。創(chuàng)建方法如下:
- 在面板窗口的右上角的圖標框中點擊鼠標,從彈出菜單中選擇Edit Icon功能。
- 雙點選擇工具,并按下Delete鍵,消除缺省的圖標圖案。
- 用畫圖工具畫出溫度計的圖標。
使用文本工具寫入文字,雙擊文本工具把字體換成Small Font。
當圖標創(chuàng)建完成后,點擊OK以關(guān)閉圖標編輯。生成的圖標在面板窗口的右上角。
- 點擊右上角的圖標面板,從彈出菜單中選擇Show Connector功能。LabVIEW將會根據(jù)控制和顯示的數(shù)量選擇一種聯(lián)接器端口模式。在本例中,只有兩個端口,一個是豎直開關(guān),另一個是溫度指示。
- 把聯(lián)接器端口定義給開關(guān)和溫度指示。
- 使用連線工具,在左邊的聯(lián)接器端口框內(nèi)按鼠標鍵,則端口將會變黑。再點擊開關(guān)控制件,一個閃爍的虛線框?qū)鼑≡撻_關(guān)。
- 現(xiàn)在再點擊右邊的聯(lián)接器端口框,使它變黑。再點擊溫度指示部件,一個閃爍的虛線框?qū)鼑囟戎甘静考,這即表示著右邊的聯(lián)接器端口對應(yīng)溫度指示部件的數(shù)據(jù)輸入。
- 如果再點擊空白外,則虛線框?qū)⑾,而前面所選擇的聯(lián)接器端口將變暗,表示你已經(jīng)將對象部件定義到各個聯(lián)接器端口。
以后我們會講到如何使用SubVI From Selection功能來創(chuàng)建子程序SubVI。
- 確認當前文件的程序庫路徑為Seminar.LLB,用文件菜單的SAVE功能保存上述文件,并將文件命名為Thermometer.Vi。
現(xiàn)在,該程序已經(jīng)編制完成了。它可以在其他程序中作為子程序來調(diào)用,在其它程序的框圖窗口里,該溫度計程序用前面創(chuàng)建的圖標來表示。聯(lián)接器端口的輸入端用于選擇溫度單位,輸出端用于輸出溫度值。
(練習(xí)1-1結(jié)束)
第六節(jié) 把一個VI程序作為子VI程序調(diào)用在任意一個VI程序的框圖窗口里,都可以把其他的VI程序作為子程序調(diào)用,只要被調(diào)用VI程序定義了圖標和聯(lián)接器端口即可。用戶使用功能模板的Select a VI來完成。當使用該功能時,將彈出一個對話框,用戶可以輸入文件名。 一個子VI程序,相當于普通程序的子程序。節(jié)點相當于子程序調(diào)用。子程序節(jié)點并不是子程序本身,就象一般程序的子程序調(diào)用語句并不是子程序本身一樣。如果在一個框圖程序中,有幾個相同的子程序節(jié)點,它就象多次調(diào)用相同的子程序。請注意,該子程序的拷貝并不會在內(nèi)存中存儲多次。
第七節(jié) 練習(xí)1-2目的:使用一個條件循環(huán)結(jié)構(gòu)和一個被測波形圖表實時地采集數(shù)據(jù)。
學(xué)員將創(chuàng)建一個VI程序,進行溫度測量,并把結(jié)果在波形圖表上顯示。該VI程序使用我們前面創(chuàng)建的溫度計程序(Thermometer VI)作為子程序。
前面板: - 打開一個新的前面板窗口,在里面放一個豎直開關(guān)(在Boolean邏輯部件子模板),給該開關(guān)標注為“Enable”。你可以用該開關(guān)來開始/停止數(shù)據(jù)采集。
- 在前面板內(nèi)再放置一個趨勢圖(Graph子模板中的Waveform Chart),標注為“溫度歷史趨勢”。該圖表將實時地顯示溫度值。
- 由于趨勢圖將它的圖標注解plot自動地標注為“plot 0”,你可以用標注工具將其重新標注為“Temp”。
- 因為趨勢圖用于顯示室內(nèi)溫度,需要對它的標尺進行重新定標。將Y軸的“10”改為“90”,而將“0.0”改為“20”。
- 此時暫時不要創(chuàng)建模式轉(zhuǎn)換開關(guān),我們將嘗試從框圖程序窗口創(chuàng)建前面板的部件。
框圖程序:
- 從結(jié)構(gòu)(Structures)工具模板選擇條件循環(huán)結(jié)構(gòu)“While Loop”放入框圖程序窗口,調(diào)整該條件循環(huán)框的大小,把先前從前面板創(chuàng)建的兩個節(jié)點放入循環(huán)框內(nèi)。
- 放入其它的框圖程序?qū)ο蟆?/font>Thermometer VI,這個VI程序是你在上個練習(xí)中創(chuàng)建的,從Seminar.LLB中調(diào)出(從Select a VI…子模板)。
- 創(chuàng)建模式開關(guān)。把連線工具放在Thermometer VI的Mode輸入端口上,按鼠標右鍵并選擇Creat Control,這樣就可以自動創(chuàng)建模式轉(zhuǎn)換開關(guān),并將它與Thermometer VI子程序相連線,再轉(zhuǎn)換到前面板窗口,將模式轉(zhuǎn)換開關(guān)的位置重新調(diào)整。
- 在前面板窗口,使用標注工具,雙擊模式開關(guān)的“OFF”標簽,并把它轉(zhuǎn)換成“華氏”,再把“ON”標簽轉(zhuǎn)換民“攝氏”。要轉(zhuǎn)換開關(guān)狀態(tài),使用操作工具(Operating Tool)。
- 將模式開關(guān)設(shè)置為ON狀態(tài),運行該VI程序。
- 要停止數(shù)據(jù)采集,點擊Enable開關(guān),使其狀態(tài)變?yōu)?/font>OFF,循環(huán)結(jié)束。
- 修改Enable開關(guān)缺省設(shè)置,使你運行VI程序時不必每次打開該開關(guān)。
- 若程序在運行狀態(tài),則關(guān)閉程序運行。
- 把開關(guān)設(shè)置為ON狀態(tài)。
- 點擊開關(guān),從彈出菜單中選擇Data Operations>Make Current Value Default選項,這將使ON狀態(tài)變?yōu)槿笔≈怠?/font>
- 再點擊開關(guān),從彈出菜單中選擇Mechanical Action>Latch When Pressed選項。
- 運行該程序,把開關(guān)點擊為Stop狀態(tài)以停止數(shù)據(jù)采集。開關(guān)將變?yōu)?/font>OFF狀態(tài),但當條件循環(huán)結(jié)構(gòu)再次讀取其數(shù)值時,它又會變成ON狀態(tài)。
增加定時器控制: 當你運行程序時,它將會盡可能快地運行。但是你也許希望以一定的時間間隔,例如一秒鐘一次或者一分鐘一次來采集數(shù)據(jù)。
你可以用Wait Until Next ms Multiple功能(在Time & Dialog子模板)來滿足上述條件。該功能模塊可以保證循環(huán)間隔時間不少于指定的毫秒數(shù)。 使用Time & Dialog子模板中的Wait Until Next ms Multiple功能,再加上時間常數(shù)Numeric Constant,把它設(shè)置為500。
- 關(guān)閉并保存上述程序,文件名為Temperature Monitor.vi。
(練習(xí)1-2結(jié)束)。
第八節(jié) 練習(xí)1-3目的:以圖表方式顯示數(shù)據(jù)并使用分析功能子程序。
利用練習(xí)1-2創(chuàng)建的VI程序,在數(shù)據(jù)采集過程中,實時地顯示數(shù)據(jù)。當采集過程結(jié)束后,在圖表上畫出數(shù)據(jù)波形,并算出最大值、最小值和平均值。該練習(xí)只使用華氏溫度單位。
前面板:
- 打開練習(xí)1-2創(chuàng)建的Temperature monitor.vi程序。
- 按照上圖修改程序,其中被虛線框住的部分是新增加的。
趨勢圖“溫度歷史趨勢”顯示實時采集的數(shù)據(jù)。采集過程結(jié)束后,在Temp Graph中畫出數(shù)據(jù)曲線,同時在Mean、Max和Min數(shù)字顯示欄中顯示出溫度的平均值、最大值和最小值。
本例中只使用華氏溫度單位。
框圖程序:

完成上面的框圖程序。被虛線框住的部分表示新增程序。條件循環(huán)框邊線上的方塊叫作通道(tunnel)。在本例中,通道是條件循環(huán)的數(shù)據(jù)通道口。若要建立數(shù)據(jù)索引,點擊通道,并選擇Enable Indexing選項,表示當條件循環(huán)執(zhí)行時,把數(shù)據(jù)順序放入一個數(shù)組中。循環(huán)結(jié)束后,通道輸出該數(shù)組。否則,通道僅輸出最后一次循環(huán)放入的數(shù)據(jù)值。
- 當允許運行開關(guān)(Enable Switch)設(shè)置為OFF后,將顯示溫度數(shù)據(jù)曲線。
- 面修改后的程序重命名為Temperature Analysis.vi并存盤。
(練習(xí)1 - 3結(jié)束)
第九節(jié) 練習(xí)1-4目的:學(xué)習(xí)使用Case結(jié)構(gòu)。
修改Temperature Analysis.VI程序以檢測溫度是否超出范圍,當溫度超出上限(High Limit)時,前面板上的LED將點亮,并且有一個蜂鳴器發(fā)聲。
前面板: - 打開練習(xí)1-3創(chuàng)建的Temperature Analysis VI程序。
- 按照下圖所示修改前面板。被虛線框住的部分表示增加的部件。High Limit表示溫度上限值。報警指示燈(WARNING LED)和當前溫度狀態(tài)(CurrentTemperature State)用來表示溫度是否超限。點擊趨勢圖,并且選擇Show>Legend和Show>Dighital Display選項,可以增加圖注(Legend)和數(shù)字顯示。
框圖程序:- 按照上圖編寫框圖程序。被虛線框住的部分為新增加的部件。下面的FALSE Case與圖中的TRUE Case同屬于一個Case結(jié)構(gòu)。根據(jù)其輸入端上的數(shù)值,來決定執(zhí)行哪一個Case程序。
如果Thermometer Vi子程序返回的溫度值大于High Limit數(shù)值,將執(zhí)行True Case程序,反之則執(zhí)行False Case程序。
- 返回前面板程序,在High Limit控制欄中輸入86。再運行VI程序。當溫度超過86時,LED將點亮,蜂鳴器也會發(fā)聲。
- 將程序重新命名為Temperature Control.vi,并保存起來。
(練習(xí)1 - 4結(jié)束)

第十節(jié) 練習(xí)1-5目的:學(xué)習(xí)使用順序(Sequence)結(jié)構(gòu)并且把數(shù)據(jù)傳送到文件。
學(xué)員將修改Temperature Control.vi程序,以學(xué)習(xí)使用順序結(jié)構(gòu)和包括頭文件的數(shù)據(jù)文件。當程序停止數(shù)據(jù)采集后,自動產(chǎn)生數(shù)據(jù)文件的頭文件,它包括操作者名字和文件名,然后將采集的數(shù)據(jù)附在頭文件后面。
前面板: 如上圖所示。
框圖程序:

如下圖所示,完成框圖程序,使用了如下的功能模塊:

Write Characters to File模塊(在File I/O子模板)。該功能把一個字符串寫入一個新的文件或者附加到一個已存在的文件中。它在寫入前打開或者創(chuàng)建一個文件,在完成時關(guān)閉該文件。在本例中,它用來建立頭文件格式。
Write to Spreadsheet File模塊(在File I/O子模塊)。該模塊把一個二維或者一維單精度數(shù)組轉(zhuǎn)換成字符串,并把字符串寫入一個新文件或者附回在一個已存在的文件后面。在本例中,它將由溫度采集數(shù)據(jù)和上限值組成的二維數(shù)組附加在一個已創(chuàng)建了頭文件的數(shù)據(jù)文件后面。
Transpose 2D Array模塊(在Array子模板)。在本例中,它把二維數(shù)組轉(zhuǎn)換成以列為分界的二維數(shù)組,這樣在寫入數(shù)據(jù)文件時它就會以列的形式顯示。
Concatenate String模塊(在String子模板)。在本例中,它用于創(chuàng)建頭文件字符串。
順序結(jié)構(gòu)程序按指定的順序執(zhí)行各個程序步驟。在本例中,我們首先創(chuàng)建數(shù)據(jù)文件的頭文件,然后再將數(shù)據(jù)寫入文件中。
- 返回前面板,在High Limit控制欄中輸入86,在Operator Name控制欄中輸入你的名字,再輸入數(shù)據(jù)文件名(例如C:\testdata.txt)。運行該程序。當Enable開關(guān)設(shè)置為OFF狀態(tài)后,將產(chǎn)生如下的ASCII文件。
王思華
- 將文件重新命名為Temperature Control Logger.vi,并存盤退出(用Save As選項)。
(練習(xí)1 - 5結(jié)束)。
第二課 數(shù)據(jù)采集第一節(jié) 概述LabVIEW的數(shù)據(jù)采集(Data Acquisition)程序庫包括了許多NI公司數(shù)據(jù)采集(DAQ)卡的驅(qū)動控制程序。通常,一塊卡可以完成多種功能 - 模/數(shù)轉(zhuǎn)換,數(shù)/模轉(zhuǎn)換,數(shù)字量輸入/輸出,以及計數(shù)器/定時器操作等。用戶在使用之前必須DAQ卡的硬件進行配置。這些控制程序用到了許多低層的DAQ驅(qū)動程序。本課程需要一塊安裝好的DAQ卡以及LabVIEW開發(fā)系統(tǒng)。 數(shù)據(jù)采集系統(tǒng)的組成:
DAQ系統(tǒng)的基本任務(wù)是物理信號的產(chǎn)生或測量。但是要使計算機系統(tǒng)能夠測量物理信號,必須要使用傳感器把物理信號轉(zhuǎn)換成電信號(電壓或者電流信號)。有時不能把被測信號直接連接到DAQ卡,而必須使用信號調(diào)理輔助電路,先將信號進行一定的處理?傊,數(shù)據(jù)采集是借助軟件來控制整個DAQ系統(tǒng) – 包括采集原始數(shù)據(jù)、分析數(shù)據(jù)、給出結(jié)果等。 上圖中描述了插入式DAQ卡。另一種方式是外接式DAQ系統(tǒng)。這樣,就不需要在計算機內(nèi)部插槽中插入板卡,這時,計算機與DAQ系統(tǒng)之間的通訊可以采用各種不同的總線,如并行口或者PCMCIA等完成。這種結(jié)構(gòu)適用于遠程數(shù)據(jù)采集和控制系統(tǒng)。
[ i]模擬輸入: 當采用DAQ卡測量模擬信號時,必須考慮下列因素:輸入模式(單端輸入或者差分輸入)、分辨率、輸入范圍、采樣速率,精度和噪聲等。 單端輸入以一個共同接地點為參考點。這種方式適用于輸入信號為高電平(大于一伏),信號源與采集端之間的距離較短(小于15英尺),并且所有輸入信號有一個公共接地端。如果不能滿足上述條件,則需要使用差分輸入。差分輸入方式下,每個輸入可以有不同的接地參考點。并且,由于消除了共模噪聲的誤差,所以差分輸入的精度較高。 輸入范圍是指ADC能夠量化處理的最大、最小輸入電壓值。DAQ卡提供了可選擇的輸入范圍,它與分辨率、增益等配合,以獲得最佳的測量精度。 
分辨率是模/數(shù)轉(zhuǎn)換所使用的數(shù)字位數(shù)。分辯率越高,輸入信號的細分程度就越高,能夠識別的信號變化量就越小。下圖表示的是一個正弦波信號,以及用三位模/數(shù)轉(zhuǎn)換所獲得的數(shù)字結(jié)果。三位模/數(shù)轉(zhuǎn)換把輸入范圍細分為23或者就8份。二進制數(shù)從000到111分別代表每一份。顯然,此時數(shù)字信號不能很好地表示原始信號,因為分辯率不夠高,許多變化在模/數(shù)轉(zhuǎn)換過程中丟失了。然而,如果把分辯率增加為16位,模/數(shù)轉(zhuǎn)換的細分數(shù)值就可以從8增加到216即65536,它就可以相當準確地表示原始信號。 
增益表示輸入信號被處理前放大或縮小的倍數(shù)。給信號設(shè)置一個增益值,你就可以實際減小信號的輸入范圍,使模數(shù)轉(zhuǎn)換能盡量地細分輸入信號。例如,當使用一個3位模數(shù)轉(zhuǎn)換,輸入信號范圍為0到10伏,上面的圖顯示了給信號設(shè)置增益值的效果。當增益=1時,模/數(shù)轉(zhuǎn)換只能在5伏范圍內(nèi)細分成4份,而當增益=2時,就可以細分成8份,精度大大地提高了。但是必須注意,此時實際允許的輸入信號范圍為0到5伏。一但超過5伏,當乘以增益2以后,輸入到模/數(shù)轉(zhuǎn)換的數(shù)值就會大于允許值10伏。
總之,輸入范圍,分辯率以及增益決定了輸入信號可識別的最小模擬變化量。此最小模擬變化量對應(yīng)于數(shù)字量的最小位上的0,1變化,通常叫做轉(zhuǎn)換寬度(Code width)。其算式為:輸入范圍/(增益*2^分辯率)。 例如,一個12位的DAQ卡,輸入范圍為0到10伏,增益為1,則可檢測到2.4mV的電壓變化。而當輸入范圍為-10到10伏(20伏),可檢測的電壓變化量則為4.8mV。

采樣率決定了模/數(shù)變換的速率。采樣率高,則在一定時間內(nèi)采樣點就多,對信號的數(shù)字表達就越精確。采樣率必須保證一定的數(shù)值,如果太低,則精確度就很差。下面的圖表示了采樣率對精度的影響。 采樣頻率足夠 采樣頻率不夠引起波形畸變
根據(jù)耐奎斯特采樣理論,你的采樣頻率必須是信號最高頻率的兩倍。例如,音頻信號的頻率一般達到20KHz,因此其采樣頻率一般需要40KHz。 
平均化。噪聲將會引起輸入信號畸變。噪聲可以是計算機外部的或者內(nèi)部的。要抑制外部噪聲誤差,可以使用適當?shù)男盘栒{(diào)理電路,也可以增加采樣信號點數(shù),再取這些信號的平均值以抑制噪聲誤差,這樣誤差可以減小到乘以下面的系數(shù):
例如,如果以100個點來平均,則噪聲誤差將減小1/10。 第二節(jié) 數(shù)據(jù)采集VI程序的調(diào)用方法LabVIEW的DAQ程序包括模擬輸入、模擬輸出、計數(shù)器操作、或者數(shù)字輸入、輸出等。你可以在框圖程序窗口下選擇Data Acquisition。再在此子模板下,可以看到6個子模板:Analog Input, Analog Output, Digital I/O, Counter, Calibration and Configuration和Signal Conditioning。 在上述6個子模板下,每個子模板又分成Easy I/O Vis, Intermediate Vis,  Utility Vis和Advanced Vis。下面我們以Analog Input子模板為例進行解釋。如圖所示,在其頂層是簡單模擬量輸入VI程序(Easy AI),中間層是中級模擬量輸入VI程序(Intermediate AI),然后下面是兩個圖標,一個用于調(diào)用模擬輸入應(yīng)用程序(Utility AI),一個調(diào)用高級模擬量輸入程序(Advanced AI)。在本教材中,我們主要講述簡單和中級程序。高級程序涉及到與DAQ驅(qū)動程序的低層接口,而通用應(yīng)用程序是中級程序的組合。
簡單I/O程序僅僅只是表面層接口程序,它能執(zhí)行基本的模擬量輸入、模擬量輸出、數(shù)字I/O,以及計數(shù)器/定時器操作。它簡單易用,并且包含一個簡單的出錯處理方法。當出錯時,將彈出一個對話框,顯示出錯信息,而用戶可以選擇中止程序執(zhí)行或者忽略錯誤。 相對于簡單程序而言,中級程序具備更多的硬件設(shè)置功能,靈活性,并且可以更有效地開發(fā)實用程序。它具有許多簡單程序所缺乏的功能,如外部時鐘等。它對出錯的處理也更加靈活,可以把出錯狀態(tài)信息傳遞給其它的程序,編程處理出錯情況。
第三節(jié) 模擬輸入與輸出在Data Acquisition子模板下的Analog Input子模板程序執(zhí)行模/數(shù)轉(zhuǎn)換操作。而Analog Output程序庫則執(zhí)行數(shù)/模轉(zhuǎn)換或多重轉(zhuǎn)換。

AI Sample Channel程序測量指定通道上信號的一個采樣點,并返回測量值。Device是DAQ卡的設(shè)備編號,Channel是描述模擬輸入通道號的字符串,High Limit和Low Limit指明輸入信號的范圍,缺省值為+10V和-10V。
AO Update Channel程序把一個給定電壓值在一個模擬輸出通道上輸出。Device是DAQ卡的設(shè)備編號,Channel是輸出通道號字符串Voltage是輸出的電壓值。 
在上述程序執(zhí)行時,如果發(fā)生錯誤,則彈出一個對話框,顯示錯誤代碼,你可以選擇中止程序或者繼續(xù)程序執(zhí)行。
練習(xí)2-1目的:輸出一個模擬電壓信號,并且用DAQ卡再次采集該信號。
首先編制一個VI程序,以0.5伏的間隔從0伏到9.5伏輸出電壓,再編制VI程序進行單點模擬輸入電壓測量,驗證上述輸出電壓。最后,再修改程序,使之控制Demo Box上的LED指示燈。在演示盒Demo Box上,把模擬輸出CH0與模擬輸入CH1相連。
前面板: - 打開電壓輸出Voltage Output程序窗口,用Device指定DAQ卡設(shè)備編號,Channel字符串指定模擬輸出通道,用Voltage Output輸出顯示來顯示當前輸出電壓值。
框圖程序 對于循環(huán)For Loop要求每500毫秒執(zhí)行一次,控制輸出電壓以0.5伏的間隔從0伏到9.5伏變化。當循環(huán)For Loop結(jié)束后,輸出電壓又復(fù)位為0伏。 - 關(guān)閉上述框圖程序窗口,再打開前面板窗口,創(chuàng)建輸入電壓測量Voltmeter程序,以顯示輸入電壓值。
前面板: 框圖程序:
- 在前面板的電壓測量儀表盤中,將其刻度定義為0.0至10.0。
- 在通道控制Channel輸入值1,上限控制High Limit輸入值10.0,下限控制Low Limit輸入值0.00,打開Power開關(guān),運行該程序。
- 如果運行過程中出現(xiàn)錯誤,將會彈出一個對話框,顯示錯誤代碼和解釋。要模擬出錯情況,在Device控制欄中輸入0并運行程序,則將會顯示出錯情況。

確認已在演示盒Demo Box中將模擬輸出CH0接到模擬輸入CH1,運行電壓輸出Voltage Output VI程序,則在電壓測量Voltmeter程序中將采集并顯示電壓值。
- 停止程序運行,并按上圖虛線框住的部分修改程序,當輸入電壓大于5伏時點亮LED燈。演示盒Demo Box上的LED燈是負邏輯,高電平時關(guān)閉LED,低電平時打開LED。
- 再同時運行前面的電壓輸出程序和本電壓輸入程序,以驗證運行效果。
(練習(xí)2-1結(jié)束)。
第四節(jié) 波形的采集與產(chǎn)生在許多應(yīng)用場合,一次只采樣一個數(shù)據(jù)點是不夠的。另外,采樣點之間的間隔很難保持恒定,因為它取決于很多因素,如循環(huán)的執(zhí)行速度,子程序的調(diào)用時間等等。而使用AI Acquire Waveform和AO Generate Waveform程序,就可以以大于單點操作的速度進行多點的數(shù)據(jù)采集和波形產(chǎn)生,并且用戶可以自定義采樣速率。

[ i] 波形采集:AI Acquire Waveform程序從一個指定的輸入通道按用戶定義的采樣率和采樣點數(shù)采集數(shù)據(jù)并返回計算機。
上圖中Number of Samples是采樣點數(shù),Sample rate是采樣率,以Hz為單位。Waveform是模擬輸入信號的一維采樣數(shù)組,以伏特為單位。Actual sample period是實際采樣率的倒數(shù),它可能與指定采樣率有一些小偏差,偏差取決于計算機硬件速度。
[ i]波形產(chǎn)生:

AO Generate Waveform程序在一個模擬輸出通道上以用戶定義的更新速率產(chǎn)生一個電壓波形。Update rate是每秒鐘產(chǎn)生的電壓數(shù)值更新點數(shù)。Waveform是一個一維數(shù)組,它包含寫到輸出通道上的模擬電壓值,以伏為單位。 練習(xí)2-2目的:采集并顯示一個模擬信號波形。
學(xué)員將編寫一個VI程序,它使用DAQ卡采集一個信號波形,并在圖表上顯示。在本例中,把演示盒上的模擬輸入CH1接到函數(shù)發(fā)生器的正弦波輸出端口上。
前面板: - 打開一個新建前面板窗口,并照下圖創(chuàng)建一個前面板程序。
“采樣數(shù)”控制欄定義采樣點數(shù),而“采樣/秒”控制欄定義采樣率。
框圖程序:
- 返回前面板窗口,輸入各控制欄數(shù)值,并運行程序。圖表窗口將繪出模擬信號波形。試用不同的采樣率和采樣點數(shù),觀察波形的差別。
(練習(xí)2-2結(jié)束)
第五節(jié) 掃描多個模擬輸入通道AI Acquire Waveforms程序從多個輸入通道以指定的采樣率采集指定的采樣點數(shù),并將采樣結(jié)果數(shù)據(jù)送回到計算機。Channels控制欄指定要采樣的多個通道的編號,各個通道號間以逗號隔開,例如1,2,4。控制欄Number of samples/ch是每個通道要采集的采樣點數(shù)。Scan rate是每個通道每秒鐘的采樣點數(shù)即采樣率。Waveform是一個二維數(shù)組,包含模擬輸入信號電壓數(shù)值,以伏為單位。Actual scan period是實際采樣率的倒數(shù),由于計算機硬件的不同,實際采樣率與指定的采樣率可能有微小差異。
練習(xí)2-3目的:使用簡單I/O程序來執(zhí)行掃描多個通道的數(shù)據(jù)采集工作。
學(xué)員將創(chuàng)建一個VI程序,它掃描兩個不同通道的模擬信號波形,并將它們分別在圖表上繪出。在本例中,把Demo Box的模擬輸入通道CH1接到正弦波/三角波輸出口,而模擬輸入通道CH2接到方波輸出口。
前面板:
- 按照下圖創(chuàng)建前面板程序,它有兩個輸入通道,可同時顯示兩個波形。
框圖程序:

創(chuàng)建如上圖所示框圖程序,它調(diào)用了如下的功能模塊:
AI Acquire Waveforms子程序(在Data Acquisition>Analog Input子模板)。在本例中,它在通道1和通道2以采樣率10000Hz采樣1000個點。
Index Array子程序(在Array子模板),在本例中,把二維數(shù)組的第0列定義為通道1的采集數(shù)據(jù),第1列定義為通道2的采集數(shù)據(jù)。
Write to Spreadsheet File子程序(在File I/O子模板)。在本例中,把通道1和通道2的數(shù)據(jù)寫入數(shù)據(jù)文件(spreadsheet file)。
- 將演示盒上的模擬輸入通道1與方波發(fā)生器連接;模擬通道2與正弦波發(fā)生器相連接。運行該程序,在圖表上將顯示輸入的兩個數(shù)據(jù)波形。
(練習(xí)2-3結(jié)束)。
第六節(jié) 連續(xù)數(shù)據(jù)采集連續(xù)數(shù)據(jù)采集,或者說實時數(shù)據(jù)采集,是在不中斷數(shù)據(jù)采集過程的情況下不斷地向計算機返回采集數(shù)據(jù)。開始數(shù)據(jù)采集后,DAQ卡不斷地采集數(shù)據(jù)并將它們存貯在指定的緩沖區(qū)中(circular buffer),然后LabVIEW每隔一段時間將一批數(shù)據(jù)送入計算機進行處理。如果緩沖區(qū)放滿了,DAQ卡就會又重新從內(nèi)存起始地址寫入新數(shù)據(jù),覆蓋原來的數(shù)據(jù)。這個過程一直持續(xù),直到采集到了指定數(shù)目的數(shù)據(jù)點,或者LabVIEW主動中止了采集過程,或者程序出現(xiàn)錯誤。這種工作方式對于需要把數(shù)據(jù)存入磁盤或者觀察實時數(shù)據(jù)很有用。
練習(xí)2-4目的:調(diào)用中級功能模塊程序執(zhí)行連續(xù)數(shù)據(jù)采集工作。
學(xué)員將驗證一個連續(xù)數(shù)據(jù)采集程序,在本例中,把模擬輸入通道CH1接到正弦/三角波輸出口。
前面板:- 打開Continuous Acquisition and Chart程序。
- 緩沖區(qū)的大小即數(shù)據(jù)存貯內(nèi)存的大小用“緩沖大小”來指定,同時還用“一次讀入的掃描”來指定每次從內(nèi)存讀取的數(shù)據(jù)量,用“掃描剩余數(shù)據(jù)”顯示內(nèi)存中尚未讀取的采樣數(shù)據(jù)個數(shù)。
框圖程序:
- 驗證上圖所示的框圖程序。它調(diào)用了下面的功能模塊:
AI Configure程序(在Data Acquisition>Analog Input子模板)。設(shè)置設(shè)備編號。通道號和數(shù)據(jù)緩沖區(qū)大小。
AI Start程序,用指定的采樣率,以后臺工作的方式開始連續(xù)數(shù)據(jù)采集過程。
AI Read程序,在條件循環(huán)中連續(xù)采集指定數(shù)目的采樣點,并返回數(shù)據(jù)到計算機。
AI Clear程序,停止數(shù)據(jù)采集,釋放所有資源。
- 運行上述程序,觀察結(jié)果。在本程序中,AI Read子程序的每次讀取的采樣點數(shù)取決于設(shè)定值和內(nèi)存中未讀取的采樣點數(shù)的比較結(jié)果,取它們中的較大者。
(練習(xí)2-4結(jié)束)。
第三課 儀器控制第一節(jié) 概述本課程介紹使用LabVIEW來進行儀器控制的各種方法。要求學(xué)生學(xué)會串行I/O、GPIB I/O和VISA I/O的使用方法,同時也可以驗證LabVIEW本身提供的儀器驅(qū)動程序。 本課程的實驗設(shè)備要求一塊已安裝的GPIB卡,一臺GPIB儀器以及LabVIEW開發(fā)系統(tǒng)。
第二節(jié) 串行通訊串行通訊是一種常用的數(shù)據(jù)傳輸方法,它用于計算機與外設(shè),例如一臺可編程儀器,或者與另外一臺計算機之間的通訊。串行通訊中發(fā)送方通過一條通訊線,一次一個字節(jié),把數(shù)據(jù)傳送到接收方。
由于大多數(shù)電腦都有一至兩個串行通訊接口,因此,串行通訊非常流行。許多GPIB儀器也都有串行接口。然而,串行通訊的缺陷是一個串行接口只能與一個設(shè)備進行通訊。 一些外設(shè)需要用特定字符來結(jié)束傳送給它們的數(shù)據(jù)串。常用的結(jié)束字符是回車符、換行符或者分號。具體可以查閱設(shè)備使用手冊以決定是否需要一個結(jié)束符。 在LabVIEW功能模板的Instrument I/O>Serial程序庫中包含進行串行通訊操作的一些功能模塊: - Serial Port Init VI模塊用于初始化所選擇的串行口。Flow control設(shè)置握手方式的參數(shù)。Buffer size設(shè)置程序分配的輸入/輸出緩沖區(qū)的大小。Port number決定通訊接口地址。Baud rate, data bits,stop bits和parity等設(shè)置通訊參數(shù)。
- Serial port write VI模塊把String to write中的數(shù)據(jù)寫到port number指定的串行接口中。
- Serial port read VI模塊從Port number指定的串行接口中讀取requested byte count指定的字符個數(shù)。
- Bytes at serial port VI模塊計算由Port number指定的串行接口的輸入緩沖區(qū)中存放的字節(jié)個數(shù),并將該數(shù)值存放于Byte count中。
在下面的實例中,實現(xiàn)從一臺串行儀器中讀取測量值。首先,用Serial Port Init模塊初始化串行接口,然后,用Serial Port Write模塊把命令參數(shù)發(fā)送給儀器,接著用Bytes at Serial Port模塊查明在串行輸入緩沖區(qū)中已經(jīng)讀入的字節(jié)個數(shù),最后用Serial Port Read模塊讀取儀器數(shù)據(jù)。 第三節(jié) IEEE 488(GPIB)概述GPIB程序庫中包括IEEE 488.2應(yīng)用程序和傳統(tǒng)的GPIB應(yīng)用程序。GPIB 488.2應(yīng)用程序中增加了IEEE 488.2兼容性,具有IEEE 488.2的功能。然而,在本課程中,我們只討論傳統(tǒng)的GPIB應(yīng)用程序。 惠普公司在60年代末和70年代初開發(fā)了GPIB通用儀器控制接口總線標準。IEEE國際組織在1975年對GPIB進行了標準化,由此GPIB變成了IEEE 488標準。術(shù)語GPIB,HP-IB和IEEE 488都是同義詞。GPIB的原始目的是對測試儀器進行計算機控制。然而,GPIB的用途十分廣泛,現(xiàn)在已廣泛用于計算機與計算機之間的通訊,以及對掃描儀和圖像記錄儀的控制。 GPIB是一個數(shù)字化的24線并行總線。它包括8條數(shù)據(jù)線,5條控制線(ATN、EOI、IFC、REN和SRQ),3條握手線和8條地線。GPIB使用8位并行、字節(jié)串行的異步通訊方式。也就是說,所有字節(jié)都是通過總線順序傳送,傳送速度由最慢部分決定。由于GPIB的數(shù)據(jù)單位是字節(jié)(8位),數(shù)據(jù)一般以ASCII碼字符串方式傳送。 有三種方式來標明傳送數(shù)據(jù)結(jié)束。通常,GPIB包括一根連接線(EOI),用來傳送數(shù)據(jù)完畢信號。或者,也可以在數(shù)據(jù)串結(jié)束處放入一個特定結(jié)束符(EOS)。有些儀器用EOS方法代替EOI信號線方法,或者兩種方法一起使用。還有一種方法,聽者(數(shù)據(jù)接收方)可以計數(shù)已傳送的數(shù)據(jù)字節(jié),當達到限定的字節(jié)數(shù)時停止讀取數(shù)據(jù)。只要EOI,EOS和限定字節(jié)數(shù)的邏輯“或”值為真,數(shù)據(jù)傳送就停止。一般字節(jié)計數(shù)法作為缺省的傳送結(jié)束方法,典型的字節(jié)數(shù)限定值等于或大于需要讀取的數(shù)據(jù)值。 每個設(shè)備,包括計算機接口卡,必須有一個0到30之間的GPIB地址。一般GPIB接口板設(shè)置為地址0,儀器的GPIB地址從1到30。GPIB有一個控者(你的電腦)來控制總線。在總線上傳送儀器命令和數(shù)據(jù),控者尋址一個講者,一個或者多個聽者。數(shù)據(jù)串在總線上從講者向聽者傳送。LabVIEW的GPIB程序包自動處理尋址和大多數(shù)其他的總線管理功能。
GPIB軟件包: LabVIEW在Instrument I/O功能模板的GPIB和GPIB 488.2子模板下有許多GPIB通訊功能子程序模塊,這些模塊在工作平臺上可以調(diào)用低層的488.2驅(qū)動軟件。大多數(shù)的GPIB應(yīng)用程序只需要從儀器讀寫數(shù)據(jù)串。下面討論傳統(tǒng)的GPIB Write/Read子程序模塊。 GPIB Write模塊把data string中的數(shù)據(jù)寫入address string指定的設(shè)備中。Mode指定如何結(jié)束GPIB寫入過程,如果在timeout ms指定的時間內(nèi)操作未能完成,則放棄此次操作。Error In和Error Out字符串與出錯處理程序配合使用,檢測可能的出錯情況。Status是16位的布爾邏輯數(shù)組,每個元素代表GPIB控者的一種狀態(tài),詳見本課程的稍后部分。

在上圖程序中,GPIB WRITE模塊把“VDC;MEAS1?;”字符串寫入地址=2的GPIB設(shè)備中,本實例采用缺省值MODE=0,timeout ms=25000。 GPIB READ模塊從address string指定地址的GPIB設(shè)備中讀取由byte count指定的字節(jié)數(shù),用戶可以使用Mode參數(shù)指定結(jié)束讀取的條件,與byte count一起使用。讀取的數(shù)據(jù)由data string返回。 用戶必須把讀取的字符串轉(zhuǎn)換成數(shù)值數(shù)據(jù),才能進行數(shù)據(jù)處理,例如進行曲線顯示。Error In和Error Out是出錯指示數(shù)簇。 GPIB READ模塊遇到下列情況之一則中止讀取數(shù)據(jù):(1)程序已經(jīng)讀取了所要求的字節(jié)數(shù)。(2)程序檢測到一個錯誤。(3)程序操作超出時限。(4)程序檢測到結(jié)束信息(由EOI發(fā)出)。(5)程序檢測到結(jié)束字符EOS。
 如左圖所示的程序中,GPIB Read從地址=2的設(shè)備中讀取20個字節(jié)的數(shù)據(jù)。該程序使用了缺省值MODE=0,TIMEOUT MS=25000。在本例中,如果讀夠了20個字節(jié),或者檢測到EOI,或者超出25000ms時間,讀取過程將結(jié)束。
練習(xí)3-1目的:使用GPIB子程序模塊與GPIB設(shè)備通訊。
 學(xué)員可以建立一個與任何GPIB儀器通訊的程序。本例采用傳統(tǒng)的GPIB子程序與指定儀器進行GPIB讀寫操作。命令行參數(shù)“*idn?”適用于大多數(shù)IEEE 488.2兼容儀器,它要求儀器返回其標識符。
前面板: - 從FILE菜單中選擇NEW打開一個新面板。
- 建立上圖所示的控制和顯示(請記住,從程序框圖中,選擇相應(yīng)的功能模塊,再選擇Create Control或者Create Indicator,可以產(chǎn)生所有的控制和顯示)。
- 從“寫入數(shù)據(jù)”控制欄中輸入“*idn?”,在“字節(jié)計數(shù)”中輸入數(shù)值100。
程序框圖: -

打開框圖編程窗口。 - 創(chuàng)建如上圖所示的框圖子程序模塊。
GPIB Write功能模塊(在Instrument I/O::GPIB子模板)。該模塊把字符串寫入GPIB儀器。 GPIB Read功能模塊(在Instrument I/O::GPIB子模板)。該模塊從GPIB儀器中讀取數(shù)據(jù)字符串。 General Error Handler功能模塊(在TIME & DIALOG子模板)。該模塊檢查出錯報告字符串,如果發(fā)現(xiàn)錯誤,則顯示一個對話框。
- 返回到前面板,并運行該程序。在“讀出數(shù)據(jù)”顯示欄中將顯示儀器的標識字符串,如果無數(shù)據(jù)返回,而接收到一個GPIB出錯信息,EABO,或者error=6,這就表示你的儀器不能讀命令參數(shù)“*idn?”.請查閱儀器的使用手冊以找出合適的相應(yīng)命令。
- 把上述程序以GPIB.vi的名字保存,然后關(guān)閉。
(練習(xí)3-1結(jié)束)。
第四節(jié) VISA編程VISA是虛擬儀器軟件結(jié)構(gòu)體系(Virtual Instrument Software Architecture)的簡稱。VISA是在所有LabVIEW工作平臺上控制VXI、GPIB、RS-232以及其他種類儀器的單接口程序庫。VISA是由組成VXI plug&play系統(tǒng)聯(lián)盟的35家最大的儀器儀表公司所統(tǒng)一采用的標準。采用了VISA標準,就可以不考慮時間及儀器I/O選擇項,驅(qū)動軟件可以相互相容使用。VISA包含的功能模塊在Instrument I/O>VISA子模板中。大多數(shù)的VISA功能模塊使用了VISA session參數(shù),該參數(shù)在Control模板的Path and Refnum子模板中。 
VISA session是每次程序操作過程的唯一邏輯標識符。它標識了與之通訊的設(shè)備名稱以及進行I/O操作必需的配置信息。它由VISA Open功能模塊產(chǎn)生,提供給VISA主功能模塊使用。VISA Open功能模塊產(chǎn)生標識信息,然后把它傳送給下一個VISA功能模塊。這樣簡化了數(shù)據(jù)流編程。它相似于文件I/O模塊的參考名功能。 VISA session的缺省值是Instr。如果需要,可以打開VISA session選擇如下值:Instr、 GPIB Instr、 Serial Instr和VISA/GPIB-VXI RBD Instr。 下面介紹常用的VISA功能模塊:VISA Open、VISA Write、VISA Read和VISA Close。 VISA Open根據(jù)Resource Name和VISA session與指定的設(shè)備建立通訊。模塊返回VISA session標識值,使用該標識值就可以調(diào)用此設(shè)備的任何其他的操作功能。Error in和Error out字符串包含出錯信息。 Resource Name包含I/O接口類型以及設(shè)備地址等信息。其編程語法如下表所示:
| | | | | GPIB[board]::primary address [::secondary address][::INSTR] | | VXI [board]::VXI logical address [::INSTR] | | GPIB-VXI [board][::GPIB-VXI primary address]::VXI logical address [::INSTR] |
關(guān)鍵詞GPIB用于同GPIB設(shè)備建立通訊,關(guān)健詞VXI通過嵌入式或MXI總線控制器同VXI儀器建立通訊,關(guān)鍵詞GPIB-VXI用于GPIB-VXI控制器,關(guān)鍵詞SERIAL用于異步串行設(shè)備通訊。 在上例中,VISA open模塊通過儀器描述字符串“GPIB::2::0::INSTR”與主地址=2的GPIB設(shè)備建立通訊。 VISA Write模塊把write buffer中的字符串寫入VISA session指定的設(shè)備。dup VISA session向下傳送相同的session值。在UNIX工作平臺上,數(shù)據(jù)同步寫入;在其他工作平臺上,數(shù)據(jù)異步寫入。return count返回實際傳送的字節(jié)數(shù)。error in和error out字串包含出錯狀況。 VISA Read讀取由VISA session指定設(shè)備中的數(shù)據(jù)。byte count指明讀入read buffer中的字節(jié)數(shù)。磅VISA session向下傳送相同的session值。在UNIX工作平臺上,數(shù)據(jù)同步讀入;在其他工作平臺上的數(shù)據(jù)異步讀入。return count返回實際傳送的字節(jié)數(shù)。error in和error out字串包含出錯狀況。 VISA Close關(guān)閉由VISA session指定設(shè)備的通訊過程,釋放系統(tǒng)資源,error in和error out字串包含出錯狀況。
練習(xí)3-2目的:用VISA模塊與GPIB設(shè)備或者串行設(shè)備通訊。
本練習(xí)使用VISA功能模塊向指定設(shè)備(GPIB或者串行設(shè)備)讀寫數(shù)據(jù)。命令參數(shù)“*idn?”適用于大多數(shù)儀器,無論是GPIB通訊或者串行通訊。它返回儀器的標識字串。本課中所有VISA練習(xí)都是根據(jù)Fluke 45萬用表編程。
前面板: - 打開一個新的前面板,并且照上圖建立控制和指示件。VISA session控制件可以在CONTROLS模板中的Path&Refnum子模板中找到。也可以通過VISA Open功能模塊創(chuàng)建。
- Resource Name控制件應(yīng)包含下列值:
*對于地址=2的GPIB儀器:“GPIB::2::0::INSTR” *對于COM1上的串行儀器:“ASRL 1::INSTR”
- 在Write Buffer字串控制欄中輸入“*idn?”,在Byte Count控制欄中輸入100。
程序框圖:

按照上圖選擇創(chuàng)建框圖對象并連接線。調(diào)用了下面的模塊:
VISA Open功能模塊(在Instrument I/O::VISA子模板)。此模塊打開通訊過程,并產(chǎn)生VISA session參數(shù)。
VISA Write功能模塊(在Instrument I/O::VISA子模板)。此模塊把數(shù)據(jù)串寫入指定設(shè)備。
VISA Read功能模塊(在Instrument I/O::VISA子模板)。此模塊從指定設(shè)備中讀入數(shù)據(jù)。
VISA Close功能模塊(在Instrument I/O::VISA子模板)。此模塊關(guān)閉VISA Session。
- 返回前面板并運行該程序。VISA session控制件保持為設(shè)置值INSTR。如果要修改此參數(shù),可以打開VISA session控制件,選擇VISA Class值。根據(jù)Resource name的設(shè)置值,可以選擇與GPIB或者串行設(shè)備進行通訊。
- 以VISA.vi文件名保存該程序,并關(guān)閉程序。
(練習(xí)3-2結(jié)束)
第五節(jié) 用LabVIEW編寫儀器驅(qū)動程序儀器的驅(qū)動軟件是專門控制某種儀器的軟件。LabVIEW因為具有面板控制的概念,特別適合于創(chuàng)建儀器的驅(qū)動程序。軟件的前面板部分可以模擬儀器的前面板操作。軟件的框圖部分可以傳送前面板指定的命令參數(shù)到儀器以執(zhí)行相應(yīng)的操作。當建立了一個儀器的驅(qū)動程序后,就不必再記住儀器的控制命令,而只要從前面板輸入簡單數(shù)據(jù)即可。僅僅擁有控制單臺儀器的軟件,意義并不大。其真正意義在于可以把儀器驅(qū)動程序作為子程序調(diào)用,與其他子程序一道組成一個大控制程序,從而控制整個系統(tǒng)。 儀器驅(qū)動程序模板: 在LabVIEW>EXAMPLES>INSTR>INSTTMPL.LLB程序庫中,有許多VISA儀器驅(qū)動程序模板程序。這些模板程序是適用于大多數(shù)儀器的驅(qū)動程序,并且是LabVIEW儀器驅(qū)動程序開發(fā)的基礎(chǔ)。這些模板程序符合儀器驅(qū)動程序的標準,并且每個程序都有指導(dǎo)幫助指令以便修改程序以適應(yīng)某種儀器。
第六節(jié) 驗證儀器驅(qū)動軟件下面驗證HP 34401A萬用表驅(qū)動軟件。如果有一只HP 34401A萬用表,就可以運行該程序。否則只能學(xué)習(xí)程序設(shè)計方法。 從LabVIEW>EXAMPLES>INSTR>HP34401A.LLB中打開HP34401A Getting Started VI程序。 該程序是一個儀表驅(qū)動應(yīng)用程序。其前面板模仿儀表的前面板,從Help菜單中的Show Help可以打開幫助窗口,然后把光標指向程序前面板的各個控制件或指示件,就會出現(xiàn)前面板上鼠標所指對象的描述信息。當編寫或使用這些儀器驅(qū)動程序時,檔案資料是非常重要的,這些程序可以用來設(shè)置儀器參數(shù)和讀取儀器數(shù)據(jù)。本程序是采用低層的儀器驅(qū)動模塊子程序編寫的。這些低層子程序用到了前面我們所學(xué)習(xí)的VISA功能子模塊。
前面板: 框圖程序:
上述框圖程序使用了如下的子程序: HP34401A Initialize VI子程序(LabVIEW>EXAMPLES>INSTR> HP34401A.LLB)。這個子程序用于與儀器建立通訊并產(chǎn)生一個VISA session標識字串。
HP34401A Application Example VI子程序(LabVIEW>EXAMPLES>INSTR> HP34401A.LLB)。這個子程序關(guān)閉VISA session過程。
練習(xí)3-3目的:在練習(xí)3-2的基礎(chǔ)上創(chuàng)建一個簡單的儀器驅(qū)動程序。
在本練習(xí)中,學(xué)員將學(xué)會創(chuàng)建儀器驅(qū)動程序的初始化、應(yīng)用實例和關(guān)閉子程序模塊。這些子程序已在前面討論過。
前面板:
框圖程序:
如圖所示,選擇第一個虛線方框部分,然后從EDIT菜單下調(diào)用SubVI From Selection功能。這個操作將根據(jù)所選擇的部分創(chuàng)建一個子程序,有些程序?qū)ο笈帕锌赡軙獊y,所以需要重新整理框圖。
再選擇上圖的第二個虛線方框部分,用SubVI From Selection功能創(chuàng)建一個子程序。
最后,再選擇上圖的第三個虛線方框部分,用SubVI From Selection功能創(chuàng)建一個子程序。
- 當創(chuàng)建了上述所有儀器驅(qū)動子程序后,雙點上述每個子程序圖標,在Seminar.llb目錄下把它們分別保存為Instrument Initialize.vi,Instrument Application.vi,和Instrument Close.vi子程序。

完成了創(chuàng)建所有子程序后,把它們存入Seminar.llb,并且修改缺省的圖標形式。使框圖程序如上圖所示:
- 返回前面板窗口,在Resource Name字符串中輸入“GPIB::2::0::INSTR”,運行此程序。如果你的儀器的地址不是2,則把地址換成相應(yīng)的數(shù)值。同樣,要儀器執(zhí)行你給出的命令,只需在Write Buffer內(nèi)輸入相應(yīng)的數(shù)值。同樣,要儀器執(zhí)行你給出的命令,只需在Write Buffer內(nèi)輸入相應(yīng)的命令字串。
- 把該程序以Instrument Driver.vi文件名保存,并關(guān)閉程序。
(練習(xí)3-3結(jié)束)
第四課 分析軟件第一節(jié) 概述LabVIEW的Advanced Analysis軟件庫包括數(shù)值分析、信號處理、曲線擬合以及其他軟件分析功能。該軟件庫是建立虛擬儀器系統(tǒng)的重要工具,除了具有數(shù)學(xué)處理功能外,還具有專為儀器工業(yè)設(shè)計的獨特的信號處理與測量功能。 除了Advanced Analysis軟件庫,NI公司還提供一些附加的分析工具庫,借助這些分析軟件包,LabVIEW可以具有更加強大的分析功能。這些分析工具庫包括: - 聯(lián)合時頻分析(Joint Time Frequency Analysis)工具箱:用于分析常規(guī)傅里葉變換不易處理的時-頻特性。
- G Math工具箱:提供了擴展的數(shù)學(xué)功能,如公式分析、求根植、畫輪廓線等。
- 數(shù)字濾波器設(shè)計工具箱
詳細的情況請查閱相關(guān)資料,或者與我公司聯(lián)系。
在本課程中,用戶可以學(xué)習(xí)如何建立一個簡單實用的頻譜分析儀,如何使用數(shù)字濾波器,如何執(zhí)行簡單的曲線擬合功能等。本課程需要使用LabVIEW完全開發(fā)系統(tǒng)。
第二節(jié)、高級分析功能程序
在LABVIEW 5.0以前的版本,高級分析程序庫被安排在函數(shù)模板的一個名為Advanced Analysis的子模板中。而現(xiàn)在流行的LabVIEW 5.1版則把它分成兩個子模板。 1)、Signal processing子模板。其中包括: 信號發(fā)生。 時域信號。 頻域信號。 測量。 數(shù)字濾波器。 窗函數(shù)。 2)、Mathematics子模板。其中包括: 公式框節(jié)點。 1D and 2D Evaluation。 微積分(Calculus)。 概率和統(tǒng)計。 曲線擬合。 線性代數(shù)。 Array Operations。 優(yōu)化處理。 Zeroes。 數(shù)字函數(shù)。
第三節(jié) 信號產(chǎn)生該軟件庫可以為網(wǎng)絡(luò)分析或仿真產(chǎn)生多種常用信號。它可以和NI公司的DAQ卡一起使用,以產(chǎn)生模擬輸出信號。 在模擬電路范圍,信號頻率以Hz或周期來測量,但在數(shù)字系統(tǒng)中我們使用數(shù)字頻率,它是模擬頻率與采樣頻率之比,如下所示:
[ i]數(shù)字頻率[ i]=[ i]模擬頻率[ i]/[ i]采樣頻率
在許多信號產(chǎn)生子程序模塊中,我們使用數(shù)字頻率,因為難以確定采樣頻率。為了得到模擬頻率輸出,我們必須確定采樣頻率。如下面的練習(xí)所示:
練習(xí)4-1目的:產(chǎn)生一個指定頻率的正弦波。
前面板:
- 前面板包含下列控制欄:采樣點數(shù)、幅值、信號頻率、初始相位、采樣頻率。
框圖程序: Sine Wave VI子程序(在Analysis>Signal Generation子模板)。在本例中,它以采樣頻率100Hz,產(chǎn)生有200個采樣點的 Hz正弦波。
- 注意查看框圖,可以看到在連接到Sine Wave.VI程序之前,信號頻率已經(jīng)被采樣頻率相除。也就是說,Sine Wave需要輸入信號的數(shù)字頻率。
- 運行此程序,在前面板缺省值的情況下,將出現(xiàn)5Hz的正弦波。
[ i]采樣與混頻([ i]Aliasing[ i])[ i]: 在前面板把信號頻率改為90Hz,再運行此程序。結(jié)果出現(xiàn)的信號頻率卻等于10Hz。 這種現(xiàn)象叫混頻偏差(Aliasing),只在數(shù)字頻率范圍出現(xiàn)。著名的耐奎斯特采樣理論已經(jīng)說明,最高信號穩(wěn)定頻率等于采樣頻率的一半。在本例中,采樣頻率等于100Hz,所以最高信號頻率為50Hz,如果輸入頻率大于50Hz,如本例中的90Hz,它將會偏差到((N×50)-90)Hz>0,即為(100-90)=10Hz,也就是說,采樣頻率為100Hz的數(shù)字系統(tǒng)不能區(qū)分10Hz和90Hz,20Hz和80Hz,51Hz和49Hz等等。 因此,在設(shè)計數(shù)字頻譜系統(tǒng)時,我們必須保證不要讓大于1/2采樣頻率的信號進入系統(tǒng)。一旦進入了,就沒有辦法清除它們。為了防止偏差出現(xiàn),我們一般采用低通濾波器。在本例中,我們可以使用抗混頻模擬低通濾波器濾除任何大于50Hz的信號。加了濾波器以后,當采樣頻率為100Hz的系統(tǒng)內(nèi)出現(xiàn)10Hz信號時,我們就可以肯定它是10Hz而非90Hz。
(練習(xí)4-1結(jié)束)
第四節(jié) 信號處理在許多應(yīng)用場合,需要計算信號的頻譜,Advanced Analysis程序庫有許多這方面的功能模塊程序。下面的例子講述使用Amplitude and Phase Spectrum VI子程序來測量兩個頻率分量。
練習(xí)4-2目的:計算一個信號的頻譜分量。
前面板:
- 打開Compute Frequency Spectrum VI程序。輸入信號混合了兩個正弦波,一個為2Hz,另一個為10Hz。采樣頻率為100Hz,采樣點為200個 10Hz的信號幅值為2伏。2Hz的信號幅值為1伏。
框圖程序:
Amplitude and Phase Spectrum VI子程序(在Analysis>Measurement子模板)。在本例中,它計算信號的幅度有效值(RMS)。
- 運行程序。頻譜圖顯示兩個峰值,一個在2Hz,另一個在10Hz。2Hz波

形電壓有效值為0.717伏,10Hz波形電壓有效值為1.414伏,分別對應(yīng)其峰值1伏和2伏。
(練習(xí)4-2結(jié)束)
第五節(jié) 數(shù)字濾波器數(shù)字濾波器用于改變或消除不需要的波形。它是應(yīng)用最廣泛的信號處理工具之一。兩種數(shù)字濾波器分別是:FIR(有限脈沖響應(yīng))和IIR(無限脈沖響應(yīng))濾波器。FIR濾波器可以看成一般移動平均值,它也可以被設(shè)計成線性相位濾波器。IIR濾波器有很好的幅值響應(yīng),但是無線性相位響應(yīng)。
帶通、帶阻與過渡帶寬 [ i]帶通指的是濾波器的某一設(shè)定的頻率范圍,在這個頻率范圍的波形可以以最小的失真通過濾波器。通常,這個帶通范圍內(nèi)的波形幅度既不增大也不縮小,我們稱它為單位增益(0dB)。[ i]帶阻指的是濾波器使某一頻率范圍的波形不能通過。 理想情況下,數(shù)字濾波器有單位增益的帶通,完全不能通過的帶阻,并且從帶通到帶阻的[ i]過濾帶寬為零。在實際情況下,則不能滿足上述條件。特別是從帶通到帶阻總有一個過渡過程,在一些情況下,使用者應(yīng)精確說明過渡帶寬。
帶通紋波和帶阻衰減 在有些應(yīng)用場合,在帶通范圍內(nèi)放大系數(shù)不等于單位增益是允許的。這種帶通范圍內(nèi)的增益變化叫作[ i]帶通紋波。另一方面,[ i]帶阻衰減也不可能是無窮大,我們必須定義一個滿意值。帶通紋波和帶阻衰減都是以分貝(dB)為單位,定義如下:
dB=20×log([ i]A[ i]o(f)/[ i]A[ i]i(f))
其中,[ i]A[ i]o(f)和[ i]A[ i]i(f)是某個頻率等于f的信號進出濾波器的幅度值。
例如,假設(shè)帶通紋波為-0.02dB,則有: -0.02=20×log([ i]A[ i]o(f)/[ i]A[ i]i(f)) [ i]A[ i]o(f)/[ i]A[ i]i(f)=10∧(-0.001)=0.9977
可以看到,輸入/輸出波形幅度是幾乎相同的。
假設(shè)帶阻衰減等于-60dB,則有: -60=20×log([ i]A[ i]o(f)/[ i]A[ i]i(f)) [ i]A[ i]o(f)/[ i]A[ i]i(f)=10∧(-3)=0.001
輸出幅值僅是輸入幅值的千分之一。
衰減值用分貝表示時經(jīng)常不加負號,我們已經(jīng)設(shè)定它為負值。
練習(xí)4-3目的:用數(shù)字濾波器消除不需要的頻率分量
前面板: - 打開Low Pass Filter.vi程序。這個程序設(shè)計了一個低通巴特沃斯濾波器,從輸入信號中濾除10Hz分量。
框圖程序: Butterworth Filter VI子程序(在Analysis>Filters子目錄)。在本例中,采用巴特沃斯濾波器,指定濾波器階數(shù)與截止頻率,濾除輸入正弦波中的高頻分量,把輸出波形在屏幕上顯示。
- 運行該程序,改變?yōu)V波器階數(shù),觀察濾波器的效果。
(練習(xí)4-3結(jié)束)
雖然在LabVIEW中使用數(shù)字濾波器很簡便,但還是需要你對數(shù)字信號處理的理論有一個基本了解。為此,VI公司提供了一個附加的工具軟件,叫作數(shù)字濾波器設(shè)計工具箱(Digital Filter Design Toolkit)。該軟件用LabVIEW開發(fā),有很好的交互式圖形用戶界面?梢园阉O(shè)計的濾波器集成到LabVIEW、LabWindows/CVI或者其他的編程環(huán)境。
第六節(jié) 曲線擬合曲線擬合的目的是找出一系列的參數(shù)a0, a1, … …,通過這些參數(shù)最好地模擬實驗結(jié)果。下列是LabVIEW的各種曲線擬合類型:
* 線性擬合 – 把實驗數(shù)據(jù)擬合為一條直線y[ i]=a0+a1*X[ i] * 指數(shù)擬合 – 把數(shù)據(jù)擬合為指數(shù)曲線y[ i]=a0*exp(al*X[ i]) * 多項式擬合 – 把數(shù)據(jù)擬合為多項式函數(shù): y[ i]=a0+a1*X[ i]+a2*X[ i]^2… *通用多項式擬合 – 與多項式擬合相同,但可以選擇不同的算法,以獲得更好的精度和準確性。 *通用線性擬合 – 公式為y[ i]=a0+a1*f1(X[ i])+a2*f2(X[ i])…,這里y[ i]是參數(shù)a0, a1, a2…等的線性組合。通用線性擬合也可以選擇不同的算法來提高精度和準確度。例如:y=a0+a1*sin(X)是一個線性擬合。因為y與參數(shù)a0, a1有著線性關(guān)系。同樣道理,多項式擬合也總是屬于線性擬合,但是它可以采用一些特殊算法以提高擬合處理的速度和精度。 *General Levenberg-Marquardt擬合 – 把數(shù)據(jù)擬合為公式y(tǒng)[ i]=f(X[ i], a0, a1, a2…)。其中a0, a1, a2…是參數(shù)。這種方法是最通用的方法,它不需要y與a0, a1, a2…有線性關(guān)系。它可用于線性或非線性擬合,但一般用于非線性擬合,因為對于線性曲線的處理采用通用線性擬合方法更加快捷。這種方法不能保證結(jié)果一定正確,所以,有必要驗證擬合結(jié)果。
練習(xí)4-4目的:對指數(shù)關(guān)系數(shù)據(jù)進行線性擬合
前面板: - 打開Linear Curve Fit.vi程序。這個例子假設(shè)我們收集了10對實驗數(shù)據(jù)t和y,我們有理由相信它們之間有線性關(guān)系。
框圖程序:
Linear Fit子程序(在Analysis>Curve Fitting子模板)。在本例中,它把實驗數(shù)據(jù)擬合為一條直線,求出系數(shù)a和b,以滿足y[ i]=a+b*t[ i];以及實驗結(jié)果和擬合結(jié)果之間的誤差的均方根值。
- 輸入數(shù)據(jù)是一個兩維數(shù)組,是采用DAQ卡采集數(shù)據(jù)時的通用格式。我們用Index Array子程序可以分解得到兩個一維數(shù)組y[ i]與t[ i]。
- “MSE”表示誤差均方根值,誤差越小,擬合結(jié)果越好。
- 運行該程序。曲線將顯示實驗數(shù)據(jù)和擬合結(jié)果。
(練習(xí)4-4結(jié)束)
練習(xí)4-5目的:對指數(shù)數(shù)據(jù)執(zhí)行多項式擬合
前面板:
- 打開Polynomial Fit.vi程序。這個例子假設(shè)實驗數(shù)據(jù)之間為多項式關(guān)系: y[ i]=a0+a1*t[ i]+a2*t[ i]^2…
- 當多項式為一階時,有兩個參數(shù),結(jié)果是一個線性擬合,與前一個例子相同。當階數(shù)為二階時,結(jié)果是一個二階多項式帶三個參數(shù),多項式參數(shù)存放于數(shù)組a[ i]。
框圖程序: General Polynomial Fit.vi子程序(在Analysis>Curve Fitting子目錄)在本例中,把實驗數(shù)據(jù)擬合為二階多項式曲線,返回結(jié)果為擬合數(shù)據(jù),多項式系數(shù)以及擬合誤差的均方根值。
- 本例使用多項式擬合,求出了多項式系數(shù)a0,a1,a2等。一般情況下,我們總是盡可能使用最低階的多項式。
- 運行程序。將顯示實驗數(shù)據(jù)和擬合結(jié)果的數(shù)據(jù)。
(練習(xí)4-4結(jié)束)
第五課 實用工具軟件包第一節(jié) 概述NI公司致力于為用戶的虛擬儀器系統(tǒng)提供一套完整的解決方法。用戶可以獲得的資源有:NI公司以及第三方公司提供的軟件工具箱和支持軟件,用于擴展支持LabVIEW;一個世界范圍的技術(shù)支持網(wǎng)絡(luò);幫助用戶開發(fā)的系統(tǒng)集成工程師和咨詢?nèi)藛T。
第二節(jié) 常用軟件工具箱應(yīng)用程序生成器(Application Builder) 這個軟件工具箱是用于創(chuàng)建LabVIEW的可以單獨運行的應(yīng)用程序。用應(yīng)用程序生成器創(chuàng)建了可單獨運行的應(yīng)用程序后,你可以運行該程序,但不能編輯它。把你的VI程序轉(zhuǎn)換成可單獨運用程序,就可保證別人不能查閱或修改這個程序,這樣可以防止操作人員不小心修改了程序,也是將VI程序打包并派發(fā)的一個有效方法。 應(yīng)用程序生成器提供兩種運行模型供選擇。你可以創(chuàng)建一個運行引擎(run-time engine),它可以用來運行任何的VI程序;或者你可以把運行引擎與一些指定的VI程序結(jié)合起來,創(chuàng)建一個可自運行的應(yīng)用程序。
自動檢測工具箱(Automated Test Toolkit for LabVIEW) 本工具箱將最強大的測試開發(fā)和管理工具融合在一起,可以滿足建立大規(guī)模生產(chǎn)檢測系統(tǒng),或高復(fù)雜度自動確認系統(tǒng)時的各種需要。
[ i]自動檢測工具箱包含下列程序包: TestStand即時可用的測試執(zhí)行工具包:用于組織、控制和執(zhí)行你的自動化框架、確認或生產(chǎn)檢測系統(tǒng)。使用TestStand,你可以生成自己的操作界面、生成測試報告、以及按照要求順序地執(zhí)行測試過程。
IVI驅(qū)動程序庫:在這個庫中,集中了許多高性能的儀器驅(qū)動程序,便于建立先進的測試系統(tǒng)。
企業(yè)連通工具箱(Enterprise Connectivity Toolkit) 本工具箱用于跟蹤你的企業(yè)在生產(chǎn)、測試以及產(chǎn)品服務(wù)方面的研究或開發(fā)的進展。 [ i]企業(yè)連通工具箱包含下列程序包: SQL工具包:用于對多種使用SQL的當?shù)鼗蜻h程數(shù)據(jù)庫的直接訪問。這些程序使用高級語言編程的方法把通用數(shù)據(jù)庫操作變成簡單易用的操作。使用SQL工具包,你可以用30多種數(shù)據(jù)庫格式存儲、讀取或者更新數(shù)據(jù)記錄。有經(jīng)驗的數(shù)據(jù)庫用戶可以在LabVIEW的工作環(huán)境下使用完整的SQL語句。你可以把自己的測試程序直接連接到一個數(shù)據(jù)庫以存貯實驗結(jié)果或者下載測試參數(shù)。
SPC工具包:LabVIEW不僅可以監(jiān)控過程,而且還可以識別總是并且實質(zhì)性地改善過程處理的質(zhì)量。SPC工具箱是過程控制中統(tǒng)計方法應(yīng)用程序庫。使用此工具包,可以分析并跟蹤過程處理程序。該工具包除了SPC計算子程序,還包括許多應(yīng)用實例。該工具包中包括所有SPC功能子程序,共有三類 — 控制圖表、過程統(tǒng)計和pareto分析方法。每一類程序都包括分析計算方法和顯示繪圖功能。
Internet工具箱 Internet開發(fā)工具用于把VI程序轉(zhuǎn)換成可在Internet上執(zhí)行的應(yīng)用程序。使用LabVIEW再配合該工具,就可以生成在任何web瀏覽器上均可以查閱到的你自己的虛擬儀器前面板的http服務(wù)器。采用用戶查詢或者服務(wù)器自動更新的工作方式,前面板所表示的虛擬儀器會自動更新內(nèi)容。由于程序內(nèi)裝了網(wǎng)絡(luò)服務(wù)功能,虛擬儀器程序可以對連接到它的多個客戶要求作出響應(yīng),為每個用戶連續(xù)地更新顯示;蛘,如果已經(jīng)運行了網(wǎng)絡(luò)服務(wù)程序,你可以采用工具箱內(nèi)的庫函數(shù)把虛擬儀器程序轉(zhuǎn)換成圖像文件,在html網(wǎng)頁顯示。你還可以在網(wǎng)絡(luò)化程序內(nèi)加入訪問密碼等級,以限制其他用戶對虛擬儀器面板和數(shù)據(jù)的訪問級別。 此外,該工具箱還包括用G圖形編程方法建立通用網(wǎng)關(guān)接口程序。這樣就可以根據(jù)用戶在網(wǎng)頁上的輸入動態(tài)地決定連接方式。該工具箱還包含一些庫函數(shù)用于在虛擬表程序內(nèi)加入e-mail電子郵件和ftp文件傳送功能。
PID工具箱 PID控制功能工具箱給LabVIEW程序加入復(fù)雜的控制算法。使用該軟件包,你可以快速建立數(shù)據(jù)采集與控制系統(tǒng)。將PID控制工具箱與LabVIEW的算術(shù)與邏輯功能相結(jié)合,可以快速生成自動控制程序。 PID程序包帶有許多誤差反饋及外部復(fù)位的PID算法。程序同時含有超前-滯后補償和設(shè)置點斜率生成?刂茀(shù)包括多重循環(huán),前饋,最小/最大偏差,和斜率/偏差。PID算法參數(shù)包括無緩沖自動/手動傳送,不可處復(fù)位終結(jié),正向/反向運行,手動輸出調(diào)節(jié),和運行/暫停開關(guān)。 使用PID控制工具箱,用戶可以設(shè)計PID算法的控制策略,可以將輸入/輸出數(shù)據(jù)的單位從工程單位轉(zhuǎn)換成百分比,可以設(shè)置PID算法的時間,最后,還可以針對閉環(huán)(最終增益)和開環(huán)(步進測試)方式調(diào)節(jié)過程參數(shù)。
Picture Control工具箱 該工具箱是一個多功能的圖形軟件包,用于生成前面板顯示。該工具箱在LabVIEW系統(tǒng)內(nèi)加入圖形控制和相應(yīng)的程序庫。用戶可以應(yīng)用這些程序建立一些框圖程序,以動態(tài)地建立圖像。使用這些工具軟件,用戶可以在前面板中加入一些新的圖形顯示。比如特殊的棒形圖,餅形圖表,和Smith圖表。用戶甚至可以加入一些動畫功能,如機器手,測試儀器,UUT,或者二維實體顯示等。在LabVIEW 5.1版的完全開發(fā)版本中已經(jīng)包括了這個工具箱。
大型應(yīng)用程序的開發(fā)和有效性規(guī)則 當開發(fā)大型應(yīng)用程序時,開發(fā)人員必須面對質(zhì)量標準,源代碼控制,復(fù)合測量等。LabVIEW有一個軟件工具箱可以查詢這方面的問題。該工具箱針對包含多個開發(fā)人員的開發(fā)小組,或者開發(fā)大型應(yīng)用程序的單個開發(fā)人員,或者需要遵循嚴格質(zhì)量標準的G圖形編程人員提供實用工具。 大型LabVIEW應(yīng)用程序通常都必須遵守嚴格的質(zhì)量標準,包括ISO9000,F(xiàn)DA標準,歐洲認證,以及其他國際標準。本程序包討論了針對圖形編程人員為了達到上述質(zhì)量標準而必須遵循的步驟。 這一部分包含在LabVIEW的專業(yè)版本中。
第三節(jié) 分析工具軟件HIQ HIQ是一個交互式的工具環(huán)境,可以對數(shù)學(xué),科學(xué)計算和工具問題的數(shù)據(jù)進行組織,可視化處理和組成數(shù)據(jù)文件。通過使用HIQ,可以建立交互式ActiveMathTM應(yīng)用程序和數(shù)據(jù)可視化應(yīng)用程序。HIQ集成了數(shù)學(xué)運算用戶接口控制,數(shù)值分析,矩陣運算,以及在易于使用的交互式筆記本方式工具環(huán)境下的二維,三維和四維圖形處理,在些工作環(huán)境下,問題和解答都以數(shù)學(xué)描述語言表達。 HIQ有兩類不同的方法用于數(shù)值分析和數(shù)據(jù)可視化處理—一種是交互式方法而另一種是編程方式。交互式方法可以處理常微分議程,數(shù)值積分,非線性方程等。交互式工具軟件包括Data Editor,二維或三維的Graph Editor和Problem Solvers。用戶可以用Problem Solver Notebooks交互式地處理問題。首先,在Problem Solver Noteboods的GUI(圖形用戶接口)下輸入功能函數(shù)和相關(guān)參數(shù),然后,就可以在不需編程的情況下運行該函數(shù),獲得解答,該工作環(huán)境使用在Data Editor中定義的矢量和矩陣數(shù)據(jù)。此外,該工作環(huán)境也可以產(chǎn)生二維或三維圖形并可以生成HIQ描述性語言程序。如果你需要解決一個特定應(yīng)用總是或者有較多關(guān)聯(lián)的問題,則可以采用HIQ描述性腳本編程語言。采用編程方法,可以聯(lián)接數(shù)據(jù)、圖形、文本、Problem Solver Noteboods生成的描述性腳本語言程序,以及600多個分析和數(shù)據(jù)可視化功能函數(shù)。 使用LabVIEW和HIQ,你可以先假設(shè)并建立數(shù)學(xué)模型,然后,建立控制循環(huán)程序采集實驗數(shù)據(jù)并觀察處理過程,再進行交互式的數(shù)據(jù)可視化處理并生成實驗報告。LabVIEW和HIQ可以共享上述數(shù)據(jù)結(jié)果,它們集成了科學(xué)處理和工程處理的必需工具。
信號處理套件(Signal Processing Suite) 該軟件包提供給了用戶信號處理的功能和高級的數(shù)字信號處理工具。
[ i]信號處理套件包含下列程序包: 數(shù)字濾波器設(shè)計工具箱Digital Filter Design Toolkit):用于交互式地設(shè)計數(shù)字濾波器。該工具箱的圖形用戶接口(GUI)是用于有限脈沖響應(yīng)(FIR)和無限脈沖響應(yīng)(IIR)濾波器的通用設(shè)計工具。濾波器的設(shè)計是通過交互式輯幅度響應(yīng)圖形或者零極性線圖,濾波器的輸出包括濾波器系數(shù),傳遞函數(shù),脈沖和階躍響應(yīng)。
三分之一倍頻程分析工具箱(Third-Octave Analysis Toolkit):用于三分之一倍頻程分析。該工具箱提供一個GUI用于三分之一倍頻程分析和數(shù)據(jù)采集,并且遵守ANSI S1.11-1986標準。有了這個工具箱,就可以快速簡單地測量聲音,振動,和噪聲信號?梢栽O(shè)置成一到四個輸入通道,并且?guī)в锌删幊痰拇疤幚,?quán)重,和平均功能。
聯(lián)合時頻分析工具箱(Joint Time Frequency Analysis (JTFA) Toolkit):用于分析時變信號。該工具箱增強了計算機處理時變信號的能力。它包括Gabor頻譜圖,針對時變頻率的JTFA算法,以及其他常用算法,如Wigner-Ville和Choi-Williams算法等。
動態(tài)信號分析儀(VirtualBench-DSA):這是一個動態(tài)信號分析程序。該軟件與AT/EISA或者NuBUS總線動態(tài)信號采集卡相結(jié)合,可以構(gòu)成高質(zhì)量、低成本的虛擬儀器系統(tǒng)。該軟件有一個易于使用的GUI,設(shè)置測量參數(shù)可以測出功率譜,幅度譜,相關(guān)性,暫態(tài)捕捉,交叉譜,和總諧波失真。此外,通過使用DAQ卡上的模擬輸出功能,還可以進行網(wǎng)絡(luò)和頻率響應(yīng)測量,也可以把該軟件用作低頻示波器同時在時域和頻域觀察信號?傊琕irtualBench-DSA—是一個理想的低頻信號測量與頻譜分析工具,非常適合于聲音信號,機械振動和噪音的分析。
G Math G Math工具箱是一個用于算術(shù)運算,數(shù)據(jù)分析和數(shù)據(jù)可視化的多用途軟件包。該工具箱具有用圖形編程方法來解決高級數(shù)學(xué)計算總是的功能。此外,該工具箱還可以在LabVIEW程序前面板中加入議程和數(shù)據(jù)可視化。G Math工具箱包括100多個高級算術(shù)功能程序。例如常微分方程,求解根值,最優(yōu)化,積分,微分,變換和函數(shù)等。該工具箱可以應(yīng)用于許多場合,如過程控制模擬,生產(chǎn)制造與成本最優(yōu)化,以及機械系統(tǒng)的模擬。
圖像處理工具(Image Processing) 該圖像處理軟件可以提供圖像處理功能和機器視學(xué)功能,它包括400多個圖像函數(shù)和交互式的圖像處理窗口。圖像可以是一維、二維或者三維。該軟件與NI公司的IMAQ圖像采集硬件和DAQ硬件卡一起使用。它們結(jié)合起來,可以給工廠計算機控制的機器提供視覺,對產(chǎn)品的位置、尺寸、標識符和質(zhì)量做出精確判斷。此外,由于該軟件的柔軟靈活性和可擴展性,它還可以應(yīng)用于許多研究領(lǐng)域,從圖像算法的開發(fā)一直到實驗室自動化。 該軟件有兩種形式—基本版本和提高版本。基本版本具有圖像的控制和處理功能,包含進行圖像采集、顯示、文件管理、區(qū)域選擇及圖像控制所必需的工具。而提高版本包含400多種高級圖像處理功能,可進行高級圖像處理、機器視覺化和分析圖像。圖像數(shù)據(jù)可進行編輯或轉(zhuǎn)換,在進行物體形狀檢測時可以采用二進制算法、灰度等級、密度測量、邊緣檢測、立體開頭檢測、頻率濾波,以及高級的形狀處理函數(shù),一個實物的形狀分析需要計算50多個參數(shù)以確定物體的外形特征。(全文完)
完整的Word格式pdf格式文檔51黑下載地址:
LV教材.doc
(816 KB, 下載次數(shù): 21)
2018-12-4 14:31 上傳
點擊文件名下載附件
LabVIEW教程.pdf
(1.29 MB, 下載次數(shù): 29)
2018-12-5 17:12 上傳
點擊文件名下載附件
|