LabVIEW 8.20程序設(shè)計從入門到精通
定 價:49 元
- 作者:陳錫輝、張銀鴻
- 出版時間:2007/7/1
- ISBN:9787302152309
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP311.56
- 頁碼:
- 紙張:25
- 版次:1
- 開本:16開
本書全面介紹了LabVIEW 8.20專業(yè)開發(fā)版中的各種編程知識與技巧;A(chǔ)篇循序漸進地介紹了LabVIEW程序設(shè)計所需的基礎(chǔ)知識,包括LabVIEW編程環(huán)境、數(shù)據(jù)操作、程序結(jié)構(gòu)、復(fù)雜數(shù)據(jù)類型、圖表圖形、Express VI、文件I/O、子VI、屬性節(jié)點與方法節(jié)點、人機界面交互設(shè)計、數(shù)學(xué)分析與信號處理、數(shù)據(jù)采集與儀器控制。高級篇針對LabVIEW高級編程人員深入淺出地介紹了各種LabVIEW高級編程知識與技巧,包括管理與開發(fā)LabVIEW大型項目、LabVIEW中的面向?qū)ο缶幊、動態(tài)程序控制技術(shù)、LabVIEW外部程序接口、訪問數(shù)據(jù)庫、網(wǎng)絡(luò)編程、定時結(jié)構(gòu)與同步技術(shù)、LabVIEW程序設(shè)計優(yōu)化、發(fā)布應(yīng)用程序。本書語言生動精煉、內(nèi)容詳盡,并且包含了大量實用的技巧實例。
本書可作為高等院校虛擬儀器及相關(guān)課程的教材或教學(xué)參考書,也可供從事相關(guān)工作的工程師或科研人員學(xué)習(xí)或參考。
LabVIEW是一種業(yè)界領(lǐng)先的工業(yè)標(biāo)準(zhǔn)圖形化編程工具,主要用于開發(fā)測試、測量與控制系統(tǒng)。它是專門為工程師和科學(xué)家而設(shè)計的直觀圖形化編程語言。它將軟件和各種不同的測量儀器硬件及計算機集成在一起,建立虛擬儀器系統(tǒng),以形成用戶自定義的解決方案。經(jīng)過20年的演變和改進,在基于PC的測量自動化領(lǐng)域,LabVIEW確立了其主導(dǎo)地位,并成為業(yè)界的事實標(biāo)準(zhǔn),同時也給傳統(tǒng)的教學(xué)研究帶來了巨大的變化。一個基于計算機的自動化實驗室能大大提高研究人員的工作效率并改進學(xué)生的學(xué)習(xí)方式。利用NI的虛擬儀器技術(shù),讓以往復(fù)雜的數(shù)據(jù)采集工作變得異常簡單,老師和同學(xué)都可以集中時間和精力用于實驗的執(zhí)行、數(shù)據(jù)的分析及結(jié)論的總結(jié)上,而不用將大量的時間花費在實驗系統(tǒng)設(shè)備的搭建中。在國外,虛擬儀器技術(shù)已經(jīng)是很多大學(xué)院校獨立開設(shè)的一門課程,相信在未來幾年內(nèi)虛擬儀器技術(shù)也必將廣泛流行于全國各大學(xué)校園理工科院系。
2006年是LabVIEW圖形化軟件開發(fā)平臺正式推出20周年,為了慶祝和紀(jì)念這一具有歷史意義的時間,NI將最新發(fā)布的LabVIEW 20周年紀(jì)念版命名為8.20版本。相對于LabVIEW 7.x,LabVIEW 8.0與LabVIEW 8.20的更新力度超過了以前任何一個版本。NI在LabVIEW 8上的研發(fā)投入超過了LabVIEW 7的兩倍。
本書特色
本書針對LabVIEW 8.20專業(yè)開發(fā)版,以由簡到難、逐步深入的原則對LabVIEW編程進行了全面詳細的介紹,尤其是對LabVIEW編程人員經(jīng)常討論的熱點問題進行了重點介紹,例如如何通過LabVIEW開發(fā)大型項目、如何優(yōu)化LabVIEW程序人機界面與性能、如何通過LabVIEW調(diào)用DLL或ActiveX、如何通過LabVIEW實現(xiàn)網(wǎng)絡(luò)編程以及與數(shù)據(jù)庫連接等。此外,本書幾乎所有的知識點都配合了恰當(dāng)?shù)膶嵗,所有這些實例都在本書附帶的光盤中,讀者可以在“附錄A 本書技巧實例索引”中快速檢索其中主要的技巧實例。通過這些技巧實例,讀者可以快速掌握很多非常實用的編程技巧,例如圖表自動圖例、多面板程序設(shè)計、基于狀態(tài)機的溫度控制系統(tǒng)、啟動界面設(shè)計等。
本書編寫過程中,幾乎參考了LabVIEW聯(lián)機幫助的所有內(nèi)容以及大部分現(xiàn)有的LabVIEW書籍,搜索了NI網(wǎng)站中的大量網(wǎng)絡(luò)資源,并且總結(jié)了編者多年的LabVIEW編程經(jīng)驗與心得,因此本書幾乎包含了所有常用的LabVIEW編程知識與編程技巧。如果您是對LabVIEW一無所知的新手,通過本書,您可以從入門開始,并逐步深入地對LabVIEW進行學(xué)習(xí),直到成為真正精通LabVIEW的編程高手。如果您已經(jīng)使用過LabVIEW多年,相信本書也會為您提供有益的幫助,并成為您快速定位所需LabVIEW編程知識的必備參考。
由于LabVIEW 8.20完全向下兼容,因此即使您使用的是LabVIEW 7.x或8.0版本,本書的絕大部分內(nèi)容對您仍然適用。
本書結(jié)構(gòu)
本書分為基礎(chǔ)篇和高級篇兩部分。基礎(chǔ)篇介紹了LabVIEW編程所需的基礎(chǔ)知識,掌握了這些基礎(chǔ)知識,您就可以編寫從硬件連接、數(shù)據(jù)采集到數(shù)據(jù)分析處理、圖形顯示、存儲和查詢等功能豐富的小型自動化測試測量程序了。高級篇介紹了編寫LabVIEW大型或高級應(yīng)用程序所需的高級知識,通過這些高級知識,您可以編寫融合多種高級編程技術(shù)的大型分布式應(yīng)用,并且在各方面提高您所編寫的LabVIEW程序的質(zhì)量,例如擴展性、可讀性和穩(wěn)定性等。
本書由陳錫輝主編。張銀鴻編寫了第3章和第4章,其余章節(jié)均由陳錫輝編寫。
本書在編寫過程中得到了NI工程師以及廣大網(wǎng)友的熱心幫助;我的多位學(xué)弟作為本書初稿的體驗讀者,提出了寶貴的建議;在此對他們表示衷心的感謝!最后,將愛和感謝獻給我美麗的未婚妻范艷麗,她不僅校對了本書部分章節(jié)而且提出了很多寶貴意見;最重要的是,她一如既往的鼓勵與關(guān)心使得我在半年多的時間里能夠耐心盡力地寫好本書的每一個細節(jié)。
由于編者水平有限,時間倉促,書中不當(dāng)之處在所難免,敬請讀者批評指正,不吝賜教。本書作者開設(shè)了自己的LabVIEW博客討論區(qū):http://labviewstudy.blog.edu.cn,無論您有任何建議或問題,都可以在這里給作者留言。
陳錫輝
2007年3月于中國科學(xué)院高能物理所
基 礎(chǔ) 篇
第1章 揭開LabVIEW的面紗2
1.1 LabVIEW簡介2
1.1.1 什么是LabVIEW2
1.1.2 LabVIEW的作用3
1.1.3 選擇LabVIEW的原因4
1.2 LabVIEW的起源與發(fā)展歷程5
1.2.1 起源5
1.2.2 發(fā)展歷程6
1.3 LabVIEW 8.0與LabVIEW 8.20新增特性列表7
1.3.1 LabVIEW 8.0新增特性列表7
1.3.2 LabVIEW 8.20新增特性列表9
1.4 LabVIEW學(xué)習(xí)捷徑10
第2章 牛刀小試11
2.1 基于模板創(chuàng)建一個新VI11
2.2 在VI前面板中添加控件13
2.3 編輯VI程序框圖13
2.4 運行VI14
2.5 小結(jié)15
第3章 開始LabVIEW之旅16
3.1 計算機性能要求16
3.2 安裝LabVIEW 8.20專業(yè)開發(fā)版16
3.3 LabVIEW編程環(huán)境18
3.3.1 啟動界面19
3.3.2 工程管理窗口(Project Explorer)19
3.3.3 前面板(Front Panel)和程序框圖(Block Diagram)20
3.3.4 菜單欄和工具欄21
3.3.5 控件選板(Controls Palette)27
3.3.6 函數(shù)選板(Functions Palette)28
3.3.7 控件選板和函數(shù)選板的使用28
3.3.8 工具選板(Tools Palette)28
3.3.9 導(dǎo)航窗口(Navigation Window)29
3.3.10 幫助30
3.3.11 范例查找器31
3.3.12 定制自己的編程環(huán)境31
3.4 編輯前面板32
3.4.1 控件風(fēng)格33
3.4.2 輸入控件(Controls)和顯示控件
(Indicator)33
3.4.3 前面板控件的著色和排版34
3.4.4 對象的復(fù)制和刪除36
3.4.5 控件屬性36
3.5 編輯程序框圖37
3.5.1 程序框圖中的控件對象37
3.5.2 程序框圖節(jié)點37
3.5.3 對象連線37
3.5.4 程序框圖中的對象排版39
3.6 程序注釋39
3.7 運行和調(diào)試VI39
3.7.1 運行VI40
3.7.2 調(diào)試VI40
第4章 數(shù)據(jù)操作42
4.1 數(shù)據(jù)類型42
4.1.1 數(shù)字型44
4.1.2 布爾型45
4.1.3 枚舉類型46
4.1.4 時間類型(Time Stamp)47
4.1.5 Variant數(shù)據(jù)類型48
4.1.6 局部變量和全局變量48
4.2 數(shù)據(jù)運算50
4.2.1 算術(shù)運算符50
4.2.2 關(guān)系運算符51
4.2.3 邏輯運算符52
4.2.4 表達式節(jié)點(Expression Node)52
第5章 程序結(jié)構(gòu)55
5.1 順序結(jié)構(gòu)(Sequence Structure)55
5.1.1 LabVIEW程序的執(zhí)行順序55
5.1.2 Flat Sequence Structure和Stacked
Sequence Structure55
5.1.3 在幀間傳遞數(shù)據(jù)56
5.2 For循環(huán)57
5.2.1 初識For循環(huán)57
5.2.2 輸入和輸出數(shù)組58
5.2.3 移位寄存器(Shift Register)59
5.2.4 反饋節(jié)點(Feedback Node)60
5.3 While循環(huán)60
5.3.1 初識While循環(huán)60
5.3.2 添加定時器61
5.3.3 使用移位寄存器和反饋節(jié)點62
5.4 Case結(jié)構(gòu)63
5.4.1 等價于if...else...語句的Case結(jié)構(gòu)63
5.4.2 從Case結(jié)構(gòu)中輸出數(shù)據(jù)64
5.4.3 等價于switch語句的Case結(jié)構(gòu)64
5.5 事件結(jié)構(gòu)(Event Structure)65
5.5.1 事件結(jié)構(gòu)的常用方法65
5.5.2 Filter事件68
5.6 使能結(jié)構(gòu)68
5.6.1 框圖使能結(jié)構(gòu)——注釋程序框圖68
5.6.2 條件使能結(jié)構(gòu)69
5.7 公式節(jié)點(Formula Node)70
5.7.1 復(fù)雜公式的實現(xiàn)71
5.7.2 文本編程語言的實現(xiàn)72
5.8 跟著實例學(xué)——模擬溫度采集監(jiān)測系統(tǒng)75
第6章 字符串、數(shù)組、簇和矩陣76
6.1 字符串(String)76
6.1.1 字符串控件76
6.1.2 表格和樹形控件78
6.1.3 字符串函數(shù)79
6.2 數(shù)組(Array)85
6.2.1 數(shù)組控件85
6.2.2 數(shù)組之間的算術(shù)運算86
6.2.3 數(shù)組函數(shù)87
6.3 簇(Cluster)--LabVIEW中的結(jié)構(gòu)體
變量95
6.3.1 簇的創(chuàng)建95
6.3.2 簇操作函數(shù)96
6.3.3 error in 和error out簇99
6.4 矩陣(Matrix)100
第7章 圖形化顯示數(shù)據(jù)——圖表和圖形102
7.1 波形數(shù)據(jù)(Waveform)102
7.1.1 波形數(shù)據(jù)控件102
7.1.2 波形數(shù)據(jù)操作函數(shù)103
7.2 趨勢圖(Chart)105
7.2.1 波形趨勢圖(Waveform Chart)106
7.2.2 定制趨勢圖顯示樣式107
7.2.3 帶時間軸的實時曲線108
7.3 圖表(Graph)109
7.3.1 定制圖表屬性109
7.3.2 波形圖112
7.3.3 XY曲線圖114
7.3.4 亮度圖
(Intensity Graph and Chart)116
7.3.5 數(shù)字波形圖(Digital
Waveform Graph)117
7.4 三維圖形(3D Graph)118
7.5 圖形控件(Picture)121
7.5.1 Picture控件的基本用法122
7.5.2 利用Picture控件繪制各種曲線123
第8章 Express VI——快速搭建專業(yè)
測試系統(tǒng)125
8.1 初識Express技術(shù)125
8.2 動態(tài)數(shù)據(jù)類型127
8.3 Express VIs簡介128
8.3.1 信號輸入(Input)Express VIs128
8.3.2 信號分析(Signal Analysis)
Express VIs128
8.3.3 輸出(Output)Express VIs129
8.3.4 信號操作(Signal Manipulation)
Express VIs129
8.3.5 算術(shù)與比較(Arithmetic and Comparison)Express VIs130
8.3.6 執(zhí)行控制Express VIs130
8.4 跟著實例學(xué)——基于Express VI的聲音信號
采集系統(tǒng)130
第9章 文件I/O132
9.1 選擇合適的文件類型132
9.2 文件的基本操作133
9.3 文本文件和表單文件134
9.3.1 文本文件134
9.3.2 表單文件135
9.4 二進制文件(Binary Files)136
9.5 數(shù)據(jù)記錄文件(Datalog Files)136
9.6 XML文件136
9.7 配置文件(Configuration Files)137
9.8 波形文件(Waveform Files)138
9.9 基于文本的測量文件(LVM文件)139
9.10 數(shù)據(jù)存儲文件(TDM文件)139
9.11 高速數(shù)據(jù)流文件(TDMS文件)141
9.12 小結(jié)143
第10章 子VI144
10.1 創(chuàng)建子VI144
10.2 查看VI層次結(jié)構(gòu)(VI Hierarchy)145
10.3 定義子VI屬性146
10.3.1 可重入(Reentrant)子VI146
10.3.2 設(shè)置子VI調(diào)用屬性147
10.3.3 自定義子VI圖標(biāo)形狀148
10.4 多態(tài)(Polymorphic)VI148
第11章 屬性節(jié)點和方法節(jié)點151
11.1 屬性節(jié)點(Property Node)151
11.2 方法節(jié)點(Invoke Node)152
11.3 通過子VI調(diào)用控件的屬性和方法153
11.4 幾種常用控件的編程舉例153
11.4.1 Ring控件和Enum控件153
11.4.2 列表框(Listbox)154
11.4.3 樹形控件(Tree Control)155
11.4.4 自動圖例舉例156
11.5 小結(jié)158
第12章 人機界面交互設(shè)計159
12.1 VI屬性設(shè)置159
12.2 對話框161
12.2.1 普通對話框161
12.2.2 用戶自定義對話框162
12.3 錯誤處理162
12.4 菜單165
12.4.1 運行主菜單
(Run-Time Menu)166
12.4.2 右鍵快捷菜單(Run-Time
Shortcut Menu)168
12.5 鼠標(biāo)指針169
12.6 播放聲音170
12.7 自定義控件和自定義數(shù)據(jù)類型170
12.7.1 自定義控件
(Custom Controls)170
12.7.2 自定義數(shù)據(jù)類型
(Type Definition)172
12.8 自定義控件選板和函數(shù)選板172
12.9 設(shè)計形象生動的用戶界面173
12.9.1 修飾靜態(tài)界面174
12.9.2 動態(tài)交互界面175
12.10 關(guān)于VI程序設(shè)計的一些規(guī)則176
12.10.1 關(guān)于前面板的設(shè)計176
12.10.2 關(guān)于程序框圖的設(shè)計178
12.10.3 關(guān)于VI179
第13章 數(shù)學(xué)分析與信號處理180
13.1 數(shù)學(xué)分析180
13.1.1 圖形化編程與數(shù)學(xué)分析180
13.1.2 基本數(shù)學(xué)函數(shù)181
13.1.3 線性代數(shù)182
13.1.4 曲線擬合184
13.1.5 插值185
13.1.6 數(shù)值積分與數(shù)值微分187
13.1.7 概率與統(tǒng)計188
13.1.8 最優(yōu)化189
13.1.9 常微分方程191
13.1.10 空間解析幾何192
13.1.11 公式解析193
13.1.12 MathScript194
13.2 數(shù)字信號處理198
13.2.1 信號發(fā)生198
13.2.2 信號調(diào)理199
13.2.3 波形測量200
13.2.4 時域分析201
13.2.5 頻域分析202
13.2.6 窗函數(shù)205
13.2.7 數(shù)字濾波器208
13.2.8 逐點分析庫210
第14章 數(shù)據(jù)采集與儀器控制214
14.1 數(shù)據(jù)采集(DAQ)214
14.1.1 數(shù)據(jù)采集系統(tǒng)的構(gòu)成214
14.1.2 NI-DAQmx218
14.2 儀器控制簡介221
14.3 選擇合適的總線222
14.3.1 獨立總線223
14.3.2 模塊化總線225
14.4 儀器驅(qū)動程序227
14.4.1 可編程儀器標(biāo)準(zhǔn)命令SCPI228
14.4.2 VISA229
14.4.3 IVI——可互換的虛擬儀器
驅(qū)動程序231
14.5 直接I/O(Direct I/O)235
14.5.1 儀器I/O助手(Instrument I/O
Assistant)236
14.5.2 Port I/O238
14.5.3 NI Spy——調(diào)試驅(qū)動的好幫手239
14.6 與第三方硬件連接239
高 級 篇
第15章 管理與開發(fā)LabVIEW
大型項目242
15.1 LabVIEW與軟件工程242
15.1.1 生命周期模型243
15.1.2 需求分析247
15.1.3 軟件設(shè)計248
15.1.4 程序編碼250
15.1.5 軟件測試251
15.1.6 文檔251
15.2 LabVIEW項目管理器
——Project Explorer252
15.2.1 創(chuàng)建LabVIEW Project252
15.2.2 項目庫(Project Library)253
15.3 源代碼管理工具——SCC
(Source Code Control)255
15.3.1 配置SCC255
15.3.2 使用SCC257
15.4 總結(jié)258
第16章 LabVIEW中的面向?qū)ο缶幊?59
16.1 面向?qū)ο蟮幕靖拍?59
16.2 在LabVIEW中實現(xiàn)面向?qū)ο缶幊?61
16.2.1 創(chuàng)建類和對象261
16.2.2 繼承263
16.2.3 靜態(tài)方法(Static Methods)和動態(tài)
方法(Dynamic Methods)264
16.2.4 LabVIEW面向?qū)ο缶幊痰?br />一些特點266
16.3 跟著實例學(xué)——電路板檢測269
第17章 動態(tài)程序控制技術(shù)273
17.1 VI服務(wù)器273
17.2 Application引用275
17.3 動態(tài)VI控制277
17.3.1 編程控制VI屬性277
17.3.2 動態(tài)載入VI278
17.3.3 多面板程序設(shè)計280
17.3.4 利用Subpanel實現(xiàn)動態(tài)
載入界面281
第18章 LabVIEW外部程序接口284
18.1 DLL與API調(diào)用284
18.1.1 動態(tài)鏈接庫(DLL)與API
簡介284
18.1.2 調(diào)用DLL286
18.1.3 配置參數(shù)類型287
18.1.4 調(diào)用Windows API290
18.2 CIN節(jié)點292
18.3 ActiveX296
18.3.1 ActiveX簡介296
18.3.2 使用ActiveX自動化297
18.3.3 使用ActiveX容器300
18.3.4 使用ActiveX事件301
18.3.5 通過外部程序控制LabVIEW302
18.3.6 小結(jié)304
18.4 LabVIEW與MATLAB混和編程304
18.4.1 MATLAB Script節(jié)點305
18.4.2 利用ActiveX與MATLAB
連接306
第19章 訪問數(shù)據(jù)庫308
19.1 ODBC308
19.1.1 什么是ODBC308
19.1.2 建立數(shù)據(jù)源309
19.2 ADO簡介310
19.3 LabSQL312
19.3.1 LabSQL的安裝312
19.3.2 LabSQL VIs312
19.3.3 LabSQL應(yīng)用舉例313
19.4 小結(jié)315
第20章 LabVIEW網(wǎng)絡(luò)編程316
20.1 選擇合適的網(wǎng)絡(luò)通信方式316
20.2 共享變量317
20.2.1 共享變量簡介317
20.2.2 創(chuàng)建與使用共享變量317
20.2.3 共享變量引擎320
20.2.4 通過編程訪問共享變量321
20.3 DataSocket322
20.3.1 DataSocket簡介322
20.3.2 DataSocket Server323
20.3.3 利用DataSocket函數(shù)訪問OPC、
HTTP、FTP和文件326
20.4 TCP與UDP通信327
20.4.1 TCP與UDP簡介327
20.4.2 TCP通信329
20.4.3 UDP通信333
20.5 遠程VI面板連接336
20.5.1 配置LabVIEW Web服務(wù)器336
20.5.2 通過LabVIEW Run-Time引擎連接
遠程VI面板338
20.5.3 通過網(wǎng)頁連接遠程VI面板339
第21章 定時結(jié)構(gòu)與同步技術(shù)341
21.1 定時結(jié)構(gòu)(Timed Structure)341
21.1.1 定時循環(huán)(Timed Loop)341
21.1.2 定時順序結(jié)構(gòu)
(Timed Sequence)344
21.1.3 含幀的定時循環(huán)(Timed Loop
with Frames)344
21.2 同步技術(shù)(Synchronization)344
21.2.1 通知(Notification)技術(shù)345
21.2.2 隊列(Queue)技術(shù)349
21.2.3 信號量(Semaphore)技術(shù)352
21.2.4 集合點(Rendezvous)技術(shù)354
21.2.5 事件發(fā)生(Occurrence)技術(shù)356
21.3 用戶事件(User Event)357
第22章 LabVIEW程序優(yōu)化設(shè)計359
22.1 LabVIEW程序設(shè)計模式359
22.1.1 狀態(tài)機360
22.1.2 主/從結(jié)構(gòu)362
22.1.3 啟動界面與后臺程序363
22.2 Lab VIEW與多線程364
22.2.1 多任務(wù)、多線程與多處理器365
22.2.2 多線程的優(yōu)缺點365
22.2.3 在LabVIEW中實現(xiàn)多線程366
22.2.4 LabVIEW的執(zhí)行系統(tǒng)367
22.2.5 任務(wù)優(yōu)先級369
22.3 優(yōu)化VI性能371
22.3.1 VI性能和內(nèi)存監(jiān)測工具371
22.3.2 內(nèi)存管理372
22.3.3 用戶界面375
22.3.4 子VI調(diào)用375
22.3.5 讀寫設(shè)備或文件376
第23章 發(fā)布應(yīng)用程序377
23.1 生成獨立可執(zhí)行應(yīng)用程序(EXE)378
23.2 生成安裝程序(Installer)380
23.3 生成動態(tài)鏈接庫(DLL)383
附錄A 本書技巧實例索引385
附錄B LabVIEW 8.20快捷鍵一覽391
參考文獻 394