3dwoo大學簡體電腦書店
LabVIEW虛擬儀器項目開發與實踐
( 簡體 字)
作者:楊高科類別:1. -> 程式設計 -> Labview
出版社:清華大學出版社LabVIEW虛擬儀器項目開發與實踐 3dWoo書號: 55965
詢問書籍請說出此書號!
有庫存
NT售價: 895
出版日:7/1/2022
頁數:694
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302603238 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章
緒論/1
1.1 虛擬儀器與LabVIEW/1
1.2 虛擬儀器開發環境的搭建/4
1.3VI的開發與調試步驟/9
1.4 LabVIEW虛擬儀器項目開發/14
1.5 LabVIEW虛擬儀器項目管理/15
第2章
前面板設計/17
2.1控件選擇/17
2.2前面板設計總原則/21
2.3前面板布局/23
2.4前面板文本和色彩/25
2.5可見性和健壯性/27
2.6對前面板進行裝飾/29
2.7本章小結/31
第3章
基本數據類型和操作/32
3.1 基本數據類型/32
3.2 常規數據操作方法/38
3.3 數值/41
3.4 布爾/44
3.5 枚舉類型與下拉列表/46
3.6 路徑和字符串/47
3.7 數組、簇和矩陣/51
3.8 數組操作/54
3.8.1 數組的創建和初始化/55
3.8.2 索引數組元素/56
3.8.3 編輯數組/58
3.8.4數組排序/59
3.8.5 其他數組操作函數/59
3.9圖形和圖表/61
3.9.1 波形圖表和波形圖形/63
3.9.2 XY圖形/66


VI
LabVIEW虛擬儀器項目開發與實踐
3.9.3 二維和三維圖形/67
3.9.4強度圖形和強度圖表/71
3.10 本章小結/73
第4章
基本程序結構/74
4.1 數據流驅動/76
4.2 順序結構/78
4.3 分支結構/80
4.4 循環結構/82
4.4.1 For循環和While循環/82
4.4.2 自動索引/84
4.4.3 移位寄存器/85
4.4.4 反饋節點/87
4.5 本章小結/89
第5章
函數、程序框圖和VI/90
5.1LabVIEW內置函數庫/90
5.2 VI的程序框圖/94
5.3 創建子VI/98
5.4 為VI添加說明和幫助/102
5.5 可重入VI、遞歸VI和多態VI/105
5.6 本章小結/108
第6章
錯誤處理/110
6.1 錯誤簇/110
6.2 錯誤捕獲/114
6.3 錯誤報告/118
6.4 錯誤處理/122
6.5 自定義錯誤處理/127
6.6 本章小結/130
第7章
擴展程序結構/131
7.1事件結構/131
7.1.1事件與事件結構/132
7.1.2事件的靜態注冊和動態
注冊/135
7.1.3通知事件和過濾事件/139
7.1.4用戶自定義事件/141
7.1.5使用事件的注意事項/142
7.2定時結構/144
7.2.1定時循環結構/145
7.2.2定時順序結構/152
7.3禁用結構/153
7.4元素同址操作結構/157
7.5本章小結/159


VII
目 錄
第8章
單循環程序框架/160
8.1 輪詢/161
8.2 程序框架中的數據傳遞和功能全
局量/162
8.3 經典狀態機/166
8.4 消息狀態機/169
8.5 隊列狀態機/173
8.6 事件狀態機/177
8.7 本章小結/183
第9章
多循環程序框架/185
9.1 多任務、多線程、多處理與多
循環/186
9.2 變量控制多循環/189
9.3 同步多循環/192
9.3.1 事件發生函數控制
多循環/193
9.3.2 通知器控制多循環/194
9.3.3 多個定時循環的同步/196
9.3.4 集合點控制多循環/199
9.4 異步多循環/200
9.4.1 生產者/消費者結構/200
9.4.2 大型多任務結構/205
9.5 模塊化的程序框架/211
9.5.1 多循環程序框架的
模塊化/212
9.5.2 動態加載/217
9.6 本章小結/220
第10章
擴展用戶界面/222
10.1 自定義控件/222
10.2 XControl/228
10.2.1 XControl的能力/228
10.2.2 XControl的屬性和方法/235
10.2.3 XControl的快捷菜單、尺寸
和位置/236
10.3 菜單/239
10.3.1 主菜單/240
10.3.2 快捷菜單/243
10.4 工具欄和狀態欄/246
10.5 光標/250
10.6 多語言支持/251
10.6.1 導出/導入語言包/252
10.6.2 動態加載語言包/259
10.6.3 LCE工具包/261
10.7 本章小結/264
第11章
數據類型擴展與面向對象/266
11.1 自定義數據類型/266
11.2 面向對象編程/270
11.2.1 封裝/272
11.2.2 繼承/275


