本書涉及的內(nèi)容除了LabVIEW的基本編程概念和方法之外,還有大量的章節(jié)討論DAQ的使用及LabVIEW的應(yīng)用。全書共分13章,內(nèi)容包括while循環(huán)與波形圖、for循環(huán)與波形圖、MathScript模型與XY圖、DAQ輔助數(shù)據(jù)采集、數(shù)據(jù)文件與字符串、移位寄存器、case結(jié)構(gòu)、數(shù)據(jù)獨立性與序列結(jié)構(gòu)、vi分析、使用DAQmx vi的數(shù)據(jù)采集與生成、PID溫度控制項目、獨立儀器控制等。
本書提供了一種通過動手學(xué)習(xí)的方法來獲得在日常實驗中基于計算機的編程技巧。這本書并不是一本LabVIEW手冊,它通過使用這個強大的實驗工具實現(xiàn)有趣并相關(guān)的項目來引導(dǎo)讀者掌握LabVIEW。本書假定讀者并不具備計算機編程的經(jīng)驗或LabVIEW背景,通過前幾頁的閱讀就可以編寫出有意義的程序。
本書可以作為大學(xué)相關(guān)實驗課程的指導(dǎo)教材,也可以作為科研人員的自學(xué)讀物。這本書設(shè)計成可以靈活使用,這樣讀者可以根據(jù)自己意愿來選擇閱讀的范圍和深度。開始的4章奠定了學(xué)習(xí)的基礎(chǔ),這些內(nèi)容適合所有的讀者,主要圍繞LabVIEW編程的基礎(chǔ)和使用NI(美國國家儀器有限公司)的DAQ(數(shù)據(jù)采集)設(shè)備來進行基于計算機的實驗而展開的。這些章節(jié)可用于講解基于LabVIEW的數(shù)據(jù)采集課程(3周左右的時間)。后面的章節(jié)則盡可能獨立,以使教師或自學(xué)者按照需求來組織教學(xué)與學(xué)習(xí)過程。通過學(xué)習(xí)本書,可以使讀者在基于計算機的數(shù)據(jù)采集和分析方面達到中級水平。
本書包括如下的主題:
●第1章~第3章:LabVIEW圖形編程語言基礎(chǔ)。LabVIEW的核心特性包括控制循環(huán)結(jié)構(gòu)、圖形顯示、數(shù)學(xué)函數(shù)及基于文本的MathScript命令,并且完成一個數(shù)字化波形的仿真程序。
●第4章:基本的數(shù)據(jù)采集。包括:數(shù)字采樣的概念,如分辨率、采樣頻率及混疊;接著使用LabVIEW的高層ExpressVI,在NIDAQ設(shè)備上編寫并運行了模數(shù)變換、數(shù)模變換、數(shù)字輸入/輸出程序;建立了基于計算機的儀器,例如DC(直流)電壓計、數(shù)字示波器、DC電壓源、波形發(fā)生器及閃爍的LED陣列。
●第5章~第8章:更多的LabVIEW編程基礎(chǔ)。包括:數(shù)據(jù)文件的輸入/輸出實現(xiàn)、局部存儲、條件分支,同時完成了一些有用的程序,例如電子表格存儲,數(shù)字積分和微分;還學(xué)習(xí)了用于計算機編程的LabVIEW控制流方法。
●第9章~第10章:數(shù)據(jù)分析。研究了LabVIEW的曲線擬合和快速傅里葉變換的合理使用。使用ExpressVI來控制一個DAQ設(shè)備,建立了兩個基于計算機的儀器——一個數(shù)字溫度計和一個頻譜分析儀。
●第11章:中級的數(shù)據(jù)采集。使用傳統(tǒng)的DAQmx編寫了模數(shù)變換、數(shù)模變換、數(shù)字計數(shù)器的程序。與之前的高層ExpressVI相比,這種底層的方法可以利用DAQ設(shè)備的所有特性。建立了一個DC電壓計、DC電壓源、頻率計,還基于狀態(tài)機構(gòu)架建立了一個復(fù)雜的數(shù)字示波器。
●第12章:溫度控制項目。使用了大量的從本書獲得的LabVIEW技巧構(gòu)造了一個比例積分微分(PID)溫度控制系統(tǒng)。附錄A給出了一個本項目所需的硬件設(shè)計。
●第13章:獨立儀器的控制。使用LabVIEW的VISA驅(qū)動,研究通過GPIB(通用儀器總線)和USB控制一個獨立儀器。使用一臺Agilent34410A數(shù)字萬用表演示了在PC和獨立儀器之間的接口總線通信的基本概念。本書的關(guān)鍵特性包括:強調(diào)解決現(xiàn)實世界的問題;方便地介紹數(shù)據(jù)采集硬件的使用;每章結(jié)束都有一個DIY項目;每章都有適當(dāng)?shù)木毩?xí)。
現(xiàn)實世界的問題解決:每章的主題和練習(xí)都提供了科學(xué)家和工程師在實驗室中是如何解決經(jīng)常碰到的問題的示例。在解決這些問題的過程中介紹了LabVIEW的特性及相關(guān)的數(shù)學(xué)背景,所提供的“最實用”的策略(比如模塊化和數(shù)據(jù)獨立性)使讀者可以最優(yōu)化他們的LabVIEW應(yīng)用。
貫穿始終的數(shù)據(jù)采集應(yīng)用:LabVIEW的ExpressVI使得涉及DAQ硬件的練習(xí)可以比較早且規(guī)律地出現(xiàn)在本書中。ExpressVI將常用的測量任務(wù)打包在一個單一的圖標(biāo)中,這樣讀者可以用最少的付出就可以寫出程序。緊跟著本書開始僅使用軟件的有關(guān)LabVIEW基礎(chǔ)的三章,第4章使用了DAQ設(shè)備進行數(shù)據(jù)采集。對于一個僅愿意花大約3周時間來了解基于計算機的數(shù)據(jù)采集的教師或自學(xué)者來說,第1章~第4章提供了所需的全部內(nèi)容。對于那些計劃更深入學(xué)習(xí)LabVIEW的讀者來說,基于ExpressVI分別在第9章和第10章構(gòu)建了一個基于計算機的數(shù)字溫度計和頻譜分析儀。第11章介紹了使用更高級的DAQmx圖標(biāo)來控制一個DAQ設(shè)備。與ExpressVI相比,DAQmx圖標(biāo)可以使用戶利用DAQ設(shè)備的所有特性。在第12章中,讀者使用一個DAQ設(shè)備精確地控制一個鋁塊的溫度。在第13章,通過GPIB和USB接口總線,從一個遠端的獨立儀器中獲取數(shù)據(jù)。
自己動手項目:為了讓讀者可以確定他對本書內(nèi)容的了解程度,每章的末尾都有一個自己動手項目。每一個項目都提出了一個有趣的問題,并粗略地指導(dǎo)讀者應(yīng)用本章的材料去找到一個解法。在某些章節(jié)中,這個項目包括編寫一個模擬秒表的程序(第1章),或者測量一個人的反應(yīng)時間(第8章);在其他章節(jié)中,讀者需要構(gòu)造一個基于計算機的儀器,如數(shù)字溫度計(第9章)、頻譜分析儀(第10章)和頻率計(第11章)。
每章結(jié)束前的習(xí)題:每章結(jié)束前都有一些作業(yè)式的練習(xí),這樣有興趣的讀者可以進一步加強他們的LabVIEW技巧。在一些習(xí)題中,讀者通過將本章的主題應(yīng)用到其他領(lǐng)域(如伯德圖)來測試他們的理解程度。在其他習(xí)題中,讀者需要編寫程序來探究重要的實驗要點(如FFT的頻率分辨率)。最后,很多習(xí)題將給讀者介紹一些本書沒有涵蓋的LabVIEW相關(guān)特性(如二進制的數(shù)據(jù)存儲)。
第二版的新特性
新版本包含如下的提升之處:
●所有的章節(jié)都更新到LabVIEW的最新版本。這一版解釋了新的探針觀察窗口(ProbeWatchWindow,第2章)和圖標(biāo)編輯器(第3章)的功能。
●覆蓋了MathScript節(jié)點的在線幫助,以及基于數(shù)據(jù)類型的自動整理格式功能(第3章)。
●強調(diào)使用低成本的DAQ硬件,它通常用于指導(dǎo)性的實驗和自學(xué)中,包括USB6009、myDAQ、PCI6251和ELVISII(第4章)。
●每章開始的“快速舉例”小節(jié)簡單地介紹了MathScript節(jié)點、移位寄存器和條件結(jié)構(gòu)(第3、6、7章)。
●在早期的章節(jié)中介紹了屬性節(jié)點(第7章)。
●使用最新的Agilent34410A數(shù)字計數(shù)器來實現(xiàn)GPIB和USB的儀器控制。這種控制方法也適用于老的Agilent34401A數(shù)字計數(shù)器(第13章)。
●作為對老師設(shè)計課程的一個幫助,本書提供了一個將以前的程序變成一個例程的引用部分(附錄B)。
●有每章習(xí)題的偶數(shù)題目的答案,對采用本書作為教材的教師,全部習(xí)題答案可以從牛津大學(xué)出版社獲取教輔獲取方式請聯(lián)系。本書對于LabVIEW的完全版和學(xué)生版都是適用的。教師可以考慮引導(dǎo)學(xué)生購買低成本的學(xué)生版軟件(學(xué)生版可以用很低的價格買到,不需要購買非常昂貴的一個軟件包)。有了自己的LabVIEW軟件,學(xué)生可以在計算機上完成與硬件無關(guān)章節(jié)的學(xué)習(xí)和作為課外作業(yè)的章節(jié)習(xí)題。
per及NI公司的MarkWalters和AdamFoster的建議與幫助。還要感謝如下評論者提供的有幫助的建議:GeoffreyBrooks,佛羅里達州立大學(xué)
EricLandahl,德保羅大學(xué)
MarkBudnik,瓦爾帕萊索大學(xué)
JedMarquart,北俄亥俄大學(xué)
ShannonCiston,紐黑文大學(xué)
CaseyMiller,南佛羅里達大學(xué)
JuanI.Collar,芝加哥大學(xué)
DavidRoach,
鄧科,副教授,1996年獲西北工業(yè)大學(xué)工業(yè)管理工程專業(yè)學(xué)士學(xué)位,1999年獲西安交通大學(xué)通信與信息系統(tǒng)專業(yè)碩士學(xué)位; 2004年獲西安交通大學(xué)通信與信息系統(tǒng)專業(yè)博士學(xué)位;2007年被聘為副教授。多年來一直從事移動通信、陣列信號處理、智能天線技術(shù)和移動通信系統(tǒng)等方面的科研工作。近年來主持國家自然科學(xué)基金2項,陜西省自然科學(xué)基金1項,參與了國家“863”課題5項,其中有3項評為Ab,1項評為Aa(特優(yōu))。申請者作為論文**作者共發(fā)表學(xué)術(shù)論文17篇,其中有10余篇被SCI/EI收錄。 John Essick是里德學(xué)院的David W. Brauer物理教授。從1993年開始,他就在講授《使用LabVIEW的基于計算機的實驗》這一課程,它也作為里德高級實驗課程的一部分。
第1章While循環(huán)和波形圖表
1.1LabVIEW編程環(huán)境
1.2使用While循環(huán)和波形圖表繪制正弦波
1.3編輯程序框圖
1.4LabVIEW幫助窗口
1.5前面板編輯
1.6快捷菜單
1.7完成編程
1.8程序執(zhí)行
1.9程序改進
1.10數(shù)據(jù)類型的表示
1.11自動生成特征
1.12保存程序
自己動手
習(xí)題
第2章For循環(huán)和波形圖
2.1For循環(huán)基礎(chǔ)
2.2使用For循環(huán)和波形圖繪制正弦波
2.3波形圖
2.4所屬標(biāo)簽和自由標(biāo)簽
2.5使用For循環(huán)創(chuàng)建正弦波
2.6復(fù)制程序框圖的圖標(biāo)
2.7自動索引功能
2.8運行VI
2.9波形圖x軸的校準(zhǔn)
2.10使用While循環(huán)和波形圖繪制正弦波
2.11數(shù)組顯示控件和探針觀察窗口
自己動手
習(xí)題
第3章MathScript節(jié)點和XY圖
3.1MathScript節(jié)點基礎(chǔ)
3.2MathScript節(jié)點使用示例:繪制正弦波
3.3根據(jù)錯誤列表調(diào)試
3.4運用MathScript節(jié)點和XY圖進行波形仿真
3.5創(chuàng)建一個xy簇
3.6運行VI
3.7MathScript交互窗口
3.8為WaveformSimulator添加形狀選項
3.9枚舉類型控件
3.10完成程序框圖
3.11運行VI
3.12控件和指示簇
3.13用圖標(biāo)編輯器創(chuàng)建一個圖標(biāo)
3.14設(shè)計圖標(biāo)
3.15接線端分配
自己動手
習(xí)題
第4章使用DAQ助手實現(xiàn)數(shù)據(jù)采集
4.1數(shù)據(jù)采集VI
4.2數(shù)據(jù)采集硬件
4.3模擬輸入模式
4.4范圍與分辨率
4.5采樣頻率與混疊效應(yīng)
4.6測量及自動化瀏覽器(MAX)
4.7在直流電壓下簡單地模擬輸入操作
4.8數(shù)字示波器
4.9模擬輸出
4.10直流電壓源
4.11軟件定時的正弦波發(fā)生器
4.12硬件定時的波形發(fā)生器
4.13在框圖上放置一個定制的VI
4.14完成并執(zhí)行WaveformGenerator(Express)
4.15改進的波形發(fā)生器
自己動手
習(xí)題
第5章數(shù)據(jù)文件與字符串
5.1ASCII文本與二進制數(shù)據(jù)文件
5.2在電子數(shù)據(jù)表格的格式文件中存儲數(shù)據(jù)
5.3存儲一維數(shù)據(jù)數(shù)組
5.4轉(zhuǎn)置選項
5.5存儲二維數(shù)據(jù)數(shù)組
5.6控制存儲數(shù)據(jù)格式
5.7路徑常量與平臺可移植性
5.8基本文件I/O VI
5.9為一個電子表格文件添加文本標(biāo)簽
5.10反斜杠碼(轉(zhuǎn)義碼)
自己動手
習(xí)題
第6章移位寄存器
6.1移位寄存器
6.2快速移位寄存器示例:整數(shù)相加
6.3使用移位寄存器的數(shù)值積分和微分
6.4冪函數(shù)模擬器VI
6.5使用梯形法則的數(shù)值積分
6.6使用單個寄存器的梯形法則VI
6.7梯形法則的收斂性
6.8使用多個移位寄存器的數(shù)值微分
6.9模塊化和自動子VI創(chuàng)建
自己動手
習(xí)題
第7章條件結(jié)構(gòu)
7.1條件結(jié)構(gòu)的基礎(chǔ)知識
7.2有關(guān)快速條件結(jié)構(gòu)的示例:使用屬性節(jié)點的運行時選項
7.3使用條件結(jié)構(gòu)的數(shù)值積分
7.4基于辛普森準(zhǔn)則的數(shù)值積分
7.5使用布爾條件結(jié)構(gòu)的校驗因子
7.6使用數(shù)值條件結(jié)構(gòu)的部分和之和程序
7.7使用布爾條件結(jié)構(gòu)的梯形法則貢獻
7.8頂層的VI――Simpson'sRule
7.9梯形法則和辛普森準(zhǔn)則之間的對比
自己動手
習(xí)題
第8章數(shù)據(jù)依賴性和順序結(jié)構(gòu)
8.1數(shù)據(jù)依賴性和順序結(jié)構(gòu)基礎(chǔ)
8.2使用順序結(jié)構(gòu)的事件計時器
8.3使用數(shù)據(jù)依賴性的事件計時器
8.4高亮執(zhí)行
自己動手
習(xí)題
第9章分析VI:曲線擬合
9.1熱敏電阻阻抗溫度數(shù)據(jù)文件
9.2使用熱敏電阻的溫度測量
9.3線性最小二乘法
9.4使用前面板控件將數(shù)據(jù)輸入到VI
9.5通過從磁盤讀取文件將數(shù)據(jù)輸入到VI
9.6切分多維數(shù)組
9.7使用線性最小二乘法的曲線擬合
9.8殘差圖
自己動手
習(xí)題
第10章分析VI:快速傅里葉變換
10.1傅里葉變換
10.2離散采樣和奈奎斯特頻率
10.3離散傅里葉變換
10.4快速傅里葉變換
10.5頻率計算器VI
10.6正弦信號的FFT
10.7將FFT應(yīng)用到多種正弦輸入
10.8復(fù)值幅度的模
10.9觀察(頻譜)泄漏
10.10泄漏的分析
10.11使用卷積理論描述泄漏
10.12加窗
10.13估計頻率和幅度
10.14混疊
自己動手
習(xí)題
第11章數(shù)據(jù)采集與使用DAQmxVI產(chǎn)生數(shù)據(jù)
11.1DAQmxVI
11.2直流電壓下簡單的模擬輸入操作
11.3數(shù)字示波器
11.4ExpressVI自動代碼生成
11.5ExpressVI的限制
11.6使用狀態(tài)機架構(gòu)來改善數(shù)字示波器
11.7模擬輸出操作
11.8波形發(fā)生器
自己動手
習(xí)題
第12章PID溫度控制項目
12.1電熱設(shè)備的基于電壓控制的雙向電流驅(qū)動
12.2PID溫度控制算法
12.3PID溫度控制系統(tǒng)第13章獨立儀器的控制
13.1使用VISAVI來進行儀器控制
13.2VISA會話
13.3IEEE488.2標(biāo)準(zhǔn)
13.4通用的命令
13.5狀態(tài)報告
13.6設(shè)備特有的命令
13.7本章所用的特有硬件
13.8測量及自動化瀏覽器(MAX)
13.9簡單的基于VISA的查詢操作
13.10消息結(jié)束
13.11使用屬性節(jié)點來獲得和設(shè)置通信屬性
13.12在接口總線上測量
13.13同步方法
13.14基于串行池方法的測量VI
13.15基于服務(wù)請求方法的測量VI
13.16創(chuàng)建一個儀器驅(qū)動
13.17使用儀器驅(qū)動來編寫一個應(yīng)用程序
自己動手
習(xí)題
附錄A溫度控制系統(tǒng)的構(gòu)建
附錄B程序交叉索引表