LabVIEW寶典(第2版)

LabVIEW寶典(第2版)

《LabVIEW寶典(第2版)》 一書由陳樹學、劉萱 編著,電子工業出版社2017年9月出版

內容提要

《LabVIEW寶典(第2版)》詳盡講解了LabVIEW常用的編程方法、編程技巧和工程套用技術。《LabVIEW寶典(第2版)》共分為3篇,其中:入門篇歸納總結了labview編程人員必須掌握的基礎知識,包括labview的基本概念、基本函式的用法和常用的運行結構,以及labview的基本數據結構和檔案存儲方式;高級篇細緻地講解了引用、屬性、方法以及各類高級控制項的運用,labview的文本方式編程以及dll、c語言接口,基於matlab語法的mathscript編程技術,labview基於組件的高級編程方法和編程模式;工程套用篇介紹了串口、並口和網路通信的常用方法,數據採集的基本原理和方法,labview實時系統的構建和編程,以及各種常用專業工具包的使用方法,包括資料庫連線工具包、數據監控與記錄工具包、報表生成工具包、狀態圖工具包等等。

《LabVIEW寶典(第2版)》可作為高等院校通信、測量技術、自動控制等相關課程的教材和教學參考書,也可作為相關工程技術人員設計開發儀器或自動測試系統的技術手冊。

目錄

第1部分 入門篇

第1章 打開LabVIEW編程之門 2

1.1 從VI開始 2

1.1.1 創建VI 3

1.1.2 控制項屬性設定與快捷選單 6

1.1.3 創建控制項、常量、局部變數、引用、屬性節點和方法節點 8

1.1.4 創建自定義控制項 10

1.2 編輯前面板和程式框圖 12

1.2.1 選擇、移動和刪除對象 12

1.2.2 使用布局工具 13

1.3 VI及其屬性對話框 17

1.3.1 VI的層次結構 17

1.3.2 調用子VI 19

1.3.3 VI的屬性設定 19

1.4 基本控制項及其使用方法 23

1.4.1 基本數值控制項 24

1.4.2 基本布爾控制項 30

1.4.3 控制項的通用編輯方法 33

1.4.4 字元串和路徑控制項 35

1.4.5 下拉列表與枚舉控制項 38

1.4.6 數組控制項及其屬性設定 39

1.4.7 簇控制項 40

1.4.8 時間標識控制項與波形數據控制項 42

1.5 小結 44

第2章 LabVIEW基本函式 45

2.1 必須了解的一些基本算術運算函式 45

2.1.1 基本運算函式 45

2.1.2 標量之間的基本運算 46

2.1.3 標量與數組的運算 46

2.1.4 數組與數組的運算 46

2.1.5 數組的函式 47

2.1.6 標量與簇的基本運算 55

2.1.7 簇與簇的運算 56

2.1.8 簇的函式 56

2.2 必須了解的位運算函式和邏輯運算函式 59

2.2.1 常用邏輯運算函式 59

2.2.2 位運算 59

2.2.3 深入理解複合運算函式 60

2.3 必須了解的關係運算函式和比較函式 61

2.3.1 比較模式 61

2.3.2 通用關係運算函式 62

2.3.3 “比較0”關係運算函式 63

2.3.4 複雜關係運算函式 63

2.3.5 字元關係運算函式 66

2.3.6 表達式節點與公式快速VI 67

2.4 小結 68

第3章 LabVIEW的程式運行結構 69

3.1 兩種不同的循環結構 69

3.1.1 For循環的組成和特點 69

3.1.2 For循環與數組 71

3.1.3 For循環與移位暫存器 73

3.1.4 For循環中的continue和break 74

3.1.5 While循環,不僅僅是循環 75

3.1.6 While循環與定時 76

3.1.7 反饋節點 81

3.2 定時結構 82

3.2.1 定時循環的基本組成要素和配置對話框 83

3.2.2 定時順序結構 85

3.3 獨特的條件結構 85

3.3.1 條件結構的基本結構 86

3.3.2 布爾型輸入 86

3.3.3 錯誤簇輸入 86

3.3.4 數值型輸入 87

3.3.5 枚舉型輸入 88

3.3.6 下拉列表輸入 88

3.3.7 字元串和組合框輸入 88

3.3.8 輸入、輸出隧道 89

3.3.9 多重If-Else的處理方法 89