LabVIEW虛擬儀器項目開發與實踐
11.2.3 多態/279
11.2.4 LabVIEW類的開發和
使用/281
11.3 本章小結/284
第12章
擴展程序代碼/286
12.1 簡化數學運算/286
12.1.1 公式節點和表達式節點/286
12.1.2腳本節點/290
12.2 調用CIN/292
12.2.1 指定參數類型和
傳遞方式/293
12.2.2 創建C代碼/294
12.2.3 編譯代碼為LSB格式/296
12.2.4 加載、調試代碼/298
12.3 LabVIEWNXG中的C節點/301
12.4 Python節點/303
12.5 以編程方式控制VI/304
12.5.1 VIServer程序/305
12.5.2 VIScripting/309
12.6 本章小結/312
第13章
代碼復用/314
13.1 OpenG和MGI代碼庫/314
13.2 調用DLL/317
13.2.1配置CLN/318
13.2.2 調用自己開發的DLL/322
13.2.3 調用硬件驅動或Win32
API/329
13.3 ActiveX和.NET組件/332
13.3.1 調用ActiveX/332
13.3.2調用.NET/337
13.4 本章小結/340
第14章
數據存儲與表達/341
14.1 文件操作/341
14.1.1 文本文件/342
14.1.2 二進制文件/345
14.1.3 數據記錄文件和電子表格
文件/347
14.1.4 配置文件/349
14.1.5 TDMS文件/351
14.1.6 XML文件/359
14.2 數據壓縮和加密/366
14.3 數據表達/369
14.4 本章小結/374


目 錄
第15章
數據庫/376
15.1 數據庫基礎/376
15.2 連接數據庫/381
15.2.1 使用DSN連接數據庫/381
15.2.2 使用UDL連接數據庫/382
15.2.3增強數據庫程序的可移植
性/384
15.3 數據庫基本操作/386
15.3.1 創建、刪除數據表/386
15.3.2 操作數據記錄/389
15.4 數據庫高級操作/393
15.4.1 執行SQL語句/393
15.4.2 瀏覽數據記錄/398
15.4.3 使用存儲過程/401
15.5 數據庫工具函數/403
15.5.1 數據庫屬性信息/403
15.5.2 處理數據庫事務/406
15.5.3 使用文件保存數據/409
15.6 本章小結/410
第16章
網絡通信/411
16.1 網絡參考模型和通信協議/412
16.2 串口通信/416
16.3 藍牙和紅外/422
16.3.1 藍牙通信/423
16.3.2 紅外通信/425
16.4 TCP/IP與UDP/427
16.4.1TCP/IP/427
16.4.2 UDP/435
16.5 NISTM/441
16.6 DataSocket/445
16.7 FTP和SMTP/451
16.7.1 FTP/451
16.7.2 SMTP/454
16.8 本章小結/456
第17章
信號與傳感器/458
17.1 信號/459
17.1.1 典型測試信號/463
17.1.2 常用噪聲和隨機信號/469
17.1.3 模擬波形/472
17.2 傳感器/474
17.2.1 溫度傳感器及典型數據
采集程序/478
17.2.2 應變和力傳感器/482
17.2.3 位移傳感器/485
17.2.4 速度傳感器/488
17.2.5 毫米波雷達/493
17.2.6 工業相機與圖像采集/494
17.3 本章小結/498


LabVIEW虛擬儀器項目開發與實踐
第18章
數據采集/500
18.1 信號的數字化/500
18.2 虛擬儀器數據采集/502
18.3 基于聲卡的信號采集(1D)/507
18.4 圖像采集(2D)/513
18.5 本章小結/519
第19章
濾波/521
19.1濾波器基礎/521
19.2傅里葉變換與頻率響應/525
19.3 FIR濾波器/538
19.3.1 移動平均濾波器/540
19.3.2 加窗Sinc濾波器/544
19.3.3 等紋波Parks-McClellan和
窄帶插值FIR(iFIR)
濾波器/551
19.4 IIR濾波器/553
19.4.1 基本IIR濾波器/557
19.4.2 經典IIR濾波器/567
19.5 非線性濾波器/578
19.6 逐點濾波/581
19.7 本章小結/587
第20章
虛擬儀器項目管理/589
20.1 項目生命周期模型/590
20.1.1 邊做邊改/591
20.1.2 瀑布模型/592
20.1.3 原型模型/594
20.1.4 增量迭代模型/595
20.1.5 螺旋模型/598
20.2項目各階段/600
20.2.1 需求分析/600
20.2.2 設計/605
20.2.3 編碼/607
20.2.4 測試/609
20.2.5 升級維護和版本控制/614
20.3 軟件質量標準/622
20.4 進度與預算/626
20.4.1 時間管理/626
20.4.2 成本管理/631
20.5 本章小結/635
第21章
影像增強儀質量檢測系統/637
21.1 系統需求/637
21.1.1 功能需求/637
21.1.2 技術指標/639
21.2 系統設計/639
21.2.1 光源子系統設計/640
21.2.2 CCD相機的選擇/644


