虛擬儀器測(cè)試技術(shù).doc_第1頁(yè)
虛擬儀器測(cè)試技術(shù).doc_第2頁(yè)
虛擬儀器測(cè)試技術(shù).doc_第3頁(yè)
虛擬儀器測(cè)試技術(shù).doc_第4頁(yè)
虛擬儀器測(cè)試技術(shù).doc_第5頁(yè)
已閱讀5頁(yè),還剩123頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

目錄 單元 1 配置虛擬儀器軟件與硬件 3 1 1 演示虛擬示波器和電壓表 3 1 2 什么是虛擬儀器 4 1 3 配置虛擬儀器的硬件平臺(tái) 5 單元 2 創(chuàng)建和編輯 調(diào)試 VI 9 2 1 LABVIEW 的基本開發(fā)平臺(tái) 9 2 4 創(chuàng)建一個(gè)簡(jiǎn)單的 VI 程序 15 2 5VI 編輯和調(diào)試技術(shù) 16 2 6創(chuàng)建子 VI 20 2 7調(diào)用子 VI 25 單元 3 結(jié)構(gòu)控制程序設(shè)計(jì) 27 3 1 While loop 結(jié)構(gòu)與 chart 圖表 27 3 1 1While loop 結(jié)構(gòu) 27 3 1 2 波形圖指示器 28 3 2 移位寄存器 Shift Register 33 3 3 For loop 37 3 4 分支 Case 結(jié)構(gòu) 39 3 4 順序結(jié)構(gòu) Sequence Structure 44 3 5 公式節(jié)點(diǎn) Formula Node 47 單元 4 數(shù)組 array 和圖形 graphs 程序設(shè)計(jì) 50 4 1 數(shù)組 array 50 4 1 1 創(chuàng)建數(shù)組及自動(dòng)索引數(shù)組 50 4 1 2 數(shù)組函數(shù) 56 4 2 簇 cluster 60 4 2 1 創(chuàng)建簇控制和顯示簇 60 4 2 2 使用簇與子 VI 傳遞數(shù)據(jù) 61 4 2 3 按名稱捆綁與分解簇 62 4 2 4 數(shù)組和簇的互換 63 4 2 5error in 簇 和 error out 簇 63 4 2 6 波形圖 Waveform 63 4 3 圖形 64 4 3 1Graph 控件 65 4 3 2 Chart 獨(dú)有控件 65 4 3 3XY 圖形控件 XY Graph 67 4 3 4 強(qiáng)度圖形控件 Intensity Graph 68 4 3 5 數(shù)字波形圖控件 Digital Waveform Graph 68 單元 5 字符串和文件程序設(shè)計(jì) 70 5 1 字符串 70 5 2 文件的輸入 輸出 I O 72 5 2 15 2 1 文件文件 I OI O 函數(shù)函數(shù) 72 5 2 5 2 將數(shù)據(jù)寫入電子表格文件將數(shù)據(jù)寫入電子表格文件 73 單元 6 數(shù)據(jù)采集 Data Acquisition 80 6 1 基于了 LABVIEW 的數(shù)據(jù)采集卡系統(tǒng)總體結(jié)構(gòu) 80 6 2 數(shù)據(jù)采集設(shè)備的設(shè)置與測(cè)試 81 6 3 采集模擬信號(hào) 85 6 3 16 3 1 A DA D 轉(zhuǎn)換轉(zhuǎn)換 86 6 3 26 3 2 模擬輸入?yún)?shù)說明模擬輸入?yún)?shù)說明 87 6 3 46 3 4 在在 DAQmxDAQmx 中創(chuàng)建應(yīng)用程序中創(chuàng)建應(yīng)用程序 88 虛擬測(cè)試技術(shù) 實(shí)驗(yàn)習(xí)題集 98 Excercise1 INTRODUCTION TO LABVIEW 98 Excercise2 CREATE A SIMPLE LABVIEW VI 99 Excercise3 Create a sub vi 100 Exercise 4 LOOP AND CHARTS 101 Exercise 5 ARRAY AND INDICATORS 104 Exercise 6 CASE AND SEQUENCE STRUCTURE 108 單元單元 1 配置虛擬儀器軟件與硬件配置虛擬儀器軟件與硬件 1 11 1 演示虛擬示波器和電壓表演示虛擬示波器和電壓表 虛擬儀器 virtual instrument 是基于計(jì)算機(jī)的儀器 或者說虛擬儀器技術(shù)就是用計(jì)算 機(jī)來做測(cè)量的技術(shù) 那么計(jì)算機(jī)能做測(cè)量嗎 下面先看一個(gè)兩個(gè)演示例子 例 1 虛擬示波器 圖 1 1 虛擬示波器前面板 例 2 虛擬數(shù)字電壓表 圖 1 2 虛擬數(shù)字電壓表前面板 上述例子說明 用計(jì)算機(jī)來做測(cè)量是可行的 1 21 2 什么是虛擬儀器什么是虛擬儀器 虛擬儀器 virtual instrumention 是基于計(jì)算機(jī)的儀器 計(jì)算機(jī)和儀器的密切結(jié)合是目 前儀器發(fā)展的一個(gè)重要方向 粗略地說這種結(jié)合有兩種方式 一種是將計(jì)算機(jī)裝 入儀器 其典型的例子就是所謂智能化的儀器 隨著計(jì)算機(jī)功能的日益強(qiáng)大以及其體積的日趨縮小 這類儀器功能也越來越強(qiáng)大 目前已經(jīng)出現(xiàn)含嵌入式系統(tǒng)的儀器 另一種方式是將儀器裝 入計(jì)算機(jī) 以通用的計(jì)算機(jī)硬件及操作系統(tǒng)為依托 實(shí)現(xiàn)各種儀器功能 虛擬儀器主要是 指這種方式 下面的框圖反映了常見的虛擬儀器方案 實(shí)際上 所有測(cè)試儀器可概括為三大功能模塊組成 數(shù)據(jù)采集 數(shù)據(jù)測(cè)試和分析 結(jié) 果輸出與顯示 其中數(shù)據(jù)分析和結(jié)果輸出完全可由基于計(jì)算機(jī)的軟件系統(tǒng)來完成 因此只 要另外提供一定的數(shù)據(jù)采集硬件 就可構(gòu)成基于計(jì)算機(jī)組成的測(cè)量測(cè)試儀器 虛擬儀器的主要特點(diǎn)有 1 盡可能采用了通用的硬件 各種儀器的差異主要是軟件 2 可充分發(fā)揮計(jì)算機(jī)的能力 有強(qiáng)大的數(shù)據(jù)處理功能 可以創(chuàng)造出功能更強(qiáng)的儀器 3 用戶可以根據(jù)自己的需要定義和制造各種儀器 注意 這里所指的虛擬儀器和 EDA 仿真軟件中的虛擬儀器概念完全不同 它可以完全 替代傳統(tǒng)臺(tái)式測(cè)量測(cè)試儀器實(shí)現(xiàn)對(duì)真實(shí)信號(hào)的測(cè)量 而 EDA 仿真軟件中的虛擬儀器是純軟 件的 仿真的 不能測(cè)量真實(shí)的信號(hào) 1 31 3 配置虛擬儀器的硬件平臺(tái)配置虛擬儀器的硬件平臺(tái) 虛擬儀器由通用儀器的硬件平臺(tái)和應(yīng)用軟件兩部分組成 一 硬件平臺(tái) 虛擬儀器的硬件平臺(tái)包括計(jì)算機(jī)和 I O 接口設(shè)備兩部分 計(jì)算機(jī)是硬件平臺(tái)的核心 I O 接口設(shè)備主要完成待測(cè)輸入信號(hào)的采集 放大 和 A D 轉(zhuǎn)換等 根據(jù) I O 接口設(shè)備的不同 總線形式 虛擬儀器主要分為以下六種類型 測(cè) 控 對(duì) 象 PC DAQ板 GPIB儀器 串口儀器 VXI模塊 PXI模塊 I O接口設(shè)備 計(jì) 算 機(jī) 1 PC DAQ 插卡式虛擬儀器 它是以數(shù)據(jù)采集卡 信號(hào)條理電路以及計(jì)算機(jī)為硬件平臺(tái)組成的插卡式虛擬儀器系統(tǒng) 這種系統(tǒng)采用 PCI 計(jì)算機(jī)總線 只要將數(shù)據(jù)采集卡插入計(jì)算機(jī)主板的空槽中即可以使用 插卡式虛擬儀器的組成原理框圖 NI 公司的 M 系列數(shù)據(jù)采集卡 2 GPIB 儀器 它是以 GPIB 標(biāo)準(zhǔn)儀器總線與計(jì)算機(jī)為硬件平臺(tái)組成的儀器測(cè)試系統(tǒng) GPIB 儀器組成 3 串口儀器 串口儀器是以 serial 標(biāo)準(zhǔn)總線與計(jì)算機(jī)為平臺(tái)組成的儀器測(cè)試系統(tǒng) 4 VXI 模塊 它是以 VXI 標(biāo)準(zhǔn)總線儀器模塊與計(jì)算機(jī)硬件為平臺(tái)組成的儀器測(cè)試系統(tǒng) VXI 虛擬儀器 5 PXI 模塊 它是以 PXI 標(biāo)準(zhǔn)總線儀器模塊與計(jì)算機(jī)為硬件平臺(tái)組成的儀器測(cè)試系統(tǒng) PXI 虛擬儀器 6 USB 模塊 它是以 USB 標(biāo)準(zhǔn)總線儀器模塊與計(jì)算機(jī)為硬件平臺(tái)組成的儀器測(cè)試系統(tǒng) NI USB 數(shù)據(jù)采集卡構(gòu)成的虛擬儀器 1 1 4 配置虛擬儀器軟件 配置虛擬儀器軟件 虛擬儀器可使用相同的硬件系統(tǒng) 通過不同的軟件就可以實(shí)現(xiàn)功能完全不同的各種測(cè) 量測(cè)試儀器 軟件系統(tǒng)是虛擬儀器的核心 軟件可以定義為各種儀器 因此可以說 軟件 即儀器 虛擬儀器的應(yīng)用軟件包含應(yīng)用程序和 I O 接口驅(qū)動(dòng)程序兩部分構(gòu)成 1 I O 接口設(shè)備驅(qū)動(dòng)程序 完成特定外部硬件設(shè)備的擴(kuò)展 驅(qū)動(dòng)以及計(jì)算機(jī)的通信 一般 I O 接口驅(qū)動(dòng)程由提供 I O 設(shè)備的廠家提供 2 應(yīng)用程序 在硬件平臺(tái)具備以后 完成測(cè)試功能主要取決于應(yīng)用程序 EXE 文件 3 開發(fā)工具 開發(fā)虛擬儀器必須有合適的軟件工具 目前虛擬儀器軟件開發(fā)工具主要有如下幾類 文本式編程語(yǔ)言 如 visual C visual Basic labview windows CVI 等 圖形化編輯語(yǔ)言 如 labview NI 公司 VEE HP 公司 等 這些軟件開發(fā)工具為 用戶設(shè)計(jì)虛擬儀器應(yīng)用軟件提供了良好的開發(fā)環(huán)境 4 LabVIEW 概述 LabVIEW Laboratory Virtual instrument Engineering 是一種圖形化的編程語(yǔ)言 它廣泛地被工業(yè)界 學(xué)術(shù)界和研究實(shí)驗(yàn)室所接受 視為一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟 件 LabVIEW 集成了與滿足 GPIB VXI RS 232 和 RS 485 協(xié)議的硬件及數(shù)據(jù)采集卡通訊的 全部功能 它還內(nèi)置了便于應(yīng)用 TCP IP ActiveX 等軟件標(biāo)準(zhǔn)的庫(kù)函數(shù) 這是一個(gè)功能強(qiáng) 大且靈活的軟件 利用它可以方便地建立自己的虛擬儀器 其圖形化的界面使得編程及使 用過程都生動(dòng)有趣 圖形化的程序語(yǔ)言 又稱為 語(yǔ)言 使用這種語(yǔ)言編程時(shí) 基本上不寫程序代碼 取而代之的是流程圖或框圖 它盡可能利用了技術(shù)人員 科學(xué)家 工程師所熟悉的術(shù)語(yǔ) 圖標(biāo)和概念 因此 LabVIEW 是一個(gè)面向最終用戶的工具 它可以增強(qiáng)你構(gòu)建自己的科學(xué) 和工程系統(tǒng)的能力 提供了實(shí)現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑 使用它進(jìn)行原理研 究 設(shè)計(jì) 測(cè)試并實(shí)現(xiàn)儀器系統(tǒng)時(shí) 可以大大提高工作效率 利用 LabVIEW 可產(chǎn)生獨(dú)立運(yùn)行的可執(zhí)行文件 它是一個(gè)真正的 位編譯器 像許 多重要的軟件一樣 LabVIEW 提供了 Windows UNIX Linux Macintosh 的多種版本 單元單元 2 創(chuàng)建和編輯 調(diào)試創(chuàng)建和編輯 調(diào)試 VI 知識(shí)點(diǎn) Labview 的前面板和流程圖設(shè)計(jì) Labview 的操作模板和主菜單 創(chuàng)建兩個(gè) VI 程序 LABVIEW 的程序調(diào)式技術(shù) 創(chuàng)建子程序 本章概述 本章主要介紹 LABVIEW 的前面板窗口和流程圖窗口 工具模板 控制模板和函數(shù)模板 通 過具體程序設(shè)計(jì)示例的來說明 LABVIEW 編程的一般步驟和程序調(diào)試技術(shù) 最后將介紹子 程序的概念以創(chuàng)建子程序的詳細(xì)過程 2 1 LABVIEW 的基本開發(fā)平臺(tái)的基本開發(fā)平臺(tái) LabVIEW 程序 簡(jiǎn)稱 VI 包括前面板 front panel 流程圖兩個(gè)窗口 前面板前面板 前面板是圖形用戶界面 也就是 VI 的虛擬儀器面板 這一界面上有用戶輸入和顯示輸 出兩類對(duì)象 具體表現(xiàn)有開關(guān) 旋鈕 圖形以及其他控制 control 和顯示對(duì)象 indicator 圖 2 1 所示是一個(gè)隨機(jī)信號(hào)發(fā)生和顯示的簡(jiǎn)單 VI 是它的前面板 上面有一個(gè)顯示對(duì)象 以曲線的方式顯示了所產(chǎn)生的一系列隨機(jī)數(shù) 還有一個(gè)控制對(duì)象 開關(guān) 可以啟動(dòng)和停 止工作 顯然 并非簡(jiǎn)單地畫兩個(gè)控件就可以運(yùn)行 在前面板后還有一個(gè)與之配套的流程 圖 控制對(duì)象 輸 入 顯示對(duì)象 輸出 圖 2 隨機(jī)信號(hào)發(fā)生器的前面板板 流程圖流程圖 流程圖提供 VI 的圖形化源程序 在流程圖中對(duì) VI 編程 以控制和操縱定義在前面板 上的輸入和輸出功能 流程圖中包括前面板上的控件的連線端子 還有一些前面板上沒有 但編程必須有的東西 例如函數(shù) 結(jié)構(gòu)和連線等 圖 是與圖 對(duì)應(yīng)的流程圖 我們可以看到流程圖中包括了前面板上的開關(guān)和隨機(jī)數(shù)顯示器的連線端子 還有一個(gè)隨機(jī) 數(shù)發(fā)生器的函數(shù)及程序的循環(huán)結(jié)構(gòu) 隨機(jī)數(shù)發(fā)生器通過連線將產(chǎn)生的隨機(jī)信號(hào)送到顯示控 件 為了使它持續(xù)工作下去 設(shè)置了一個(gè) While Loop 循環(huán) 由開關(guān)控制這一循環(huán)的結(jié)束 如果將 VI 與標(biāo)準(zhǔn)儀器相比較 那么前面板上的東西就是儀器面板上的東西 而流程圖 上的東西相當(dāng)于儀器箱內(nèi)的東西 在許多情況下 使用 VI 可以仿真標(biāo)準(zhǔn)儀器 不僅在屏幕 上出現(xiàn)一個(gè)惟妙惟肖的標(biāo)準(zhǔn)儀器面板 而且其功能也與標(biāo)準(zhǔn)儀器相差無(wú)幾 工具模板 工具模板 Tools Palette 為了便于創(chuàng)建 VI 程序 LabVIEW 平臺(tái)上提供了三種模板供編程人員使用 這三種模 版分別是 工具 Tools 模板 控件 Controls 模板和函數(shù) Functions 模板 函數(shù) 隨機(jī) 數(shù)發(fā)生器 結(jié)構(gòu) 循環(huán) 與前面板控件 對(duì)應(yīng)的連線端 子 與前面板控件 對(duì)應(yīng)的連線端 子 圖 2 隨機(jī)信號(hào)發(fā)生器的流程圖 工具模板為編程者提供了各種用于創(chuàng)建 修改和調(diào)試 VI 程序的工具 如果該模板沒有 出現(xiàn) 則可以在 Windows 菜單下選擇 Show Tools Palette 命令以顯示該模板 當(dāng)從模板內(nèi) 選擇了任一種工具后 鼠標(biāo)箭頭就會(huì)變成該工具相應(yīng)的形狀 當(dāng)從 Windows 菜單下選擇了 Show Help Window 功能后 把工具模板內(nèi)選定的任一種工具光標(biāo)放在框圖程序的子程序 Sub VI 或圖標(biāo)上 就會(huì)顯示相應(yīng)的幫助信息 工具模板圖標(biāo)有如下幾種 工具模板圖標(biāo) 名稱及功能 圖標(biāo)名稱功能 操作工具使用該工具來操作前面板的控制和顯示 使用它向數(shù)字 或字符串控制中鍵入值時(shí) 工具會(huì)變成標(biāo)簽工具的形狀 選擇工具用于選擇 移動(dòng)或改變對(duì)象的大小 當(dāng)它用于改變對(duì)象 的連框大小時(shí) 會(huì)變成相應(yīng)形狀 標(biāo)簽工具用于輸入標(biāo)簽文本或者創(chuàng)建自由標(biāo)簽 當(dāng)創(chuàng)建自由標(biāo)簽 時(shí)它會(huì)變成相應(yīng)形狀 連線工具用于在框圖程序上連接對(duì)象 如果聯(lián)機(jī)幫助的窗口 被打開時(shí) 把該工具放在任一條連線上 就會(huì)顯示相應(yīng) 的數(shù)據(jù)類型 對(duì)象彈出菜 單工具 用左鼠標(biāo)鍵可以彈出對(duì)象的彈出式菜單 漫游工具 使用該工具就可以不需要使用滾動(dòng)條而在窗口中漫游 斷點(diǎn)工具 使用該工具在 VI 的框圖對(duì)象上設(shè)置斷點(diǎn) 探針工具可以在框圖程序內(nèi)的數(shù)據(jù)流線上設(shè)置探針 程序調(diào)試員 可以通過控針窗口來觀察該數(shù)據(jù)流線上的數(shù)據(jù)變化狀況 顏色提取工使用該工具來提取顏色用于編輯其他的對(duì)象 具 顏色工具用來給對(duì)象定義顏色 它也顯示出對(duì)象的前景色和背景 色 控件模板控件模板 Controls Palette 與上述工具模板不同 控制和功能模板只顯示頂層子模板的圖標(biāo) 在這些頂層子模板 中包含許多不同的控制或功能子模板 通過這些控制或功能子模板可以找到創(chuàng)建程序所需 的面板對(duì)象和框圖對(duì)象 用鼠標(biāo)點(diǎn)擊頂層子模板圖標(biāo)就可以展開對(duì)應(yīng)的控制或函數(shù)子模板 只需按下控制或函數(shù)子模板左上角的大頭針就可以把對(duì)這個(gè)子模板變成浮動(dòng)板留在屏幕上 用控制模板可以給前面板添加輸入控制和輸出顯示 每個(gè)圖標(biāo)代表一個(gè)子模板 如果 控制模板不顯示 可以用 Windows 菜單的 Show Controls Palette 函數(shù)打開它 也可以在前 面板的空白處 點(diǎn)擊鼠標(biāo)右鍵 以彈出控制模板 注 只有當(dāng)打開前面板窗口時(shí)才能調(diào)用 控制模板 控制模板如左圖所示 它包括如圖所示的幾個(gè)子模板 控件子模板圖標(biāo) 名稱及功能 圖標(biāo)名稱功能 數(shù)值子模板包含數(shù)值的控制和顯示 布爾值子模塊邏輯數(shù)值的控制和顯示 字符串子模板字符串和表格的控制和顯示 列表和環(huán) Ring 子模板 菜單環(huán)和列表欄的控制和顯示 數(shù)組和群子模板復(fù)合型數(shù)據(jù)類型的控制和顯示 圖形子模板顯示數(shù)據(jù)結(jié)果的趨勢(shì)圖和曲線圖 路徑和參考名 Refnum 子模板 文件路徑和各種標(biāo)識(shí)的控制和顯示 控件容器庫(kù)子模 板 用于操作 OLE ActiveX 等函數(shù) 對(duì)話框子模板用于輸入對(duì)話框的顯示控制 修飾子模板用于給前面板進(jìn)行裝飾的各種圖形對(duì)象 自定義用戶自定義的控制和顯示 調(diào)用存儲(chǔ)在文件中的控制和顯示的接口 函數(shù)模板函數(shù)模板 Functions Palette 函數(shù)模板是創(chuàng)建框圖程序的工具 該模板上的每一個(gè)頂層圖標(biāo)都表示一個(gè)子模板 若 函數(shù)模板不出現(xiàn) 則可以用 Windows 菜單下的 Show Functions Palette 函數(shù)打開它 也可以 在框圖程序窗口的空白處點(diǎn)擊鼠標(biāo)右鍵以彈出函數(shù)模板 注 只有打開了框圖程序窗口 才能出現(xiàn)函數(shù)模板 函數(shù) 模板如下圖所示 函數(shù)模板的子模板 圖標(biāo)名稱函數(shù) 結(jié)構(gòu)子模板 包括程序控制結(jié)構(gòu)命令 例如循環(huán)控制等 以及全局變 量和局部變量 數(shù)值運(yùn)算子模板 包括各種常用的數(shù)值運(yùn)算符 如 等 以及各種常見 的數(shù)值運(yùn)算式 如 1 運(yùn)算 還包括數(shù)制轉(zhuǎn)換 三角函數(shù) 對(duì)數(shù) 復(fù)數(shù)等運(yùn)算 以及各種數(shù)值常數(shù) 布爾邏輯子模板 包括各種邏輯運(yùn)算符以及布爾常數(shù) 字符串運(yùn)算子模 板 包含各種字符串操作函數(shù) 數(shù)值與字符串之間的轉(zhuǎn)換函 數(shù) 以及字符 串 常數(shù)等 數(shù)組子模板 包括數(shù)組運(yùn)算函數(shù) 數(shù)組轉(zhuǎn)換函數(shù) 以及常數(shù)數(shù)組等 群子模板 包括群的處理函數(shù) 以及群常數(shù)等 這里的群相當(dāng)于 C 語(yǔ)言中的結(jié)構(gòu) 比較子模板 包括各種比較運(yùn)算函數(shù) 如大于 小于 等于 時(shí)間和對(duì)話框子 模板 包括對(duì)話框窗口 時(shí)間和出錯(cuò)處理函數(shù)等 文件輸入 輸出子 模板 包括處理文件輸入 輸出的程序和函數(shù) 儀器控制子模板 包括 GPIB 488 488 2 串行 VXI 儀器控制的程序和 函數(shù) 以及 VISA 的操作功能函數(shù) 儀器驅(qū)動(dòng)程序庫(kù) 用于裝入各種儀器驅(qū)動(dòng)程序 數(shù)據(jù)采集子模板 包括數(shù)據(jù)采集硬件的驅(qū)動(dòng)程序 以及信號(hào)調(diào)理所需的各 種函數(shù)模塊 信號(hào)處理子模板 包括信號(hào)發(fā)生 時(shí)域及頻域分析函數(shù)模塊 數(shù)學(xué)模型子模塊 包括統(tǒng)計(jì) 曲線擬合 公式框節(jié)點(diǎn)等函數(shù)模塊 以及數(shù) 值微分 積分等數(shù)值計(jì)算工具模塊 圖形與聲音子模 塊 包括 3D OpenGL 聲音播放等函數(shù)模塊 通訊子模板 包括 TCP DDE ActiveX 和 OLE 等函數(shù)的處理模塊 應(yīng)用程序控制子 模塊 包括動(dòng)態(tài)調(diào)用 VI 標(biāo)準(zhǔn)可執(zhí)行程序的函數(shù)函數(shù) 底層接口子模塊 包括調(diào)用動(dòng)態(tài)連接庫(kù)和 CIN 節(jié)點(diǎn)等函數(shù)的處理模塊 文檔生成子模板 示教課程子模板 包括 LabVIEW 示教程序 用戶自定義的子 VI 模板 選擇 VI 子程 序 子模板 包括一個(gè)對(duì)話框 可以選擇一個(gè) VI 程序作為子程序 SUB VI 插入當(dāng)前程序中 其它幾個(gè)子模板是 LabVIEW 的附加 Toolkit 安裝上去的 在 LabVIEW 完全版中不包括這 些子模板 2 4 創(chuàng)建一個(gè)簡(jiǎn)單的創(chuàng)建一個(gè)簡(jiǎn)單的 VI 程序程序 我們通過例子來說明如何創(chuàng)建一個(gè) VI 例題 2 1 把攝氏溫度轉(zhuǎn)換為華氏溫度 圖 2 1 例題 2 1 的前面板 圖 2 2 例題 2 1 框圖程序 前面板編輯 前面板編輯 選擇 File New blank vi 打開一個(gè)新的前面板窗口 選擇 Windows Left and Right 或使用快捷鍵 CTR T 顯示前面板和框圖程序窗口 創(chuàng)建數(shù)字控件 并將這個(gè)數(shù)字控件標(biāo)簽 label 修改為 deg c 從 Controls Numeric Controls 中選擇 Numeric Control 放到前面板中 用 tool palette A 工具 將修改 Numeric Control 的 label 項(xiàng)修改為 deg c 創(chuàng)建數(shù)字指示器 并將這個(gè)數(shù)字控件標(biāo)簽 label 修改為 deg f 流圖圖的編輯 按 CTR E 鍵 切換到框圖程序窗口 從功能模板中選擇下列函數(shù)圖標(biāo)放置在框圖中 Multiply 在 function numeric 下 將兩個(gè)數(shù)相乘得到它們的乘積 add 在 function numeric 下 將兩個(gè)數(shù)相加得到它們的和 numeric constant 常數(shù) 此例中 雙擊數(shù)值型常數(shù) 將其值分別修改為 1 8 再 放置一個(gè)數(shù)值型常數(shù) 將其數(shù)值修改為 32 使用連線工具 按照?qǐng)D 2 2 框圖連線 前面板如圖 2 1 所示 框圖程序如圖 2 2 所示 Vi 的運(yùn)行 的運(yùn)行 單擊窗口上部的 run 圖標(biāo) 運(yùn)行該 vi 得到圖 2 1 的結(jié)果 單擊窗口上部的 continuous run 圖標(biāo) 輸出結(jié)果可以隨輸入的變化而變化 單擊 pause 可暫時(shí)停止程序 單擊 abort excution 結(jié)束程序的運(yùn)行 程序的存盤 程序的存盤 選擇 file save 將此 VI 命名為 C F vi 保存 選擇 file close 關(guān)閉 VI 練習(xí) 2 1 結(jié)束 2 5VI 編輯和調(diào)試技術(shù)編輯和調(diào)試技術(shù) 1 VI 編輯技術(shù)編輯技術(shù) VI 程序具有三個(gè)要素 前面板 框圖程序和圖標(biāo) 連接器 節(jié)點(diǎn)節(jié)點(diǎn) 類似于文本語(yǔ)言程序的語(yǔ)句 函數(shù)或者子程序 LabVIEW 有二種節(jié)點(diǎn)類型 函數(shù)節(jié) 點(diǎn)和子 VI 節(jié)點(diǎn) 兩者的區(qū)別在于 函數(shù)節(jié)點(diǎn)是 LabVIEW 以編譯好了的機(jī)器代碼供用戶使 用的 而子 VI 節(jié)點(diǎn)是以圖形語(yǔ)言形式提供給用戶的 用戶可以訪問和修改任一子 VI 節(jié)點(diǎn) 的代碼 但無(wú)法對(duì)函數(shù)節(jié)點(diǎn)進(jìn)行修改 上面的框圖程序所示的 VI 程序有兩個(gè)函數(shù)函數(shù)節(jié)點(diǎn) 一個(gè)函數(shù)使兩個(gè)數(shù)值相加 另一個(gè)函數(shù)使兩數(shù)相減 端點(diǎn)端點(diǎn) 是只有一路輸入 輸出 且方向固定的節(jié)點(diǎn) LabVIEW 有三類端點(diǎn) 前面板對(duì)象端點(diǎn) 全局與局部變量端點(diǎn)和常量端點(diǎn) 對(duì)象端點(diǎn)是數(shù)據(jù)在框圖程序部分和前面板之間傳輸?shù)慕?口 一般來說 一個(gè) VI 的前面板上的對(duì)象 控制或顯示 都在框圖中有一個(gè)對(duì)象端點(diǎn)與之 一一對(duì)應(yīng) 當(dāng)在前面板創(chuàng)建或刪除面板對(duì)象時(shí) 可以自動(dòng)創(chuàng)建或刪除相應(yīng)的對(duì)象端點(diǎn) 控 制對(duì)象對(duì)應(yīng)的端點(diǎn)在框圖中是用粗框框住的 如例子中的 A 和 B 端點(diǎn) 它們只能在 VI 程 序框圖中作為數(shù)據(jù)流源點(diǎn) 顯示對(duì)象對(duì)應(yīng)的端點(diǎn)在框圖中是用細(xì)框框住的 如例子中的 A B 和 A B 端點(diǎn) 它們只能在 VI 程序框圖中作為數(shù)據(jù)流終點(diǎn) 常量端點(diǎn)永遠(yuǎn)只能在 VI 程 序框圖中作為數(shù)據(jù)流源點(diǎn) 圖框圖框 是 LabVIEW 實(shí)現(xiàn)程序結(jié)構(gòu)控制命令的圖形表示 如循環(huán)控制 條件分支控制和順序 控制等 編程人員可以使用它們控制 VI 程序的執(zhí)行方式 代碼接口節(jié)點(diǎn) CIN 是框圖程 序與用戶提供的 C 語(yǔ)言文本程序的接口 連線連線 是端口間的數(shù)據(jù)通道 它們類似于普通程序中的變量 數(shù)據(jù)是單向流動(dòng)的 從源端口 向一個(gè)或多個(gè)目的端口流動(dòng) 不同的線型代表不同的數(shù)據(jù)類型 在彩顯上 每種數(shù)據(jù)類型 還以不同的顏色予以強(qiáng)調(diào) 下面是一些常用數(shù)據(jù)類型所對(duì)應(yīng)的線型和顏色 數(shù)據(jù)類型圖 形顏色 整形數(shù) 浮點(diǎn)數(shù) 邏輯量 字符串 文件路徑 蘭色 橙色 綠色 粉色 青色 當(dāng)需要連接兩個(gè)端點(diǎn)時(shí) 在第一個(gè)端點(diǎn)上點(diǎn)擊連線工具 從工具模板欄調(diào)用 然后 移動(dòng)到另一個(gè)端點(diǎn) 再點(diǎn)擊第二個(gè)端點(diǎn) 端點(diǎn)的先后次序不影響數(shù)據(jù)流動(dòng)的方向 當(dāng)把連線工具放在端點(diǎn)上時(shí) 該端點(diǎn)區(qū)域?qū)?huì)閃爍 表示連線將會(huì)接通該端點(diǎn) 當(dāng)把 連線工具從一個(gè)端口接到另一個(gè)端口時(shí) 不需要按住鼠標(biāo)鍵 當(dāng)需要連線轉(zhuǎn)彎時(shí) 點(diǎn)擊一 次鼠標(biāo)鍵 即可以正交垂直方向地彎曲連線 按空格鍵可以改變轉(zhuǎn)角的方向 從框圖程序窗口創(chuàng)建前面板對(duì)象 用選擇和連線工具 你都可以用鼠標(biāo)右鍵點(diǎn)擊任一節(jié)點(diǎn)和端點(diǎn) 然后從彈出菜單中選 擇 創(chuàng)建常數(shù) 創(chuàng)建控制 或 創(chuàng)建顯示 等命令 LabVIEW 會(huì)自動(dòng)地在被創(chuàng)建的端 點(diǎn)與所點(diǎn)擊對(duì)象之間接好連線 數(shù)據(jù)流編程數(shù)據(jù)流編程 控制 VI 程序的運(yùn)行方式叫做 數(shù)據(jù)流 對(duì)一個(gè)節(jié)點(diǎn)而言 只有當(dāng)它的所有輸入端口 上的數(shù)據(jù)都成為有效數(shù)據(jù)時(shí) 它才能被執(zhí) 行 當(dāng)節(jié)點(diǎn)程序運(yùn)行完畢后 它把結(jié)果數(shù) 據(jù)送給所有的輸出端口 使之成為有效數(shù) 快速提示 接線頭是為了幫助正確連接端口的連線 當(dāng)把連線工具放到端 口上 接線頭就會(huì)彈出 接線頭還有一個(gè)黃色小標(biāo)識(shí)框 顯示該端口 的名字 據(jù) 并且數(shù)據(jù)很快從源送到目的端口 如左圖所示 這個(gè) VI 程序把兩個(gè)輸入數(shù)值相乘 再把乘積減去 50 0 這個(gè)程序中 框圖程序從左往右執(zhí)行 這個(gè)執(zhí)行次序不是由于對(duì)象的擺放位置 而是由于相減運(yùn)算函數(shù) 的一個(gè)輸入量是相乘函數(shù)的運(yùn)算結(jié)果 它只有當(dāng)相乘運(yùn)算完成并把結(jié)果送到減運(yùn)算的輸入 口后才能繼續(xù)下去 請(qǐng)記住 一個(gè)節(jié)點(diǎn) 函數(shù) 只有當(dāng)它所有的輸入端的數(shù)據(jù)都成為有效 數(shù)據(jù)后才能被執(zhí)行 而且只有當(dāng)它執(zhí)行完成后 它的所有輸出端口上的數(shù)據(jù)才成為有效 再看另一個(gè)程序 你認(rèn)為哪一個(gè)節(jié)點(diǎn)函數(shù)將先執(zhí)行是乘法還是除法 在這個(gè)例子中 我們無(wú)法知道哪一個(gè)節(jié)點(diǎn)函數(shù)首先執(zhí)行 因?yàn)樗休斎肓繋缀跬瑫r(shí)到達(dá) 對(duì)于這樣一種相 互獨(dú)立的數(shù)據(jù)流程 如果又必須明確指定節(jié)點(diǎn)執(zhí)行的先后次序 就必須使用順序 Sequence 結(jié)構(gòu)來明確執(zhí)行次序 2 程序調(diào)試技術(shù)程序調(diào)試技術(shù) 1 找出語(yǔ)法錯(cuò)誤 如果一個(gè) VI 程序存在語(yǔ)法錯(cuò)誤 則在面板工具條上的運(yùn)行按鈕將會(huì)變成一個(gè)折斷的 箭頭 表示程序不能被執(zhí)行 這時(shí)這個(gè)按鈕被稱作錯(cuò)誤列表 點(diǎn)擊它 則 LabVIEW 彈出 錯(cuò)誤清單窗口 點(diǎn)擊其中任何一個(gè)所列出的錯(cuò)誤 選用 Find 函數(shù) 則出錯(cuò)的對(duì)象或端口就 會(huì)變成高亮 2 設(shè)置執(zhí)行程序高亮 在 LabVIEW 的工具條上有一個(gè)畫著燈泡的按鈕 這個(gè)按鈕叫做 高亮執(zhí)行 按鈕上 點(diǎn)擊這個(gè)按鈕使該按鈕圖標(biāo)變成高亮形式 再點(diǎn)擊運(yùn)行按鈕 VI 程序就以較慢的速度運(yùn)行 沒有被執(zhí)行的代碼灰色顯示 執(zhí)行后的代碼高亮顯示 并顯示數(shù)據(jù)流線上的數(shù)據(jù)值 這樣 你就可以在根據(jù)數(shù)據(jù)的流動(dòng)狀態(tài)跟蹤程序的執(zhí)行 3 斷點(diǎn)與單步執(zhí)行 為了查找程序中的邏輯錯(cuò)誤 你也許希望框圖程序一個(gè)節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)地執(zhí)行 使用斷 點(diǎn)工具可以在程序的某一地點(diǎn)中止程序執(zhí)行 用探針或者單步方式查看數(shù)據(jù) 使用斷點(diǎn)工 具時(shí) 點(diǎn)擊你希望設(shè)置或者清除斷點(diǎn)的地方 斷點(diǎn)的顯示對(duì)于節(jié)點(diǎn)或者圖框表示為紅框 對(duì)于連線表示為紅點(diǎn) 當(dāng) VI 程序運(yùn)行到斷點(diǎn)被設(shè)置處 程序被暫停在將要執(zhí)行的節(jié)點(diǎn) 以 閃爍表示 按下單步執(zhí)行按鈕 閃爍的節(jié)點(diǎn)被執(zhí)行 下一個(gè)將要執(zhí)行的節(jié)點(diǎn)變?yōu)殚W爍 指 示它將被執(zhí)行 你也可以點(diǎn)擊暫停按鈕 這樣程序?qū)⑦B續(xù)執(zhí)行直到下一個(gè)斷點(diǎn) 4 探針 你可以用探針工具來查看當(dāng)框圖程序流經(jīng)某一根連接線時(shí)的數(shù)據(jù)值 從 Tools 工具模板 選擇探針工具 再用鼠標(biāo)左建點(diǎn)擊你希望放置探針的連接線 這時(shí)顯示器上會(huì)出現(xiàn)一個(gè)探 針顯示窗口 該窗口總是被顯示在前面板窗口或框圖窗口的上面 在框圖中使用選擇工具 或連線工具 在連線上點(diǎn)擊鼠標(biāo)右鍵 在連線的彈出式菜單中選擇 探針 命令 同樣可 以為該連線加上一個(gè)探針 2 6子子 VI 在設(shè)計(jì) G 語(yǔ)言中 理解和使用 VI 的分層特性非常重要 當(dāng)一個(gè) VI 創(chuàng)建后 它可以作 為一個(gè)子 VI 在高層 Vi 的框圖中使用 一個(gè)子 VI sub vi 類似于傳統(tǒng)程序設(shè)計(jì)語(yǔ)言中的 函數(shù)或子程序 是可以供其他的 VI 調(diào)用的 VI 子 VI 是供其他 VI 使用的 VI 與子程序類似 子 VI 是層次化和模塊化 VI 的關(guān)鍵組件 它能使 VI 易于調(diào)試和維護(hù) 使用子 VI 是一種有效的編程技術(shù) 因?yàn)?它允許在不同的場(chǎng) 合重復(fù)使用相同的代碼 G 編程語(yǔ)言的分層特性就是在一個(gè)子 VI 中能夠調(diào)用到另一個(gè)子 VI 下面可用一個(gè)表格表明子 VI 的作用 程序代碼調(diào)用子程序 function average in1 in2 out out in1 in2 2 0 main average point1 point2 pointavg 子 VI 框圖調(diào)用子 VI 框圖 先看一個(gè) SUB vi 的演示程序 從例題中可以看出 子程序就相當(dāng)于一個(gè)函數(shù) 可以將任何一個(gè)定義了圖標(biāo)和聯(lián)接器的 VI 作為另一個(gè) VI 的子程序 在流程圖中打 開 Functions Select a VI 就可以選擇要調(diào)用的子 VI 2 6 1 創(chuàng)建子創(chuàng)建子 VI 創(chuàng)建子 VI 主要的工作就是定義它的圖標(biāo)和聯(lián)接器圖標(biāo)和聯(lián)接器 每個(gè) VI 在前面板和流程圖窗口的右上角都顯示了一個(gè)默認(rèn)的圖標(biāo) 啟動(dòng)圖標(biāo)編輯器的 方法是 用鼠標(biāo)右鍵單擊面板窗口的右上角的默認(rèn)圖標(biāo) 在彈出菜單中選擇 Edit Icon 下圖顯示了圖標(biāo)編輯器的窗口 可以用窗口左邊的各種工具設(shè)計(jì)像素編輯區(qū)中的圖標(biāo) 形狀 編輯區(qū)右側(cè)的一個(gè)方框中顯示了一個(gè)實(shí)際大小的圖標(biāo) 圖標(biāo)編輯器的具體使用細(xì)節(jié) 參閱有關(guān)資料 圖標(biāo)編輯器窗口 聯(lián)接器是 VI 數(shù)據(jù)的輸入輸出接口 如果用面板控制對(duì)象或者顯示對(duì)象從子 VI 中輸 出或者輸入數(shù)據(jù) 那么這些對(duì)象都需要在聯(lián)接器面板中有一個(gè)連線端子 您可以通過選擇 VI 的端子數(shù)并為每個(gè)端子指定對(duì)應(yīng)的前面板對(duì)象以定義聯(lián)接器 定義聯(lián)接器的方法是 用鼠標(biāo)右鍵單擊面板窗口中的圖標(biāo)窗口 在快捷菜單中選擇 Show Connector 聯(lián)接器圖標(biāo)會(huì)取代面板窗口右上角的圖標(biāo) LabVIEW 自動(dòng)選擇的端子 連接模式是控制對(duì)象的端子位于聯(lián)接器窗口的左邊 顯示對(duì)象的端子位于聯(lián)接器窗口右邊 選擇的端子數(shù)取決于前面板中控制對(duì)象和顯示對(duì)象的個(gè)數(shù) 聯(lián)接器中的各個(gè)矩形表示各個(gè)端子所在的區(qū)域 可以用它們從 VI 中輸入或者輸出數(shù) 據(jù) 如果必要 也可以選擇另外一種端子連接模式 方法是在圖標(biāo)上單擊鼠標(biāo)右鍵單出快 捷菜單 選擇 Show Connector 再次彈出快捷菜單 選擇 Patterns 下面我們通過一個(gè)練 習(xí)說明具體操作 例題 目的 創(chuàng)建一個(gè) VI 程序 以便以后作為子 VI 程序使用 任務(wù)描述 創(chuàng)建一個(gè) VI 程序模擬溫度測(cè)量 假設(shè)傳感器輸出電壓與溫度成正比 例如 當(dāng) 溫度為 70 F 時(shí) 傳感器輸出電壓為 0 7V 本程序也可以用攝氏溫度來代替華氏溫度顯示 本程序用軟件代替了 DAQ 數(shù)據(jù)采集卡 使用隨機(jī)函數(shù)仿真溫度的電壓 然后把所測(cè) 得的電壓值轉(zhuǎn)換成攝氏或華氏溫度讀數(shù) 圖 前面板 流程圖 STEP1 編輯 VI 前面板 1 用 File 菜單的 New 選項(xiàng)打開一個(gè)新的前面板窗口 2 把溫度計(jì)指示部件放入前面板窗口 1 在前面板窗口的空白處點(diǎn)擊鼠標(biāo)鍵 然后從彈出的 Numeric 子模板中選擇 Thermometer 2 在高亮的文本框中輸入 溫度計(jì) 再點(diǎn)擊鼠標(biāo)鍵按鈕 3 重新設(shè)定溫度計(jì)的標(biāo)尺范圍為 0 0 到 100 0 使用標(biāo)簽工具 A 雙擊溫度計(jì)標(biāo)尺的 10 0 輸入 100 0 再點(diǎn)擊鼠標(biāo)鍵或者工具欄中的 V 按鈕 4 在前面板窗口中放入豎直開關(guān)控制 1 在面板窗口的空白處點(diǎn)擊鼠標(biāo)鍵 然后彈出的 Boolean 子模板中選擇 Vertical Switch 在文本框中輸入 溫度值單位 再點(diǎn)擊鼠標(biāo)鍵或者工具欄中的 V 按鈕 2 使用標(biāo)簽工具 A 在開關(guān)的 條件真 true 位置旁邊輸入自由標(biāo)簽 攝氏 再在 條件假 false 位置旁邊輸入自由標(biāo)簽 華氏 框圖程序 1 從 Windows 菜單下選擇 Show Diagram 函數(shù)打開框圖程序窗口 2 點(diǎn)擊框圖程序窗口的空白處 彈出函數(shù)模板 從彈出的菜單中選擇所需的對(duì)象 本程序用到下面的對(duì)象 Random Number 0 1 產(chǎn)生 0 1 隨機(jī)數(shù)函數(shù) Numeric 子模板 產(chǎn)生隨機(jī)數(shù) 模擬 溫度傳感器輸出的溫度信號(hào)電壓 Multiply 乘法 函數(shù) Numeric 子模板 在本例中 將讀取電壓值乘以 100 00 以 獲得華氏溫度 Subtract 減法 函數(shù) Numeric 子模板 在本例中 從華氏溫度中減去 32 0 以轉(zhuǎn) 換成攝氏溫度 Select 選擇 函數(shù) Comparison 子模板 取決于溫標(biāo)選擇開關(guān)的值 該函數(shù)輸出華 氏溫度 當(dāng)選擇開關(guān)為 false 或者攝氏溫度 選擇開關(guān)為 True 數(shù)值 數(shù)值常數(shù) 用連線工具 點(diǎn)擊你希望連接一個(gè)數(shù)值常數(shù)的對(duì)象 并選擇 Create Constant 函數(shù) 若要修改常數(shù)值 用標(biāo)簽工具雙點(diǎn)數(shù)值 再寫入新的數(shù)值 字符串常量 用連線工具 點(diǎn)擊你希望連接字符串常量的對(duì)象 再選擇 Create Constant 函數(shù) 要輸入字符串 用標(biāo)簽工具雙擊字符串 再輸入新的字符串 3 使用移位工具 Positioning tool 把圖標(biāo)移至圖示的位置 再用連線工具連 接起來 Demo Read Voltage VI 子程序模擬從數(shù)據(jù)采集卡的 0 通道讀取電壓 我們的程序再將讀數(shù)乘以 100 0 轉(zhuǎn)換成華氏溫度讀 數(shù) 或者再把華氏 溫度轉(zhuǎn)換成攝氏溫度 4 選擇前面板窗口 使之變成當(dāng)前窗口 并運(yùn)行 VI 程序 點(diǎn)擊連續(xù)運(yùn)行按鈕 便 程序運(yùn)行于連續(xù)運(yùn)行模式 5 再點(diǎn)擊連續(xù)運(yùn)行按鈕 關(guān)閉連續(xù)運(yùn)行模式 請(qǐng)記住 如果要顯示圖標(biāo)接線端口 則點(diǎn)擊圖標(biāo) 再 從彈出菜單中選擇 Show Terminals 功能 也可以從 Help 菜單中選擇 Show Help 功能以打開幫助信息窗 口 STEP2 創(chuàng)建圖標(biāo) Temp 此圖標(biāo)可以將現(xiàn)程序作為子程序在其他程序中調(diào)用 創(chuàng)建方法如下 a 在面板窗口的右上角的圖標(biāo)框中點(diǎn)擊鼠標(biāo) 從彈出菜單中選擇 Edit Icon 功能 b 雙點(diǎn)選擇工具 并按下 Delete 鍵 消除缺省的圖標(biāo)圖案 c 用畫圖工具畫出溫度計(jì)的圖標(biāo) 使用文本工具寫入文字 雙擊文本工具把字體換成 Small Font 當(dāng)圖標(biāo)創(chuàng)建完成后 點(diǎn)擊 OK 以關(guān)閉圖標(biāo)編輯 生成的圖標(biāo)在面板窗口 的右上角 STEP3 創(chuàng)建聯(lián)接器端口 a 點(diǎn)擊右上角的圖標(biāo)面板 從彈出菜單中選擇 Show Connector 函數(shù) LabVIEW 將會(huì)根據(jù)控制和顯示的數(shù)量選擇一種聯(lián)接器端口模式 在 本例中 只有兩個(gè)端口 一個(gè)是豎直開關(guān) 另一個(gè)是溫度指示 b 把聯(lián)接器端口定義給開關(guān)和溫度指示 c 使用連線工具 在左邊的聯(lián)接器端口框內(nèi)按鼠標(biāo)鍵 則端口將會(huì)變 黑 再點(diǎn)擊開關(guān)控制件 一個(gè)閃爍的虛線框?qū)鼑≡撻_關(guān) d 現(xiàn)在再點(diǎn)擊右邊的聯(lián)接器端口框 使它變黑 再點(diǎn)擊溫度指示部件 一個(gè)閃爍的虛線框?qū)鼑囟戎甘静考?這即表示著右邊的聯(lián) 接器端口對(duì)應(yīng)溫度指示部件的數(shù)據(jù)輸入 e 如果再點(diǎn)擊空白外 則虛線框?qū)⑾?而前面所選擇的聯(lián)接器端口 將變暗 表示你已經(jīng)將對(duì)象部件定義到各個(gè)聯(lián)接器端口 以后我們會(huì)講到如何使用 SubVI From Selection 功能來創(chuàng)建子程序 SubVI STEP4 保存子 vi 確認(rèn)當(dāng)前文件的程序庫(kù)路徑為 Seminar LLB 用文件菜單的 SAVE 函數(shù)保存上述文件 并將 注意 在用鼠標(biāo)畫線時(shí)按下鍵 則可以畫出水平或垂直方向的連線 注意 LabVIEW 的慣例是前面板上控制的聯(lián)接器端 口放在圖標(biāo)的接線面板的左邊 而顯示的聯(lián)接器端 口放在圖標(biāo)的接線面板的右邊 也就是說 圖標(biāo)的 左邊為輸入端口而右邊為輸出端口 文件命名為 Thermometer Vi 現(xiàn)在 該程序已經(jīng)編制完成了 它可以在其他程序中作為子程序來調(diào)用 在 其它程序的框圖窗口里 該溫度計(jì)程序用前面創(chuàng)建的圖標(biāo)來表示 聯(lián)接器端口的 輸入端用于選擇溫度單位 輸出端用于輸出溫度值 6 關(guān)閉該程序 練習(xí)結(jié)束 建議 將所創(chuàng)建的子 VI 保存在目錄下而不是保存在庫(kù)文件中 盡管在稱為 VI 庫(kù)的單 個(gè)文件中能夠保存多個(gè) VI 但我們不希望這樣做 將 VI 保存為單個(gè)文件是最有效的存儲(chǔ) 方式 因?yàn)檫@樣在復(fù)制 重新命名和刪除文件時(shí)比使用 VI 庫(kù)時(shí)要容易些 與其他目錄一樣 VI 庫(kù)文件可以裝入 保存和打開 但不是分層的 不能在 VI 庫(kù)內(nèi)創(chuàng) 建另一個(gè) VI 庫(kù) 也不能在 VI 庫(kù)內(nèi)創(chuàng)建新目錄 VI 庫(kù)文件創(chuàng)建后 當(dāng)其出現(xiàn)在文件對(duì)話框 中時(shí) 其圖標(biāo)將與 VI 文件圖標(biāo)略有不同 2 7調(diào)用子調(diào)用子 VI 在任意一個(gè) VI 程序的框圖窗口里 都可以把其他的 VI 程序作為子程序調(diào)用 只要被 調(diào)用 VI 程序定義了圖標(biāo)和聯(lián)接器端口即可 用戶使用函數(shù)模板的 Select a VI 來完成 當(dāng)使用該函數(shù)時(shí) 將彈出一個(gè)對(duì)話框 用戶 可以輸入文件名 一個(gè)子 VI 程序 相當(dāng)于普通程序的子程序 節(jié)點(diǎn)相當(dāng)于子程序調(diào)用 子程序節(jié)點(diǎn)并 不是子程序本身 就象一般程序的子程序調(diào)用語(yǔ)句并不是子程序本身一樣 如果在一個(gè)框 圖程序中 有幾個(gè)相同的子程序節(jié)點(diǎn) 它就象多次調(diào)用相同的子程序 請(qǐng)注意 該子程序 的拷貝并不會(huì)在內(nèi)存中存儲(chǔ)多次 單元單元 3 結(jié)構(gòu)控制程序設(shè)計(jì)結(jié)構(gòu)控制程序設(shè)計(jì) 本章介紹 LABVIEW 為用戶提供的程序結(jié)構(gòu) 內(nèi)容包括 while loop for loop 兩種循環(huán) 結(jié)構(gòu) 移位寄存器和反饋節(jié)點(diǎn) 分支結(jié)構(gòu) 順序結(jié)構(gòu) 公式節(jié)點(diǎn) 事件結(jié)構(gòu) 全局變量與局部 變量 菜單等 學(xué)習(xí)目標(biāo) 學(xué)習(xí) while 循環(huán)和 for 循環(huán)結(jié)構(gòu) 學(xué)習(xí) chart 的多種顯示模式及其屬性的靜態(tài)設(shè)置 建立移位寄存器的概念 學(xué)習(xí)移位寄存器的應(yīng)用 學(xué)習(xí) case 選擇結(jié)構(gòu) 掌握分支結(jié)構(gòu)程序的設(shè)計(jì) 學(xué)習(xí) sequence 結(jié)構(gòu) 掌握程序順序的控制方法 3 13 1 While loop 結(jié)構(gòu)與結(jié)構(gòu)與 chart 圖表圖表 3 1 1While loop 結(jié)構(gòu) While loop 是 LABVIEW 的基本循環(huán)結(jié)構(gòu)之一 類似于 C 語(yǔ)言中的 do while 循環(huán)結(jié)構(gòu) do 循環(huán)體 while 條件判斷 while loop 可以反復(fù)執(zhí)行循環(huán)內(nèi)的框圖程序 直到條件不滿足 循環(huán)停止 While loop 可以從 function 模板中 structure 子模板中創(chuàng)建 創(chuàng)建方法是 從 functions tructure 選擇 while loop 圖標(biāo) 放置在 block diagrame 窗口 While LOOP 可以反復(fù)執(zhí)行循環(huán)體的程序 直至特定的條件不滿足 才停止循環(huán) 該循 環(huán)有如下特點(diǎn) 計(jì)數(shù)從 0 開始 i 0 先執(zhí)行循環(huán)體 而后 i 1 如果循環(huán)只執(zhí)行一次 那么循環(huán)輸出值 i 0 循環(huán)至少要運(yùn)行一次 圖 3 While 循環(huán)示意圖 3 1 2 While loop 應(yīng)用示例 例題例題 3 13 1 使用使用 WhileWhile 循環(huán)顯示隨機(jī)序列循環(huán)顯示隨機(jī)序列 創(chuàng)建一個(gè)可以產(chǎn)生并在圖表中顯示隨機(jī)數(shù)的 VI 前面板有一個(gè)控制旋鈕可在 0 到 10 秒之間調(diào)節(jié)循環(huán)時(shí)間 還有一個(gè)開關(guān)可以中止 VI 的運(yùn)行 操作步驟如下 1 前面板 圖 練習(xí) 的前面板 1 選擇 File NewFile New 打開一個(gè)新的前面板 2 選擇 Controls BooleanControls Boolean 在前面板中放置一個(gè)開關(guān) 設(shè)置開關(guān)的標(biāo)簽為控制開關(guān) 3 使用標(biāo)簽工具創(chuàng)建 ON 和 OFF 的標(biāo)簽 放置于開關(guān)旁 4 選中 ControlsControls GraphGraph 在前面板中放置一個(gè)波形圖 是 chart 而不是 graph 設(shè)置它的標(biāo)簽為隨機(jī)信號(hào) 這個(gè)圖表用于實(shí)時(shí)顯示隨機(jī)數(shù) 5 把圖表的縱坐標(biāo)改為 0 0 到 1 0 方法是用標(biāo)簽工具把最大值從 10 0 改為 1 0 6 選擇 Controls NumericControls Numeric 在前面板中放置一個(gè)旋鈕 設(shè)置旋鈕的標(biāo)簽為循環(huán)延時(shí) 這個(gè)旋鈕用于控制 While 循環(huán)的循環(huán)時(shí)間 2 流程圖 在流程圖窗口 按照下圖創(chuàng)建 圖 練習(xí) 的流程圖 1 從 Functions StructuresFunctions Structures 中選擇 While 循環(huán) 把它放置在流程圖中 將其拖至適 當(dāng)大小 將相關(guān)對(duì)象移到循環(huán)圈內(nèi) 2 從 Functions Functions NumeriNumeric 中選擇隨機(jī)數(shù) 0 1 功能函數(shù)放到循環(huán)內(nèi) 3 在循環(huán)中設(shè)置 WaitWait UntilUntil NextNext msms MultipleMultiple 函數(shù) Functions TimeFunctions Time I 0 then Square Root Value SQRT Number else Square Root Value 999 00 Display Message Error end if 例題 用數(shù)字控件選擇一個(gè)四選一的 目的 如何用數(shù)字型控件構(gòu)成選擇結(jié)構(gòu) 練習(xí)練習(xí) 結(jié)束 結(jié)束 例題 3 用枚舉型控件選擇 目的 1 學(xué)習(xí)用枚舉控件實(shí)現(xiàn) case 結(jié)構(gòu) 2 理解 case whole Loop 結(jié)構(gòu)的功能 工業(yè)案例 工業(yè)案例 修改 temperature running average vi 使它能夠檢測(cè)什么時(shí)候溫度超出范圍 如 果溫度超出設(shè)定的界限 前面板上的 LED 將發(fā)亮 并且發(fā)出間歇報(bào)警聲音 ViVi 的創(chuàng)建的創(chuàng)建 圖 溫度報(bào)警程序的前面板 1 打開 temperature running average vi 文件 修改圖所示的前面板 Upper limit 規(guī)定了溫度上限 如果溫度超出了上限時(shí) normally 指示燈亮 warning 指 示燈滅 2 修改框圖程序 A D C B 溫度報(bào)警程序的框圖程序 1 溫度報(bào)警程序的框圖程序 2 in range and coerce 函數(shù) function compaarison 其功能是判斷 X 是否在上限值和下限制的范圍內(nèi) 如果 X 在范 圍內(nèi) in range 輸出布爾值 1 如果 X 超范圍 in range 輸出布爾值 0 beep 函數(shù) function graphs 結(jié)尾 公式節(jié)點(diǎn)的幫助窗口中列出了可供公式節(jié)點(diǎn)使用的操作符 函數(shù)和語(yǔ)法規(guī)定 一般說來 它與 C 語(yǔ)言非常相似 大體上一個(gè)用 C 寫的獨(dú)立的程序塊都可能用到公式節(jié)點(diǎn)中 但是仍 然建議不要在一個(gè)公式節(jié)點(diǎn)中寫過于復(fù)雜的代碼程序 下面這個(gè)例子顯示了如何在一個(gè)公式節(jié)點(diǎn)中執(zhí)行不同條件時(shí)的數(shù)據(jù)發(fā)送 請(qǐng)閱讀下面這段程序代碼 如果 X 為正數(shù) 它將算出 X 的平方根并把該值賦給 Y 如果 X 為負(fù)數(shù) 程序就給 Y 賦值 99 if x 0 then y sqrt x else y 99 end if 可以用公式節(jié)點(diǎn)取代上面這段代碼 如下圖所示 注意 公式節(jié)點(diǎn)中變量字母 X Y 大 小寫是有區(qū)別的 開方的函數(shù) sqrt X 中函數(shù)名稱是 小寫 練習(xí)練習(xí) 2 62 6 使用公式節(jié)點(diǎn)使用公式節(jié)點(diǎn) 目的 創(chuàng)建一個(gè)VI 它用公式節(jié)點(diǎn)計(jì)算下列等式 y1 x3 x 2 5 y2 m x b x 的范圍是從 0 到 10 可以對(duì)這兩個(gè)公式使用同一個(gè)公式節(jié)點(diǎn) 并在同一個(gè)圖表中顯示結(jié) 果 前面板 圖 練習(xí) 的面板 打開一個(gè)新的前面板 按照上圖 該圖中包含運(yùn)行結(jié)果 創(chuàng)建前面板中的對(duì)象 波形圖顯 示對(duì)象用于顯示等式的圖形 該 VI 使用兩個(gè)數(shù)字式控制對(duì)象來輸入 m 和 b 的值 流程圖 1 按照下圖創(chuàng)建流程圖 圖 練習(xí) 的流程圖 2 在創(chuàng)建某個(gè)輸入或者輸出端子時(shí) 必須給它指定一個(gè)變量名 這個(gè)變量名必須與公式 節(jié)點(diǎn)中使用的變量名完全相符 3 公式節(jié)點(diǎn)中 在邊框上單擊鼠標(biāo)右鍵 在快捷菜單中選擇 Add Input 可以創(chuàng)建三個(gè) 輸入端子 在快捷菜單中選擇 Add Output 創(chuàng)建輸出端子 4 x 的范圍是從 0 到 10 包括 10 就必須連接 11 到計(jì)數(shù)端子 5 Build Array Functions ArrayFunctions Array 在這個(gè)例子中 它用于將兩個(gè)數(shù) 據(jù)構(gòu)成數(shù)組形式提供給一個(gè)多曲線的圖形中 通過用變形工具拖拉邊角就 可以創(chuàng)建兩個(gè)輸入端子 6 返回前面板 嘗試給 m 和 b 賦以不同的值再執(zhí)行該 VI 7 7 把該 VI 保存為 LabVIEW ActivityLabVIEW Activity 目錄下的 Equations vi 8 8 練習(xí)練習(xí) 2 62 6 結(jié)束 結(jié)束 本部分參考資料 1 LBVIEW 基礎(chǔ)教程 汪敏生等譯著 2 LABVIEW7 1 編程與虛擬儀器設(shè)計(jì) 侯國(guó)屏 王坤 葉齊鑫編譯 3 Labview 7 雷振山等 4 Labview 入門與虛擬儀器 張愛平 5 Labview basic 1 NI 技術(shù)培訓(xùn)教材 單元單元 4 數(shù)組 數(shù)組 array 和圖形 和圖形 graphs 程序設(shè)計(jì) 程序設(shè)計(jì) 本章介紹數(shù)組 array 簇 cluster 和波形圖 graphs 及有關(guān)自動(dòng)索引的基本概念 并 提供例程序 討論分析數(shù)組和簇 波形圖的應(yīng)用 4 1 數(shù)組 數(shù)組 array 數(shù)組是同類型元素的集合 一個(gè)數(shù)組可以是一維或者多維 如果必要 每維最多可有 231 1 個(gè)元素 可以通過數(shù)組索引訪問其中的每個(gè)元素 索引的范圍是 0 到n 1 其中 n 是數(shù)組中元素的個(gè)數(shù) 圖 4 一維數(shù)組示意圖 圖 所顯示的是由數(shù)值構(gòu)成的一維數(shù)組 注意第一個(gè)元素的索引號(hào)為 0 第二 個(gè)是 1 依此類推 數(shù)組的元素可以是數(shù)據(jù) 字符串等 但所有元素的數(shù)據(jù)類型必須一致 4 1 1 創(chuàng)建數(shù)組及自動(dòng)索引數(shù)組 1 創(chuàng)建數(shù)組 一般說來 創(chuàng)建一個(gè)數(shù)組有兩件事要做 首先要建一個(gè)數(shù)組的 殼 shell 然后在 這個(gè)殼中置入數(shù)組元素 數(shù)或字符串等 如果需要用一個(gè)數(shù)組作為程序的數(shù)據(jù)源 可以選擇 Functions Array ArrayFunctions Array Array ConstantConstant 將它放置在流程圖中 然后再在數(shù)組框中放置數(shù)值常量 布爾數(shù)還是字符串常 量 下圖顯示了在數(shù)組框放入字符串常量數(shù)組的例子 左邊是一個(gè)數(shù)組殼 中間的圖上已 經(jīng)置入了字符串元素 右邊的圖反映了數(shù)組的第 個(gè)元素為 ABC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論