3.4 不和諧的順序結構 90

3.4.1 多執行緒運行次序 90

3.4.2 兩種不同的順序結構 90

3.4.3 隧道與順序局部變數 92

3.4.4 順序結構的替代 92

3.4.5 順序結構的典型套用 93

3.5 程式框圖禁用結構 93

3.6 局部變數、內置全局變數和功能(LV2型)全局變數 94

3.6.1 局部變數 94

3.6.2 內置全局變數 96

3.6.3 功能(LV2型)全局變數 97

3.7 事件結構 99

3.7.1 事件結構的基本構成和創建方法 99

3.7.2 事件的分類及其特點 100

3.7.3 事件結構之間的數據傳送與共享 103

3.7.4 事件發生的次序、事件過濾和轉發 103

3.7.5 正確地使用事件結構 105

3.8 小結 106

第4章 LabVIEW的數據結構及記憶體最佳化 107

4.1 常用數據類型轉換函式 107

4.1.1 “強制類型轉換”函式 107

4.1.2 “平化至字元串”函式與“從字元串還原”函式 108

4.1.3 變體數據 109

4.1.4 變體數據數據類型解析 109

4.2 整數的類型轉換及記憶體映射 110

4.2.1 布爾型數據與字元串和數值的相互轉換 110

4.2.2 U8類型數據與字元串之間的相互轉換 111

4.2.3 整數與整數類型的相互轉換 111

4.3 其他標量數據類型的類型轉換及記憶體映射 112

4.3.1 定點數、浮點數的類型轉換與記憶體映射 112

4.3.2 複數的類型轉換及記憶體映射 115

4.3.3 時間標識的類型轉換與記憶體映射 115

4.4 複合數據類型 115

4.4.1 標量數組的記憶體映射 116

4.4.2 字元串、路徑和字元串數組的記憶體映射 117

4.4.3 LabVIEW使用的編碼 118

4.5 簇的記憶體映射 118

4.5.1 標量組成的簇 119

4.5.2 包含數組和字元串的簇 119

4.6 類型描述符 120

4.6.1 類型描述符的基本構成要素 120

4.6.2 常用類型描述符列表 120

4.6.3 常見數據類型的類型描述符結構 121

4.7 OpenG中有關類型描述符的函式 122

4.7.1 類型描述符函式 123

4.7.2 利用類型描述符處理枚舉型數據 124

4.7.3 利用類型描述符處理簇 124

4.8 幾種常用的記憶體分析工具和方法 124

4.8.1 記憶體的重要性 125

4.8.2 記憶體和性能查看工具 126

4.8.3 VI使用的記憶體 127

4.8.4 最佳化記憶體的一般注意事項 128

4.8.5 數組與記憶體最佳化 129

4.8.6 在循環中避免不必要的計算、讀/寫控制項或者變數 132

4.9 影響VI運行速度的因素 133

4.9.1 硬體輸入/輸出 133

4.9.2 螢幕顯示 134

4.10 小結 134

第5章 字元串與檔案存儲 135

5.1 字元串 135

5.1.1 幾種常用的字元串常量 135

5.1.2 幾種常用的字元串函式 136

5.1.3 “匹配模式”和“匹配正則表達式”函式 137

5.1.4 字元串與數值的相互轉換 140

5.1.5 功能強大的“格式化字元串”函式和“掃描字元串”函式 141

5.1.6 數組與電子表格字元串 144

5.1.7 附加字元串函式 144

5.2 檔案存儲 145

5.2.1 文本檔案與二進制檔案的區別 145

5.2.2 檔案常量和通用目錄、檔案函式 146

5.2.3 構造路徑的方法 147

5.2.4 文本檔案的讀寫 150

5.2.5 數據記錄檔案的讀寫 154

5.2.6 讀/寫二進制檔案 155

5.2.7 INI檔案的讀寫 157

5.2.8 XML檔案的讀寫 159

5.2.9 註冊表的讀寫 160

5.2.10 TDM檔案 162

5.2.11 TDMS檔案 164

5.3 小結 167

第2部分 高級篇

第6章 LabVIEW對象的解析 169

6.1 LabVIEW控制項對象的層次繼承結構 169

6.1.1 布爾控制項的層次繼承結構 169

6.1.2 通用類的屬性 170

6.1.3 圖形對象類 172