目 錄
21.2.3圖像采集數據采集設備的
選擇/647
21.3 軟件開發/648
21.3.1 系統自檢模塊/650
21.3.2 應力切換與控制模塊/651
21.3.3 基于DataSocket的
通信模塊/652
21.3.4 標準圖像采集模塊/654
21.3.5 故障識別模塊/658
21.3.6 數據分析模塊/663
21.4 集成測試驗證/665
21.5 系統主要特點/667
第22章
項目實踐/669
22.1 航空液流閥檢測系統/669
22.1.1 系統需求/669
22.1.2 系統組成/670
22.1.3關鍵技術與軟件模塊/672
22.2 ASDX傳感器測試系統/682
22.2.1 日志和SQLite數據庫/684
22.2.2 面向對象方式的測試
管理/689
22.3 灌裝檢測機器視覺系統/691
本書是《LabVIEW虛擬儀器項目開發與管理》的升級版,共22章,包括基礎知識、虛擬儀器項目開 發方法以及項目管理和實踐。第1~6章為基礎知識,主要講解LabVIEW程序前面板設計、數據結構、程 序框圖、函數和錯誤處理等內容;第7~19章主要講解虛擬儀器項目開發方法,包括用于實際項目開發的 單循環和多循環程序框架、程序用戶界面擴展、數據類型擴展、代碼和程序結構擴展、數據存儲、數據庫 和面向對象開發技術、網絡通信、信號與傳感器、數據采集和濾波等數字信號處理相關的內容;第20~22 章主要講解項目管理和實踐,包括項目管理理論和一些對實際項目開發的經驗總結,同時提供幾個實際 的工程案例作為參考。本書力求面向實際工程項目開發,并配有實際工程實例源碼和相關參考資料。
本書可作為LabVIEW虛擬儀器項目開發和管理人員的技術參考書,也可作為計算機、虛擬儀器和自 動化等專業的教材,或各類LabVIEW虛擬儀器項目開發和管理培訓的參考用書。
隨著計算機和測控技術的發展,以“軟件即儀器”為核心思想的虛擬儀器技術在
工業領域得到了廣泛應用。NI公司的LabVIEW是虛擬儀器系統開發工具的開山鼻祖
和杰出代表。可以快速、高效地將各類軟、硬件集成在一起,創建大型的數據采集、
處理分析和測控項目。因此筆者認為有必要深入研究基于LabVIEW的虛擬儀器技術。

自從1998年第一次接觸LabVIEW以來,筆者常在國內外各類LabVIEW虛擬儀
器相關的網站上搜集資料,并在LAVA、NI Discussion Forums、OpenG等論壇上與國
內外的同行交流。期間,常感慨國內虛擬儀器開發資料的匱乏,不少書籍資料中的內
容還停留在讓人尷尬的、簡單繪制函數曲線圖的階段,離實際項目開發相去甚遠。每
每遇到這種情況,都有將自己的一些心得整理出來與大家分享的沖動,相信一定對廣
大開發人員有所幫助。

2012年,筆者編寫的《LabVIEW虛擬儀器項目開發與管理》一書出版后,收到了
大量的讀者反饋。很多讀者對于書中提出的單循環和多循環框架給予了極高的評價,
并將這些框架應用于他們的項目實踐中。也有不少讀者對書中內容提出了不少建議,
希望能補充網絡通信、數據采集和濾波等方面的內容,并要求增加一些項目實例。
由于2012—2018年,我一直在工作之余忙于編寫《圖像處理、分析與機器視覺(基
于LabVIEW)》一書,《LabVIEW虛擬儀器項目開發與管理》一書的再版就被擱置
了。此外,近幾年LabVIEW虛擬儀器和機器視覺技術也得到了長足發展。為了能緊
跟新技術發展的步伐,我在《LabVIEW虛擬儀器項目開發與管理》一書的基礎上,對
LabVIEW虛擬儀器的項目開發技術進行了更新,并根據讀者反饋補充了大量新內容,
重新編寫了本書。

全書共22章,主要講解LabVIEW虛擬儀器項目開發的基礎知識、虛擬儀器項目
開發方法以及項目管理和實踐。

第1~6章為基礎知識,主要講解LabVIEW程序前面板設計、LabVIEW的基本
數據結構、程序框圖、函數和子VI的開發以及錯誤處理等內容。通過這些內容的學習,
讀者會對使用LabVIEW開發虛擬儀器項目的軟件有一個概括性的了解。

第7~19章講解大型復雜虛擬儀器項目開發方法。這部分內容是本書的核心,多
數內容都是筆者實際項目開發經驗的總結,書中提及的源碼可直接用于實際項目開發。
該部分的內容簡要匯總如下。

