本書介紹虛擬儀器技術 LabVIEW 編程平臺的編程方法、編程技術以及系統(tǒng)架構方法。第1章和第2 章介紹 LabVIEW 基本環(huán)境的安裝、程序?qū)崿F(xiàn)及調(diào)試方法;第3章至第5章介紹 LabVIEW 的數(shù)據(jù)類型、邏 輯結構以及數(shù)組、簇等進階數(shù)據(jù)類型;第6章和第7章介紹文件讀取與硬件設備的數(shù)據(jù)采集;第8章和第9 章介紹 LabVIEW 項目實現(xiàn)的方法,包含項目管理工具、LabVIEW 項目設計架構,并且通過萬用表校準的 項目詳細地介紹通過 LabVIEW 進行項目設計的過程。 本書可以作為高等院校測量技術、通信、自動控制等相關課程的教材和參考書,也可以作為相關工程 技術人員的自學參考書。
隨著半導體與計算機技術的不斷發(fā)展,工業(yè)領域面臨技術更新加快、系統(tǒng)需求日益復雜的挑戰(zhàn),虛擬儀器技術可以更高效地幫助工程師和科學家進行系統(tǒng)搭建和項目實現(xiàn)。目前,虛擬儀器技術在科研、軍工、航空航天、機器人、智能制造等領域都得到了廣泛的應用。廣大高等院校也開設了虛擬儀器相關課程。為滿足廣大讀者對于虛擬儀器技術的應用需求,作者編著了本書。本書從應用角度出發(fā),通過大量具體案例對虛擬儀器技術進行系統(tǒng)性的論述,幫助讀者形成關于虛擬儀器技術應用全面的知識體系。
《LabVIEW虛擬儀器設計指南》為讀者呈現(xiàn)了學習虛擬儀器技術過程中關心的理論、技術與應用:
? LabVIEW 的版本管理以及工具包的安裝管理;
? LabVIEW的數(shù)據(jù)結構和邏輯結構;
? LabVIEW的程序調(diào)試工具與方法;
? LabVIEW的多線程以及數(shù)據(jù)流技術;
? LabVIEW的高級編程架構;
? LabVIEW從系統(tǒng)到模塊的項目設計實例。
配套 教學課件 微課視頻 程序代碼。
虛擬儀器技術誕生于20世紀80年代,在測試測量以及控制領域已經(jīng)得到了廣泛的應用。隨著科技的不斷發(fā)展,虛擬儀器技術應用的領域也在不斷擴展,如當下熱門的5G通信、工業(yè)物聯(lián)網(wǎng)、人工智能等都有虛擬儀器技術的應用。
編者所在課題組一直從事面向國家重大需求的測控系統(tǒng)研發(fā),使用虛擬儀器技術進行測控系統(tǒng)的開發(fā)設計已經(jīng)有幾十年的時間,積累了大量的實際操作經(jīng)驗,也是全國高校中較早開展虛擬儀器教學的團隊。本著規(guī)格嚴格,功夫到家的校訓,在進行人才培養(yǎng)的過程中,十分注重讓學生更快地掌握虛擬儀器這門技術,并且作為人才儲備進入實際的科研課題進行項目設計。為此,我們在課程設計中十分注重基于項目的模式,通過實際的動手操作加強學生對技術的掌握。
2010年底,為了更好地培養(yǎng)虛擬儀器技術人才、提供優(yōu)良的項目實踐條件,哈爾濱工業(yè)大學與美國國家儀器有限公司合作共建了虛擬儀器創(chuàng)新實踐基地,建立了數(shù)據(jù)采集、嵌入式平臺、PXI工業(yè)總線、機器視覺、口袋實驗室等全產(chǎn)品線的虛擬儀器軟硬件平臺。實踐基地面向全校師生開放,并通過舉辦全國研究生暑期學校等活動面向全國師生開放。作為平臺的輔助環(huán)節(jié),學校先后成立了學生虛擬儀器技術協(xié)會,承辦了多次校級虛擬儀器設計大賽,并在2015年以虛擬儀器創(chuàng)新實踐基地為核心,承辦了第三屆全國虛擬儀器大賽,迎接了來自全國近400所學校的1876支隊伍。
通過虛擬儀器創(chuàng)新實踐基地的培養(yǎng),每年都為學校相關課題組輸送大量技術人才,也為美國國家儀器有限公司輸送專業(yè)技術人員(占全國招聘人員總數(shù)的20%以上)。
經(jīng)過多年項目開發(fā)和人才培養(yǎng)的經(jīng)驗積累,課題組總結出了具有哈爾濱工業(yè)大學實干精神的一套技術培養(yǎng)方法,匯總成這本《LabVIEW虛擬儀器設計指南》。北京優(yōu)諾智奇科技有限公司的劉洋先生也一同編寫了此書,劉洋先生曾在美國國家儀器有限公司負責中國區(qū)院校計劃十余年,常年支持國內(nèi)各大高校的虛擬儀器技術相關課程建設,建立了幾十個虛擬儀器俱樂部和上百個教學實驗室,同時是多所學校的企業(yè)導師,對虛擬儀器技術如何幫助學生提升工程實踐能力有著豐富的經(jīng)驗。
魏德寶老師編寫了本書的第1章至第3章,吳艷老師編寫了第4章至第6章,付寧老師編寫了第7章和第8章,劉洋先生編寫了第9章。
本書從實際應用的角度對虛擬儀器技術的學習路徑進行設計和編排,如在第1章介紹LabVIEW的軟件版本管理、工具包和模塊的安裝以及第三方工具包的安裝和管理; 在第8章對項目文件管理、依賴關系、軟件發(fā)布和編程設計架構進行了詳盡的介紹。這些在其他已出版的相關書籍中都鮮有提及,但是在實際項目開發(fā)中卻非常重要。
本書在知識點的呈現(xiàn)中力求做到對技術的直觀和深入講解。在編寫的過程中得到了美國國家儀器有限公司研發(fā)部門的技術支持,從軟件架構的角度深入淺出地介紹了虛擬儀器技術以及背后的實現(xiàn)機制,使技術的講解和實現(xiàn)更加深入和透徹。為了使知識點更易于理解也更加直觀,本書并沒有限于單純的技術講解,而是通過具體的程序?qū)崿F(xiàn)過程來展示。針對一些不易理解和容易混淆的知識點,則會對程序進行深入的調(diào)試和講解,并且比較了在不同條件下的運行機制和運行結果,同時也介紹了在實際工業(yè)應用中的效果。
本書十分注重講解和實際操作的融合,只有實際動手操作才能真正地掌握技術。本書原創(chuàng)性地設計了近300個范例程序用于講解對應的知識點,在對每個知識點范例講解的過程中,詳細地描述了操作的步驟,對于一些首次操作的步驟更是提供了特別的講解。讀者可以在閱讀過程中按照書中步驟同步進行操作。本書中全部的知識點都有對應的范例,可以作為讀者學習過程中操作的練習資料。
本書特別注重知識點相互間的銜接。每章都包含了十幾個到幾十個小型范例,這些范例程序從每章開始會逐步針對每個知識點進行講解,每個范例都是在上一個范例的基礎上實現(xiàn)新的功能,在每章后所有范例匯總在一起形成一個較為完整的小型項目。這樣可以使讀者更加清晰地了解各個知識點在項目應用中是如何相互銜接的,終進行完整的項目設計。
本書針對使用虛擬儀器技術進行項目式設計的需求專門設計了第9章。根據(jù)真實項目設計的過程,依次從項目背景分析、項目需求分析,設計了項目實現(xiàn)的整體架構和各個子模塊。針對每個子模塊分別進行項目的功能規(guī)劃和對應的虛擬儀器技術框架,并詳細描述了實現(xiàn)的過程。
本書后將各個子模塊匯總完成了整個項目的實現(xiàn)。在整個項目實現(xiàn)的過程中,將全書的虛擬儀器知識點綜合運用,同時在項目實現(xiàn)過程中也詳細地介紹了有關機器視覺的相關內(nèi)容。
感謝哈爾濱工業(yè)大學自動化測試與控制研究所的彭喜元教授、喬立巖教授和彭宇教授在本書編寫過程中提出的寶貴建議及細心指導,他們?yōu)楸緯木帉,以及虛擬儀器創(chuàng)新實踐基地的建設和虛擬儀器技術相關課程的改革提供了強大的支持。
感謝清華大學出版社編輯團隊的大力支持,他們認真細致的工作保證了本書的質(zhì)量。
由于編者水平有限,書中難免有疏漏和不足之處,懇請廣大讀者批評指正!
編者
2021年7月
魏德寶 哈爾濱工業(yè)大學副研究員、碩士生導師。長期從事航空航天自動測試系統(tǒng)的研發(fā)和教學工作,在虛擬儀器設計與開發(fā)領域具有資深的經(jīng)驗。
吳艷 哈爾濱工業(yè)大學高級工程師。曾任美國國家儀器有限公司應用工程師,現(xiàn)任哈爾濱工業(yè)大學專職實驗教師,主要從事虛擬儀器實踐教學工作。
付寧 哈爾濱工業(yè)大學教授、博士生導師。主要研究方向為虛擬儀器技術、壓縮感知技術,并有十余年相關課程教學經(jīng)驗。
劉洋 曾在在美國國家儀器公司任職,主要負責高等學校業(yè)務合作與推廣。支持多個高校建立了虛擬儀器聯(lián)合實驗室及開設虛擬儀器課程。
第1章虛擬儀器技術介紹
1.1虛擬儀器技術發(fā)展史
1.2LabVIEW介紹
1.3LabWindows CVI介紹
1.4LabVIEW NXG介紹
1.5LabVIEW安裝版本選擇
1.5.1LabVIEW安裝的操作系統(tǒng)
1.5.2LabVIEW環(huán)境安裝的位數(shù)
1.5.3LabVIEW安裝的語言版本
1.6Windows環(huán)境下LabVIEW的安裝
1.6.1本地安裝
1.6.2通過NI Package Manager在線安裝
1.6.3NI Package Manager 安裝
1.6.4在NI Package Manager 中安裝LabVIEW
1.6.5LabVIEW NXG的安裝
1.7LabVIEW的版本管理
1.7.1LabVIEW不同版本間的文件訪問
1.7.2LabVIEW的安裝路徑
1.8LabVIEW模塊和驅(qū)動的管理
1.8.1LabVIEW與模塊版本的支持
1.8.2LabVIEW與對應硬件驅(qū)動版本
1.8.3LabVIEW與工具包和驅(qū)動的安裝順序
第2章LabVIEW環(huán)境基礎
2.1創(chuàng)建個LabVIEW程序
2.2在程序框圖中部署函數(shù)和結構
2.2.1添加隨機數(shù)節(jié)點
2.2.2添加循環(huán)結構
2.3在前面板中添加用戶界面
2.3.1添加波形圖表顯示控件
2.3.2添加停止按鈕輸入控件
2.4在程序框圖中進行數(shù)據(jù)流連接
2.4.1輸出隨機數(shù)據(jù)到波形圖表
2.4.2將停止接線端連接到While循環(huán)
2.5運行與調(diào)試程序
2.5.1保存VI文件
2.5.2運行VI文件
2.5.3中止執(zhí)行VI
2.6LabVIEW VI三要素
2.6.1程序框圖
2.6.2前面板
2.6.3連線板和圖標
2.7基于數(shù)據(jù)流的編程模式
2.8LabVIEW VI的基本調(diào)試
2.8.1調(diào)試工具
2.8.2LabVIEW的即時幫助工具
2.8.3LabVIEW的范例查找器
第3章LabVIEW基本數(shù)據(jù)類型
3.1數(shù)值
3.1.1數(shù)值數(shù)據(jù)類型的概念
3.1.2數(shù)值類型的表示法
3.1.3數(shù)值數(shù)據(jù)的運算
3.1.4數(shù)值數(shù)據(jù)的顯示和可視化
3.1.5數(shù)值運算的類型轉(zhuǎn)換
3.2布爾
3.2.1布爾數(shù)據(jù)類型的概念
3.2.2在前面板放置布爾控件
3.2.3布爾數(shù)據(jù)的運算
3.2.4密碼鎖實現(xiàn)實例
3.3字符串
3.3.1字符串的概念
3.3.2字符串在硬件通信中的應用
3.3.3字符串運算操作實例
3.3.4字符串的轉(zhuǎn)換
第4章基本結構
4.1順序結構
4.1.1順序結構的概念
4.1.2順序結構使用實例
4.1.3數(shù)據(jù)流與順序結構
4.1.4順序結構實現(xiàn)初始化實例
4.2While循環(huán)
4.2.1While循環(huán)的概念
4.2.2While循環(huán)與定時
4.2.3數(shù)據(jù)流與While循環(huán)
4.2.4While循環(huán)與連續(xù)執(zhí)行
4.3For循環(huán)
4.3.1For循環(huán)的概念
4.3.2For循環(huán)與While循環(huán)比較實例
4.4條件結構
4.4.1條件結構的概念
4.4.2條件結構的應用
4.4.3條件結構的隧道
4.4.4條件結構隧道輸出默認值
第5章進階數(shù)據(jù)類型
5.1數(shù)組
5.1.1數(shù)組的概念
5.1.2數(shù)組的元素數(shù)據(jù)類型
5.1.3數(shù)組的類型
5.1.4數(shù)組的索引
5.1.5數(shù)組的使用
5.2簇
5.2.1簇的概念
5.2.2簇的操作
5.2.3簇的數(shù)據(jù)捆綁功能
5.3LabVIEW中數(shù)據(jù)流的可視化
5.3.1前面板的數(shù)據(jù)可視化
5.3.2前面板控件的可視化操作
5.3.3程序框圖中的數(shù)據(jù)流可視化
第6章文件讀寫
6.1LabVIEW與數(shù)據(jù)輸入輸出
6.2文件讀寫的概念
6.3文件讀寫的類型
6.4文件操作的一般步驟
6.4.1文本文件寫入實例
6.4.2路徑
6.4.3路徑和相對路徑
6.5文件操作的Express VI
6.5.1Express VI
6.5.2通過Express VI進行波形文件寫入實例
6.5.3通過Express VI進行波形文件讀取實例
6.5.4Express VI的特點
6.6底層VI
6.6.1使用TDMS寫入文件實例
6.6.2使用TDMS讀取文件實例
6.7高效的文件讀取
6.7.1底層VI和Express VI的比較
6.7.2文件保存和流盤的概念
6.7.3TDMS文件的高速寫入實例
第7章硬件輸入與輸出
7.1數(shù)據(jù)采集的基本概念
7.1.1數(shù)據(jù)采集的基本原理
7.1.2數(shù)據(jù)采集硬件的一般參數(shù)
7.1.3信號調(diào)理
7.1.4觸發(fā)
7.2NI Measurement and Automation Explorer
7.3模擬采集
7.3.1模擬采集的概念
7.3.2模擬采集的類型
7.3.3數(shù)據(jù)采集的一般過程
7.3.4模擬電壓有限點采集實例
7.3.5連續(xù)模擬采集
7.4模擬輸出
7.4.1輸出采樣率與輸出波形頻率關系實例
7.4.2有限點模擬電壓輸出實例
7.4.3模擬輸出任務實際的輸出信號
7.4.4連續(xù)模擬輸出實例
7.4.5模擬輸出需要注意的問題
7.4.6動態(tài)的模擬輸出
7.5數(shù)字采集
7.5.1數(shù)字采集的概念
7.5.2線和組的概念
7.5.3數(shù)字I/O的輸入與輸出定義
7.5.4數(shù)字I/O電平標準
7.5.5數(shù)字有限點采集任務
7.5.6數(shù)字連續(xù)采集任務
7.6數(shù)字有限點輸出任務
7.7計數(shù)器
7.7.1計數(shù)器的基本概念
7.7.2計數(shù)器的典型應用
第8章LabVIEW架構
8.1項目瀏覽器
8.1.1項目瀏覽器介紹
8.1.2項目瀏覽器的組成
8.1.3使用項目瀏覽器管理文件
8.1.4使用項目瀏覽器管理LabVIEW發(fā)布版本
8.2虛擬文件夾
8.2.1自動更新文件夾實例
8.2.2解決沖突實例
8.3依賴關系
8.4LabVIEW程序發(fā)布生成規(guī)范
8.4.1發(fā)布應用程序(EXE)實例
8.4.2發(fā)布安裝程序?qū)嵗?br />8.5變量
8.5.1LabVIEW中的變量
8.5.2變量競爭
8.5.3變量的數(shù)據(jù)緩沖
8.5.4使用共享變量傳遞數(shù)據(jù)實例
8.6隊列
8.6.1隊列的典型應用
8.6.2不同速率的循環(huán)之間傳遞數(shù)據(jù)實例
8.7事件結構
8.7.1事件結構的概念
8.7.2事件結構的構成
8.7.3事件結構響應用戶事件
8.7.4基于用戶事件響應的波形發(fā)生器實例
8.8生產(chǎn)者消費者結構
8.8.1生產(chǎn)者消費者結構的構成
8.8.2生產(chǎn)者消費者結構進行數(shù)據(jù)采集和數(shù)據(jù)流盤實例
8.9狀態(tài)機
8.9.1狀態(tài)機結構
8.9.2狀態(tài)機實例
第9章LabVIEW項目實踐萬用表校準分類
9.1項目應用背景介紹
9.2項目需求
9.3項目挑戰(zhàn)
9.3.1連接方式與信號調(diào)理
9.3.2待校準設備數(shù)值的讀取
9.3.3標準設備讀取的激勵信號
9.3.4圖像采集的需求
9.4項目整體架構
9.5項目分解一: 模擬電壓輸出與采集
9.5.1項目規(guī)劃
9.5.2項目實現(xiàn)
9.6項目分解二: 圖像采集
9.6.1圖像采集硬件連接
9.6.2圖像采集硬件調(diào)試
9.6.3通過程序獲取圖像
9.7項目分解三: OCR識別
9.7.1顏色提取
9.7.2建立坐標系
9.7.3建立ROI
9.7.4設定OCR 參數(shù)
9.7.5生成LabVIEW VI
9.8項目整合