6.2 圖形對象類的子類 173

6.2.1 前面板類 173

6.2.2 窗格類和分隔欄類 174

6.2.3 LabVIEW的坐標映射 175

6.2.4 修飾類 177

6.3 控制項類 179

6.3.1 控制項類的常用屬性 179

6.3.2 控制項類的常用方法 181

6.3.3 數值控制項類 182

6.4 常用控制項的專有屬性 183

6.4.1 布爾控制項的專有屬性 183

6.4.2 枚舉控制項和下拉列表控制項的專有屬性 184

6.4.3 字元串控制項、路徑控制項和組合框控制項的專有屬性 185

6.4.4 數組控制項的屬性和方法 187

6.4.5 簇的屬性及方法 189

6.5 引用句柄 189

6.6 VI的屬性 191

6.6.1 獲取VI的引用 192

6.6.2 常用VI屬性 192

6.7 常用VI方法 195

6.7.1 獲取前面板、程式框圖和VI圖示的圖像 195

6.7.2 列印控制 196

6.7.3 默認值方法 196

6.8 動態調用VI 197

6.8.1 靜態調用和動態調用的比較 197

6.8.2 通過“引用節點調用”函式動態調用VI 197

6.8.3 一般類型VI的動態調用 199

6.8.4 創建閃屏 201

6.8.5 創建後台運行程式 202

6.8.6 創建嚮導程式 202

6.8.7 動態調用VI之間的數據交換 203

6.9 應用程式的屬性和方法 204

6.9.1 獲取應用程式的引用句柄 205

6.9.2 應用程式的常用屬性 205

6.10 小結 206

第7章 高級控制項的運用 207

7.1 列表框 207

7.1.1 列表框的創建及顯示風格 207

7.1.2 列表框的常用屬性、方法與事件 207

7.1.3 列表框的套用舉例 208

7.2 多列列表框 211

7.2.1 顯示多列項目並排序 212

7.2.2 多列列表框的特效製作 214

7.3 表格 214

7.3.1 表格的常用屬性和方法 215

7.3.2 表格的套用舉例 218

7.4 樹形控制項 222

7.4.1 樹形控制項的創建與靜態編輯 222

7.4.2 樹形控制項的常用屬性、方法和事件 224

7.4.3 樹形控制項高級套用舉例 225

7.5 波形圖表 227

7.5.1 波形圖表的組成要件 227

7.5.2 波形圖表的輸入類型 229

7.5.3 波形圖表專用屬性 229

7.5.4 波形圖表套用舉例 231

7.6 波形圖 232

7.6.1 波形圖控制項的創建和組成要件 233

7.6.2 波形圖控制項的輸入類型 233

7.6.3 波形圖控制項的專用屬性 236

7.6.4 波形圖控制項的高級套用舉例 238

7.7 XY圖 240

7.7.1 XY圖的輸入數據類型 241

7.7.2 XY圖的高級套用 243

7.8 強度圖表和強度圖 245

7.9 數字數據、數字波形數據與數字波形圖 246

7.9.1 數字數據 246

7.9.2 數字波形數據和數字波形圖 246

7.10 圖片控制項 247

7.10.1 利用圖片控制項顯示圖片 247

7.10.2 常用繪圖操作函式 249

7.10.3 圖片控制項的高級套用 251

7.11 小結 253

第8章 文本式編程與外部程式接口 254

8.1 公式節點 254

8.1.1 公式節點的數據類型、語法與控制結構 254

8.1.2 公式節點的套用舉例 256

8.2 調用庫函式 257

8.2.1 DLL與API函式 257

8.2.2 如何調用DLL函式 259

8.2.3 常用API函式的調用 265

8.2.4 LabVIEW調用DLL的局限性 267

8.3 CIN 270

8.3.1 CIN創建的一般過程 271

8.3.2 CIN的數據類型和常用函式 273

8.3.3 CIN與記憶體管理器 277

8.3.4 CIN的運行過程和數據共享 280

8.4 系統命令 283

8.5 剪貼簿 284

8.6 DDE庫 285

8.6.1 DDE概述 286

8.6.2 LabVIEW中DDE的常用方法 286

8.7 ActiveX控制項與ActiveX文檔 288

8.7.1 ActiveX的基本概念 288

8.7.2 ActiveX控制項的調用過程 289

