本書以 LabVIEW2019為基礎(chǔ),講述 LabVIEW 圖形化編程語言的原理,以及如何利用 LabVIEW 完 成虛擬儀器設(shè)計。 全書共15章,包括基礎(chǔ)知識部分(第1~13章)和實際應(yīng)用部分(第14和15章)。第1章,綜述虛擬儀 器技術(shù)的構(gòu)建思想和方法論。第2~7章,講述 LabVIEW 圖形化編程語言的基本原理以及編程方法,內(nèi)容 包括 LabVIEW 入門、基本數(shù)據(jù)類型、程序結(jié)構(gòu)、復(fù)合數(shù)據(jù)類型、文件I/O、圖形顯示及其他技巧。第8~12 章,闡述如何利用 LabVIEW 控制儀器硬件以實現(xiàn)對被測信號的數(shù)據(jù)采集,內(nèi)容包括選擇專用的數(shù)據(jù)采集 卡進行數(shù)據(jù)采集;利用計算機自帶的聲卡實現(xiàn)數(shù)據(jù)采集;利用攝像頭完成圖像采集;儀器控制和控制單 片機。第13章,講述用 LabVIEW 實現(xiàn)儀器應(yīng)用的若干算法和信號分析處理的相關(guān)知識。第14和15章, 介紹利用 LabVIEW 完成有實際應(yīng)用背景的兩個虛擬儀器項目,分別是用 LabVIEW 構(gòu)建函數(shù)發(fā)生器和頻 率計。 本書可作為大專院校虛擬儀器技術(shù)及相關(guān)課程的教材或教學參考書,也可供從事計算機化測量儀 器及系統(tǒng)構(gòu)建工作的工程技術(shù)人員使用。
虛擬儀器即基于計算機的儀器,是利用軟件和硬件建立的測量或測控系統(tǒng)。用戶可以自己靈活地定義、修正或增加虛擬儀器的功能,以借助計算機的強大計算能力實現(xiàn)對各種物理量的測量或測控。目前,基于計算機構(gòu)建的虛擬儀器,已成為主要的測量工具和新型測量儀器的研發(fā)方向,傳統(tǒng)單一功能、固定不變式的測量儀表正逐步被淘汰。虛擬儀器作為計算機技術(shù)與測量或測控技術(shù)相結(jié)合的新興技術(shù),正越來越多地應(yīng)用于各行各業(yè)。從前沿的科學研究到廣泛的工程應(yīng)用,再到大學生的科技創(chuàng)新活動,在有很多需要實施測量或測控的場合,都少不了虛擬儀器技術(shù)的應(yīng)用。
清華大學電機工程與應(yīng)用電子技術(shù)系虛擬儀器教學組,從1995年起開始研究虛擬儀器的原理、技術(shù)及應(yīng)用,2000年建成了虛擬儀器教學實驗室,為全校多個院系的本科生和研究生開設(shè)多門設(shè)計型虛擬儀器原理及實驗技術(shù)課程。
本書作者長期講授虛擬儀器課程,于2018年11月出版了教材《LabVIEW虛擬儀器設(shè)計及應(yīng)用程序設(shè)計、數(shù)據(jù)采集、硬件控制與信號處理》。該書出版后,讀者反饋良好。清華大學出版社建議作者在此基礎(chǔ)上,再編寫一本新的虛擬儀器教材,以滿足高校學生和工程技術(shù)人員的學習、使用及參考需求。
作者在上一本教材的基礎(chǔ)上,根據(jù)使用LabVIEW設(shè)計功能更強大虛擬儀器的新需求,增加了一些更深入的內(nèi)容,并對全書做了認真審核和調(diào)整,力求原理表述更準確,選用案例更鮮明,遣詞造句更規(guī)范,編寫了這本新教材《LabVIEW虛擬儀器設(shè)計》。
相對于前一本書《LabVIEW虛擬儀器設(shè)計及應(yīng)用程序設(shè)計、數(shù)據(jù)采集、硬件控制與信號處理》,本書主要新增和新編的內(nèi)容如下:
① 重新編寫了事件結(jié)構(gòu)部分;
② 增加了全局變量;
③ 增加了單進程共享變量;
④ 增加了變體;
⑤ 重新編寫了數(shù)據(jù)采集一章中的第1小節(jié);
⑥ 增加了數(shù)字輸入/輸出;
⑦ 增加了計數(shù)器。
另外,本書還新增了15個示例,添加了常見問題11個; 并在附錄部分增加了示例和常見問題索引,以方便讀者查詢。
內(nèi)容框架
本書共有15章,內(nèi)容介紹如下。
第1章: 有用又有趣的虛擬儀器技術(shù)。闡述虛擬儀器技術(shù)的構(gòu)建思想和方法論,幫助讀者首先從整體上準確把握這門技術(shù)。
第2章: LabVIEW入門。講授圖形化編程語言LabVIEW的編程環(huán)境、數(shù)據(jù)流、調(diào)試工具等基礎(chǔ)知識,并指導(dǎo)讀者編寫出自己的個虛擬儀器程序(VI)。
第3章: 基本數(shù)據(jù)類型。講授LabVIEW中常用的5種基本數(shù)據(jù)類型,具體是數(shù)值、字符串、布爾量、枚舉與下拉列表,以及路徑。
第4章: 程序結(jié)構(gòu)。講授利用LabVIEW設(shè)計虛擬儀器程序要用到的多種程序結(jié)構(gòu),包括順序結(jié)構(gòu)、條件結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和事件結(jié)構(gòu)等。
第5章: 復(fù)合數(shù)據(jù)類型。講授LabVIEW中的5種復(fù)合數(shù)據(jù)類型,包括數(shù)組、簇、波形、DDT(動態(tài)數(shù)據(jù)類型)和變體。
第6章: 文件I/O。講授LabVIEW中文件I/O的基本操作。
第7章: 圖形顯示及其他技巧。講授如何利用LabVIEW中的圖和圖表控件去顯示被測對象的波形或特性曲線,以及如何使所編制的虛擬儀器界面更美觀。
第8章: 數(shù)據(jù)采集。講授數(shù)據(jù)采集的基本概念,以及如何利用LabVIEW編程操作相關(guān)測量硬件完成數(shù)據(jù)采集。輔助本章內(nèi)容闡述需要用到的硬件是NI公司生產(chǎn)的數(shù)據(jù)采集卡。
第9章: 利用聲卡實現(xiàn)數(shù)據(jù)采集。講授如何利用計算機自帶的聲卡完成數(shù)據(jù)采集,包括基本原理、LabVIEW中的聲卡函數(shù)以及具體案例等。
第10章: 利用攝像頭實現(xiàn)圖像采集。講授圖像采集的基本原理、LabVIEW中提供的圖像采集相關(guān)函數(shù),以及實際案例等。輔助本章內(nèi)容闡述利用到的硬件,是生活中常見的USB攝像頭。
第11章: 儀器控制。講授如何利用LabVIEW編程去控制測量儀器,以滿足自動化測量的需求。
第12章: 利用LabVIEW控制單片機。講授如何利用LabVIEW編程控制單片機,以實現(xiàn)數(shù)據(jù)采集。
第13章: 算法及信號處理。講授如何利用LabVIEW編程對測得數(shù)據(jù)進行分析處理。根據(jù)實際問題需求,讀者可以自己編寫虛擬儀器算法,也可利用LabVIEW中提供的函數(shù)去分析處理測得的信號。
第14章: 實際應(yīng)用1函數(shù)發(fā)生器。講授利用LabVIEW設(shè)計制作任意波形發(fā)生器的全過程,輔助本章內(nèi)容闡述利用到的硬件是NI公司生產(chǎn)的數(shù)據(jù)采集卡MyDAQ。
第15章: 實際應(yīng)用2頻率計。講授如何利用LabVIEW設(shè)計制作頻率計,具體提供了時域和頻域共10種頻率測量算法原理及實現(xiàn),用到的硬件是數(shù)據(jù)采集卡MyDAQ。
使用建議
本書第2~7章,講授如何利用LabVIEW進行虛擬儀器程序設(shè)計,其中每章都設(shè)計了多道例題。對初學者來說,剛開始入門時,可以按照書中講解的步驟,自己動手編寫VI。當對LabVIEW的語法有所掌握后,再碰到例題時,可先不看例題的解答,而是自己先獨立思考并動手編寫出VI后,再與書中例題的解答進行比對。
本書第8~12章,講授如何利用LabVIEW操控各種硬件,以完成對真實世界中某種物理量的測量或測控。學習者可根據(jù)自己選用的具體硬件,學習相應(yīng)章節(jié)的內(nèi)容。在學習與硬件相關(guān)的內(nèi)容時,也要多動手,即到了這個階段,不僅要自己動手編寫VI,還要學會硬件連線。
本書第14和第15章,提供兩個實際的應(yīng)用項目案例,供感興趣的讀者學習、借鑒和參考。
本書特點
本書主要特點如下:
① 系統(tǒng)化講授,由淺入深、邏輯性強。
在本書的編寫過程中,作者遵循學習的一般規(guī)律,按照由淺入深、由簡單到復(fù)雜的原則,力求科學合理地編排、組織學習內(nèi)容,并系統(tǒng)闡述如何利用LabVIEW實現(xiàn)虛擬儀器設(shè)計。
② 內(nèi)容全面、實例豐富。
本書對如何利用LabVIEW設(shè)計虛擬儀器進行了較細致的講解,涉及程序設(shè)計、數(shù)據(jù)采集、硬件控制和信號處理等多方面知識。全書共有126個基礎(chǔ)案例、2個綜合應(yīng)用案例和45個常見問題總結(jié)。
③ 講解清楚可靠、通俗易懂。
本書由虛擬儀器教學一線教師編寫;陂L期教學積累的經(jīng)驗,作者深知初學者的痛點、難點在哪里; 作者將經(jīng)驗融匯于本教材內(nèi)容的選定與具體編寫上,包括對例題的設(shè)計,以及對常見問題的總結(jié)上,都力求以通俗易懂的闡述將復(fù)雜問題交代清楚,以幫助初學者更快掌握虛擬儀器設(shè)計方法。同時,書稿經(jīng)過多次修改和調(diào)整,力求提供給讀者一本可靠、好用的學習資料。
本書由郝麗高級工程師編寫,由趙偉教授修改和審閱。
感謝侯國屏教授、黃松嶺教授和王珅副研究員在虛擬儀器教學方面給予的幫助。感謝董甲瑞高級工程師幫助解決了虛擬儀器實驗教學環(huán)境建設(shè)中的很多實際問題。感謝汪芙平副研究員對本書中有關(guān)信號處理知識寫作上提出的寶貴意見。感謝袁建生教授對本書作者多年的培養(yǎng)。感謝鄒軍教授的幫助。感謝這些年所教過以及輔導(dǎo)過的學生。
感謝NI中國有限公司原院校合作部劉洋經(jīng)理和劉晉東經(jīng)理的幫助。感謝清華大學出版社盛東亮編輯的鼓勵和建議。
限于作者水平,書中難免存在不當之處,敬請讀者批評指正。
編者
2021年6月于清華園
郝麗 清華大學高級工程師,從事虛擬儀器教學10余年。在國內(nèi)核心期刊上已發(fā)表實驗教學研究成果文章11篇。曾獲得清華大學教學成果一等獎、清華大學實驗技術(shù)成果二等獎和清華大學優(yōu)秀教學軟件二等獎。
趙偉 清華大學教授、博士生導(dǎo)師,主要從事現(xiàn)代電磁測量技術(shù)及儀器方向的教學和科研工作;發(fā)表研究成果論文近300篇,其中有關(guān)虛擬儀器教學研究的成果論文10多篇。曾出版教材《電磁測量》《電工理論基礎(chǔ)(第4版)》(翻譯圖書)、學術(shù)專著《電子式電能表及其在現(xiàn)代用電管理中的應(yīng)用》《漏磁成像理論與方法》及辭書《新編電氣工程師實用手冊》《現(xiàn)代電氣工程師實用手冊》《電氣工程大典》(參編卷中的第4篇)等。
第1章有用又有趣的虛擬儀器技術(shù)
1.1虛擬儀器技術(shù)的起源與發(fā)展
1.2什么是虛擬儀器
1.3虛擬儀器的構(gòu)成
1.4虛擬儀器的種類
1.5虛擬儀器對測量觀念及技術(shù)的影響
1.6虛擬儀器技術(shù)在各行業(yè)的應(yīng)用情況
1.7掌握虛擬儀器技術(shù)需具備的條件和相關(guān)知識
本章習題
參考文獻
第2章LabVIEW入門
2.1LabVIEW簡介
2.2操作選板
2.3調(diào)試工具
2.4數(shù)據(jù)流的編程機制
2.5LabVIEW的初步操作
2.5.1創(chuàng)建個VI
2.5.2建立并調(diào)用子VI
2.5.3生成應(yīng)用程序
2.5.4程序調(diào)試技術(shù)
2.6常用技巧
2.7本章小結(jié)
本章習題
參考文獻
第3章基本數(shù)據(jù)類型
3.1數(shù)值
3.1.1數(shù)值控件
3.1.2數(shù)值的數(shù)據(jù)類型
3.1.3數(shù)值函數(shù)
3.2字符串
3.2.1字符串控件
3.2.2字符串的顯示方式
3.2.3字符串函數(shù)
3.3布爾量
3.4枚舉與下拉列表
3.5路徑
3.6本章小結(jié)
本章習題
參考文獻
第4章程序結(jié)構(gòu)
4.1順序結(jié)構(gòu)
4.2條件結(jié)構(gòu)
4.2.1條件選擇器為布爾型
4.2.2條件選擇器為非布爾型
4.2.3輸入和輸出隧道
4.2.4選擇函數(shù)
4.3循環(huán)結(jié)構(gòu)
4.3.1While循環(huán)
4.3.2For循環(huán)
4.3.3循環(huán)結(jié)構(gòu)內(nèi)外的數(shù)據(jù)交換
4.3.4自動索引
4.3.5移位寄存器
4.3.6反饋節(jié)點
4.3.7綜合示例及補充
4.4事件結(jié)構(gòu)
4.4.1事件的分類
4.4.2循環(huán)事件結(jié)構(gòu)
4.4.3事件注冊模式
4.4.4用戶事件
4.4.5使用建議及問題匯總
4.5局部變量
4.6全局變量
4.7單進程共享變量
4.8屬性節(jié)點
4.9公式節(jié)點
4.10MathScript節(jié)點
4.11MATLAB腳本節(jié)點
4.12本章小結(jié)
本章習題
參考文獻
第5章復(fù)合數(shù)據(jù)類型
5.1數(shù)組
5.1.1數(shù)組的創(chuàng)建
5.1.2數(shù)組的索引
5.1.3數(shù)組函數(shù)
5.1.4利用循環(huán)結(jié)構(gòu)創(chuàng)建數(shù)組
5.1.5函數(shù)的多態(tài)化功能
5.2簇
5.2.1簇的創(chuàng)建
5.2.2簇的順序
5.2.3簇函數(shù)
5.2.4錯誤簇
5.3波形
5.3.1什么是波形
5.3.2波形函數(shù)
5.4DDT
5.5變體
5.6本章小結(jié)
本章習題
參考文獻
第6章文件I/O
6.1文件I/O的基本概念
6.2底層文件I/O函數(shù)
6.3高層文件I/O函數(shù)
6.4本章小結(jié)
本章習題
參考文獻
第7章圖形顯示及其他技巧
7.1圖形顯示
7.1.1波形圖
7.1.2XY圖
7.1.3波形圖表
7.1.4強度圖
7.2其他技巧
7.3本章小結(jié)
本章習題
參考文獻
第8章數(shù)據(jù)采集
8.1基礎(chǔ)知識
8.1.1數(shù)據(jù)采集系統(tǒng)的構(gòu)成
8.1.2數(shù)據(jù)采集卡
8.1.3測量系統(tǒng)的信號輸入方式
8.2LabVIEW中數(shù)據(jù)采集的基本概念
8.2.1任務(wù)和虛擬通道
8.2.2基本環(huán)節(jié)
8.2.3兩種途徑
8.2.4兩種途徑的聯(lián)系和比較
8.2.5定時
8.2.6任務(wù)狀態(tài)轉(zhuǎn)換
8.3數(shù)據(jù)采集卡的連接和測試
8.4模擬輸入
8.4.1單點模入
8.4.2有限模入(N個樣本)
8.4.3連續(xù)模入
8.5模擬輸出
8.5.1單點模出
8.5.2有限模出(N個樣本)
8.5.3連續(xù)模出
8.6數(shù)字輸入/輸出
8.6.1數(shù)字輸入
8.6.2數(shù)字輸出
8.7計數(shù)器
8.7.1計數(shù)器輸入
8.7.2計數(shù)器輸出
8.8本章小結(jié)
本章習題
參考文獻
第9章利用聲卡實現(xiàn)數(shù)據(jù)采集
9.1聲卡簡介
9.1.1工作原理
9.1.2硬件結(jié)構(gòu)
9.1.3基本參數(shù)
9.1.4聲卡測試
9.2LabVIEW環(huán)境下利用聲卡實現(xiàn)數(shù)據(jù)采集
9.2.1基本步驟
9.2.2有關(guān)聲卡的函數(shù)
9.3模擬輸入
9.3.1有限模入(N個樣本)
9.3.2連續(xù)模入
9.4模擬輸出
9.4.1有限模出(N個樣本)
9.4.2連續(xù)模出
9.5專用數(shù)據(jù)采集卡與聲卡的比較
9.6本章小結(jié)
本章習題
參考文獻
第10章利用攝像頭實現(xiàn)圖像采集
10.1基本原理
10.1.1圖像采集的基本過程
10.1.2數(shù)字圖像的表征
10.1.3圖像采集參數(shù)
10.2LabVIEW中有關(guān)圖像采集的基本概念
10.2.1利用攝像頭實現(xiàn)圖像采集的基本步驟
10.2.2圖像采集相關(guān)函數(shù)
10.3利用MAX檢測攝像頭的功能
10.4圖像采集的實現(xiàn)
10.4.1采集單幅圖像
10.4.2采集N幅圖像
10.4.3連續(xù)采集圖像
10.5圖像和視頻的保存與讀取
10.5.1圖像和視頻的保存
10.5.2圖像和視頻的讀取
10.6本章小結(jié)
本章習題
參考文獻
第11章儀器控制
11.1儀器控制的基本原理
11.1.1硬件通路
11.1.2通信協(xié)議
11.2LabVIEW中儀器控制的基本概念
11.2.1總體介紹
11.2.2基本步驟
11.2.3VISA函數(shù)
11.3利用MAX檢測要通信的儀器
11.4儀器控制示例
11.4.1利用計算機控制串口儀器
11.4.2利用計算機控制USB口儀器
11.5本章小結(jié)
本章習題
參考文獻
第12章利用LabVIEW控制單片機
12.1基本概念
12.1.1單片機及其開發(fā)板
12.1.2接口或引腳
12.1.3將單片機與計算機相連
12.1.4單片機開發(fā)板的使用步驟
12.2軟件環(huán)境
12.2.1Arduino IDE
12.2.2LabVIEW中相關(guān)的函數(shù)
12.3示例
12.4本章小結(jié)
本章習題
參考文獻
第13章算法及信號處理
13.1程序的靈魂算法
13.1.1算法的效率
13.1.2LabVIEW中的算法函數(shù)
13.2信號處理
13.2.1仿真信號的生成
13.2.2波形測量
13.3本章小結(jié)
本章習題
參考文獻
第14章實際應(yīng)用1函數(shù)發(fā)生器
14.1概述
14.2算法介紹
14.3程序說明
14.4函數(shù)發(fā)生器VI的功能測試
14.5本章小結(jié)
本章習題
參考文獻
第15章實際應(yīng)用2頻率計
15.1概述
15.2算法介紹
15.2.1時域方法
15.2.2頻域方法
15.3程序說明
15.4算法測試和結(jié)果分析
15.4.1利用仿真信號進行分析
15.4.2對實采波形進行測量
15.5本章小結(jié)
本章習題
參考文獻
附錄ALabVIEW軟件和驅(qū)動程序的安裝說明
附錄BDIGILENT chipKIT WF32驅(qū)動及LINX的安裝步驟
附錄C在LabVIEW中如何運行MakerHub
附錄D示例索引
附錄E常見問題索引