LabVIEW虛擬儀器項目開發與實踐( 簡體 字) | |
作者:楊高科 | 類別:1. -> 程式設計 -> 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月于多倫多 |