8.7.3 ActiveX套用實例 289

8.7.4 ActiveX自動化伺服器 291

8.8 .NET技術 292

8.8.1 .NET控制項 292

8.8.2 .NET服務 293

8.8.3 利用.NET創建托盤程式 295

8.9 小結 298

第9章 MathScript 299

9.1 如何使用MathScript 299

9.1.1 使用MathScript節點 299

9.1.2 使用MathScript互動視窗 300

9.2 MathScript常用命令 301

9.3 MathScript基礎知識 302

9.3.1 創建向量和矩陣的基本方法 302

9.3.2 矩陣的基本運算 303

9.3.3 標準矩陣 304

9.3.4 矩陣元素的插入、替換、刪除和提取 305

9.3.5 矩陣元素的排序和搜尋特徵值 306

9.3.6 常用的矩陣變換函式 307

9.3.7 矩陣中元素的數據類型及轉換 308

9.3.8 關係運算、邏輯運算和位操作 310

9.3.9 集合函式 311

9.3.10 時間、日期和計時函式 311

9.4 程式控制結構與函式 312

9.4.1 For循環和While循環 312

9.4.2 If條件結構和Switch分支條件結構 314

9.4.3 函式和腳本檔案 315

9.5 數據統計和數據插值擬合 316

9.5.1 常用數據統計函式 317

9.5.2 數據插值 320

9.6 多項式、積分和微分 321

9.6.1 多項式 321

9.6.2 極值與零點 322

9.6.3 積分和微分 323

9.7 數據的圖形顯示 324

9.7.1 視窗類屬性與常用視窗操作函式 324

9.7.2 繪圖區域屬性 327

9.7.3 線對象和文本對象的屬性及常用函式 328

9.7.4 基本繪圖函式 330

9.8 小結 333

第10章 組件、同步技術、面向對象編程 334

10.1 數據的封裝與隔離 334

10.1.1 合理地使用數據流 334

10.1.2 LV2型全局變數 335

10.1.3 值變化與上升、下降沿 337

10.1.4 定時觸發與計數器 339

10.2 動作機(Action Engine) 341

10.2.1 準備建立動作機 341

10.2.2 建立動作機的步驟 342

10.3 用戶事件與動態註冊事件 343

10.3.1 用戶事件 343

10.3.2 動態註冊事件 346

10.4 堆疊與數據緩衝區 348

10.4.1 堆疊的實現 348

10.4.2 數據緩衝區 349

10.5 同步控制技術 350

10.5.1 佇列 350

10.5.2 通知器 355

10.5.3 信號量與集合點 358

10.6 項目管理器 359

10.6.1 項目管理器的結構 360

10.6.2 虛擬資料夾 360

10.6.3 庫 361

10.7 面向對象編程 363

10.7.1 面向對象編程的基本概念 363

10.7.2 類的封裝特性 364

10.7.3 類的繼承特性 367

10.7.4 類的多態特性 370

10.7.5 類變數 373

10.7.6 調用父類中的重寫方法 374

10.7.7 類的引用轉換 376

10.7.8 簡單工廠模式 377

10.7.9 類的動態載入與外掛程式功能 377

10.7.10 類方法的遞歸功能 378

10.7.11 類的單態模式 378

10.8 小結 380

第11章 人機互動與編程風格 381

11.1 對話框 381

11.1.1 內置對話框 381

11.1.2 用戶輸入和顯示對話框 382

11.1.3 定製對話框 383

11.2 選單 383

11.2.1 創建靜態選單 383

11.2.2 選單相關函式 384

11.2.3 動態創建選單 386

11.2.4 調用多個靜態選單,存儲運行時選單 387

11.2.5 自動觸發預定義的選單項 388

11.2.6 控制項的快捷選單 388

11.3 游標工具 389

11.3.1 “設定為忙碌狀態”VI與“取消設定忙碌狀態”VI 390

11.3.2 設定控制項游標 390

11.3.3 使用游標檔案 390

11.4 選項卡、子面板與分隔欄 391

11.4.1 選項卡控制項 391

11.4.2 選項卡控制項的頁面 391

11.4.3 頁面的公用控制項 392

11.4.4 分隔欄控制項 392

11.4.5 分隔欄與窗格滾動條 393

11.4.6 利用分隔欄創建工具列與狀態欄 393

