本書在介紹虛擬儀器的基本概念和LabVIEW軟件基礎知識的同時,重點詳細地介紹了LabVIEW的數據采集、儀器控制、分析及應用,并結合實際應用,介紹了編者近年來在研究中總結出來的一些經典案例,盡量做到理論、應用與實際編程的緊密結合,使讀者掌握使用LabVIEW的基本方法和技巧。
本書適合LabVIEW入門級讀者以及從事相關專業(yè)的工程項目開發(fā)人員閱讀,也可供高等院校計算機、電子技術、自動化工程、電氣、通信、測控等相關專業(yè)的高年級本科學生使用。
National Instruments(NI)公司發(fā)布的LabVIEW很大程度上解決了軟件易用性和強大功能之間的矛盾,為工程師提供了效率與性能俱佳的真正出色的開發(fā)環(huán)境。LabVIEW軟件不但適用于各種測量和自動化領域,而且無論工程師是否有豐富的開發(fā)經驗,都能順利應用,所以LabVIEW目前已經成為大學生必修的一門基礎實驗課程。本書以LabVIEW為對象,通過理論與實例相結合的方式,結合作者多年的實踐經驗,深入淺出地介紹其使用方法和技巧,目的在于讓讀者快速掌握這門功能強大的圖形化編程語言。
本書按照讀者的學習能力與學習思維分成四部分,讀者只需4周(28 天)便可具備開始使用LabVIEW進行編程所需的基本技能。通過閱讀這本內容全面的教程,讀者可快速掌握LabVIEW的基本知識并學習更高級的特性和概念。
本書以條理清晰、系統(tǒng)全面、由淺入深、實例引導、貼近實用為宗旨,精選了多個具有代表性的LabVIEW應用程序設計實例,實例類型豐富,覆蓋面廣,工程指導性強。本書不但詳細介紹了實例的硬件儀器配置,也對實例的程序流程做了重點分析,提供了深入的程序設計思想,既利于讀者舉一反三,又便學、易懂。
本書在介紹虛擬儀器的基本概念和LabVIEW軟件基礎知識的同時,重點詳細地介紹了LabVIEW的數據采集、儀器控制、分析及應用,并結合實際應用,介紹了編者近年來在研究中總結出來的一些經典案例,盡量做到理論、應用與實際編程的緊密結合,使讀者掌握使用LabVIEW的基本方法和技巧。
本書具有以下幾個特點。
基礎性:簡單而全面地介紹了LabVIEW的基本概念以及虛擬儀器開發(fā)的基礎知識,特別適合于從事LabVIEW軟件設計的初學者。
實用性:書中大部分實例工程均為利用該實驗室內的設備進行設計與開發(fā),且程序全部經過調試與驗證。隨書附贈云盤資源,云盤資源中附有實例程序源代碼,讀者稍加修改,便可應用于自己的工作中。
時代性:本書精選了的若干個典型實例,內容新穎,反映了當前虛擬儀器的發(fā)展及時代的需求。
本書將使初學者快速地擁有使用LabVIEW設計測量系統(tǒng)的能力,全書從實用角度出發(fā),將內容分為四篇。
第 1 篇:入門篇重點介紹虛擬儀器的概念和基礎知識,包括LabVIEW的設計原理,建議讀者用一周時間學習。
第 2 篇:基礎篇全面而詳細地介紹虛擬儀器的組成、數據類型、圖形圖表的建立、程序結構設計、文件的輸入與輸出以及人機交互界面的設計等知識,建議讀者用三周時間學習。
第 3 篇:提高篇分別介紹了LabVIEW在數字信號處理、儀器控制、外部接口等方面的應用,建議讀者用兩周時間學習。
第 4 篇:綜合篇主要介紹了成功應用的LabVIEW測量系統(tǒng)實例,使讀者迅速掌握LabVIEW編程的技巧,提高完成工程應用的效率;不僅詳細介紹了LabVIEW的開發(fā)技術和使用技巧,還使讀者能夠將知識融會貫通,培養(yǎng)綜合運用知識的能力,增強讀者的實際動手能力,建議讀者用兩周時間學習。
本書在內容安排上循序漸進、深入淺出,力求突出重點,面向應用,提高能力,解決問題。
本書由張?zhí)m勇編著。在2012年第1版的基礎上利用新版軟件重新對部分程序進行了更新,并增加了近幾年編者參與的工程實踐案例,以使讀者更深入地了解LabVIEW解決復雜工程問題的能力。本書的編寫得到了哈爾濱工程大學自動化學院劉勝教授的鼓勵和支持,在此向他表示衷心感謝。
為了使讀者更快掌握LabVIEW編程,編者對本書進行了全程視頻錄像本書的配套資源包含本書全部的實例程序、開發(fā)過程教學視頻以及教學資源索引。為了配合教學,本書還提供了授課用電子課件。以上文件均可通過掃描本書封底的二維碼獲取下載鏈接。雖然本書所設計的LabVIEW編程技術為較成熟的技術,然而本書所涉及的程序是作者費了一定心血編寫出來的,如用到本書程序,請注明引自本書。
由于編者水平及時間有限,書中難免存在一些不妥或錯誤之處,懇請讀者批評指正。
編 者
2019年4月
前言
第1篇 入 門 篇
第1章 虛擬儀器概述
1.1 虛擬儀器的概念及結構
1.1.1 虛擬儀器的特點和優(yōu)勢
1.1.2 虛擬儀器的結構
1.1.3 虛擬儀器的硬件
1.1.4 虛擬儀器的軟件
1.2 LabVIEW的特點及功能
1.2.1 LabVIEW的特點
1.2.2 LabVIEW的功能
1.3 LabVIEW的發(fā)展歷程
1.4 LabVIEW的在線幫助系統(tǒng)
1.4.1 顯示即時幫助
1.4.2 搜索LabVIEW幫助
1.4.3 LabVIEW編程范例
1.4.4 LabVIEW網絡資源
1.5 LabVIEW的應用
1.6 習題
1.7 上機實驗
第2章 LabVIEW入門
2.1 系統(tǒng)配置要求
2.2 LabVIEW的安裝
2.3 LabVIEW開發(fā)環(huán)境
2.3.1 啟動LabVIEW 2015
2.3.2 LabVIEW的編程界面
2.3.3 LabVIEW菜單欄
2.3.4 LabVIEW工具欄
2.4 選項板
2.4.1 控件選板及功能
2.4.2 函數選板及功能
2.4.3 工具選板及功能
2.5 LabVIEW初體驗:仿真信號并計算其頻譜特性
2.6 習題
2.7 上機實驗
第2篇 基 礎 篇
第3章 LabVIEW的數據類型與基本操作
3.1 基本數據類型
3.1.1 數值型
3.1.2 布爾型
3.1.3 枚舉類型
3.1.4 時間類型
3.1.5 變體類型
3.2 數據運算選板
3.2.1 數值函數選板
3.2.2 布爾函數選板
3.2.3 比較函數選板
3.3 數組型數據
3.3.1 數組的創(chuàng)建
3.3.2 數組函數
3.4 簇型數據
3.4.1 簇的創(chuàng)建
3.4.2 簇函數
3.5 字符串型數據
3.5.1 字符串與路徑
3.5.2 列表與表格控件
3.5.3 字符串函數
3.6 綜合實例:不同類型函數的綜合應用
3.7 習題
3.8 上機實驗
第4章 LabVIEW的圖形與圖表
4.1 圖形與圖表的基本概念
4.1.1 波形數據
4.1.2 趨勢圖與波形圖
4.1.3 坐標圖
4.2 波形圖表與波形圖的使用與定制
4.2.1 波形圖表與波形圖的使用
4.2.2 波形圖表的定制
4.2.3 波形圖的定制
4.3 XY圖與Express XY圖
4.4 強度圖表與強度圖
4.5 數字波形圖
4.6 三維圖形
4.6.1 三維曲面圖形
4.6.2 三維參數圖形
4.6.3 三維曲線圖形
4.7 其他圖形控件
4.7.1 極坐標圖
4.7.2 最小-最大曲線顯示控件
4.8 綜合實例:繪制李薩如圖形
4.9 習題
4.10 上機實驗
第5章 LabVIEW程序設計與調試
5.1 VI的創(chuàng)建
5.1.1 前面板的創(chuàng)建
5.1.2 程序框圖的創(chuàng)建
5.1.3 圖標的創(chuàng)建
5.2 子VI的設計
5.3 VI的編輯
5.3.1 選擇對象
5.3.2 移動對象
5.3.3 復制和刪除對象
5.3.4 對齊和分布對象
5.3.5 調整對象大小
5.3.6 重新排序
5.3.7 修改對象外觀
5.3.8 連線
5.4 VI的運行與調試
5.4.1 調試工具欄
5.4.2 高亮顯示執(zhí)行
5.4.3 探針和斷點診斷
5.4.4 錯誤列表窗口的使用
5.4.5 VI的單步執(zhí)行
5.4.6 VI程序調試技巧
5.5 綜合實例:汽車測速系統(tǒng)設計
5.6 習題
5.7 上機實驗
第6章 LabVIEW程序結構設計
6.1 LabVIEW循環(huán)與結構的基本概念
6.1.1 循環(huán)結構
6.1.2 條件結構
6.1.3 順序結構
6.1.4 事件結構
6.1.5 反饋節(jié)點與移位寄存器
6.1.6 使能結構
6.1.7 變量
6.2 For循環(huán)
6.2.1 For循環(huán)的建立
6.2.2 For循環(huán)的自動索引
6.2.3 移位寄存器
6.2.4 For循環(huán)應用舉例
6.3 While循環(huán)
6.3.1 While循環(huán)的建立
6.3.2 While循環(huán)應用舉例
6.4 順序結構
6.4.1 順序結構的建立
6.4.2 層疊式順序結構的局部變量
6.4.3 順序結構應用舉例
6.5 定時結構
6.5.1 定時循環(huán)
6.5.2 定時順序
6.5.3 定時VI
6.5.4 定時結構應用舉例
6.6 條件結構
6.6.1 條件結構的建立
6.6.2 條件結構的設置
6.6.3 條件結構應用舉例
6.7 事件結構
6.7.1 事件結構的建立
6.7.2 事件結構的設置
6.7.3 事件結構應用舉例
6.8 變量
6.8.1 局部變量
6.8.2 局部變量應用舉例
6.8.3 全局變量
6.8.4 全局變量應用舉例
6.9 公式節(jié)點
6.9.1 公式節(jié)點的建立
6.9.2 公式節(jié)點中允許的運算符
6.9.3 公式節(jié)點應用舉例
6.10 反饋節(jié)點
6.10.1 反饋節(jié)點的建立
6.10.2 反饋節(jié)點應用舉例
6.11 使能結構
6.11.1 程序框圖禁用結構
6.11.2 程序框圖禁用結構應用舉例
6.11.3 條件禁用結構
6.11.4 條件禁用結構的建立
6.11.5 條件禁用結構應用舉例
6.12 綜合實例:動態(tài)窗口的實現
6.13 習題
6.14 上機實驗
第7章 LabVIEW文件的輸入與輸出
7.1 文件輸入/輸出的基本概念
7.1.1 文件路徑
7.1.2 文件引用句柄
7.1.3 文件I/O
7.1.4 文件I/O流程控制
7.1.5 文件I/O出錯管理
7.1.6 流盤
7.2 文件的基本類型
7.2.1 文本文件
7.2.2 電子表格文件
7.2.3 二進制文件
7.2.4 數據記錄文件
7.2.5 波形文件
7.2.6 測量文件
7.2.7 配置文件
7.2.8 XML文件
7.3 文件I/O選板
7.3.1 打開/創(chuàng)建/替換文件函數
7.3.2 關閉文件函數
7.3.3 格式化寫入文件函數
7.3.4 掃描文件函數
7.4 常用文件類型的使用
7.4.1 文本文件函數的使用
7.4.2 電子表格文件函數的使用
7.4.3 二進制文件函數的使用
7.4.4 波形文件函數的使用
7.4.5 數據記錄文件函數的使用
7.4.6 測量文件函數的使用
7.4.7 配置文件函數的使用
7.4.8 XML文件函數的使用
7.5 綜合實例:測量數據的保存和讀取
7.6 習題
7.7 上機實驗
第8章 人機交互界面設計
8.1 VI屬性的設置
8.1.1 常規(guī)屬性頁
8.1.2 內存屬性頁
8.1.3 說明信息屬性頁
8.1.4 修訂歷史屬性頁
8.1.5 編輯器選項屬性頁
8.1.6 保護屬性頁
8.1.7 窗口外觀屬性頁
8.1.8 窗口大小屬性頁
8.1.9 窗口運行時位置屬性頁
8.1.10 執(zhí)行屬性頁
8.1.11 打印選項屬性頁
8.2 對話框的設計
8.2.1 普通對話框
8.2.2 用戶自定義對話框
8.3 用戶菜單的設計
8.3.1 菜單編輯器的設置
8.3.2 菜單函數選板
8.4 錯誤處理
8.5 自定義控件和自定義數據
8.5.1 自定義控件
8.5.2 自定義數據
8.6 用戶界面的設計
8.6.1 修飾靜態(tài)界面
8.6.2 動態(tài)交互界面
8.7 程序設計的一般規(guī)則
8.7.1 關于前面板的設計
8.7.2 關于程序框圖的設計
8.8 綜合實例:模擬電路圖的設計
8.9 習題
8.10 上機實驗
第3篇 提 高 篇
第9章 LabVIEW中的數字信號處理
9.1 信號處理的基本概念
9.1.1 信號發(fā)生
9.1.2 波形調理
9.1.3 時頻分析
9.2 信號發(fā)生
9.2.1 基本函數信號
9.2.2 多頻信號
9.2.3 噪聲信號發(fā)生器
9.2.4 仿真信號發(fā)生器
9.3 波形調理
9.3.1 波形對齊
9.3.2 波形重采樣
9.3.3 觸發(fā)與門限
9.4 信號的時域分析
9.4.1 卷積
9.4.2 相關
9.4.3 縮放與歸一化
9.5 信號的頻域分析
9.5.1 快速傅里葉變換
9.5.2 Hilbert變換
9.5.3 功率譜分析
9.5.4 聯(lián)合時頻分析
9.6 波形測量
9.6.1 平均直流均方差VI
9.6.2 過渡態(tài)測量
9.6.3 諧波分析
9.6.4 提取信號頻率信息
9.6.5 能量譜
9.7 窗函數
9.8 濾波器
9.8.1 低通濾波器
9.8.2 帶通濾波器
9.9 逐點分析庫
9.10 綜合實例:Hilbert變換提取信號包絡
9.11 習題
9.12 上機實驗
第10章 LabVIEW中的外部接口與應用
10.1 LabVIEW外部接口的基本概念
10.1.1 動態(tài)數據交換
10.1.2 動態(tài)鏈接庫
10.1.3 應用編程接口
10.1.4 C代碼接口
10.1.5 ActiveX
10.1.6 LabVIEW與MATLAB混合編程
10.2 LabVIEW中的DDE調用
10.2.1 LabVIEW中的DDE通信
10.2.2 利用Request方式進行DDE通信
10.3 LabVIEW中的DLL與API調用
10.3.1 DLL調用
10.3.2 參數類型的配置
10.3.3 Windows API調用
10.4 CIN節(jié)點的使用
10.5 ActiveX控件的調用
10.5.1 ActiveX自動化
10.5.2 ActiveX容器
10.5.3 ActiveX事件
10.5.4 LabVIEW作為服務器端
10.6 LabVIEW與MATLAB混合編程
10.6.1 MathScript節(jié)點
10.6.2 MATLAB Script節(jié)點
10.7 綜合實例:自適應濾波算法設計
10.7.1 LabVIEW與MATLAB混合編程的優(yōu)勢
10.7.2 自適應濾波算法
10.7.3 自適應濾波算法的實現
10.8 習題
10.9 上機實驗
第11章 儀器控制與訪問數據庫
11.1 儀器控制概述
11.2 儀器總線技術
11.2.1 GPIB總線
11.2.2 串行總線
11.2.3 USB總線
11.2.4 PXI總線
11.2.5 VXI總線
11.3 儀器驅動程序
11.3.1 可編程儀器標準命令SCPI
11.3.2 虛擬儀器軟件構架VISA
11.3.3 可互換的虛擬儀器驅動程序IVI
11.4 網絡通信與編程
11.4.1 TCP通信
11.4.2 UDP通信
11.4.3 UDP和TCP的比較
11.4.4 DataSocket通信
11.4.5 遠程訪問
11.5 通過LabSQL訪問數據庫
11.5.1 LabSQL安裝
11.5.2 LabSQL配置
11.5.3 LabSQL VIs
11.6 LabSQL應用舉例
11.7 綜合實例:實現簡單的數據庫管理
11.8 習題
11.9 上機實驗
第12章 LabVIEW應用程序的制作
12.1 獨立可執(zhí)行程序(EXE)
12.2 安裝程序(SETUP)
第4篇 綜 合 篇
第13章 電磁干擾自動測試系統(tǒng)
13.1 自動測試系統(tǒng)
13.1.1 自動測試系統(tǒng)的概念
13.1.2 自動測試系統(tǒng)的組成
13.1.3 自動測試系統(tǒng)的應用范圍
13.1.4 自動測試系統(tǒng)的現狀和發(fā)展趨勢
13.2 電磁干擾
13.2.1 電磁干擾的產生
13.2.2 電磁干擾的測試
13.3 自動測試系統(tǒng)的開發(fā)流程
13.3.1 需求分析
13.3.2 硬件設計
13.3.3 軟件設計
13.3.4 系統(tǒng)聯(lián)調
13.4 需求分析電磁干擾自動測試系統(tǒng)
13.5 硬件設計測試系統(tǒng)的硬件組成
13.5.1 硬件組成
13.5.2 數據采集卡
13.5.3 接收天線
13.5.4 其他儀器的選擇
13.5.5 測試系統(tǒng)的工作原理
13.6 軟件設計測試系統(tǒng)的程序結構
13.6.1 測試系統(tǒng)程序的總體構成
13.6.2 系統(tǒng)軟件結構規(guī)劃
13.6.3 測試系統(tǒng)軟件開發(fā)實現
13.6.4 子系統(tǒng)的程序結構
13.7 系統(tǒng)集成電磁干擾自動測試系統(tǒng)
第14章 基于聲卡的數據采集系統(tǒng)
14.1 聲卡的硬件結構與特性
14.1.1 聲卡的基本參數
14.1.2 聲卡的硬件接口
14.2 聲卡操作函數
14.3 構建基于聲卡的數據采集與分析系統(tǒng)
14.3.1 系統(tǒng)組成
14.3.2 編寫波形顯示子VI
14.3.3 自動存儲
14.3.4 手動存儲
14.3.5 信號回放與分析
14.3.6 程序組合
14.4 界面布局與修飾
第15章 利用虛擬采集卡建立電壓采集系統(tǒng)
15.1 數據采集的原理與方法
15.1.1 采樣定理
15.1.2 NI-DAQmx簡介
15.2 數據采集系統(tǒng)的構成
15.2.1 數據采集系統(tǒng)的硬件
15.2.2 數據采集系統(tǒng)的軟件
15.3 NI-DAQmx的特點
15.3.1 NI-DAQmx的新特性
15.3.2 NI-DAQmx的安裝和重要概念
15.4 建立虛擬采集卡
15.5 利用虛擬采集卡建立電壓采集系統(tǒng)
15.5.1 通道配置
15.5.2 測試任務
15.5.3 繪制圖形
15.5.4 編輯NI-DAQmx 任務
15.5.5 直觀比較兩個電壓讀數
第16章 基于LabVIEW FPGA模塊的環(huán)境采集系統(tǒng)
16.1 FPGA的基本概念及環(huán)境測試系統(tǒng)組成
16.1.1 FPGA的基本概念
16.1.2 環(huán)境測試系統(tǒng)組成
16.2 構建FPGA項目
16.3 應用實例