第7~9章:主要介紹實際項目開發過程中應使用的程序框架。介紹事件結構、
定時結構、禁用結構以及元素同址結構。對各種單循環程序框架進行比較,包括輪詢、



II

LabVIEW虛擬儀器項目開發與實踐

經典狀態機、消息狀態機、隊列狀態機、事件狀態機,以及程序框架中數據傳遞和功能
全局量的使用等。并在講解多線程編程技術、同步多循環和異步多循環程序結構后,講
解用于解決大型復雜項目的并行多循環程序框架,以及模塊化的多循環程序框架。這些
程序框架均已開源,讀者可在實際項目開發時直接使用。

第10章:講解LabVIEW高級用戶界面開發技術,包括自定義控件、XControl、
菜單、光標、工具欄、狀態欄以及多語言支持等。

第11~13章:講解數據類型和程序代碼的擴展,以及代碼的復用技術,包括自定
義數據類型以及面向對象編程;使用公式節點、表達式節點、腳本節點簡化數學運算,
使用CIN將文本代碼無縫嵌入程序框圖,以及使用VI Server和VI Scripting以編程方式
動態控制VI;OPENG和MGI代碼庫的使用、調用DLL、ActiveX、.NET以及最新的
Python腳本調用等。

第14、15章:講解數據存儲與表達技術,包括文本文件、二進制文件、數據記錄文
件和電子表格文件、配置文件、TDMS文件和XML文件等文件類型的操作、數據壓縮、
數據加密、數據表達以及數據庫技術等。

第16章:講解網絡通信技術,包括網絡參考模型和通信協議,串口通信、紅外和藍
牙通信、TCP/IP與UDP通信、DataSocket技術、FTP和SMTP應用程序開發,以及簡
單消息傳遞參考庫NI STM等。

第17~19章:講解信號與傳感器、數據采集技術和數字濾波器的設計和應用。

第20~22章主要介紹虛擬儀器項目的開發管理與實踐。在介紹項目管理的相關實
踐經驗后,給出一個影像增強儀質量檢測系統的實際設計開發實例。最后基于航空液流
閥檢測系統、ASDX傳感器測試系統和灌裝檢測機器視覺系統三個實例,對項目開發過
程中的一些關鍵技術進行匯總,給出測控項目和機器視覺項目的完整模板。

LabVIEW虛擬儀器項目開發是一個“既容易又困難”的工作。說容易是因為
LabVIEW作為開發工具很容易上手,說難是因為它覆蓋的技術領域很廣,而且這些領域
的知識在開發過程中經常交差融合使用。因此,全書在編寫過程中力求面向實際應用,
盡量避免淺嘗輒止和紙上談兵。希望能通過筆者的一點努力,提供一些有價值的技術資
料和源碼模板(本書中各章配套源碼可以掃描圖書封底的二維碼下載),以便廣大開發
人員能更專注于各自專業技術領域的研究和開發。

本書的編寫過程猶如播放一首承載記憶的老歌,歷久而彌新。十年彈指一揮間,編
寫《LabVIEW虛擬儀器項目開發與管理》時的艱辛仍歷歷在目,而本書編寫過程中的甜
蜜又被再次承載。在《LabVIEW虛擬儀器項目開發與管理》編寫過程中,我的妻子懷孕,
很多章節都是在照顧妻子和熬夜中完成的,直到我的兒子出生并過第一個生日。感謝妻
子對我的支持,也感謝兒子給了我不斷堅持的信念。本書編寫過程中,我的兒子Zhuo正
在認真學習微積分,他努力地幫我尋找書中的問題,糾正了很多數學公式中的錯誤,感
謝他的努力!謹以此書獻給我的妻兒。

再次特別感謝我的導師潘建壽教授和帶我認識LabVIEW的寇小明博士,是他們讓
我與信號處理、機器視覺和LabVIEW結下了不解之緣,也教給了我嚴謹的工作作風,



III

前 言

使我至今都受益匪淺。感謝所有關心本書的讀者,以及國內外技術論壇上的朋友們,他
們給予本書很多建設性的意見和建議,也提供了不少指導和靈感。

由于時間和篇幅的限制,很難在書中全面敘述虛擬儀器項目開發的各方面,同時書
中內容難免存在不妥之處,請讀者見諒。對本書內容的任何寶貴建議和意見,可發送至
筆者電子郵箱(郵箱地址在本書資源包中)。

愿攜手所有為初心和夢想努力并堅持著的同行,共同為虛擬儀器和機器視覺技術的
發展添磚加瓦,也衷心祝愿虛擬儀器和機器視覺技術在LabVIEW的助力下長足發展!

楊高科

2022年3月于多倫多
pagetop