11.4.7 利用分隔欄自動縮放控制項 394

11.4.8 子面板控制項 394

11.4.9 動態調用VI插入子面板 395

11.4.10 異步調用VI插入子面板 396

11.4.11 並行的靜態調用VI插入子面板 396

11.4.12 多個子面板插入相同VI 397

11.4.13 判斷VI是否插入子面板 398

11.4.14 子面板的屬性 398

11.5 XControl 398

11.5.1 Hover按鈕 399

11.5.2 新建XControl 399

11.5.3 修改數據控制項和狀態控制項 400

11.5.4 “外觀”VI 400

11.5.5 創建屬性和方法 403

11.5.6 調試XControl 404

11.5.7 自定義屬性對話框與快捷選單 405

11.6 錯誤處理 405

11.6.1 錯誤簇 406

11.6.2 常用錯誤處理函式 406

11.7 LabVIEW的編程風格 408

11.7.1 編程風格的內涵 408

11.7.2 前面板設計應該遵循的原則 409

11.7.3 程式框圖設計應該遵循的原則 410

11.7.4 連線板設計應該遵循的原則 411

11.7.5 圖示設計應該遵循的原則 412

11.7.6 數據結構應該遵循的原則 412

11.7.7 錯誤處理應該遵循的原則 413

11.8 小結 414

第3部分 工程套用篇

第12章 LabVIEW設計模式與狀態圖工具 416

12.1 程式的基本單元VI 416

12.1.1 VI的可重入屬性 416

12.1.2 不可重入VI 416

12.1.3 可重入VI 417

12.2 VI模板與代碼重用 418

12.2.1 內置的VI模板 418

12.2.2 用戶自定義模板 418

12.3 VI的調試 419

12.3.1 連續運行VI 419

12.3.2 高亮執行與單步調試 420

12.3.3 單步運行 420

12.3.4 探針 421

12.3.5 自定義探針 421

12.3.6 斷點 422

12.4 VI的重構 422

12.4.1 無用編程舉例 422

12.4.2 查找框圖中重複的功能 423

12.4.3 創建VI代替重複的功能 424

12.4.4 創建多態VI處理相似的功能 424

12.5 LabVIEW標準設計模式 425

12.5.1 用戶界面事件處理器設計模式 425

12.5.2 生產者/消費者設計模式(事件) 426

12.5.3 生產者/消費者設計模式(數據) 427

12.5.4 主/從設計模式 427

12.6 用戶界面事件處理器模式的拓展 428

12.6.1 用戶界面事件處理器+順序結構設計模式 428

12.6.2 用戶界面事件處理器+用戶事件 428

12.6.3 用戶界面事件處理器+逾時分頻 429

12.6.4 用戶界面事件處理器+定時循環 430

12.7 佇列訊息處理器(QMH)設計模式 430

12.7.1 基本佇列訊息處理器模式(字元串數組) 430

12.7.2 基本佇列訊息處理器模式(字元串) 431

12.7.3 基於生產者/消費者設計模式(佇列)的佇列訊息處理器 431

12.7.4 AMC佇列訊息處理器 432

12.7.5 基於佇列訊息處理器的命令模式 434

12.8 有限狀態機設計模式 435

12.8.1 標準狀態機設計模式 436

12.8.2 早期界面處理狀態機 436

12.8.3 順序狀態機 437

12.8.4 處理公共狀態 438

12.8.5 狀態機+用戶界面事件處理器 438

12.8.6 進入、運行和離開狀態的處理 439

12.8.7 有限狀態機+LVOOP 439

12.9 狀態機工具(State diagram) 442

12.9.1 調用狀態機工具 442

12.9.2 使用狀態圖編輯器 442

12.9.3 添加轉換條件和狀態代碼 442

12.9.4 選擇獨立運行或者子VI方式 443

12.10 佇列訊息狀態機 444

12.10.1 通用佇列訊息狀態機自定義模板 444

12.10.2 訊息+數據佇列狀態機 445

12.10.3 事件驅動佇列訊息狀態機 446

12.11 JKI事件驅動佇列訊息狀態機 446

12.11.1 JKI狀態機模板 447

12.11.2 JKI狀態機的初始化 448

12.11.3 JKI狀態機的預定義事件 448

12.11.4 JKI狀態機的退出 449

12.12 簡單狀態機項目模板 449

