內容簡介
   本書以LabVIEW 8.2版本為講解對象,係統地介紹瞭LabVIEW程序設計的理念、關鍵技術和應用實例。全書從內容上共分為3部分。第1~10章簡潔明瞭地介紹瞭LabVIEW程序設計所需的基礎知識;第11~17章則介紹瞭實際應用中涉及的具體問題和應用實例;第28~32章為對現實工作和生活中的具體係統的瞭解和分析。         本書共有100個實例,具有涵蓋麵廣、內容豐富、結構清晰、實用性強的特點。本書通過大量實例闡述程序設計中的重要概念和設計步驟,突齣瞭係統完整性和實用性相結閤的優點。
     作者簡介
   嚴雨:嵌入式開發工程師,具有豐富的開發經驗,曾就職於多傢世界知名公司,從事嵌入式開發工作。對於單片機的學習,融入瞭作者自身多年積纍的經驗和技巧。
     目錄
   目 錄 
第1章 LabVIEW 8.2的基本操作  
1.1 【實例1】基於模闆打開一個VI並運行  
1.1.1 打開模闆VI  
1.1.2 窗口介紹  
1.1.3 運行模闆VI  
1.2 【實例 2】基於模闆創建一個VI  
1.3 【實例3】編輯前麵闆  
1.3.1 控件選闆  
1.3.2 工具選闆  
1.3.3 前麵闆的編輯  
1.4 【實例4】調試VI  
1.5 本章小結  
第2章 自定義VI  
2.1 【實例 5】簡易數值運算 
2.1.1 設計目的  
2.1.2 程序框圖主要功能模塊介紹  
2.1.3 詳細設計步驟  
2.2 【實例6】簡單濾除信號噪聲  
2.2.1 設計目的  
2.2.2 程序框圖主要功能模塊介紹  
2.2.3 詳細設計步驟  
2.3 本章小結  
第3章 數組  
3.1 【實例7】創建數組控件  
3.1.1 程序框圖主要功能模塊介紹  
3.1.2 詳細設計步驟  
3.2 【實例 8】創建二維數組  
3.3 【實例9】數組的多態性  
3.3.1 程序框圖主要功能模塊介紹  
3.3.2 詳細設計步驟  
3.4 【實例 10】“數組大小(Array Size)”函數  
3.4.1 程序框圖主要功能模塊介紹  
3.4.2 詳細設計步驟  
3.5 【實例 11】“索引數組(Index Array)”函數  
3.5.1 程序框圖主要功能模塊介紹  
3.5.2 詳細設計步驟  
3.6 【實例 12】“數組插入(Insert into Array)”函數  
3.6.1 程序框圖主要功能模塊介紹  
3.6.2 詳細設計步驟  
3.7 【實例 13】“初始化數組(Initialize Array)”函數  
3.7.1 程序框圖主要功能模塊介紹  
3.7.2 詳細設計步驟  
3.8 本章小結  
第4章 簇  
4.1 【實例 14】創建簇  
4.1.1 程序框圖主要功能模塊介紹  
4.1.2 詳細設計步驟  
4.2 【實例 15】“捆綁(Bundle)”函數  
4.2.1 程序框圖主要功能模塊介紹  
4.2.2 詳細設計步驟  
4.3 【實例 16】“解除捆綁(Unbundle)”函數  
4.3.1 程序框圖主要功能模塊介紹  
4.3.2 詳細設計步驟  
4.4 【實例17】“數組/簇轉換(Array to Cluster /Cluster to Array)”函數  
4.4.1 程序框圖主要功能模塊介紹  
4.4.2 詳細設計步驟  
4.5 本章小結 
第5章 字符串、變量和矩陣  
5.1 【實例 18】基本字符串函數的使用  
5.1.1 程序框圖主要功能模塊介紹  
5.1.2 詳細設計步驟  
5.2 【實例 19】“數組/電子錶格字符串轉換”函數  
5.2.1 程序框圖主要功能模塊介紹  
5.2.2 詳細設計步驟  
5.3 【實例 20】局部變量和全局變量的使用  
5.3.1 程序框圖主要功能模塊介紹  
5.3.2 詳細設計步驟  
5.4 【實例 21】矩陣的基本運算  
5.4.1 程序框圖主要功能模塊介紹  
5.4.2 詳細設計步驟  
5.5 【實例 22】求解綫性代數方程  
5.5.1 程序框圖主要功能模塊介紹  
5.5.2 詳細設計步驟  
5.6 本章小結  
第6章 程 序 結 構  
6.1 【實例23】For循環  
6.1.1 程序框圖主要功能模塊介紹  
6.1.2 詳細設計步驟  
6.2 【實例 24】While循環  
6.2.1 程序框圖主要功能模塊介紹  
6.2.2 詳細設計步驟  
6.3 【實例 25】順序結構(Sequence Structure) 
6.3.1 程序框圖主要功能模塊介紹  
6.3.2 詳細設計步驟  
6.4 【實例26】事件結構(Event Structure)  
6.4.1 程序框圖主要功能模塊介紹  
6.4.2 詳細設計步驟  
6.5 【實例 27】使能結構(Disable Structure)  
6.5.1 程序框圖主要功能模塊介紹  
6.5.2 詳細設計步驟  
6.6 【實例 28】選擇結構(Case Structure) 
6.6.1 程序框圖主要功能模塊介紹  
6.6.2 詳細設計步驟  
6.7 【實例 29】公式節點  
6.7.1 程序框圖主要功能模塊介紹  
6.7.2 詳細設計步驟  
6.8 【實例 30】移位寄存器  
6.8.1 程序框圖主要功能模塊介紹  
6.8.2 詳細設計步驟  
6.9 本章小結  
第7章 圖形化數據顯示  
7.1 【實例 31】波形圖錶(Graph)  
7.1.1 程序框圖主要功能模塊介紹  
7.1.2 詳細設計步驟  
7.2 【實例 32】波形圖(Waveform)  
7.2.1 程序框圖主要功能模塊介紹  
7.2.2 詳細設計步驟  
7.3 【實例 33】定製波形圖錶  
7.3.1 程序框圖主要功能模塊介紹  
7.3.2 詳細設計步驟  
7.4 【實例 34】定製波形圖  
7.4.1 程序框圖主要功能模塊介紹  
7.4.2 詳細設計步驟  
7.5 【實例 35】XY麯綫圖  
7.5.1 程序框圖主要功能模塊介紹  
7.5.2 詳細設計步驟  
7.6 【實例 36】強度圖(Intensity Graph)  
7.6.1 程序框圖主要功能模塊介紹  
7.6.2 詳細設計步驟  
7.7 【實例 37】三維麯麵圖  
7.7.1 程序框圖主要功能模塊介紹  
7.7.2 詳細設計步驟  
7.8 本章小結  
第8章 人機界麵交互設計  
8.1 【實例 38】創建登錄對話框  
8.1.1 設計目的  
8.1.2 程序框圖主要功能模塊介紹  
8.1.3 詳細設計步驟  
8.2 【實例 39】創建主菜單  
8.2.1 設計目的  
8.2.2 程序框圖主要功能模塊介紹  
8.2.3 詳細設計步驟  
8.3 【實例 40】自定義控件  
8.3.1 設計目的  
8.3.2 程序框圖主要功能模塊介紹  
8.3.3 詳細設計步驟  
8.4 【實例 41】修飾靜態界麵  
8.4.1 設計目的  
8.4.2 程序框圖主要功能模塊介紹  
8.4.3 詳細設計步驟  
8.5 【實例 42】動態交互界麵  
8.5.1 設計目的  
8.5.2 程序框圖主要功能模塊介紹  
8.5.3 詳細設計步驟  
8.6 本章小結  
第9章 文件I/O  
9.1 【實例 43】嚮文件中寫入數據  
9.1.1 設計目的  
9.1.2 程序框圖主要功能模塊介紹  
9.1.3 詳細設計步驟  
9.2 【實例 44】從文件中讀取數據  
9.2.1 設計目的  
9.2.2 程序框圖主要功能模塊介紹  
9.2.3 詳細設計步驟  
9.3 【實例 45】寫入二進製文件  
9.3.1 設計目的  
9.3.2 程序框圖主要功能模塊介紹  
9.3.3 詳細設計步驟  
9.4 【實例 46】寫入錶單文件  
9.4.1 設計目的  
9.4.2 程序框圖主要功能模塊介紹  
9.4.3 詳細設計步驟  
9.5 【實例 47】讀取電子錶格文件  
9.5.1 設計目的  
9.5.2 程序框圖主要功能模塊介紹  
9.5.3 詳細設計步驟  
9.6 【實例 48】嚮文件中寫入波形數據  
9.6.1 設計目的  
9.6.2 程序框圖主要功能模塊介紹  
9.6.3 詳細設計步驟  
9.7 本章小結  
第10章 子VI與程序調試  
10.1 【實例 49】創建子VI  
10.1.1 設計目的  
10.1.2 程序框圖主要功能模塊介紹  
10.1.3 詳細設計步驟  
10.2 【實例 50】調用子VI  
10.2.1 設計目的  
10.2.2 程序框圖主要功能模塊介紹  
10.2.3 詳細設計步驟  
10.3 本章小結  
第11章 數學分析與信號處理  
11.1 【實例51】求商和餘數  
11.1.1 設計目的  
11.1.2 程序框圖主要功能模塊介紹  
11.1.3 詳細設計步驟  
11.2 【實例52】數值微積分  
11.2.1 設計目的  
11.2.2 程序框圖主要功能模塊介紹  
11.2.3 詳細設計步驟  
11.3 【實例53】麯綫積分  
11.3.1 設計目的  
11.3.2 程序框圖主要功能模塊介紹  
11.3.3 詳細設計步驟  
11.4 【實例54】求解微分方程――單擺運動 
11.4.1 設計目的  
11.4.2 程序框圖主要功能模塊介紹  
11.4.3 詳細設計步驟  
11.5 【實例55】綫性代數計算器  
11.5.1 設計目的  
11.5.2 程序框圖主要功能模塊介紹  
11.5.3 詳細設計步驟  
11.6 【實例56】求解多項式函數零點  
11.6.1 設計目的  
11.6.2 程序框圖主要功能模塊介紹  
11.6.3 詳細設計步驟  
11.7 【實例57】麯綫擬閤  
11.7.1 設計目的  
11.7.2 程序框圖主要功能模塊介紹  
11.7.3 詳細設計步驟  
11.8 【實例58】概率與統計  
11.8.1 設計目的  
11.8.2 程序框圖主要功能模塊介紹  
11.8.3 詳細設計步驟  
11.9 【實例59】取值最優化  
11.9.1 設計目的  
11.9.2 程序框圖主要功能模塊介紹  
11.9.3 詳細設計步驟 
11.10 【實例60】MathScript節點實現信號分析  
11.10.1 設計目的  
11.10.2 程序框圖主要功能模塊介紹  
11.10.3 詳細設計步驟 
11.11 【實例61】信號生成  
11.11.1 設計目的  
11.11.2 程序框圖主要功能模塊介紹  
11.11.3 詳細設計步驟  
11.12 【實例62】計算信號歸一化頻率  
11.12.1 設計目的  
11.12.2 程序框圖主要功能模塊介紹  
11.12.3 詳細設計步驟  
11.13 【實例63】測量信號幅值和電平  
11.13.1 設計目的  
11.13.2 程序框圖主要功能模塊介紹  
11.13.3 詳細設計步驟  
11.14 【實例64】信號的瞬態特性測量  
11.14.1 設計目的  
11.14.2 程序框圖主要功能模塊介紹  
11.14.3 詳細設計步驟  
11.15 【實例65】單邊傅裏葉變換  
11.15.1 設計目的  
11.15.2 程序框圖主要功能模塊介紹  
11.15.3 詳細設計步驟  
11.16 【實例66】雙邊傅裏葉變換  
11.16.1 設計目的  
11.16.2 程序框圖主要功能模塊介紹  
11.16.3 詳細設計步驟  
11.17 【實例67】平滑窗  
11.17.1 設計目的  
11.17.2 程序框圖主要功能模塊介紹  
11.17.3 詳細設計步驟  
11.18 【實例68】漢明(Hamming)窗  
11.18.1 設計目的  
11.18.2 程序框圖主要功能模塊介紹  
11.18.3 詳細設計步驟  
11.19 【實例69】提取正弦波  
11.19.1 設計目的  
11.19.2 程序框圖主要功能模塊介紹  
11.19.3 詳細設計步驟  
11.20 【實例70】逐點分析濾波器  
11.20.1 設計目的  
11.20.2 程序框圖主要功能模塊介紹  
11.20.3 詳細設計步驟  
11.21 本章小結  
第12章 數據采集和儀器控製  
12.1 【實例71】單通道單點采樣  
12.1.1 設計目的  
12.1.2 程序框圖主要功能模塊介紹  
12.1.3 詳細設計步驟  
12.2 【實例72】采集波形  
12.2.1 設計目的  
12.2.2 程序框圖主要功能模塊介紹  
12.2.3 詳細設計步驟  
12.3 【實例73】單通道單點輸齣  
12.3.1 設計目的  
12.3.2 程序框圖主要功能模塊介紹  
12.3.3 詳細設計步驟  
12.4 【實例74】生成波形  
12.4.1 設計目的  
12.4.2 程序框圖主要功能模塊介紹  
12.4.3 詳細設計步驟  
12.5 【實例75】VISA函數  
12.5.1 設計目的  
12.5.2 程序框圖主要功能模塊介紹 
12.5.3 詳細設計步驟  
12.6 【實例76】LabVIEW 8.2與GPIB通信  
12.6.1 設計目的  
12.6.2 程序框圖主要功能模塊介紹  
12.6.3 詳細設計步驟  
12.7 【實例77】使用NI-DAQmx VI創建任務  
12.7.1 設計目的  
12.7.2 詳細設計步驟  
12.8 【實例78】使用DAQ Assistant創建任務  
12.8.1 設計目的  
12.8.2 程序框圖主要功能模塊介紹  
12.8.3 詳細設計步驟  
12.9 本章小結  
第13章 Express VIs  
13.1 【實例79】利用Express VI創建數值比較實例  
13.1.1 設計目的  
13.1.2 程序框圖主要功能模塊介紹  
13.1.3 詳細設計步驟  
13.2 【實例80】利用Express VI實現刻度標示變換  
13.2.1 設計目的  
13.2.2 程序框圖主要功能模塊介紹  
13.2.3 詳細設計步驟  
13.3 【實例81】利用Express VI進行信號選擇  
13.3.1 設計目的  
13.3.2 程序框圖主要功能模塊介紹  
13.3.3 詳細設計步驟  
13.4 本章小結  
第14章 【實例82】獲取係統當前時間  
14.1 設計目的  
14.2 程序框圖主要功能模塊介紹  
14.2.1 “獲取日期/時間(秒)”函數  
14.2.2 “格式化日期/時間字符串” 
函數  
14.2.3 結果顯示部分  
14.3 詳細設計步驟  
14.3.1 前麵闆的設計  
14.3.2 程序框圖的設計  
14.3.3 運行結果  
14.4 本章小結  
第15章 【實例83】創建右鍵快捷菜單  
15.1 設計目的  
15.2 程序框圖主要功能模塊介紹  
15.2.1 While循環模塊  
15.2.2 用戶界麵事件響應模塊  
15.2.3 攝氏-華氏公式轉換模塊  
15.2.4 攝氏-華氏轉換顯示模塊  
15.3 詳細設計步驟 
15.3.1 前麵闆的設計  
15.3.2 程序框圖的設計  
15.3.3 運行結果  
15.4 本章小結  
第16章 【實例84】數字示波器  
16.1 設計目的  
16.2 程序框圖主要功能模塊介紹  
16.2.1 觸發器功能塊  
16.2.2 通道選擇功能塊  
16.2.3 水平分度調節功能塊  
16.2.4 幅值分度調節功能塊 
16.2.5 相位分析功能塊  
16.2.6 功率估計功能塊  
16.2.7 波形顯示功能塊  
16.3 詳細設計步驟  
16.3.1 前麵闆設計  
16.3.2 觸發電平(Slope)子VI的設計  
16.3.3 觸發器(Trigger)子VI的設計  
16.3.4 通道選擇(Select Channel)子VI的設計  
16.3.5 功率估計子VI的設計  
16.3.6 相位分析子VI的設計  
16.3.7 選擇功能的實現  
16.3.8 水平分度調節處理功能塊的設計  
16.3.9 幅值分度調節處理功能塊的設計  
16.3.10 完整程序框圖  
16.3.11 運行結果  
16.4 本章小結  
第17章 【實例85】觸發計數器  
17.1 設計目的  
17.2 程序框圖主要功能模塊介紹  
17.2.1 “觸發與門限”函數  
17.2.2 “統計”函數  
17.3 詳細設計步驟  
17.3.1 創建一個新的VI  
17.3.2 添加仿真信號  
17.3.3 添加“觸發與門限”函數  
17.3.4 進行統計計數  
17.3.5 完整程序框圖  
17.3.6 運行結果  
17.4 本章小結  
第18章 【實例86】基本函數發生器  
18.1 設計目的  
18.2 程序框圖主要功能模塊介紹  
18.2.1 基本函數發生器函數模塊  
18.2.2 While循環模塊  
18.3 詳細設計步驟  
18.3.1 創建一個新的VI  
18.3.2 配置基本函數發生器  
18.3.3 完整程序框圖  
18.3.4 前麵闆界麵布局  
18.3.5 運行結果  
18.4 本章小結  
第19章 【實例87】對高斯噪聲的統計分析 
19.1 設計目的  
19.2 程序框圖主要功能模塊介紹  
19.2.1 仿真信號生成模塊  
19.2.2 統計函數模塊  
19.2.3 “創建直方圖”函數 
19.3 詳細設計步驟  
19.3.1 創建一個新的VI  
19.3.2 添加信號源  
19.3.3 對信號進行統計分析  
19.3.4 創建柱狀圖  
19.3.5 完整程序框圖  
19.3.6 運行結果  
19.4 本章小結  
第20章 【實例88】信號的功率譜測量  
20.1 設計目的  
20.2 程序框圖主要功能模塊介紹 
20.2.1 “正弦波形”函數  
20.2.2 “高斯白噪聲波形”函數  
20.2.3 “FFT功率譜”函數  
20.3 詳細設計步驟  
20.3.1 創建一個新的VI  
20.3.2 産生添加瞭噪聲的正弦信號 
20.3.3 前麵闆的設計  
20.3.4 功率譜測量程序框圖  
20.3.5 完整程序框圖  
20.3.6 運行結果  
20.4 本章小結 
第21章 【實例89】低通濾波器設計 
21.1 設計目的 
21.2 程序框圖主要功能模塊介紹  
21.2.1 測試信號生成模塊  
21.2.2 濾波功能模塊  
21.2.3 頻譜分析模塊  
21.2.4 While循環模塊  
21.2.5 結果顯示模塊  
21.3 詳細設計步驟  
21.3.1 創建一個新的VI  
21.3.2 産生信號源 
21.3.3 低通濾波  
21.3.4 進行頻譜分析 
21.3.5 完整程序框圖  
21.3.6 運行結果  
21.4 本章小結 
第22章 【實例90】火車輪狀態的實時監控 
22.1 設計目的 
22.2 程序框圖主要功能模塊介紹  
22.2.1 “Butterworth濾波器(逐點)”函數  
22.2.2 “數組最大值與最小值(逐點)”函數  
22.2.3 “布爾值轉換(逐點)”函數  
22.2.4 條件結構 
22.3 詳細設計步驟  
22.3.1 創建一個新的VI  
22.3.2 構建仿真數據數組  
22.3.3 Butterworth濾波處理  
22.3.4 峰值檢測 
22.3.5 完整程序框圖  
22.3.6 運行結果  
22.4 本章小結 
第23章 【實例91】溫度分析儀  
23.1 設計目的  
23.2 程序框圖主要功能模塊介紹  
23.2.1 數字溫度計子VI模塊 
23.2.2 “數組最大值與最小值”函數  
23.2.3 “均值”函數  
23.2.4 簇捆綁函數(控件)  
23.3 詳細設計步驟  
23.3.1 數字溫度計子VI的設計  
23.3.2 前麵闆的設計  
23.3.3 溫度數據采集  
23.3.4 溫度分析  
23.3.5 完整程序框圖設計  
23.3.6 運行結果  
23.4 本章小結 
第24章 【實例92】高級諧波分析儀  
24.1 設計目的  
24.2 程序框圖主要功能模塊介紹 
24.2.1 測試信號子VI  
24.2.2 “諧波失真分析”函數  
24.2.3 “簡易錯誤處理器”函數  
24.3 詳細設計步驟  
24.3.1 創建一個新的VI  
24.3.2 編寫測試信號子VI  
24.3.3 添加“諧波失真分析”函數  
24.3.4 完成前麵闆的設計  
24.3.5 運行結果  
24.4 本章小結  
第25章 【實例93】電話按鍵聲音模擬器  
25.1 設計目的 
25.2 程序框圖主要功能模塊介紹  
25.2.1 “創建路徑”函數  
25.2.2 “播放聲音文件”函數  
25.2.3 “數值至十進製數字符串轉換”函數  
25.3 詳細設計步驟  
25.3.1 創建一個新的VI  
25.3.2 前麵闆的設計  
25.3.3 電話按鍵聲音模擬和鍵值顯示 
25.3.4 完整程序框圖  
25.3.5 運行結果  
25.4 本章小結  
第26章 【實例94】迴聲産生器  
26.1 設計目的  
26.2 程序框圖主要功能模塊介紹  
26.2.1 迴聲産生器功能模塊  
26.2.2 While循環功能模塊  
26.3 詳細設計步驟  
26.3.1 創建一個新的VI  
26.3.2 迴聲産生模塊程序設計  
26.3.3 完整程序框圖  
26.3.4 運行結果  
26.4 本章小結  
第27章 【實例95】迴聲探測器  
27.1 設計目的  
27.2 程序框圖主要功能模塊介紹  
27.2.1 迴聲産生子VI功能模塊  
27.2.2 迴聲探測功能模塊  
27.2.3 結果顯示功能模塊  
27.2.4 While循環功能模塊 
27.3 詳細設計步驟  
27.3.1 創建迴聲産生子VI  
27.3.2 前麵闆的設計  
27.3.3 迴聲探測程序框圖設計  
27.3.4 完整程序框圖  
27.3.5 運行結果  
27.4 本章小結 
第28章 【實例96】信號的發生與處理綜閤實例  
28.1 設計目的 
28.2 程序框圖主要功能模塊介紹  
28.2.1 産生原始信號子VI模塊  
28.2.2 窗函數濾波模塊  
28.2.3 FFT功率譜函數模塊  
28.2.4 波形最大最小值函數模塊  
28.2.5 活動遊標控件模塊  
28.3 詳細設計步驟 
28.3.1 産生原始信號子VI  
28.3.2 前麵闆的設計  
28.3.3 産生原始信號  
28.3.4 添加“FIR加窗濾波器”函數  
28.3.5 添加“FFT功率譜”函數  
28.3.6 添加“波形最大最小值”函數  
28.3.7 遊標設置  
28.3.8 完整程序框圖 
28.3.9 運行結果  
28.4 本章小結  
第29章 【實例97】雙通道頻譜測量的濾波器設計  
29.1 設計目的  
29.2 程序框圖主要功能模塊介紹  
29.2.1 測試信號生成模塊  
29.2.2 “雙通道譜測量”VI 
29.2.3 “信號掩區和邊界測試”VI  
29.2.4 “濾波器”VI  
29.2.5 設置截止頻率子VI模塊 
29.2.6 處理結果顯示部分  
29.3 詳細設計步驟 
29.3.1 創建截止頻率設置子VI  
29.3.2 前麵闆的設計 
29.3.3 産生仿真信號  
29.3.4 信號濾波  
29.3.5 信號的雙通道譜測量  
29.3.6 檢測信號  
29.3.7 程序框圖中數據流的傳輸  
29.3.8 完整程序框圖  
29.3.9 運行結果  
29.4 本章小結 
第30章 【實例98】微處理器冷卻裝置的實時監控  
30.1 設計目的  
30.2 微處理器冷卻裝置實時監控係統的運行  
30.3 程序框圖主要功能介紹 
30.3.1 係統的總體框架  
30.3.2 初始化和整體參數設定功能塊  
30.3.3 輸入階段功能塊  
30.3.4 計算階段功能塊  
30.3.5 輸齣階段功能塊  
30.3.6 微處理器溫度控製模擬子VI  
30.3.7 微處理器溫度記錄子VI  
30.3.8 定時參數時序圖更新子VI  
30.3.9 風扇運行狀態計算子VI  
30.4 微處理器冷卻裝置實時監控係統的設計步驟 
30.4.1 前麵闆的設計  
30.4.2 PAC-IO with Fan Status子VI的創建  
30.4.3 Temp. Logger子VI的創建  
30.4.4 Update Timing Diagram子VI的創建  
30.4.5 Fan Computation子VI的創建  
30.4.6 程序總體框架的處理  
30.4.7 “定時循環”結構的輸入和初始化  
30.4.8 輸入階段的處理過程  
30.4.9 計算階段的處理過程  
30.4.10 輸齣階段的處理過程  
30.4.11 添加程序注釋和說明  
30.5 本章小結  
第31章 【實例99】脈衝及瞬態測量控件設計  
31.1 設計目的  
31.2 程序框圖主要功能模塊介紹  
31.2.1 仿真波形生成  
31.2.2 瞬態特性測量  
31.2.3 脈衝測量  
31.2.4 周期平均值和均方根  
31.2.5 幅值和電平  
31.2.6 波形圖縮放功能  
31.2.7 波形圖顯示功能  
31.3 詳細設計步驟  
31.3.1 生成基本波形和噪聲波形  
31.3.2 仿真波形的生成和顯示  
31.3.3 瞬態測量程序塊  
31.3.4 脈衝測量程序塊  
31.3.5 周期平均值和均方根程序塊  
31.3.6 幅值和電平測量程序塊  
31.3.7 完整的程序框圖  
31.4 本章小結  
第32章 【實例100】數據采集係統的設計  
32.1 設計目的  
32.2 數據采集係統相關介紹  
32.2.1 測試過程介紹  
32.2.2 測試參數分析  
32.3 係統前麵闆的開發  
32.3.1 創建新的虛擬儀器(VI)  
32.3.2 係統選項卡控件  
32.3.3 修飾圖案  
32.3.4 係統下拉列錶  
32.3.5 數值輸入控件  
32.3.6 文件路徑輸入控件  
32.3.7 布爾控件  
32.3.8 波形圖錶控件  
32.3.9 係統單選控件  
32.3.10 鏇鈕控件  
32.3.11 溫度計控件  
32.3.12 儀錶控件  
32.3.13 多列列錶框控件  
32.4 程序框圖設計  
32.4.1 順序結構  
32.4.2 數據采集裝置的參數設置  
32.4.3 冷端補償通道  
32.4.4 電壓信號采集模塊  
32.4.5 數據采集和處理模塊  
32.4.6 數據顯示與保存模塊  
32.4.7 程序運行控製模塊  
32.5 本章小結  
參考文獻      
前言/序言
   前    言
 
 本書全麵介紹瞭LabVIEW 8.2(中文版)虛擬儀器開發過程中的各種編程知識與技巧;通過理論與實例結閤的方式,深入淺齣地介紹瞭其使用方法和技巧,目的在於讓讀者快速掌握這門功能強大的圖形化編程語言。
 本書第3版在第1版和第2版的基礎之上,對書中實例的實際開發過程進行瞭適當的精簡,使得實例的講解更加貼近讀者的理解過程。此外,對第1版和第2版中的部分綜閤實例做瞭適當調整,將其中原理性比較強而實際應用比較差的綜閤實例替換為更加實用的綜閤實例,以期達到開發人員實際開發參考用書的目的。
 本書緊密結閤開發人員的心得體會,以實用性強的100個實例細緻地講述瞭LabVIEW 8.2的軟件操作方法、關鍵細節技巧和工程應用實踐經驗,在編寫過程中力求做到語言精練、通俗易懂、內容緊湊。
 本書可分為3篇——基礎篇、實例應用篇和綜閤開發篇,具體章節內容安排如下。
 1.第1章至第10章為LabVIEW的基礎篇
 第1章介紹瞭LabVIEW 8.2軟件的基礎操作,包括VI的創建、前麵闆的編輯和VI實例的調試等。第2章對VI的自定義進行瞭講解。第3章至第5章分彆介紹瞭編程過程中經常遇到的數組、簇、字符串、變量和矩陣。第6章介紹瞭程序結構,包括循環結構、選擇結構和順序結構等。第7章至第9章介紹瞭圖形化數據顯示、人機界麵交互設計,以及文件I/O操作的具體內容。第10章則對大型係統程序編寫過程中常用到的子VI的創建和調試進行瞭詳細的介紹。
 2.第11章至第27章為LabVIEW的實例應用篇
 第11章介紹瞭數學分析和信號處理中常用到的函數和處理方法。第12章講解瞭LabVIEW數據采集和儀器控製的常用方法。第13章嚮讀者呈現瞭Express VI編程的快速和易用特點。第14章講解瞭如何獲得係統當前時間。第15章對創建右鍵快捷菜單進行瞭舉例說明。第16章至第24章分彆介紹瞭信號生成和處理過程中常用的分析方法和實現方式,包括數字示波器、觸發計數器、基本函數發生器、噪聲分析、功率譜測量、濾波處理和高級諧波分析等。第25章介紹瞭一個電話按鍵聲音模擬器的設計技巧。第26章和第27章介紹瞭迴聲發生器和迴聲探測器的設計方法。
 3.第28章至第32章為LabVIEW的綜閤開發篇
 第28章介紹瞭一個信號的發生和處理綜閤實例,對信號發生和處理的函數進行瞭綜閤使用。第29章介紹瞭LabVIEW在雙通道頻譜測量的濾波器設計中的應用,體現瞭虛擬設計的實用性。第30章介紹瞭微處理器冷卻裝置的實時監控的實例應用和編程特點。第31章介紹瞭脈衝及瞬態測量控件設計,凸顯瞭LabVIEW控件編程的實用性。第32章介紹瞭數據采集係統的設計實例的詳細編程過程,對數據采集係統的實際開發進行瞭深入的介紹。
 本書給讀者提供瞭大量的實例,使讀者可以觸類旁通、學以緻用地掌握LabVIEW的實踐應用,並可幫助讀者快速、深入地學習和掌握該軟件的強大功能,切實提高工作效率。
 本書主要由嚴雨、田京京、夏寜編著,參與編寫的還有豈興明、李若榖、嚴安國、張為平、何世蘭、劉洋洋、姚宗旭、王闖、徐慧超、葛祥磊等。由於編著者水平有限,書中難免存在錯誤和疏漏之處,懇請廣大讀者批評指正!
 
 編著者  
 2016年7月
 
    
				 
				
				
					LabVIEW入門與實戰開發100例(第3版)  內容簡介  本書是一本麵嚮LabVIEW初學者及有一定基礎的開發人員的全麵指南,旨在幫助讀者快速掌握LabVIEW圖形化編程環境,並能夠獨立完成各類實際項目。本書共包含100個精心設計的實戰案例,涵蓋瞭從基礎概念到高級應用的廣泛主題,力求理論與實踐緊密結閤,讓讀者在動手實踐中深入理解LabVIEW的核心功能和開發技巧。  第一部分:LabVIEW基礎與入門  本部分將引導讀者走進LabVIEW的世界,從認識其獨特的圖形化編程範式開始,循序漸進地掌握核心概念和基本操作。     第一章:LabVIEW初識        LabVIEW簡介與應用領域: 深入解讀LabVIEW作為一種強大的圖形化集成開發環境(GIDE)的優勢,以及其在數據采集、儀器控製、自動化測試、嵌入式係統、信號處理、圖像處理、機器人控製等眾多領域的廣泛應用。我們將通過實際案例展示LabVIEW如何簡化復雜係統的開發流程,提高開發效率。        LabVIEW開發環境概覽: 詳細介紹LabVIEW的各項重要窗口,包括前麵闆(Front Panel)、程序框圖(Block Diagram)、項目資源管理器(Project Explorer)、查找窗口(Find Window)、工具麵闆(Tools Palette)、函數選闆(Function Palette)等。重點講解各窗口的功能和使用方法,讓讀者熟悉LabVIEW的整體布局。        第一個LabVIEW VI(虛擬儀器): 從零開始,引導讀者創建並運行第一個簡單的LabVIEW VI。我們將演示如何放置控件(Controls)和指示器(Indicators)到前麵闆,如何在程序框圖上連接節點(Nodes)和導綫(Wires)來構建程序邏輯。這個過程將直觀地展示圖形化編程的魅力。        LabVIEW數據類型與基本操作: 介紹LabVIEW支持的主要數據類型,如數值型(Numeric)、布爾型(Boolean)、字符串型(String)、數組(Array)、簇(Cluster)等。講解如何在這類數據之間進行轉換,以及如何在VI中進行基本的數據操作,如算術運算、邏輯運算、字符串連接等。        VI的組織與重用: 探討如何將復雜的VI分解成更小的、可管理的子VI,以提高代碼的可讀性和可維護性。講解子VI的創建、編輯、參數傳遞以及如何在主VI中調用子VI。     第二章:LabVIEW核心概念解析        流程控製結構: 深入講解LabVIEW中的核心流程控製結構,包括:            順序結構(Sequence Structure): 演示如何在多個操作之間強製執行特定的執行順序。            條件結構(Case Structure): 講解如何根據條件的不同執行不同的程序分支,適用於簡單的條件判斷。            移位寄存器(Shift Register): 解釋移位寄存器在循環中傳遞數據的功能,是實現迭代計算和狀態保持的關鍵。            反饋節點(Feedback Node): 介紹反饋節點在循環中實現數據迴饋和狀態纍積的作用。        循環結構: 詳細介紹LabVIEW的兩種主要循環結構:            While循環(While Loop): 演示如何根據一個條件來控製循環的執行,直到條件不滿足時退齣。            For循環(For Loop): 講解如何根據指定的迭代次數來執行循環,適用於已知循環次數的場景。        事件結構(Event Structure): 重點介紹事件結構在用戶界麵交互中的重要性。解釋事件的類型(如按鍵按下、值改變、定時器超時等)以及如何響應這些事件,實現用戶友好的交互式應用程序。        簇與數組的應用: 結閤實際例子,詳細闡述簇和數組在組織和管理相關數據方麵的強大能力。講解如何創建、訪問和操作簇和數組,例如如何將多個傳感器數據打包成一個簇,或如何處理大量采集的數據點。     第三章:前麵闆設計與用戶界麵        控件與指示器的選擇與配置: 介紹LabVIEW豐富的控件和指示器庫,包括數值顯示、圖錶、開關、按鈕、LED燈、文本框等。講解如何根據應用需求選擇閤適的控件,以及如何對其屬性(如顔色、大小、可見性、格式等)進行詳細配置。        圖錶與圖形工具: 重點講解LabVIEW強大的圖錶和圖形工具,包括波形圖(Waveform Chart)、XY圖(XY Graph)、幅度和相位圖(Amplitude and Phase Plot)、三維圖錶(3D Graph)等。演示如何實時顯示采集到的數據,如何配置圖錶的顯示模式、坐標軸、圖例等,以及如何進行數據分析和可視化。        菜單欄、工具欄與快捷鍵: 介紹如何自定義LabVIEW的菜單欄和工具欄,以適應特定的開發流程。同時,講解常用的快捷鍵,提高開發效率。        打包與部署: 講解如何將開發的VI打包成可執行文件(Executable)或安裝程序(Installer),以便在沒有LabVIEW開發環境的計算機上運行。  第二部分:數據采集與儀器控製實戰  本部分將深入探討LabVIEW在數據采集和儀器控製領域的強大功能,通過一係列經典案例,讓讀者掌握與硬件交互的核心技術。     第四章:數據采集基礎        NI DAQ硬件簡介: 簡要介紹NI(National Instruments)DAQ(Data Acquisition)硬件産品係列,包括PCI/PCIe、USB、EthernetDAQ等,以及它們在各種應用中的角色。        DAQmx驅動與API: 詳細講解NI-DAQmx驅動程序及其API(Application Programming Interface)。演示如何使用DAQmx函數來配置和管理DAQ設備,包括通道配置、采樣率設置、觸發方式選擇等。        模擬量輸入(AI)采集: 通過實例,講解如何使用DAQmx實現對模擬信號的采集,如電壓、電流、溫度等。演示如何配置AI通道、設置采樣時序、讀取采集到的數據,並將其顯示在波形圖上。        模擬量輸齣(AO)控製: 講解如何使用DAQmx生成模擬輸齣信號,用於控製外部設備。演示如何設置AO通道、寫入輸齣值,以及在不同應用場景下進行模擬輸齣控製。        數字量輸入(DI)與輸齣(DO): 講解如何使用DAQmx進行數字信號的讀寫,例如讀取開關狀態、控製LED燈、驅動繼電器等。演示數字量采集和輸齣的配置與實現。        計數器/定時器(CI/CO)功能: 介紹DAQ硬件的計數器/定時器功能,用於測量頻率、脈衝寬度、生成脈衝信號等。通過實例演示如何利用這些功能實現更復雜的測量和控製。        多通道與同步采集: 講解如何配置和實現多通道數據的同步采集,確保不同通道數據的時間一緻性,這對於分析復雜係統至關重要。     第五章:儀器連接與控製        儀器通信接口: 介紹LabVIEW支持的常見儀器通信接口,包括GPIB(General-Purpose Interface Bus)、VISA(Virtual Instrument Software Architecture)、串行通信(RS-232)、以太網(Ethernet)和USB。        VISA介紹與使用: 詳細講解VISA作為統一的儀器通信抽象層。演示如何使用VISA驅動來查找、打開、配置和關閉儀器連接,以及如何讀寫儀器命令。        GPIB儀器控製: 通過實例,演示如何使用LabVIEW的GPIB工具包來控製GPIB接口的儀器,如示波器、函數發生器、電源等。講解SCPI(Standard Commands for Programmable Instruments)命令集的使用。        串行通信(RS-232)控製: 講解如何通過LabVIEW實現RS-232串行通信,控製串口設備,如GPS模塊、某些傳感器等。演示串口參數的配置和數據收發。        網絡通信(TCP/IP, UDP)與儀器控製: 介紹如何利用TCP/IP和UDP協議進行網絡通信,控製網絡接口的儀器。這在分布式測量和遠程控製中尤為重要。        常用儀器驅動程序: 介紹如何獲取和使用特定儀器的驅動程序(Instrument Driver)。演示如何通過這些驅動程序調用儀器的高級功能,而無需手動編寫低級命令。        實例:控製示波器采集波形: 一個經典的實戰案例,將演示如何使用LabVIEW控製一颱示波器,設置觸發、通道、時間基等參數,然後采集波形並顯示在LabVIEW前麵闆上。        實例:控製函數發生器産生信號: 另一個實例,演示如何使用LabVIEW控製函數發生器,生成不同類型(正弦、方波、三角波等)和參數(頻率、幅度、占空比等)的信號。  第三部分:高級LabVIEW開發技巧與應用  本部分將進一步深入LabVIEW的開發,介紹一些高級技術和在特定領域的應用,幫助讀者構建更強大、更靈活的係統。     第六章:高級數據處理與分析        一維與多維數組的高級操作: 講解如何使用LabVIEW的數組函數對數據進行更復雜的操作,如子數組提取、數組重塑、數組轉置、數組排序、數組搜索等。        濾波器設計與應用: 介紹LabVIEW中內置的各種濾波器(如低通、高通、帶通、帶阻濾波器),以及如何使用它們對信號進行濾波。演示如何設計和應用數字濾波器。        FFT(快速傅裏葉變換)與頻譜分析: 講解FFT的原理,以及如何使用LabVIEW的FFT函數進行頻譜分析。演示如何通過FFT觀察信號的頻率成分,識彆噪聲源等。        統計分析函數: 介紹LabVIEW提供的各種統計分析函數,如計算平均值、標準差、最小值、最大值、直方圖等,用於數據分析和質量控製。        信號生成與處理: 演示如何使用LabVIEW生成各種類型的信號,如正弦波、方波、隨機噪聲等,並對這些信號進行各種處理,如疊加、調製、解調等。        自定義數學函數與工具包: 介紹如何通過LabVIEW的數學函數來構建自定義的數學算法,以及如何利用NI提供的或第三方開發的數學和信號處理工具包來擴展功能。     第七章:程序結構與效率優化        狀態機(State Machine)設計: 詳細講解狀態機的概念和在LabVIEW中的實現方法。通過實例演示如何使用狀態機來管理復雜係統的不同工作狀態,提高程序的模塊化和可維護性。        生産者-消費者(Producer-Consumer)設計模式: 介紹生産者-消費者模式在多任務並發處理中的應用。演示如何使用隊列(Queue)和通知(Notification)來實現高效的數據傳遞和任務同步。        亞VI(SubVI)與VI服務器: 深入講解如何有效地組織和重用代碼,包括創建具有不同輸入輸齣的亞VI,以及如何使用VI服務器來實現遠程調用和動態加載VI。        錯誤處理與報告: 介紹LabVIEW強大的錯誤處理機製,包括錯誤簇(Error Cluster)的使用、用戶自定義錯誤處理以及如何編寫健壯的錯誤報告機製。        性能分析與優化: 講解如何使用LabVIEW的性能分析工具(如Profile Performance and Memory)來識彆程序瓶頸,並提供優化代碼執行效率的方法,如優化循環、減少不必要的內存操作等。        並行處理與多綫程: 介紹LabVIEW中實現並行處理的方法,如使用條件編譯、亞VI的可重入性以及NI提供的並行編程工具包,以充分利用多核處理器的性能。     第八章:特定領域應用案例        實例:PID控製器設計與仿真: 演示如何使用LabVIEW設計和仿真一個PID(Proportional-Integral-Derivative)控製器,用於溫度、位置等閉環控製係統。        實例:電機控製與速度測量: 通過實際案例,展示如何使用LabVIEW采集電機編碼器的脈衝信號,計算電機轉速,並實現對電機速度的閉環控製。        實例:數據記錄與分析係統: 構建一個通用的數據記錄係統,能夠采集多路傳感器數據,並實時顯示、保存到文件,同時提供基本的離綫數據分析功能。        實例:用戶界麵定製與嵌入式係統交互: 演示如何創建更復雜的、具有專業界麵的LabVIEW應用程序,以及如何將其與NI嵌入式硬件(如CompactRIO, sbRIO)進行交互,實現獨立的嵌入式數據采集與控製係統。        實例:圖像采集與基礎圖像處理: 介紹如何使用LabVIEW連接相機進行圖像采集,並利用Vision Development Module(如果包含)或基礎的圖像處理函數實現一些簡單的圖像分析,如邊緣檢測、目標識彆等。        實例:基於網絡的服務或客戶端開發: 演示如何利用LabVIEW的網絡通信功能,開發簡單的網絡服務或客戶端,實現與其他應用程序或設備的遠程通信。  附錄     LabVIEW快捷鍵列錶    常用LabVIEW函數速查    常見問題解答(FAQ)  本書旨在為讀者提供一個全麵、係統的LabVIEW學習路徑,通過100個詳實、可操作的實戰案例,幫助讀者從零開始掌握LabVIEW的核心技術,並能夠勝任各種實際工程開發任務。無論是學生、研究人員還是工程師,都能從中獲益,加速您的LabVIEW開發之路。