詳盡講解了LabVIEW常用的編程方法、編程技巧和工程應(yīng)用技術(shù)。全書共分為3篇,其中,入門篇?dú)w納總結(jié)了LabVIEW編程人員必須掌握的基礎(chǔ)知識(shí),包括LabVIEW的基本概念、基本函數(shù)的用法和常用的運(yùn)行結(jié)構(gòu),以及LabVIEW的基本數(shù)據(jù)結(jié)構(gòu)和文件存儲(chǔ)方式;高級(jí)篇細(xì)致地講解了引用、屬性、方法及各類高級(jí)控件的運(yùn)用,LabVIEW的文本方式編程及DLL、C語(yǔ)言接口,基于MATLAB語(yǔ)法的math*編程技術(shù),LabVIEW基于組件的高級(jí)編程方法和編程模式;工程應(yīng)用篇介紹了串口、并口和網(wǎng)絡(luò)通信的常用方法,數(shù)據(jù)采集的基本原理和方法,LabVIEW實(shí)時(shí)系統(tǒng)的構(gòu)建和編程,以及各種常用專業(yè)工具包的使用方法,包括數(shù)據(jù)庫(kù)連接工具包、數(shù)據(jù)監(jiān)控與記錄工具包、報(bào)表生成工具包、狀態(tài)圖工具包等。《LabVIEW寶典》可作為高等院校通信、測(cè)量技術(shù)、自動(dòng)控制等相關(guān)課程的教材和教學(xué)參考書,也可作為相關(guān)工程技術(shù)人員設(shè)計(jì)開(kāi)發(fā)儀器或自動(dòng)測(cè)試系統(tǒng)的技術(shù)手冊(cè)。
陳樹學(xué),1989年畢業(yè)于哈爾濱工業(yè)大學(xué)動(dòng)力工程系,畢業(yè)后進(jìn)入一汽集團(tuán)公司,負(fù)責(zé)專用機(jī)床、加工自動(dòng)線和測(cè)試設(shè)備的軟件開(kāi)發(fā)工作。初期使用C語(yǔ)言,從LabVIEW 6.0版本開(kāi)始,采用LabVIEW作為優(yōu)選編程語(yǔ)言。 劉萱,2005年畢業(yè)于天津大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)。畢業(yè)后進(jìn)入天津久榮車輪技術(shù)有限公司主持車輪輪胎檢測(cè)設(shè)備系統(tǒng)軟件的研發(fā)工作。2006年首次接觸LabVIEW 7.2并在實(shí)際項(xiàng)目中使用,十余年來(lái)積累了利用LabVIEW開(kāi)發(fā)工程項(xiàng)目的豐富經(jīng)驗(yàn)。
第1部分 入門篇
第1章 打開(kāi)LabVIEW編程之門 2
1.1 從VI開(kāi)始 2
1.1.1 創(chuàng)建VI 3
1.1.2 控件屬性設(shè)置與快捷菜單 6
1.1.3 創(chuàng)建控件、常量、局部變量、引用、屬性節(jié)點(diǎn)和方法節(jié)點(diǎn) 8
1.1.4 創(chuàng)建自定義控件 10
1.2 編輯前面板和程序框圖 12
1.2.1 選擇、移動(dòng)和刪除對(duì)象 12
1.2.2 使用布局工具 13
1.3 VI及其屬性對(duì)話框 17
1.3.1 VI的層次結(jié)構(gòu) 17
1.3.2 調(diào)用子VI 19
1.3.3 VI的屬性設(shè)置 19
1.4 基本控件及其使用方法 24
1.4.1 基本數(shù)值控件 24
1.4.2 基本布爾控件 30
1.4.3 控件的通用編輯方法 33
1.4.4 字符串和路徑控件 35
1.4.5 下拉列表與枚舉控件 38
1.4.6 數(shù)組控件及其屬性設(shè)置 39
1.4.7 簇控件 40
1.4.8 時(shí)間標(biāo)識(shí)控件與波形數(shù)據(jù)控件 42
1.5 小結(jié) 44
第2章 LabVIEW基本函數(shù) 45
2.1 必須了解的一些基本算術(shù)運(yùn)算函數(shù) 45
2.1.1 基本運(yùn)算函數(shù) 45
2.1.2 標(biāo)量之間的基本運(yùn)算 46
2.1.3 標(biāo)量與數(shù)組的運(yùn)算 46
2.1.4 數(shù)組與數(shù)組的運(yùn)算 46
2.1.5 數(shù)組運(yùn)算相關(guān)函數(shù) 47
2.1.6 標(biāo)量與簇的基本運(yùn)算 55
2.1.7 簇與簇的運(yùn)算 56
2.1.8 簇的函數(shù) 56
2.2 必須了解的位運(yùn)算函數(shù)和邏輯運(yùn)算函數(shù) 59
2.2.1 常用邏輯運(yùn)算函數(shù) 59
2.2.2 位運(yùn)算 59
2.2.3 深入理解復(fù)合運(yùn)算函數(shù) 60
2.3 必須了解的關(guān)系運(yùn)算函數(shù)和比較函數(shù) 61
2.3.1 比較模式 62
2.3.2 通用關(guān)系運(yùn)算函數(shù) 62
2.3.3 “比較0”關(guān)系運(yùn)算函數(shù) 63
2.3.4 復(fù)雜關(guān)系運(yùn)算函數(shù) 64
2.3.5 字符關(guān)系運(yùn)算函數(shù) 67
2.3.6 表達(dá)式節(jié)點(diǎn)與公式快速VI 67
2.4 群體函數(shù) 69
2.4.1 集合與映射表函數(shù)選板 69
2.4.2 創(chuàng)建集合 69
2.4.3 集合的基本運(yùn)算 70
2.4.4 創(chuàng)建映射表 70
2.4.5 注冊(cè)與注銷映射表 71
2.5 小結(jié) 72
第3章 LabVIEW的程序運(yùn)行結(jié)構(gòu) 73
3.1 兩種不同的循環(huán)結(jié)構(gòu) 73
3.1.1 For循環(huán)的組成和特點(diǎn) 73
3.1.2 For循環(huán)與數(shù)組 75
3.1.3 For循環(huán)與移位寄存器 77
3.1.4 For循環(huán)中的continue和break 78
3.1.5 While循環(huán),不僅僅是循環(huán) 79
3.1.6 While循環(huán)與定時(shí) 80
3.1.7 反饋節(jié)點(diǎn) 86
3.2 定時(shí)結(jié)構(gòu) 86
3.2.1 定時(shí)循環(huán)的基本組成要素和配置對(duì)話框 87
3.2.2 定時(shí)順序結(jié)構(gòu) 90
3.3 獨(dú)特的條件結(jié)構(gòu) 90
3.3.1 條件結(jié)構(gòu)的基本結(jié)構(gòu) 90
3.3.2 布爾型輸入 91
3.3.3 錯(cuò)誤簇輸入 91
3.3.4 數(shù)值型輸入 91
3.3.5 枚舉型輸入 92
3.3.6 下拉列表輸入 93
3.3.7 字符串和組合框輸入 93
3.3.8 輸入/輸出隧道 93
3.3.9 多重If-Else的處理方法 94
3.4 不和諧的順序結(jié)構(gòu) 94
3.4.1 多線程運(yùn)行次序 95
3.4.2 兩種不同的順序結(jié)構(gòu) 95
3.4.3 隧道與順序局部變量 96
3.4.4 順序結(jié)構(gòu)的替代 97
3.4.5 順序結(jié)構(gòu)的典型應(yīng)用 97
3.5 程序框圖禁用結(jié)構(gòu) 98
3.6 局部變量、內(nèi)置全局變量和功能(LV2型)全局變量 98
3.6.1 局部變量 98
3.6.2 內(nèi)置全局變量 100
3.6.3 功能(LV2型)全局變量 102
3.7 事件結(jié)構(gòu) 103
3.7.1 事件結(jié)構(gòu)的基本構(gòu)成和創(chuàng)建方法 104
3.7.2 事件的分類及其特點(diǎn) 105
3.7.3 事件結(jié)構(gòu)之間的數(shù)據(jù)傳送與共享 107
3.7.4 事件發(fā)生的次序、事件過(guò)濾和轉(zhuǎn)發(fā) 108
3.7.5 正確地使用事件結(jié)構(gòu) 109
3.8 小結(jié) 110
第4章 LabVIEW的數(shù)據(jù)結(jié)構(gòu)及內(nèi)存優(yōu)化 111
4.1 常用數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 111
4.1.1 “強(qiáng)制類型轉(zhuǎn)換”函數(shù) 111
4.1.2 “平化至字符串”函數(shù)與“從字符串還原”函數(shù) 112
4.1.3 變體數(shù)據(jù) 113
4.1.4 變體數(shù)據(jù)數(shù)據(jù)類型解析 113
4.2 整數(shù)的類型轉(zhuǎn)換及內(nèi)存映射 114
4.2.1 布爾型數(shù)據(jù)與字符串和數(shù)值之間的相互轉(zhuǎn)換 115
4.2.2 U8類型數(shù)據(jù)與字符串之間的相互轉(zhuǎn)換 115
4.2.3 整數(shù)類型之間的相互轉(zhuǎn)換 115
4.3 其他標(biāo)量數(shù)據(jù)的類型轉(zhuǎn)換及內(nèi)存映射 116
4.3.1 定點(diǎn)數(shù)、浮點(diǎn)數(shù)的類型轉(zhuǎn)換與內(nèi)存映射 116
4.3.2 復(fù)數(shù)的類型轉(zhuǎn)換及內(nèi)存映射 119
4.3.3 時(shí)間標(biāo)識(shí)的類型轉(zhuǎn)換與內(nèi)存映射 119
4.4 復(fù)合數(shù)據(jù)類型 120
4.4.1 標(biāo)量數(shù)組的內(nèi)存映射 120
4.4.2 字符串、路徑和字符串?dāng)?shù)組的內(nèi)存映射 121
4.4.3 LabVIEW使用的編碼 122
4.5 簇的內(nèi)存映射 123
4.5.1 由標(biāo)量組成的簇 123
4.5.2 包含數(shù)組和字符串的簇 123
4.6 類型描述符 124
4.6.1 類型描述符的基本構(gòu)成要素 124
4.6.2 常用類型描述符列表 124
4.6.3 常見(jiàn)數(shù)據(jù)類型的類型描述符結(jié)構(gòu) 125
4.7 OpenG中有關(guān)類型描述符的函數(shù) 126
4.7.1 類型描述符函數(shù) 127
4.7.2 利用類型描述符處理枚舉型數(shù)據(jù) 128
4.7.3 利用類型描述符處理簇 128
4.8 幾種常用的內(nèi)存分析工具和方法 128
4.8.1 內(nèi)存的重要性 129
4.8.2 內(nèi)存和性能查看工具 130
4.8.3 VI使用的內(nèi)存 131
4.8.4 優(yōu)化內(nèi)存的一般注意事項(xiàng) 132
4.8.5 數(shù)組與內(nèi)存優(yōu)化 133
4.8.6 避免在循環(huán)中進(jìn)行不必要的計(jì)算、讀/寫控件或者變量 136
4.9 影響VI運(yùn)行速度的因素 137
4.9.1 硬件輸入/輸出 137
4.9.2 屏幕顯示 138
4.10 小結(jié) 138
第5章 字符串與文件存儲(chǔ) 139
5.1 字符串 139
5.1.1 幾種常用的字符串常量 139
5.1.2 幾種常用的字符串函數(shù) 140
5.1.3 “匹配模式”和“匹配正則表達(dá)式”函數(shù) 141
5.1.4 字符串與數(shù)值的相互轉(zhuǎn)換 144
5.1.5 功能強(qiáng)大的“格式化字符串”函數(shù)和“掃描字符串”函數(shù) 145
5.1.6 數(shù)組與電子表格字符串 148
5.1.7 附加字符串函數(shù) 148
5.2 文件存儲(chǔ) 149
5.2.1 文本文件與二進(jìn)制文件的區(qū)別 149
5.2.2 文件常量和通用目錄、文件函數(shù) 150
5.2.3 構(gòu)造路徑的方法 151
5.2.4 文本文件的讀/寫 154
5.2.5 數(shù)據(jù)記錄文件的讀/寫 158
5.2.6 讀/寫二進(jìn)制文件 159
5.2.7 INI文件的讀/寫 161
5.2.8 XML文件的讀/寫 163
5.2.9 注冊(cè)表的讀/寫 165
5.2.10 TDM文件 166
5.2.11 TDMS文件 168
5.3 小結(jié) 171
第2部分 高級(jí)篇
第6章 LabVIEW對(duì)象的解析 174
6.1 LabVIEW控件對(duì)象的層次繼承結(jié)構(gòu) 174
6.1.1 布爾控件的層次繼承結(jié)構(gòu) 174
6.1.2 通用類的屬性 175
6.1.3 圖形對(duì)象類 177
6.2 圖形對(duì)象類的子類 178
6.2.1 前面板類 178
6.2.2 窗格類和分隔欄類 179
6.2.3 LabVIEW的坐標(biāo)映射 180
6.2.4 修飾類 182
6.3 控件類 184
6.3.1 控件類的常用屬性 184
6.3.2 控件類的常用方法 186
6.3.3 數(shù)值控件類 187
6.4 常用控件的專有屬性 188
6.4.1 布爾控件的專有屬性 189
6.4.2 枚舉控件和下拉列表控件的專有屬性 189
6.4.3 字符串控件、路徑控件和組合框控件的專有屬性 190
6.4.4 數(shù)組控件的屬性和方法 192
6.4.5 簇的屬性及方法 194
6.5 引用句柄 195
6.6 VI的屬性 197
6.6.1 獲取VI的引用句柄 197
6.6.2 常用VI屬性 197
6.7 常用VI方法 200
6.7.1 獲取前面板、程序框圖和VI圖標(biāo)的圖像 201
6.7.2 打印控制 201
6.7.3 默認(rèn)值方法 201
6.8 動(dòng)態(tài)調(diào)用VI 202
6.8.1 靜態(tài)調(diào)用和動(dòng)態(tài)調(diào)用的比較 202
6.8.2 通過(guò)“引用節(jié)點(diǎn)調(diào)用”函數(shù)動(dòng)態(tài)調(diào)用VI 203
6.8.3 一般類型VI的動(dòng)態(tài)調(diào)用 205
6.8.4 創(chuàng)建閃屏 207
6.8.5 創(chuàng)建后臺(tái)運(yùn)行程序 207
6.8.6 創(chuàng)建向?qū)С绦?208
6.8.7 動(dòng)態(tài)調(diào)用VI之間的數(shù)據(jù)交換 209
6.9 應(yīng)用程序的屬性和方法 210
6.9.1 獲取應(yīng)用程序的引用句柄 210
6.9.2 應(yīng)用程序的常用屬性 211
6.10 小結(jié) 212
第7章 高級(jí)控件的運(yùn)用 213
7.1 列表框 213
7.1.1 列表框的創(chuàng)建及顯示風(fēng)格 213
7.1.2 列表框的常用屬性、方法與事件 213
7.1.3 列表框的應(yīng)用舉例 214
7.2 多列列表框 217
7.2.1 顯示多列項(xiàng)目并排序 218
7.2.2 多列列表框的特效制作 220
7.3 表格 220
7.3.1 表格的常用屬性和方法 221
7.3.2 表格的應(yīng)用舉例 224
7.4 樹形控件 228
7.4.1 樹形控件的創(chuàng)建與靜態(tài)編輯 228
7.4.2 樹形控件的常用屬性、方法和事件 229
7.4.3 樹形控件高級(jí)應(yīng)用舉例 231
7.5 波形圖表 232
7.5.1 波形圖表的組成要件 233
7.5.2 波形圖表的輸入類型 235
7.5.3 波形圖表專用屬性 235
7.5.4 波形圖表應(yīng)用舉例 237
7.6 波形圖 238
7.6.1 波形圖控件的創(chuàng)建和組成要件 239
7.6.2 波形圖控件的輸入類型 239
7.6.3 波形圖控件的專用屬性 242
7.6.4 波形圖控件的高級(jí)應(yīng)用舉例 244
7.7 XY圖 246
7.7.1 XY圖的輸入數(shù)據(jù)類型 247
7.7.2 XY圖的高級(jí)應(yīng)用 249
7.8 強(qiáng)度圖表和強(qiáng)度圖 251
7.9 數(shù)字?jǐn)?shù)據(jù)、數(shù)字波形數(shù)據(jù)與數(shù)字波形圖 251
7.9.1 數(shù)字?jǐn)?shù)據(jù) 252
7.9.2 數(shù)字波形數(shù)據(jù)和數(shù)字波形圖 252
7.10 圖片控件 253
7.10.1 利用圖片控件顯示圖片 253
7.10.2 常用繪圖操作函數(shù) 255
7.10.3 圖片控件的高級(jí)應(yīng)用 257
7.11 小結(jié) 259
第8章 文本式編程與外部程序接口 260
8.1 公式節(jié)點(diǎn) 260
8.1.1 公式節(jié)點(diǎn)的數(shù)據(jù)類型、語(yǔ)法與控制結(jié)構(gòu) 260
8.1.2 公式節(jié)點(diǎn)的應(yīng)用舉例 262
8.2 調(diào)用庫(kù)函數(shù) 263
8.2.1 DLL與API函數(shù) 263
8.2.2 如何調(diào)用DLL函數(shù) 265
8.2.3 常用API函數(shù)的調(diào)用 270
8.2.4 LabVIEW調(diào)用DLL的局限性 273
8.3 CIN 276
8.3.1 CIN創(chuàng)建的一般過(guò)程 277
8.3.2 CIN的數(shù)據(jù)類型和常用函數(shù) 279
8.3.3 CIN與內(nèi)存管理器 283
8.3.4 CIN的運(yùn)行過(guò)程和數(shù)據(jù)共享 286
8.4 系統(tǒng)命令 289
8.5 剪貼板 290
8.6 DDE庫(kù) 291
8.6.1 DDE概述 291
8.6.2 LabVIEW中的常用DDE方法 292
8.7 ActiveX控件與ActiveX文檔 294
8.7.1 ActiveX的基本概念 294
8.7.2 ActiveX控件的調(diào)用過(guò)程 294
8.7.3 ActiveX應(yīng)用實(shí)例 295
8.7.4 ActiveX自動(dòng)化服務(wù)器 297
8.8 .NET技術(shù) 298
8.8.1 .NET控件 298
8.8.2 .NET服務(wù) 299
8.8.3 利用.NET創(chuàng)建托盤程序 301
8.9 小結(jié) 304
第9章 MathScript 305
9.1 如何使用MathScript 305
9.1.1 使用MathScript節(jié)點(diǎn) 305
9.1.2 使用MathScript交互窗口 306
9.2 MathScript常用命令 307
9.3 MathScript基礎(chǔ)知識(shí) 308
9.3.1 創(chuàng)建向量和矩陣的基本方法 308
9.3.2 矩陣的基本運(yùn)算 309
9.3.3 標(biāo)準(zhǔn)矩陣 310
9.3.4 矩陣元素的插入、替換、刪除和提取 310
9.3.5 矩陣元素的排序和搜索特征值 312
9.3.6 常用的矩陣變換函數(shù) 313
9.3.7 矩陣中元素的數(shù)據(jù)類型及轉(zhuǎn)換 314
9.3.8 關(guān)系運(yùn)算、邏輯運(yùn)算和位操作 316
9.3.9 集合函數(shù) 316
9.3.10 時(shí)間、日期和計(jì)時(shí)函數(shù) 317
9.4 程序控制結(jié)構(gòu)與函數(shù) 318
9.4.1 For循環(huán)和While循環(huán) 318
9.4.2 If條件結(jié)構(gòu)和Switch分支條件結(jié)構(gòu) 319
9.4.3 函數(shù)和腳本文件 320
9.5 數(shù)據(jù)統(tǒng)計(jì)和數(shù)據(jù)插值擬合 322
9.5.1 常用數(shù)據(jù)統(tǒng)計(jì)函數(shù) 322
9.5.2 數(shù)據(jù)插值 325
9.6 多項(xiàng)式、積分和微分 327
9.6.1 多項(xiàng)式 327
9.6.2 極值與零點(diǎn) 328
9.6.3 積分和微分 329
9.7 數(shù)據(jù)的圖形顯示 329
9.7.1 窗口類屬性與常用窗口操作函數(shù) 330
9.7.2 繪圖區(qū)域?qū)傩?332
9.7.3 線對(duì)象和文本對(duì)象的屬性及常用函數(shù) 334
9.7.4 基本繪圖函數(shù) 335
9.8 小結(jié) 338
第10章 組件、同步技術(shù)、面向?qū)ο缶幊?339
10.1 數(shù)據(jù)的封裝與隔離 339
10.1.1 合理地使用數(shù)據(jù)流 339
10.1.2 LV2型全局變量 340
10.1.3 值變化與上升、下降沿 342
10.1.4 定時(shí)觸發(fā)與計(jì)數(shù)器 344
10.2 動(dòng)作機(jī)(Action Engine) 346
10.2.1 準(zhǔn)備建立動(dòng)作機(jī) 346
10.2.2 建立動(dòng)作機(jī)的步驟 347
10.3 用戶事件與動(dòng)態(tài)注冊(cè)事件 348
10.3.1 用戶事件 348
10.3.2 動(dòng)態(tài)注冊(cè)事件 351
10.4 堆棧與數(shù)據(jù)緩沖區(qū) 352
10.4.1 堆棧的實(shí)現(xiàn) 353
10.4.2 數(shù)據(jù)緩沖區(qū) 354
10.5 同步控制技術(shù) 354
10.5.1 隊(duì)列 355
10.5.2 通知器 360
10.5.3 信號(hào)量與集合點(diǎn) 363
10.6 項(xiàng)目管理器 364
10.6.1 項(xiàng)目管理器的結(jié)構(gòu) 364
10.6.2 虛擬文件夾 365
10.6.3 庫(kù) 365
10.7 面向?qū)ο缶幊?367
10.7.1 面向?qū)ο缶幊痰幕靖拍?368
10.7.2 類的封裝特性 368
10.7.3 類的繼承特性 371
10.7.4 類的多態(tài)性 374
10.7.5 類變量 378
10.7.6 調(diào)用父類中的重寫方法 378
10.7.7 類的引用轉(zhuǎn)換 379
10.7.8 簡(jiǎn)單工廠模式 381
10.7.9 類的動(dòng)態(tài)加載與插件功能 381
10.7.10 類方法的遞歸功能 382
10.7.11 類的單態(tài)模式 382
10.7.12 接口 383
10.8 自適應(yīng)VI(VIM) 385
10.8.1 內(nèi)置函數(shù)的自適應(yīng) 385
10.8.2 多態(tài)VI的缺點(diǎn) 385
10.8.3 創(chuàng)建自適應(yīng)VI 386
10.8.4 擴(kuò)充自適應(yīng)VI數(shù)據(jù)類型范圍 387
10.8.5 限制自適應(yīng)VI數(shù)據(jù)類型范圍 388
10.9 利用通道在循環(huán)之間交換數(shù)據(jù) 388
10.9.1 創(chuàng)建通道 389
10.9.2 串流的基本概念與分類 389
10.9.3 串流的基本用法 390
10.9.4 Tag 392
10.9.5 消息器 392
10.9.6 事件消息器 394
10.10 小結(jié) 396
第11章 人機(jī)交互與編程風(fēng)格 397
11.1 對(duì)話框 397
11.1.1 內(nèi)置對(duì)話框 397
11.1.2 用戶輸入和顯示對(duì)話框 398
11.1.3 定制對(duì)話框 399
11.2 菜單 399
11.2.1 創(chuàng)建靜態(tài)菜單 399
11.2.2 菜單相關(guān)函數(shù) 400
11.2.3 動(dòng)態(tài)創(chuàng)建菜單 402
11.2.4 調(diào)用多個(gè)靜態(tài)菜單,存儲(chǔ)運(yùn)行時(shí)菜單 403
11.2.5 自動(dòng)觸發(fā)預(yù)定義的菜單項(xiàng) 404
11.2.6 控件的快捷菜單 404
11.3 光標(biāo)工具 405
11.3.1 “設(shè)置為忙碌狀態(tài)”VI與“取消設(shè)置忙碌狀態(tài)”VI 406
11.3.2 設(shè)置控件光標(biāo) 406
11.3.3 使用光標(biāo)文件 406
11.4 選項(xiàng)卡、子面板與分隔欄 407
11.4.1 選項(xiàng)卡控件 407
11.4.2 選項(xiàng)卡控件的頁(yè)面 407
11.4.3 頁(yè)面的公用控件 408
11.4.4 分隔欄控件 408
11.4.5 分隔欄與窗格滾動(dòng)條 409
11.4.6 利用分隔欄創(chuàng)建工具欄與狀態(tài)欄 409
11.4.7 利用分隔欄自動(dòng)縮放控件 410
11.4.8 子面板控件 410
11.4.9 動(dòng)態(tài)調(diào)用VI插入子面板 411
11.4.10 異步調(diào)用VI插入子面板 412
11.4.11 并行的靜態(tài)調(diào)用VI插入子面板 412
11.4.12 在多個(gè)子面板插入相同VI 413
11.4.13 判斷VI是否插入子面板 413
11.4.14 子面板的屬性 414
11.5 XControl 414
11.5.1 Hover按鈕 415
11.5.2 新建XControl 415
11.5.3 修改數(shù)據(jù)控件和狀態(tài)控件 415
11.5.4 “外觀”VI 416
11.5.5 創(chuàng)建屬性和方法 418
11.5.6 調(diào)試XControl 419
11.5.7 自定義屬性對(duì)話框與快捷菜單 420
11.6 錯(cuò)誤處理 421
11.6.1 錯(cuò)誤簇 421
11.6.2 常用錯(cuò)誤處理函數(shù) 422
11.7 LabVIEW的編程風(fēng)格 423
11.7.1 編程風(fēng)格的內(nèi)涵 423
11.7.2 前面板設(shè)計(jì)應(yīng)該遵循的原則 424
11.7.3 程序框圖設(shè)計(jì)應(yīng)該遵循的原則 426
11.7.4 連線板設(shè)計(jì)應(yīng)該遵循的原則 427
11.7.5 圖標(biāo)設(shè)計(jì)應(yīng)該遵循的原則 427
11.7.6 數(shù)據(jù)結(jié)構(gòu)應(yīng)該遵循的原則 428
11.7.7 錯(cuò)誤處理應(yīng)該遵循的原則 429
11.8 小結(jié) 429
第3部分 工程應(yīng)用篇
第12章 LabVIEW設(shè)計(jì)模式與狀態(tài)圖工具 432
12.1 程序的基本單元VI 432
12.1.1 VI的可重入屬性 432
12.1.2 不可重入VI 432
12.1.3 可重入VI 433
12.2 VI模板與代碼重用 434
12.2.1 內(nèi)置的VI模板 434
12.2.2 用戶自定義模板 434
12.3 VI的調(diào)試 435
12.3.1 連續(xù)運(yùn)行VI 435
12.3.2 高亮執(zhí)行 436
12.3.3 單步運(yùn)行 436
12.3.4 探針 436
12.3.5 自定義探針 437
12.3.6 斷點(diǎn) 437
12.4 VI的重構(gòu) 438
12.4.1 無(wú)用編程舉例 438
12.4.2 查找框圖中重復(fù)的功能 439
12.4.3 創(chuàng)建VI代替重復(fù)的功能 440
12.4.4 創(chuàng)建多態(tài)VI處理相似的功能 440
12.5 LabVIEW標(biāo)準(zhǔn)設(shè)計(jì)模式 441
12.5.1 用戶界面事件處理器設(shè)計(jì)模式 441
12.5.2 生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式(事件) 442
12.5.3 生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式(數(shù)據(jù)) 443
12.5.4 主/從設(shè)計(jì)模式 443
12.6 用戶界面事件處理器模式的拓展 444
12.6.1 用戶界面事件處理器+順序結(jié)構(gòu)設(shè)計(jì)模式 444
12.6.2 用戶界面事件處理器+用戶事件 444
12.6.3 用戶界面事件處理器+超時(shí)分頻 445
12.6.4 用戶界面事件處理器+定時(shí)循環(huán) 446
12.7 隊(duì)列消息處理器(QMH)設(shè)計(jì)模式 446
12.7.1 基本隊(duì)列消息處理器模式(字符串?dāng)?shù)組) 446
12.7.2 基本隊(duì)列消息處理器模式(字符串) 447
12.7.3 基于生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式(隊(duì)列)的隊(duì)列消息處理器 447
12.7.4 AMC隊(duì)列消息處理器 448
12.7.5 基于隊(duì)列消息處理器的命令模式 450
12.8 有限狀態(tài)機(jī)設(shè)計(jì)模式 451
12.8.1 標(biāo)準(zhǔn)狀態(tài)機(jī)設(shè)計(jì)模式 452
12.8.2 早期界面處理狀態(tài)機(jī) 452
12.8.3 順序狀態(tài)機(jī) 453
12.8.4 處理公共狀態(tài) 454
12.8.5 狀態(tài)機(jī)+用戶界面事件處理器 454
12.8.6 進(jìn)入、運(yùn)行和離開(kāi)狀態(tài)的處理 455
12.8.7 有限狀態(tài)機(jī)+LVOOP 455
12.9 狀態(tài)圖工具 458
12.9.1 調(diào)用狀態(tài)圖工具 458
12.9.2 使用狀態(tài)圖編輯器 458
12.9.3 添加轉(zhuǎn)換條件和狀態(tài)代碼 458
12.9.4 選擇獨(dú)立運(yùn)行或者子VI方式 459
12.10 隊(duì)列消息狀態(tài)機(jī) 460
12.10.1 通用隊(duì)列消息狀態(tài)機(jī)自定義模板 460
12.10.2 消息+數(shù)據(jù)隊(duì)列狀態(tài)機(jī) 461
12.10.3 事件驅(qū)動(dòng)隊(duì)列消息狀態(tài)機(jī) 462
12.11 JKI事件驅(qū)動(dòng)隊(duì)列消息狀態(tài)機(jī) 462
12.11.1 JKI狀態(tài)機(jī)模板 463
12.11.2 JKI狀態(tài)機(jī)的初始化 463
12.11.3 JKI狀態(tài)機(jī)的預(yù)定義事件 464
12.11.4 JKI狀態(tài)機(jī)的退出 465
12.12 簡(jiǎn)單狀態(tài)機(jī)項(xiàng)目模板 465
12.12.1 簡(jiǎn)單狀態(tài)機(jī)項(xiàng)目模板的基本構(gòu)成 465
12.12.2 簡(jiǎn)單狀態(tài)機(jī) 466
12.12.3 簡(jiǎn)單狀態(tài)機(jī)范例(有限次測(cè)量) 466
12.13 隊(duì)列消息處理器項(xiàng)目模板 468
12.13.1 隊(duì)列消息處理器項(xiàng)目模板的基本構(gòu)成 468
12.13.2 隊(duì)列消息處理器 468
12.13.3 隊(duì)列消息處理器的退出機(jī)制 469
12.13.4 隊(duì)列消息處理器的錯(cuò)誤處理機(jī)制 470
12.13.5 隊(duì)列消息處理器的拓展 470
12.14 Delacor隊(duì)列消息處理器 472
12.14.1 DQMH項(xiàng)目模板的基本構(gòu)成 472
12.14.2 DQMH模塊的基本構(gòu)成與對(duì)外接口 473
12.14.3 DQMH模塊測(cè)試器 474
12.14.4 DQMH模塊 476
12.14.5 使用DQMH模塊 476
12.15 操作執(zhí)行者框架 478
12.15.1 操作者框架概述 479
12.15.2 創(chuàng)建操作者和消息 479
12.15.3 啟動(dòng)、停止操作者,發(fā)送消息至操作者 481
12.15.4 創(chuàng)建操作者界面 482
12.15.5 操作者的定時(shí)功能 483
12.15.6 嵌套操作者 484
12.15.7 嵌套操作者的動(dòng)態(tài)啟動(dòng)與停止 485
12.16 操作者框架項(xiàng)目模板 486
12.16.1 閃屏引導(dǎo)VI 486
12.16.2 操作者框架根操作者 487
12.16.3 Alpha嵌套操作者 488
12.16.4 Beta嵌套操作者 489
12.17 狀態(tài)圖工具包(Statechart) 490
12.17.1 狀態(tài)圖工具包簡(jiǎn)介 490
12.17.2 同步與異步方式 490
12.17.3 創(chuàng)建狀態(tài)圖 491
12.17.4 同步型狀態(tài)圖 492
12.17.5 狀態(tài)圖的調(diào)用和調(diào)試 495
12.17.6 異步型狀態(tài)圖 496
12.17.7 區(qū)域、超級(jí)狀態(tài)和子狀態(tài) 497
12.17.8 多區(qū)域并發(fā)、連接、分叉與子圖 499
12.17.9 高級(jí)應(yīng)用函數(shù) 501
12.18 小結(jié) 503
第13章 LabVIEW通信與DSC 504
13.1 串口通信 504
13.1.1 串口通信的基本概念 504
13.1.2 串口通信的準(zhǔn)備工作 505
13.1.3 串口通信函數(shù) 507
13.1.4 串口通信典型應(yīng)用舉例 508
13.2 并口通信 510
13.2.1 設(shè)置并口通信模式 510
13.2.2 傳送字節(jié)型數(shù)據(jù) 510
13.2.3 傳送EPP模式數(shù)據(jù) 511
13.3 共享變量 512
13.3.1 共享變量與共享變量引擎 512
13.3.2 創(chuàng)建與監(jiān)視共享變量 513
13.3.3 共享變量的內(nèi)部緩沖機(jī)制 515
13.3.4 共享變量的批量創(chuàng)建、部署與引用 516
13.4 DataSocket 518
13.4.1 DataSocket支持的協(xié)議與URL 518
13.4.2 DataSocket服務(wù)器與服務(wù)管理器 519
13.4.3 DataSocket API 520
13.4.4 DataSocket API應(yīng)用舉例 521
13.4.5 DataSocket控件綁定 522
13.5 TCP與UDP網(wǎng)絡(luò)通信 523
13.5.1 TCP通信 523
13.5.2 TCP STM庫(kù) 524
13.5.3 UDP通信 525
13.6 網(wǎng)絡(luò)流 526
13.6.1 在應(yīng)用程序之間傳遞命令或者數(shù)據(jù) 526
13.6.2 網(wǎng)絡(luò)流基本函數(shù) 527
13.6.3 創(chuàng)建網(wǎng)絡(luò)流URL 527
13.6.4 網(wǎng)絡(luò)流應(yīng)用舉例 528
13.7 DSC工具包 529
13.7.1 OPC與DSC的基本概念 529
13.7.2 DSC強(qiáng)大的圖形顯示能力 531
13.7.3 OPC配置與I/O變量 531
13.7.4 Modbus 534
13.7.5 共享變量的屬性 536
13.7.6 共享變量引擎SVE函數(shù) 537
13.7.7 預(yù)警與事件 539
13.7.8 數(shù)據(jù)記錄 542
13.7.9 安全與權(quán)限管理 546
13.8 小結(jié) 548
第14章 數(shù)據(jù)庫(kù)與報(bào)表工具包 549
14.1 準(zhǔn)備使用數(shù)據(jù)庫(kù)連接工具包 549
14.1.1 創(chuàng)建數(shù)據(jù)庫(kù) 549
14.1.2 建立數(shù)據(jù)源 550
14.1.3 數(shù)據(jù)庫(kù)工具包支持的數(shù)據(jù)類型 551
14.1.4 ADO模型 552
14.2 數(shù)據(jù)庫(kù)基本操作 552
14.2.1 建立連接 552
14.2.2 表操作 554
14.2.3 插入數(shù)據(jù) 555
14.2.4 讀取數(shù)據(jù) 556
14.2.5 記錄集與數(shù)據(jù)瀏覽 558
14.2.6 事務(wù)與提交 561
14.2.7 使用命令對(duì)象和SQL語(yǔ)句 562
14.3 報(bào)表與報(bào)表工具包 563
14.3.1 LabVIEW中的報(bào)表VI 563
14.3.2 VI說(shuō)明信息與HTML報(bào)表 565
14.3.3 報(bào)表布局與高級(jí)報(bào)表VI 566
14.3.4 利用Word和Excel模板創(chuàng)建報(bào)表 567
14.4 利用報(bào)表工具包操作Excel 568
14.4.1 常用的簡(jiǎn)單Excel VI 568
14.4.2 單元格格式 570
14.4.3 圖表與圖片VI 571
14.4.4 Excel通用VI和高級(jí)VI 572
14.5 利用報(bào)表工具包操作Word 574
14.5.1 Word簡(jiǎn)單VI 574
14.5.2 Word通用VI 575
14.5.3 Word表格與圖表VI 576
14.6 小結(jié) 577
第15章 LabVIEW與實(shí)時(shí)操作系統(tǒng) 578
15.1 實(shí)時(shí)操作系統(tǒng) 578
15.1.1 實(shí)時(shí)操作系統(tǒng)的特點(diǎn)與實(shí)現(xiàn) 578
15.1.2 操作系統(tǒng)的有關(guān)名詞解釋 579
15.1.3 LabVIEW中的實(shí)時(shí)開(kāi)發(fā)軟件 580
15.1.4 LabVIEW支持的實(shí)時(shí)操作系統(tǒng) 581
15.1.5 LabVIEW實(shí)時(shí)平臺(tái)概述 581
15.2 實(shí)時(shí)控制器軟件的安裝及配置 583
15.2.1 配置實(shí)時(shí)系統(tǒng)BIOS(PXI) 583
15.2.2 在MAX下安裝PXI實(shí)時(shí)軟件 584
15.2.3 識(shí)別遠(yuǎn)程設(shè)備 584
15.2.4 建立實(shí)時(shí)項(xiàng)目 585
15.3 實(shí)時(shí)應(yīng)用軟件高級(jí)編程及技巧 586
15.3.1 在實(shí)時(shí)操作系統(tǒng)下LabVIEW不支持的特性 587
15.3.2 實(shí)時(shí)操作系統(tǒng)下的多線程 587
15.3.3 實(shí)時(shí)系統(tǒng)中時(shí)間確定性的實(shí)現(xiàn) 590
15.3.4 實(shí)時(shí)系統(tǒng)中的線程間通信 594
15.3.5 實(shí)時(shí)控制系統(tǒng)的網(wǎng)絡(luò)通信 597
15.3.6 實(shí)時(shí)控制系統(tǒng)的軟件架構(gòu) 604
15.4 小結(jié) 607
第16章 LabVIEW實(shí)現(xiàn)數(shù)據(jù)采集 608
16.1 數(shù)據(jù)采集的基本概念 608
16.1.1 信號(hào) 608
16.1.2 傳感器 609
16.1.3 信號(hào)處理 610
16.2 數(shù)據(jù)采集卡 612
16.2.1 數(shù)據(jù)采集卡的定義及分類 612
16.2.2 多功能數(shù)據(jù)采集卡原理圖 613
16.2.3 數(shù)據(jù)采集的關(guān)鍵參數(shù)和概念 613
16.2.4 數(shù)據(jù)采集卡與信號(hào)接地 618
16.3 采樣定理 620
16.4 降低系統(tǒng)噪聲和提高精度 622
16.5 如何選購(gòu)采集卡 624
16.6 數(shù)據(jù)采集軟件基礎(chǔ) 625
16.6.1 采集系統(tǒng)的安裝 625
16.6.2 NI采集卡的常用函數(shù) 628
16.6.3 研華常用采集函數(shù) 632
16.7 基于NI-DAQmx的高級(jí)編程 633
16.7.1 觸發(fā)信號(hào) 633
16.7.2 采集系統(tǒng)時(shí)鐘 635
16.7.3 多板卡之間的同步采集 638
16.7.4 數(shù)據(jù)傳輸機(jī)制 640
16.7.5 完整波形輸出 643
16.7.6 并行結(jié)構(gòu)采集 644
16.7.7 通過(guò)硬件信號(hào)觸發(fā)定時(shí)循環(huán)運(yùn)行 645
16.7.8 使用NI-DAQmx的事件編寫事件驅(qū)動(dòng)程序 646
16.7.9 選擇合適的讀取策略 647
16.7.10 使用NI-DAQmx控制任務(wù)安全終止采集 649
16.7.11 計(jì)數(shù)器/定時(shí)器及其應(yīng)用 650
16.8 小結(jié) 654
第17章 FPGA開(kāi)發(fā) 655
17.1 FPGA的基本概念與CRIO的組成 655
17.1.1 FPGA的基本概念 655
17.1.2 CRIO的構(gòu)成 656
17.1.3 構(gòu)建FPGA項(xiàng)目 657
17.2 FPGA編程 658
17.2.1 FPGA基本I/O之模擬量輸入/輸出 658
17.2.2 FPGA基本I/O之?dāng)?shù)字量輸入/輸出 659
17.2.3 FPAG定時(shí)、時(shí)鐘與分頻 661
17.2.4 FPGA計(jì)數(shù)器應(yīng)用 662
17.2.5 觸發(fā)與外部時(shí)鐘循環(huán) 665
17.2.6 FPGA常用函數(shù) 666
17.2.7 FPGA多線程與線程之間的數(shù)據(jù)交換 668
17.2.8 FPGA IP Core 672
17.3 FPGA與RT程序之間的數(shù)據(jù)交換 672
17.3.1 讀寫控件方式 672
17.3.2 中斷 673
17.3.3 FIFO 675
17.3.4 掃描方式 677
17.3.5 專用C模塊 681
17.3.6 FPGA程序的優(yōu)化 683
17.4 Spartan-3E開(kāi)發(fā)板 685
17.4.1 Spartan-3E開(kāi)發(fā)板簡(jiǎn)介 685
17.4.2 建立Spartan-3E FPGA項(xiàng)目 686
17.4.3 編譯FPGA程序 687
17.5 小結(jié) 688