12.12.1 簡單狀態機項目模板的基本構成 450

12.12.2 簡單狀態機 450

12.12.3 簡單狀態機範例(有限次測量) 451

12.13 佇列訊息處理器項目模板 452

12.13.1 佇列訊息處理器項目模板的基本構成 452

12.13.2 佇列訊息處理器 453

12.13.3 佇列訊息處理器的退出機制 453

12.13.4 佇列訊息處理器的錯誤處理機制 454

12.13.5 佇列訊息處理器的拓展 455

12.14 Delacor佇列訊息處理器 456

12.14.1 DQMH項目模板的基本構成 456

12.14.2 DQMH模組的基本構成與對外接口 457

12.14.3 DQMH模組測試器 459

12.14.4 DQMH模組 460

12.14.5 使用DQMH模組 461

12.15 操作執行者框架 463

12.15.1 操作者框架概述 463

12.15.2 創建操作者、訊息 464

12.15.3 啟動、停止操作者,傳送訊息至操作者核心 466

12.15.4 創建操作者界面 467

12.15.5 操作者的定時功能 467

12.15.6 嵌套操作者 468

12.15.7 嵌套操作者動態啟動與停止 470

12.16 操作執行者框架項目模板 471

12.16.1 閃屏引導VI 471

12.16.2 操作者框架根操作者 472

12.16.3 Alpha嵌套操作者 473

12.16.4 Beta嵌套操作者 474

12.17 狀態圖工具包(Statechart) 475

12.17.1 狀態圖工具包簡介 475

12.17.2 同步與異步方式 475

12.17.3 創建狀態圖 475

12.17.4 同步型狀態圖 477

12.17.5 狀態圖的調用和調試 480

12.17.6 異步型狀態圖 481

12.17.7 區域、超級狀態和子狀態 482

12.17.8 多區域並發、連線、分叉與子圖 484

12.17.9 高級套用函式 486

12.18 小結 488

第13章 LabVIEW通信與DSC 489

13.1 串口通信 489

13.1.1 串口通信的基本概念 489

13.1.2 串口通信的準備工作 491

13.1.3 串口通信函式 492

13.1.4 串口通信典型套用舉例 493

13.2 並口通信 495

13.2.1 設定並口通信模式 495

13.2.2 傳送位元組型數據 496

13.2.3 傳送EPP模式數據 496

13.3 共享變數 497

13.3.1 共享變數與共享變數引擎 497

13.3.2 創建與監視共享變數 498

13.3.3 共享變數的內部緩衝機制 500

13.3.4 共享變數的批量創建、部署與引用 501

13.4 DataSocket 503

13.4.1 DataSocket支持的協定與URL 503

13.4.2 DataSocket伺服器與服務管理器 504

13.4.3 DataSocket API 505

13.4.4 DataSocket API套用舉例 506

13.4.5 DataSocket控制項綁定 507

13.5 TCP與UDP網路通信 508

13.5.1 TCP通信 508

13.5.2 TCP STM庫 510

13.5.3 UDP通信 510

13.6 網路流 511

13.6.1 在應用程式之間傳遞命令或者數據 512

13.6.2 網路流基本函式 512

13.6.3 創建網路流URL 512

13.6.4 網路流套用舉例 513

13.7 DSC工具包 514

13.7.1 OPC與DSC的基本概念 514

13.7.2 DSC強大的圖形顯示能力 516

13.7.3 OPC配置與I/O變數 517

13.7.4 Modbus 520

13.7.5 共享變數的屬性 521

13.7.6 共享變數引擎SVE函式 523

13.7.7 預警與事件 525

13.7.8 數據記錄 528

13.7.9 安全與許可權管理 531

13.8 小結 533

第14章 資料庫與報表工具包 534

14.1 準備使用資料庫工具包 534

14.1.1 創建資料庫 534

14.1.2 建立數據源 535

14.1.3 資料庫工具包支持的數據類型 536

14.1.4 ADO模型 537

14.2 資料庫基本操作 537

14.2.1 建立連線 537

14.2.2 表操作 539

14.2.3 插入數據 540

14.2.4 讀取數據 541

14.2.5 記錄集與數據瀏覽 543

14.2.6 事務與提交 546

14.2.7 使用命令對象和SQL語句 547

14.3 報表與報表工具包 548

14.3.1 LabVIEW中的報表VI 548

14.3.2 VI說明信息與HTML報表 550

14.3.3 報表布局與高級報表VI 551

14.3.4 利用Word和Excel模板創建報表 552

14.4 利用報表工具包操作Excel 553

14.4.1 常用的簡單Excel VI 553

14.4.2 單元格格式 555

14.4.3 圖表與圖片VI 556

14.4.4 Excel通用VI和高級VI 557

14.5 利用報表工具操作Word 559

14.5.1 Word簡單VI 560

14.5.2 Word通用VI 560

14.5.3 Word表格與圖表VI 561

14.6 小結 562

第15章 LabVIEW與實時作業系統 563

15.1 實時作業系統 563

15.1.1 實時作業系統的特點與實現 563

15.1.2 作業系統的有關名詞解釋 564

15.1.3 LabVIEW中的實時開發軟體 565

15.1.4 LabVIEW支持的實時作業系統 566

15.1.5 LabVIEW實時平台概述 566

15.2 實時控制器軟體安裝及配置 568

15.2.1 配置實時系統BIOS(PXI) 568

15.2.2 MAX下安裝PXI實時軟體 569

15.2.3 識別遠程設備 569

15.2.4 建立實時項目 570

15.3 實時套用軟體高級編程及技巧 571

15.3.1 實時作業系統下LabVIEW不支持的特性 572

15.3.2 實時作業系統下的多執行緒 572

15.3.3 實時系統中時間確定性的實現 575

15.3.4 實時系統中的執行緒間通信 579

15.3.5 實時控制系統的網路通信 582

15.3.6 實時控制系統的軟體架構 590

15.4 小結 593

第16章 LabVIEW實現數據採集 594

16.1 數據採集的基本概念 594

16.1.1 信號 594

16.1.2 感測器 595

16.1.3 信號處理 596

16.2 數據採集卡 598

16.2.1 數據採集卡的定義及分類 598

16.2.2 多功能數據採集卡原理圖 599

16.2.3 數據採集的關鍵參數和概念 599

16.2.4 數據採集卡與信號接地 604

16.3 採樣定理 606

16.4 降低系統噪聲和提高精度 608

16.5 如何選購採集卡 610

16.6 數據採集軟體基礎 611

16.6.1 採集系統的安裝 611

16.6.2 NI採集卡的常用函式 614

16.6.3 研華常用採集函式 618

16.7 基於NI-DAQmx的高級編程 619

16.7.1 觸發信號(Trigger) 619

16.7.2 採集系統時鐘 621

16.7.3 多板卡之間的同步採集 624

16.7.4 數據傳輸機制 626

16.7.5 完整波形輸出 630

16.7.6 並行結構採集 631

16.7.7 通過硬體信號觸發定時循環運行 631

16.7.8 用NI-DAQmx的事件編寫事件驅動程式 633

16.7.9 選擇合適的讀取策略 633

16.7.10 使用NI-DAQmx控制任務安全中止採集 636

16.7.11 計數器/定時器及其套用 636

16.8 小結 641

第17章 FPGA開發 642

17.1 FPGA的基本概念與CRIO的組成 642

17.1.1 FPGA的基本概念 642

17.1.2 CRIO的構成 643

17.1.3 構建FPGA項目 644

17.2 FPGA編程 645

17.2.1 FPGA基本I/O之模擬量輸入/輸出 645

17.2.2 FPGA基本I/O之數字量輸入/輸出 646

17.2.3 FPAG定時、時鐘與分頻 648

17.2.4 FPGA計數器套用 649

17.2.5 觸發與外部時鐘循環 652

17.2.6 FPGA常用函式 653

17.2.7 FPGA多執行緒與執行緒之間的數據交換 656

17.2.8 FPGA IP Core 659

17.3 FPGA與RT程式之間的數據交換 660

17.3.1 讀寫控制項方式 660

17.3.2 中斷 661

17.3.3 FIFO 662

17.3.4 掃描方式 665

17.3.5 專用C模組 668

17.3.6 FPGA程式的最佳化 670

17.4 Spartan-3E開發板 673

17.4.1 Spartan-3E簡介 673

17.4.2 建立Spartan-3E FPGA項目 674

17.4.3 編譯FPGA程式 675

17.5 小結 676

相關詞條

相關搜尋

熱門詞條

聯絡我們