找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 23288|回復(fù): 16
打印 上一主題 下一主題
收起左側(cè)

基于LabVIEW虛擬示波器設(shè)計(jì)論文

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:294062 發(fā)表于 2018-3-19 15:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
畢業(yè)設(shè)計(jì)論文
設(shè)計(jì)題目:基于LabVIEW虛擬示波器設(shè)計(jì)
指導(dǎo)教師:
設(shè) 計(jì) 者:



摘 要

虛擬儀器是現(xiàn)代計(jì)算機(jī)軟硬件技術(shù)飛速發(fā)展的產(chǎn)物,它正逐步取代傳統(tǒng)的電子儀器,是現(xiàn)代電工電子測(cè)量?jī)x器的發(fā)展方向。虛擬儀器主要由數(shù)據(jù)采集、數(shù)據(jù)分析處理、數(shù)據(jù)輸出與顯示三部分模塊組成。其軟件開(kāi)發(fā)平臺(tái)有LabView、VC++ 等。

   在此基礎(chǔ)上,利用美國(guó)NI公司的虛擬儀器開(kāi)發(fā)環(huán)境LabVIEW設(shè)計(jì)了虛擬示波器,介紹虛擬示波器的實(shí)現(xiàn)過(guò)程。該儀器是用基于圖形化編程語(yǔ)言LabVIEW8i 而編寫的, 本虛擬示波器涉及主要功能包括:雙通道信號(hào)輸入、觸發(fā)控制、通道控制、時(shí)基控制、波形顯示、參數(shù)自測(cè)量等。本虛擬示波器的數(shù)據(jù)采集的功能與普通示波器一樣;波形顯示模式:通道 A或B 、A+B及A-B等。測(cè)試結(jié)果表明,本文設(shè)計(jì)的兩通道數(shù)字示波器系統(tǒng)設(shè)計(jì)正確。



目 錄

引 言

第一章:虛擬儀器

1.1虛擬儀器概述

1.2 虛擬儀器的特點(diǎn)

1.3虛擬儀器現(xiàn)狀及其發(fā)展趨勢(shì)

1.3.1 虛擬儀器的發(fā)展及特點(diǎn)

1.3.2 虛擬儀器的發(fā)展方向

1.4虛擬儀器的設(shè)計(jì)步驟

第二章:LabVIEW概述

2.1 什么叫LabVIEW

2.2  LabVIEW 軟件的特點(diǎn)

第三章 示波器設(shè)計(jì)

3.1本示波器功能

3.1.1主要功能模塊

3.1.2波形顯示模塊

3.2 示波器前面板設(shè)計(jì)

3.3示波器的后面板(程序設(shè)計(jì))

3.3.1數(shù)據(jù)采集模塊(模擬數(shù)據(jù)采集)

3.3.2自動(dòng)掃描控制

3.3.3波形顯示

3.3.4測(cè)量波形的各種參數(shù)

3.3.5手動(dòng)/自動(dòng)程序

3.4總程序

結(jié)  論

后記

參考文獻(xiàn)

隨著計(jì)算機(jī)技術(shù)的發(fā)展,傳統(tǒng)儀器開(kāi)始向計(jì)算機(jī)化的方向發(fā)展。虛擬儀器是90年代提出的新概念。虛擬儀器技術(shù)的提出與發(fā)展,標(biāo)志著二十一世紀(jì)自動(dòng)測(cè)試與電子測(cè)量?jī)x器領(lǐng)域技術(shù)發(fā)展的一個(gè)重要方向。所謂虛擬儀器,就是在通用的計(jì)算機(jī)平臺(tái)上定義和設(shè)計(jì)儀器的測(cè)試功能,使用者操作這臺(tái)計(jì)算機(jī),就像是在使用一臺(tái)專門設(shè)計(jì)的電子儀器。

   傳統(tǒng)臺(tái)式儀器是由儀器廠家設(shè)計(jì)并定義好功能的一個(gè)封閉結(jié)構(gòu),它有固定的輸入/輸出接口和儀器操作面板,每種儀器實(shí)現(xiàn)一類特定的測(cè)量功能,并以確定的方式提供給用戶。從一般的儀器設(shè)計(jì)模型看,一種儀器無(wú)非是由數(shù)據(jù)采集、分析處理、人機(jī)交互和顯示等幾部分功能模塊組成的整體。因此我們可以設(shè)想在必要的數(shù)據(jù)采集硬件和通用計(jì)算機(jī)支持下,通過(guò)軟件設(shè)計(jì)實(shí)現(xiàn)儀器的全部功能,這就是虛擬儀器設(shè)計(jì)的核心。與傳統(tǒng)儀器相比,虛擬儀器除了在性能、易用性、用戶可定制性等方面具有更多優(yōu)點(diǎn)外,在工程應(yīng)用和社會(huì)經(jīng)濟(jì)效益方面也具有突出優(yōu)勢(shì)。一方面,目前我國(guó)高檔臺(tái)式儀器如數(shù)字示波器、頻譜分析儀、邏輯分析儀等還主要依賴進(jìn)口,這些儀器加工工藝復(fù)雜、對(duì)制造水平要求高,生產(chǎn)突破有困難,采用虛擬儀器技術(shù)可以通過(guò)只采購(gòu)必要的通用數(shù)據(jù)采集硬件來(lái)設(shè)計(jì)資金的儀器系統(tǒng);另一方面,用戶可以將一些先進(jìn)的數(shù)字信號(hào)處理算法應(yīng)用于虛擬儀器,提供傳統(tǒng)臺(tái)式儀器不具備的功能,而且完全可以通過(guò)軟件配置實(shí)現(xiàn)多功能集成的儀器設(shè)計(jì)。因此,可以說(shuō)虛擬儀器代表了未來(lái)測(cè)量?jī)x器設(shè)計(jì)發(fā)展的方向。虛擬儀器技術(shù)目前在國(guó)外發(fā)展很快,以美國(guó)國(guó)家儀器公司(NI公司)為代表的一批廠商已經(jīng)在市場(chǎng)上推出了基于虛擬儀器技術(shù)而設(shè)計(jì)的商品化儀器產(chǎn)品。數(shù)字示波器是在科學(xué)研究和工程設(shè)計(jì)中廣泛應(yīng)用的一種通用儀器。

   LabVIEW是NI推出的虛擬儀器開(kāi)發(fā)平臺(tái)軟件,它們能夠以其直觀簡(jiǎn)便的編程方式、眾多的源碼級(jí)的設(shè)備驅(qū)動(dòng)程序、多種多樣的分析和表達(dá)功能支持,為用戶快捷地構(gòu)筑自己在實(shí)際生產(chǎn)中所需要的儀器系統(tǒng)創(chuàng)造了基礎(chǔ)條件。LabVIEW采用圖形化編程語(yǔ)言--G語(yǔ)言,產(chǎn)生的程序是框圖的形式,易學(xué)易用,特別適合硬件工程師、實(shí)驗(yàn)室技術(shù)人員、生產(chǎn)線工藝技術(shù)人員的學(xué)習(xí)和使用,可在很短的時(shí)間內(nèi)掌握并應(yīng)用到實(shí)踐中去。特別是對(duì)于熟悉儀器結(jié)構(gòu)和硬件電路的硬件工程師、現(xiàn)場(chǎng)工程技術(shù)人員及測(cè)試技術(shù)人員來(lái)說(shuō),編程就像設(shè)計(jì)電路圖一樣;因此,硬件工程師、現(xiàn)場(chǎng)工程技術(shù)人員及測(cè)試技術(shù)人員們學(xué)習(xí)LabVIEW駕輕就熟,在很短的時(shí)間內(nèi)就能夠?qū)W會(huì)并應(yīng)用LabVIEW。該儀器是用基于圖形化編程語(yǔ)言LabVIEW8i 而編寫的,主要功能包括:雙通道信號(hào)輸入、觸發(fā)控制、通道控制、時(shí)基控制、波形顯示、參數(shù)自測(cè)量等。本虛擬儀器的數(shù)據(jù)采集的功能與普通示波器一樣;波形顯示模式:通道 A或B 、A+B及A-B等;實(shí)驗(yàn)結(jié)果表明,該儀器具有較高的精度和穩(wěn)定性,而且具有友好的人機(jī)界面。
                     

第一章:虛擬儀器

1.1虛擬儀器概述

虛擬儀器(virtual instrumention)是基于計(jì)算機(jī)的儀器。計(jì)算機(jī)和儀器的密切結(jié)合是目前儀器發(fā)展的一個(gè)重要方向。粗略地說(shuō)這種結(jié)合有兩種方式,一種是將計(jì)算機(jī)裝入儀器,其典型的例子就是所謂智能化的儀器。隨著計(jì)算機(jī)功能的日益強(qiáng)大以及其體積的日趨縮小,這類儀器功能也越來(lái)越強(qiáng)大,目前已經(jīng)出現(xiàn)含嵌入式系統(tǒng)的儀器。另一種方式是將儀器裝入計(jì)算機(jī)。以通用的計(jì)算機(jī)硬件及操作系統(tǒng)為依托,實(shí)現(xiàn)各種儀器功能。虛擬儀器主要是指這種方式。下面的框圖反映了常見(jiàn)的虛擬儀器方案。

虛擬儀器的主要特點(diǎn)有:




    • 盡可能采用了通用的硬件,各種儀器的差異主要是軟件。
    • 可充分發(fā)揮計(jì)算機(jī)的能力,有強(qiáng)大的數(shù)據(jù)處理功能,可以創(chuàng)造出功能更強(qiáng)的儀器。
    • 用戶可以根據(jù)自己的需要定義和制造各種儀器。

虛擬儀器實(shí)際上是一個(gè)按照儀器需求組織的數(shù)據(jù)采集系統(tǒng)。虛擬儀器的研究中涉及的基礎(chǔ)理論主要有計(jì)算機(jī)數(shù)據(jù)采集和數(shù)字信號(hào)處理。目前在這一領(lǐng)域內(nèi),使用較為廣泛的計(jì)算機(jī)語(yǔ)言是美國(guó)NI公司的LabVIEW。

虛擬儀器的起源可以追朔到20世紀(jì)70年代,那時(shí)計(jì)算機(jī)測(cè)控系統(tǒng)在國(guó)防、航天等領(lǐng)域已經(jīng)有了相當(dāng)?shù)陌l(fā)展。PC機(jī)出現(xiàn)以后,儀器級(jí)的計(jì)算機(jī)化成為可能,甚至在Microsoft公司的Windows誕生之前,NI公司已經(jīng)在Macintosh計(jì)算機(jī)上推出了LabVIEW2.0以前的版本。對(duì)虛擬儀器和LabVIEW長(zhǎng)期、系統(tǒng)、有效的研究開(kāi)發(fā)使得該公司成為業(yè)界公認(rèn)的權(quán)威。

普通的PC有一些不可避免的弱點(diǎn)。用它構(gòu)建的虛擬儀器或計(jì)算機(jī)測(cè)試系統(tǒng)性能不可能太高。目前作為計(jì)算機(jī)化儀器的一個(gè)重要發(fā)展方向是制定了VXI標(biāo)準(zhǔn),這是一種插卡式的儀器。每一種儀器是一個(gè)插卡,為了保證儀器的性能,又采用了較多的硬件,但這些卡式儀器本身都沒(méi)有面板,其面板仍然用虛擬的方式在計(jì)算機(jī)屏幕上出現(xiàn)。這些卡插入標(biāo)準(zhǔn)的VXI機(jī)箱,再與計(jì)算機(jī)相連,就組成了一個(gè)測(cè)試系統(tǒng)。VXI儀器價(jià)格昂貴,目前又推出了一種較為便宜的PXI標(biāo)準(zhǔn)儀器。

虛擬儀器研究的另一個(gè)問(wèn)題是各種標(biāo)準(zhǔn)儀器的互連及與計(jì)算機(jī)的連接。目前使用較多的是IEEE 488或GPIB協(xié)議。未來(lái)的儀器也應(yīng)當(dāng)是網(wǎng)絡(luò)化的。

1.2 虛擬儀器的特點(diǎn)
虛擬儀器與傳統(tǒng)儀器相比,有以下6個(gè)特點(diǎn)。

    1)傳統(tǒng)儀器的面板只有一個(gè),其上布置著種類繁多的顯示與操作元件,易

導(dǎo)致許多識(shí)別與操作錯(cuò)誤。虛擬儀器與之不同,它可以通過(guò)在幾個(gè)分面板上的操作來(lái)實(shí)現(xiàn)比較復(fù)雜的功能。這樣,在每個(gè)分面板上就可以實(shí)現(xiàn)功能操作的單純化面板布置的簡(jiǎn)捷化,從而提高操作的正確性與便捷性。同時(shí),虛擬儀器面板上的顯示元件和操作元件的種類與形式不受“標(biāo)準(zhǔn)件”和“加工工藝”的限制,它們是由編程來(lái)實(shí)現(xiàn)的,設(shè)計(jì)者可以根據(jù)用戶的認(rèn)知要求和操作要求,設(shè)計(jì)儀器面板。

2)在通用硬件平臺(tái)確定后,由軟件取代傳統(tǒng)儀器中的硬件來(lái)完成儀器的功能。

3)儀器的功能是用戶根據(jù)需要由軟件來(lái)定義的,而不是事先由廠家定義好的。

4)儀器性能的改進(jìn)和功能擴(kuò)展只需更新相關(guān)軟件設(shè)計(jì),而不需購(gòu)買新的儀器。研制周期較傳統(tǒng)儀器大為縮短。

5)虛擬儀器開(kāi)放、靈活,可與計(jì)算機(jī)同步發(fā)展,與網(wǎng)絡(luò)及其它周邊設(shè)備互聯(lián)。

    6)決定虛擬儀器具有傳統(tǒng)儀器不可能具備的特點(diǎn)的根本原因在于“虛擬儀器的關(guān)鍵是軟件”。

    虛擬儀器在工程應(yīng)用和社會(huì)經(jīng)濟(jì)效益方面具有突出的優(yōu)勢(shì)。目前,我國(guó)高檔臺(tái)式儀器,如數(shù)字示波器、頻譜分析儀、邏輯分析儀等還主要依賴進(jìn)口,因?yàn)檫@些儀器加工工藝復(fù)雜,對(duì)制造水平要求高,生產(chǎn)突破有困難,而采用虛擬儀器技術(shù)后,就可以通過(guò)只采購(gòu)必要的通用儀器硬件來(lái)設(shè)計(jì)自己的高性能價(jià)格比的儀器系統(tǒng)。   

1.3虛擬儀器現(xiàn)狀及其發(fā)展趨勢(shì)
1.3.1 虛擬儀器的發(fā)展及特點(diǎn)

電子測(cè)量?jī)x器發(fā)展至盡,大體可分為四代:模擬儀器、分立元件式儀器、數(shù)字化儀器、智能儀器和虛擬化儀器。

    儀器的發(fā)展過(guò)程

    第一代——模擬儀器。這類儀器在某些實(shí)驗(yàn)室仍能看到,是以電磁感應(yīng)基本定律為基礎(chǔ)的指針式儀器,如指針式萬(wàn)用表、指針式電壓表、指針式電流表等。這類指針式儀表借助指針來(lái)顯示最終結(jié)果。

    第二代——分立元件式儀器。當(dāng)20世紀(jì)60年代出現(xiàn)晶體管時(shí),便產(chǎn)生了以電子管或晶體管電子電路為基礎(chǔ)的第二代測(cè)試儀器——分立元件式儀器。

    第三代——數(shù)字化儀器。20世紀(jì)70年代,隨著集成電路的出現(xiàn),誕生了以集成電路芯片為基礎(chǔ)的第三代儀器——數(shù)字化儀器。這類儀器目前相當(dāng)普及,數(shù)字電壓表、數(shù)字頻率計(jì)等。這類儀器將模擬信號(hào)的測(cè)量轉(zhuǎn)化為數(shù)字信號(hào)的測(cè)量,并以舒數(shù)字方式輸出最終結(jié)果,適用于快速響應(yīng)和較高準(zhǔn)確度的測(cè)量。

    第四代——智能儀器。隨著微電子技術(shù)的發(fā)展和微處理器的普及,以微處理器為核心的第四代儀器——智能儀器迅速普及。這類儀器內(nèi)置微處理器,既能進(jìn)行自動(dòng)測(cè)試,又具有一定的數(shù)據(jù)處理能力,可取代部分腦力勞動(dòng),習(xí)慣上稱其為智能儀器。其缺點(diǎn)是它的功能塊全部都以硬件(或固化的軟件)的形式存在,無(wú)論對(duì)開(kāi)發(fā)還是針對(duì)應(yīng)用,都缺乏靈活性。

    目前,微電子技術(shù)和計(jì)算機(jī)技術(shù)飛速發(fā)展,測(cè)試技術(shù)與計(jì)算機(jī)深層次的結(jié)核癥引起測(cè)試儀器領(lǐng)域里的一場(chǎng)新的革命,一種全新的儀器結(jié)構(gòu)概念導(dǎo)致了新一代儀器——虛擬儀器的出現(xiàn)。它是現(xiàn)代計(jì)算機(jī)計(jì)術(shù)、通信技術(shù)和測(cè)量技術(shù)相結(jié)合的產(chǎn)物,是傳統(tǒng)儀器觀念的一次巨大的變革,是傳統(tǒng)儀器儀器觀念的一次巨大變革,是儀器產(chǎn)業(yè)發(fā)展的一個(gè)重要方向。它的出現(xiàn)使得人類的測(cè)試技術(shù)進(jìn)入一個(gè)新的發(fā)展紀(jì)元。

    國(guó)際上從1988年開(kāi)始陸續(xù)有虛擬儀器產(chǎn)品面市。當(dāng)時(shí)有5家制造商推出了30種產(chǎn)品,此后,虛擬儀器產(chǎn)品成倍增加。

1.3.2 虛擬儀器的發(fā)展方向

    隨著計(jì)算機(jī)、通信、微電子技術(shù)的不斷發(fā)展,以及網(wǎng)絡(luò)時(shí)代的到來(lái)和信息化要求的不斷提高,網(wǎng)絡(luò)技術(shù)應(yīng)用到虛擬儀器領(lǐng)域中是虛擬儀器發(fā)展的大趨勢(shì)。在國(guó)內(nèi)網(wǎng)絡(luò)化虛擬儀器的概念目前還沒(méi)有一個(gè)比較明確的提法,也沒(méi)有一個(gè)被測(cè)量界廣泛接受的定義。其一般特征是將虛擬儀器、外部設(shè)備、被測(cè)試點(diǎn)以及數(shù)據(jù)庫(kù)等資源納入網(wǎng)絡(luò),實(shí)現(xiàn)資源共享,共同完成測(cè)試任務(wù)。使用網(wǎng)路化虛擬儀器,可以在任何地點(diǎn)、任意時(shí)刻獲取到測(cè)量數(shù)據(jù)信息的愿望成為現(xiàn)實(shí)。網(wǎng)路化虛擬儀器也適合異地或遠(yuǎn)程控制、數(shù)據(jù)采集、故障檢測(cè)、報(bào)警等。

與以PC為核心的虛擬儀器相比,網(wǎng)絡(luò)化將對(duì)虛擬儀器的發(fā)展產(chǎn)生一次革命,網(wǎng)絡(luò)化虛擬儀器是儀器發(fā)展史上的又一次革命。網(wǎng)絡(luò)化虛擬儀器將由單臺(tái)虛擬儀器實(shí)現(xiàn)的三大功能(數(shù)據(jù)獲取、數(shù)據(jù)分析及圖形化顯示)分開(kāi)處理,分別使用獨(dú)立的基本硬件模塊實(shí)現(xiàn)傳統(tǒng)儀器的三大功能,以網(wǎng)線相連接,實(shí)現(xiàn)信息資源的共享。

1.4虛擬儀器的設(shè)計(jì)步驟
在LabVIEW平臺(tái)下,一個(gè)VI有兩部分組成:前面板和流程圖(或稱后面板),前面板的功能等效于傳統(tǒng)測(cè)試儀器的前面板;流程圖的功能等效于傳統(tǒng)測(cè)試儀器與前面板相聯(lián)系的硬件電路。在設(shè)計(jì)時(shí),要考慮硬件部分。虛擬儀器的設(shè)計(jì)方法包括I/O接口儀器驅(qū)動(dòng)程序的設(shè)計(jì)、儀器面板的設(shè)計(jì)與儀器功能算法的設(shè)計(jì)三部分。
  • 確定程序設(shè)計(jì)的總體方案
在編制虛擬儀器程序前,必須首先對(duì)程序進(jìn)行總體設(shè)計(jì)分析:一是要確定程序要實(shí)現(xiàn)的功能、要顯示的圖形對(duì)象、要輸出的報(bào)表;二是確定程序的層次關(guān)系,如主程序和子程序之間的關(guān)系等、虛擬儀器程序與硬件的連接關(guān)系等。
  • I/O接口儀器驅(qū)動(dòng)程序的設(shè)計(jì)
根據(jù)儀器的功能要求,確定儀器的接口標(biāo)準(zhǔn)。如果儀器設(shè)備具有RS-232串行接口,則直接用連線將儀器設(shè)備與計(jì)算機(jī)機(jī)的RS-232串行接口連接即可;如果儀器是GPIB接口,則需要額外配備一塊GPIB-488接口板,建立計(jì)算機(jī)與儀器設(shè)備之間的通信渠道;如果使用計(jì)算機(jī)來(lái)控制VXI總線設(shè)備,則也需要配備一塊GPIB接口卡,通過(guò)GPIB總線與VXI總線、VXI主機(jī)箱零槽模塊通信,零槽模塊的GPIB-VXI翻譯器將GPIB命令,并把各模塊返回的數(shù)據(jù)以一定的格式傳回主控計(jì)算機(jī)。
I/O接口儀器驅(qū)動(dòng)程序是控制硬件設(shè)備的驅(qū)動(dòng)程序,是連接主控計(jì)算機(jī)與儀器設(shè)備的紐帶。如果沒(méi)有設(shè)備驅(qū)動(dòng)程序,則必須針對(duì)I/O接口儀器設(shè)備編寫驅(qū)動(dòng)程序。
              (3) 確定虛擬儀器程序前面板
儀器前面板的設(shè)計(jì)指在虛擬儀器開(kāi)發(fā)平臺(tái)上,利用各類子摸板圖標(biāo)創(chuàng)建用戶界面,即在前面板上布置實(shí)現(xiàn)所需功能的顯示對(duì)象,這些對(duì)象包括開(kāi)關(guān)旋鈕控制、相量圖、頻譜圖顯示等,前面板布置好這些對(duì)象后,工程技術(shù)人員通過(guò)鼠標(biāo)、鍵盤就可像操作傳統(tǒng)儀器一樣地操作虛擬儀器。
  • 構(gòu)建圖形化流程圖
在LabVIEW開(kāi)發(fā)環(huán)境中,后臺(tái)流程圖與前面板控制顯示對(duì)象一一對(duì)應(yīng),開(kāi)發(fā)人員的任務(wù)是通過(guò)連接不同的功能函數(shù)模塊使數(shù)據(jù)流從輸入對(duì)象經(jīng)過(guò)處理傳送到輸出對(duì)象。與傳統(tǒng)的文本式程序設(shè)計(jì)一樣,LabVIEW也有控制流程圖功能執(zhí)行部分,包括Sequence、Case Statement、For Loop、While loop 結(jié)構(gòu),這些結(jié)構(gòu)被描述成圖形化的邊界結(jié)構(gòu),開(kāi)發(fā)人員不必注意傳統(tǒng)設(shè)計(jì)所需的語(yǔ)法細(xì)節(jié),只需直接將它們連接起來(lái)就可完成數(shù)據(jù)傳遞。在編制大型復(fù)雜的虛擬儀器應(yīng)用程序時(shí),由于所用模塊很多,這時(shí)必須考慮程序的層次結(jié)構(gòu),這可以通過(guò)靈活編制子程序、采用更為簡(jiǎn)單高效的計(jì)算原理等方式來(lái)實(shí)現(xiàn)。
  •      調(diào)試和優(yōu)化程序
和傳統(tǒng)程序一樣,在編制虛擬儀器程序時(shí),需要不斷對(duì)程序進(jìn)行調(diào)試分析,LabVIEW程序調(diào)試功能十分強(qiáng)大易用,可以靈活設(shè)定程序斷點(diǎn),進(jìn)行帶數(shù)據(jù)探針的單步運(yùn)行,加亮執(zhí)行程序進(jìn)行數(shù)據(jù)流追蹤判斷。同時(shí),LabVIEW是目前唯一帶有編輯器的圖形化編程環(huán)境,他可根據(jù)用戶編制程序自動(dòng)產(chǎn)生最優(yōu)化代碼,加快程序運(yùn)行速度。另外,用戶還可以利用內(nèi)置的繪圖器對(duì)程序代碼部分進(jìn)行分析和優(yōu)化。
從上面五個(gè)方面可以看出,在計(jì)算機(jī)和儀器等資源確定的情況下,有不同的處理算法,就有不同的虛擬儀器。軟件在虛擬儀器的重要作用由此可見(jiàn)一斑。
第二章:LabVIEW概述
2.1 什么叫LabVIEW

LabVIEW是NI推出的虛擬儀器開(kāi)發(fā)平臺(tái)軟件,它們能夠以其直觀簡(jiǎn)便的編程方式、眾多的源碼級(jí)的設(shè)備驅(qū)動(dòng)程序、多種多樣的分析和表達(dá)功能支持,為用戶快捷地構(gòu)筑自己在實(shí)際生產(chǎn)中所需要的儀器系統(tǒng)創(chuàng)造了基礎(chǔ)條件。
      LabVIEW采用圖形化編程語(yǔ)言--G語(yǔ)言,產(chǎn)生的程序是框圖的形式,易學(xué)易用,特別適合硬件工程師、實(shí)驗(yàn)室技術(shù)人員、生產(chǎn)線工藝技術(shù)人員的學(xué)習(xí)和使用,可在很短的時(shí)間內(nèi)掌握并應(yīng)用到實(shí)踐中去。特別是對(duì)于熟悉儀器結(jié)構(gòu)和硬件電路的硬件工程師、現(xiàn)場(chǎng)工程技術(shù)人員及測(cè)試技術(shù)人員來(lái)說(shuō),編程就像設(shè)計(jì)電路圖一樣;因此,硬件工程師、現(xiàn)場(chǎng)工程技術(shù)人員及測(cè)試技術(shù)人員們學(xué)習(xí)LabVIEW駕輕就熟,在很短的時(shí)間內(nèi)就能夠?qū)W會(huì)并應(yīng)用LabVIEW。也不必去記憶那眼花繚亂的文本式程序代碼。
       LabVIEW這么容易學(xué)習(xí)和使用,是不是LabVIEW的功能十分有限呢?不。像C或C++等其它計(jì)算機(jī)高級(jí)語(yǔ)言一樣,LabVIEW也是一種通用編程系統(tǒng),具有各種各樣、功能強(qiáng)大的函數(shù)庫(kù),包括數(shù)據(jù)采集、GPIB、串行儀器控制、數(shù)據(jù)分析、數(shù)據(jù)顯示及數(shù)據(jù)存儲(chǔ),甚至還有目前十分熱門的網(wǎng)絡(luò)功能。LabVIEW也有完善的仿真、調(diào)試工具,如設(shè)置斷點(diǎn)、單步等。LabVIEW的動(dòng)態(tài)連續(xù)跟蹤方式,可以連續(xù)、動(dòng)態(tài)地觀察程序中的數(shù)據(jù)及其變化情況,比其它語(yǔ)言的開(kāi)發(fā)環(huán)境更方便、更有效。而且LabVIEW與其它計(jì)算機(jī)語(yǔ)言相比,有一個(gè)特別重要的不同點(diǎn):其它計(jì)算機(jī)語(yǔ)言都是采用基于文本的語(yǔ)言產(chǎn)生代碼行,而LabVIEW采用圖形化編程語(yǔ)言--G語(yǔ)言。
       LabVIEW程序又稱為虛擬儀器,它的表現(xiàn)形式和功能類似于實(shí)際的儀器;但LabVIEW程序很容易改變?cè)O(shè)置和功能。因此,LabVIEW特別適用于實(shí)驗(yàn)室、多品種小批量的生產(chǎn)線等需要經(jīng)常改變儀器和設(shè)備的參數(shù)和功能的場(chǎng)合,及對(duì)信號(hào)進(jìn)行分析研究、傳輸?shù)葓?chǎng)合。
    總之,由于LabVIEW能夠?yàn)橛脩籼峁┖?jiǎn)明、直觀、易用的圖形編程方式,能夠?qū)⒎爆崗?fù)雜的語(yǔ)言編程簡(jiǎn)化成為以菜單提示方式選擇功能,并且用線條將各種功能連接起來(lái),十分省時(shí)簡(jiǎn)便,深受用戶青睞。與傳統(tǒng)的編程語(yǔ)言比較,LabVIEW圖形編程方式能夠節(jié)省85%以上的程序開(kāi)發(fā)時(shí)間,其運(yùn)行速度卻幾乎不受影響,體現(xiàn)出了極高的效率。使用虛擬儀器產(chǎn)品,用戶可以根據(jù)實(shí)際生產(chǎn)需要重新構(gòu)筑新的儀器系統(tǒng)。例如,用戶可以將原有的帶有RS232接口的儀器、VXI總線儀器以及GPIB儀器通過(guò)計(jì)算機(jī),聯(lián)接在一起,組成各種各樣新的儀器系統(tǒng),由計(jì)算機(jī)進(jìn)行統(tǒng)一管理和操作。
      可以預(yù)見(jiàn),由于LabVIEW這些其他語(yǔ)言無(wú)法比擬的優(yōu)勢(shì),已經(jīng)成為該領(lǐng)域的一朵奇葩!最終將引發(fā)傳統(tǒng)的儀器產(chǎn)業(yè)新的革命。

我經(jīng)常聽(tīng)到,甚至有時(shí)關(guān)注于對(duì)LabVIEW的爭(zhēng)論,即LabVIEW是一種通用的語(yǔ)言還是一種用于測(cè)量和自動(dòng)化的特定應(yīng)用程序的開(kāi)發(fā)環(huán)境。一方面,有經(jīng)驗(yàn)的程序員指出了LabVIEW缺乏的流行編程語(yǔ)言所具有的特性,但是另一方面,一些用戶詳細(xì)闡述了他們使用LabVIEW所建立的通用應(yīng)用程序,而完全沒(méi)有使用任何數(shù)據(jù)采集或分析。對(duì)LabVIEW用戶的調(diào)查可能與最近一個(gè)非正式的對(duì)一個(gè)團(tuán)隊(duì)中的開(kāi)發(fā)者的調(diào)查一致,這個(gè)團(tuán)隊(duì)中的絕大多數(shù)人都認(rèn)為L(zhǎng)abVIEW已具有足夠的功能來(lái)被歸為通用語(yǔ)言類,而且事實(shí)上,正是以這種方式在使用它。LabVIEW被提到次數(shù)最多的不足是常用的遞歸和遞歸式數(shù)據(jù)類型,以及面向?qū)ο蟮慕Y(jié)構(gòu),但是這些都不是建立通用應(yīng)用程序的嚴(yán)重障礙。錯(cuò)誤的問(wèn)題盡管有了調(diào)查結(jié)果,但是我認(rèn)為這是一個(gè)錯(cuò)誤的問(wèn)題而且試圖回答它會(huì)導(dǎo)致錯(cuò)誤的方向。對(duì)我來(lái)說(shuō),這有點(diǎn)像在問(wèn):汽車是不是用來(lái)就座的地方?當(dāng)然你可以在汽車?yán)锞妥侨绻鞘悄憷盟龅娜,那么你失去了擁有它可以得到的主要用途。一個(gè)較好的問(wèn)題是:LabVIEW可以被用作通用編程語(yǔ)言嗎?或者更好的是:LabVIEW能夠被用來(lái)創(chuàng)建通用的應(yīng)用程序嗎?這個(gè)問(wèn)題的新表述在什么被視為通用這個(gè)方面仍然是同樣模糊的,但是它沒(méi)有強(qiáng)調(diào)有時(shí)顯得嚴(yán)謹(jǐn)?shù)臓?zhēng)論,即LabVIEW是不是一種編程語(yǔ)言?一些人并不認(rèn)為它是一種語(yǔ)言,因?yàn)樗皇腔谖谋镜?而且它不是順序化的。更為奇怪的是,關(guān)于什么被看作是一種編程語(yǔ)言的這個(gè)問(wèn)題上,那些具有計(jì)算機(jī)科學(xué)背景的人持有最為狹隘的觀點(diǎn)。但是,經(jīng)過(guò)改正后的問(wèn)題最為重要的一個(gè)方面是它將包容性轉(zhuǎn)換到了正確的方向。換一種方式來(lái) 表達(dá),即最初的問(wèn)題間接地暗示了通用編程語(yǔ)言在某種程度上是一個(gè)更大的問(wèn)題或者是測(cè)量和自動(dòng)化編程的一個(gè)父集,然而,實(shí)際上子集卻在其他的方向。通常,測(cè)量和自動(dòng)化的程序必須處理所有與通用程序一樣的問(wèn)題,如數(shù)據(jù)結(jié)構(gòu)和算法、文件I/O、網(wǎng)絡(luò)I/O、用戶I/O和數(shù)據(jù)庫(kù)存取、打印等等這些常見(jiàn)的問(wèn)題。但是測(cè)量和自動(dòng)化程序也必須處理比通用程序更多的問(wèn)題,例如物理I/O、實(shí)時(shí)性約束和硬件配置。它們也可以具有一些最為苛刻的用戶界面要求。測(cè)量和自動(dòng)化程序處理了一個(gè)通用程序所處理問(wèn)題的父集。如果工具A和工具B可以被用于一定的任務(wù)集,但是工具B具有更多的功能可使它益于完成額外的任務(wù),哪一種工具是事實(shí)上更為通用的呢?這正是我們關(guān)于LabVIEW問(wèn)題。LabVIEW適于測(cè)量和自動(dòng)化應(yīng)用程序的能力不是來(lái)自于它的基本編程能力被某種方式所限制,而是因?yàn)樗鼈兘?jīng)過(guò)了增強(qiáng)和擴(kuò)展。這就是為什么有必要提出“LabVIEW能夠被用來(lái)創(chuàng)建通用的應(yīng)用程序嗎?”這個(gè)問(wèn)題而不是 “LabVIEW是一種通用編程語(yǔ)言嗎?”。我們不希望通過(guò)把LabVIEW僅視為一種編程語(yǔ)言而限制了它的范圍或它將來(lái)的發(fā)展。

2.2 LabVIEW 軟件的特點(diǎn)

LabVIEW軟件的特點(diǎn)如下:

1) 具有圖形化的編程方式,設(shè)計(jì)者無(wú)需寫任何文本格式的代碼,是真正的工程師的語(yǔ)言:

2)提供豐富的數(shù)據(jù)采集、分析及存儲(chǔ)的庫(kù)函數(shù):

3) 提供傳統(tǒng)的程序調(diào)試手段,如設(shè)置斷點(diǎn)、單步運(yùn)行,同時(shí)提供獨(dú)具特色的執(zhí)行工具,使程序動(dòng)畫式運(yùn)行,利于設(shè)計(jì)者觀察到程序運(yùn)行的細(xì)節(jié),使程序的調(diào)試和開(kāi)發(fā)更為便捷;

4)32位的編儀器編譯生成32位的編譯程序,保證用戶數(shù)據(jù)采集、測(cè)試和測(cè)量方案的高速執(zhí)行;

5) 囊括了PCI,GPIB,PXI,VXI,RS-232/485,USB等各種儀器通信總線標(biāo)準(zhǔn)的所有功能函數(shù),使得不懂得總線標(biāo)準(zhǔn)的開(kāi)發(fā)者也能夠驅(qū)動(dòng)不同總線標(biāo)準(zhǔn)接口設(shè)備與儀器。  


第三章 示波器設(shè)計(jì)
3.1本示波器功能

本虛擬儀器涉及主要功能包括:雙通道信號(hào)輸入、觸發(fā)控制、通道控制、時(shí)基控制、波形顯示、參數(shù)自測(cè)量等。本虛擬儀器的數(shù)據(jù)采集的功能與普通示波器一樣;波形顯示模式:通道 A或B 、A+B及A-B等;電壓參數(shù)測(cè)量,時(shí)間/頻率參數(shù)測(cè)量,定位標(biāo)尺,測(cè)量結(jié)果顯示。由于條件有限,沒(méi)有數(shù)據(jù)采集卡,我在設(shè)計(jì)數(shù)據(jù)采集時(shí),采用了LaBVIEW內(nèi)部信號(hào)發(fā)生器來(lái)產(chǎn)生信號(hào);這些發(fā)生器有正弦波發(fā)生器、方波發(fā)生器、三角波發(fā)生器、鋸齒波發(fā)生器,通過(guò)這些信號(hào)的輸入來(lái)進(jìn)行測(cè)量。

3.1.1主要功能模塊

概括地講,虛擬儀器主要由軟件控制完成信號(hào)的采集、處理和顯示。系統(tǒng)軟件總體上包括數(shù)據(jù)采集、波形顯示、參數(shù)測(cè)量等模塊。其功能結(jié)構(gòu)如下圖

注釋:由于條件有限,沒(méi)有數(shù)據(jù)采集卡,我在設(shè)計(jì)數(shù)據(jù)采集時(shí),采用了LaBVIEW內(nèi)部信號(hào)發(fā)生器來(lái)產(chǎn)生信號(hào);這些發(fā)生器有正弦波發(fā)生器、方波發(fā)生器、三角波發(fā)生器、鋸齒波發(fā)生器,通過(guò)這些信號(hào)的輸入來(lái)進(jìn)行測(cè)量。

3.1.2波形顯示模塊

軟件提供了三種波形顯示模式:

*A  B A&B 模式:通過(guò)顯示通道選擇按鍵可以任意顯示某一通道或兩通道輸入信號(hào)的波形;

*XY模式:當(dāng)兩通道都處于選同狀態(tài)時(shí),使用此模式來(lái)顯示李沙育圖形,測(cè)量相位差或頻率;

*A+B A-B模式:當(dāng)兩通道都處于選通狀態(tài)時(shí)使用此模式來(lái)顯示兩通道信號(hào)帶數(shù)相加、相減后的波形。

3.2 示波器前面板設(shè)計(jì)

虛擬示波器的界面圖,分為波形顯示區(qū)和操作面板區(qū)。波形顯示區(qū)橫軸表示時(shí)間,縱軸表示幅值。單元格當(dāng)前時(shí)間和幅值也可通過(guò)操作面板的“時(shí)間”框、“幅值”框顯示。操作區(qū)有:顯示模式轉(zhuǎn)換,數(shù)據(jù)采集配置,時(shí)基控制,數(shù)據(jù)處理等。顯示模式轉(zhuǎn)換是選擇要測(cè)量的設(shè)備類型,通道和極性選擇。數(shù)據(jù)采集是調(diào)節(jié)波形幅值,波形周期和選擇顯示的波形是哪個(gè)通道的,先是波形的類型等。時(shí)基控制是選者掃描率,掃描數(shù),選擇手動(dòng)、自動(dòng)等。

前面板用于設(shè)置輸入數(shù)值和觀察輸出量,用于模擬真實(shí)示波器的前面板。由于虛擬面板直接面向用戶,是虛擬示波器控制軟件的核心。我設(shè)計(jì)這部分時(shí),主要考慮界面美觀、操作簡(jiǎn)潔,用戶能通過(guò)面板上的各種按鈕、開(kāi)關(guān)等控鍵來(lái)控制虛擬示波器的工作。根據(jù)傳統(tǒng)示波器的面板控鍵的功能,利用LabVIEW 中的控制模板,分別在設(shè)計(jì)面板上放入模擬實(shí)際控鍵的顯示器、通道選擇控鍵、水平與垂直增益控鍵、觸發(fā)方式選擇控鍵及開(kāi)關(guān)。打開(kāi)LabVIEW 前面板編輯窗口,點(diǎn)擊鼠標(biāo)右鍵,顯示控制模板,選擇Graph m Waveform Graph ,作為示波器的顯示器。在顯示器模板上點(diǎn)擊鼠標(biāo)右鍵,對(duì)其進(jìn)行屬性設(shè)置,如根據(jù)示波器的頻率與幅度值的變化, 利用工具模板中的文字工具,對(duì)顯示器橫(時(shí)間) 、縱(幅度) 坐標(biāo)的刻度重新設(shè)置。

示波器的前面板如下圖3-1:

圖3-1 示波器前面板設(shè)計(jì)圖
3.3示波器的后面板(程序設(shè)計(jì))
3.3.1數(shù)據(jù)采集模塊(模擬數(shù)據(jù)采集)

由于條件有限,沒(méi)有數(shù)據(jù)采集卡,我在設(shè)計(jì)數(shù)據(jù)采集時(shí),采用了LaBVIEW內(nèi)部信號(hào)發(fā)生器來(lái)產(chǎn)生信號(hào);這些發(fā)生器有正弦波發(fā)生器、方波發(fā)生器、三角波發(fā)生器、鋸齒波發(fā)生器,通過(guò)這些信號(hào)的輸入來(lái)進(jìn)行測(cè)量。


發(fā)生器(Sine Wave.Vi)圖標(biāo)與端口圖
方波發(fā)生器
三角波發(fā)生器
正弦波發(fā)生器
鋸齒波發(fā)生器

方波發(fā)生器     均勻分布的隨機(jī)信號(hào)發(fā)生器

正弦波形發(fā)生器函數(shù)圖標(biāo)左側(cè)一列為輸入端口,即該函數(shù)調(diào)用前的參數(shù)設(shè)置端口。

  • samples: 生成波形的總點(diǎn)數(shù)N
  • amplitude:生成波形的幅值。
  • f:生成信號(hào)的數(shù)字頻率。
  • phase in: 生成波形的初始相位,單位為度。
  • reset phase: 默認(rèn)值為TRUE。當(dāng)為TRUE時(shí),函數(shù)以phase in 的值作為初始相位,如果該值為FALSE, 則函數(shù)以上一次調(diào)用后的phase out輸出值為此次波形的初始相位(默認(rèn)值為TRUE),顯然,此時(shí)產(chǎn)生的信號(hào)波形是連續(xù)光滑的。

函數(shù)圖標(biāo)的右側(cè)一列為輸出端口(即該函數(shù)調(diào)用后的輸出參數(shù) ),其各自的含義如下:

  • sine wave: 數(shù)組名,該數(shù)組內(nèi)存放所生成的波形數(shù)據(jù)。
  • phase out: 當(dāng)reset phase TRUE時(shí),該參數(shù)無(wú)效。當(dāng)reset phaseFALSE時(shí),該參數(shù)作為下一次生成正弦波的初始相位。
  • error: 錯(cuò)誤代碼。若有錯(cuò)誤,則輸出錯(cuò)誤代碼。根據(jù)錯(cuò)誤代碼,查找LabVIEW幫助文件,可以找到與錯(cuò)誤代碼對(duì)應(yīng)的錯(cuò)誤含義。

信號(hào)發(fā)生器的產(chǎn)生

介紹怎樣產(chǎn)生標(biāo)準(zhǔn)頻率的信號(hào),以及怎樣創(chuàng)建模擬函數(shù)發(fā)生器。使用分析庫(kù)中的信號(hào)發(fā)生VI產(chǎn)生各種類型的信號(hào)。信號(hào)產(chǎn)生的應(yīng)用主要有:

  •              當(dāng)無(wú)法獲得實(shí)際信號(hào)時(shí),(例如沒(méi)有DAQ板卡來(lái)獲得實(shí)際信號(hào)或者受限制無(wú)法訪問(wèn)實(shí)際信號(hào)),信號(hào)發(fā)生功能可以產(chǎn)生模擬信號(hào)測(cè)試程序。
  •      產(chǎn)生用于D/A轉(zhuǎn)換的信號(hào)

在LabVIEW 中提供了波形函數(shù),為制作函數(shù)發(fā)生器提供了方便。以Waveform>>Waveform Generation中的基本函數(shù)發(fā)生器(Basic Function Generator.vi)為例,其圖標(biāo)如下:

圖3-2 基本函數(shù)發(fā)生器

其功能是建立一個(gè)輸出波形,該波形類型有:正弦波、三角波、鋸齒波和方波。這個(gè)VI會(huì)記住產(chǎn)生的前一波形的時(shí)間標(biāo)志并且由此點(diǎn)開(kāi)始使時(shí)間標(biāo)志連續(xù)增長(zhǎng)。它的輸入?yún)?shù)有波形類型、樣本數(shù)、起始相位、波形頻率(單位:Hz)

參數(shù)說(shuō)明:

offset波形的直流偏移量,缺省值為0.0。數(shù)據(jù)類型DBL

reset signal將波形相位重置為相位控制值且將時(shí)間標(biāo)志置為0。缺省值為FALSE.

signal type產(chǎn)生的波形的類型,缺省值為正弦波。

frequency :波形頻率(單位 Hz),缺省值為10。

amplitude :波形幅值,也稱為峰值電壓,缺省值為1.0。

phase :波形的初始相位(單位 度)缺省值為0.0.

error in :在該VI運(yùn)行之前描述錯(cuò)誤環(huán)境。缺省值為 no error. 如果一個(gè)錯(cuò)誤已經(jīng)發(fā)生,該VI在error out端返回錯(cuò)誤代碼。該VI僅在無(wú)錯(cuò)誤時(shí)正常運(yùn)行。 錯(cuò)誤簇包含如下參數(shù)。

status :缺省值為FALSE,發(fā)生錯(cuò)誤時(shí)變?yōu)門RUE。

code :錯(cuò)誤代碼,缺省值為0。

source :在大多數(shù)情況下是產(chǎn)生錯(cuò)誤的VI或函數(shù)的名稱,缺省值為一個(gè)空串。

sampling info :一個(gè)包括采樣信息的簇。共有Fs和#s 兩個(gè)參數(shù)。

Fs :采樣率,單位是樣本數(shù)/秒,缺省值為1000。

#s :波形的樣本數(shù),缺省值為1000。

duty cycle (%):占空比,對(duì)方波信號(hào)是反映一個(gè)周期內(nèi)高低電平所占的比例,缺省值為50%。

signal out:信號(hào)輸出端

phase out :波形的相位,單位:度。

error out :錯(cuò)誤信息。如果 error in 指示一個(gè)錯(cuò)誤,error out 包含同樣的錯(cuò)誤信息。否則,它描述該VI 引起的錯(cuò)誤狀態(tài)。

使用該VI制作的函數(shù)發(fā)生器如下,由框圖可以看出,其中沒(méi)有附加任何其他部件。

圖3-3 VI制作的函數(shù)發(fā)生器

數(shù)據(jù)采集主要是把通道A、通道B、設(shè)備,掃描率、掃描數(shù)、極性, 觸發(fā)源、模式、斜坡、電平,信號(hào)分別生成一個(gè)簇然后輸入到子程序OSCdaq 這個(gè)子程序是里,里面有一個(gè)自生成的波形發(fā)生器,通過(guò)外面的變量來(lái)對(duì)波形發(fā)生器進(jìn)行控制。

圖3-4 數(shù)據(jù)采集的總的程序圖

子VI的建立

子VI(SubVI)相當(dāng)于普通編程語(yǔ)言中的子程序,也就是被其他的 VI調(diào)用的VI?梢詫⑷魏我粋(gè)定義了圖標(biāo)和聯(lián)接器的 VI作為另一個(gè) VI的子程序。在流程圖中打開(kāi) Functions»Select a VI…. ,就可以選擇要調(diào)用的子 VI 。構(gòu)造一個(gè)子VI主要的工作就是定義它的圖標(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)資料。

圖3-5 圖標(biāo)編輯器窗口

聯(lián)接器是 VI 數(shù)據(jù)的輸入輸出接口。如果用面板控制對(duì)象或者顯示對(duì)象從子 VI 中輸出或者輸入數(shù)據(jù),那么這些對(duì)象都需要在聯(lián)接器面板中有一個(gè)連線端子。您可以通過(guò)選擇 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

本子程序主要用到程序結(jié)構(gòu)有While循環(huán)、分支結(jié)構(gòu)、數(shù)簇、數(shù)組等。While循環(huán)模塊位置為Functions->Execution Control子模板。單擊鼠標(biāo)左鍵后,指針變?yōu)槭中。把鼠?biāo)指針移到框圖上,可以看到,鼠標(biāo)指針縮小的While循環(huán)樣子。循環(huán)右下角是條件端子,用于在每次循環(huán)結(jié)束后判斷循環(huán)是否繼續(xù)執(zhí)行。具體的循環(huán)繼續(xù)條件有兩種:Stop if True和Continue if True,具體采用哪種方式可在條件端子上彈出的快捷菜單指定,也可以使用操作工具在端子上單擊鼠標(biāo),以切換兩種不同的條件。條件不同,端子的圖標(biāo)也不同,默認(rèn)的條件是Stop if True。左下角標(biāo)有字母i的矩形框圖是重復(fù)端子(Iteration Terminal),可以在每次循環(huán)中提供當(dāng)前循環(huán)次數(shù)的計(jì)數(shù)值,i的初始值為0。兩個(gè)端子之外的其他空白區(qū)域都可以放置程序代碼。

分支結(jié)構(gòu)(Case Structure)位于Functions->Programming->Structures子模版上。分支結(jié)構(gòu)左邊框上有一個(gè)輸入端子,該端子中心有一個(gè)問(wèn)號(hào),稱為選擇器端子(Selector Terminal);上邊框上有分支選擇器標(biāo)簽(Case Selector Label)。

分支結(jié)構(gòu)有一個(gè)或多個(gè)子框圖,每一個(gè)子框圖都是一個(gè)執(zhí)行分支,每一個(gè)執(zhí)行分支都有自己的分支選擇器標(biāo)簽。當(dāng)執(zhí)行分支時(shí)只有與接入選擇器端子相匹配的標(biāo)簽對(duì)應(yīng)的框圖被執(zhí)行。端子的值可以是布爾型、字符串型、整型或者是枚舉類型。此選擇器端子的值的類型是無(wú)符號(hào)長(zhǎng)整型。分支結(jié)構(gòu)子框圖是堆疊在一起的,單擊標(biāo)簽左邊和右邊的增量、減量按鈕將使當(dāng)前顯示框圖在堆疊起來(lái)的多個(gè)框圖中進(jìn)行一次前、后切換。單擊分支選擇器標(biāo)簽右邊端的向下黑色箭頭,將彈出所有已定義的標(biāo)簽列表,可以利用這個(gè)列表在多個(gè)子框圖之間實(shí)現(xiàn)快速跳轉(zhuǎn)。與C語(yǔ)言的分支結(jié)構(gòu)不同的是,C語(yǔ)言的switch語(yǔ)句的Default分支是可選的,在沒(méi)有Default分支時(shí),如果沒(méi)有任何匹配,則任何Case后面的代碼都不會(huì)執(zhí)行。而對(duì)于LabVIEW的Case結(jié)構(gòu),要么在選擇器標(biāo)簽中列出所有可能的情況,要么必須給出一種默認(rèn)情況。

圖3-5 數(shù)據(jù)采集中的OSCdaq子程序
3.3.2自動(dòng)掃描控制

自動(dòng)掃描控制主要是利用軟件編程來(lái)對(duì)采集到的數(shù)據(jù)進(jìn)行對(duì)掃描率和掃描數(shù)的控制程序如下圖3-6:

圖3-6 自動(dòng)掃描控制

掃描數(shù)乘以dt乘以基頻然后輸入到分支結(jié)構(gòu)的輸入端子,若選擇端子是True將判斷輸入端子大于6 ,又掃描率大于等于8 則掃描率加1。若第一個(gè)分子結(jié)構(gòu)選擇結(jié)構(gòu)輸入端子小于3,又掃描率小于0,則掃描率減去1。

3.3.3波形顯示

圖形顯示對(duì)于虛擬儀器面板設(shè)計(jì)是一個(gè)重要的內(nèi)容。LabVIEW為此提供了豐富的功能。。

我們不從圖形的實(shí)現(xiàn)方法上去討論問(wèn)題,那是計(jì)算機(jī)圖形學(xué)的課題。但我們需要從用戶的可能的需求角度探求一下,如果你需要做虛擬儀器方面的開(kāi)發(fā),那么可能遇到些什么圖形問(wèn)題。LabVIEW在這方面所做的工作是非常值得借鑒的。

在LabVIEW的圖形顯示功能中Graph和Chart是兩個(gè)基本的概念。一般說(shuō)來(lái)Chart是將數(shù)據(jù)源(例如采集得到的數(shù)據(jù))在某一坐標(biāo)系中,實(shí)時(shí)、逐點(diǎn)地顯示出來(lái),它可以反映被測(cè)物理量的變化趨勢(shì),例如顯示一個(gè)實(shí)時(shí)變化的波形或曲線,傳統(tǒng)的模擬示波器、波形記錄儀就是這樣。而Graph則是對(duì)已采集數(shù)據(jù)進(jìn)行事后處理的結(jié)果。它先將被采集數(shù)據(jù)存放在一個(gè)數(shù)組之中,然后根據(jù)需要組織成所需的圖形顯示出來(lái)。它的缺點(diǎn)是沒(méi)有實(shí)時(shí)顯示,但是它的表現(xiàn)形式要豐富得多。例如采集了一個(gè)波形后,經(jīng)處理可以顯示出其頻譜圖,F(xiàn)在,數(shù)字示波器也可以具備類似Graph的顯示功能。

LabVIEW的Graph子模板中有許多可供選用的控件,其中常用的見(jiàn)下表:


Chart
Graph
Waveform(波形)
*
*
XY

*
Intensity(強(qiáng)度圖)
*
*
Digital(數(shù)字圖)

*
3D Surface(三維曲面)

*
3D Parametric(三維參變量)

*
3D Curve(三維曲線)

*

由表中可以看出,Chart方式盡管能實(shí)時(shí)、直接地顯示結(jié)果,但其表現(xiàn)形式有限,而Graph方式表現(xiàn)形式要遠(yuǎn)為豐富,但這是以犧牲實(shí)時(shí)為代價(jià)的。

Graph控件

各種圖形都提供了相應(yīng)的控件,以Graph為例介紹。圖4-1所示為它的控件。所有這些控件都包含在圖形快速菜單的Visible Items選項(xiàng)下。

曲線圖例可用來(lái)設(shè)置曲線的各種屬性,包括線型(實(shí)線、虛線、點(diǎn)劃線等)、線粗細(xì)、顏色以及數(shù)據(jù)點(diǎn)的形狀等。

圖形模板可用來(lái)對(duì)曲線進(jìn)行操作,包括移動(dòng)、對(duì)感興趣的區(qū)域放大和縮小等。

光標(biāo)圖例可用來(lái)設(shè)置光標(biāo)、移動(dòng)光標(biāo),幫助你用光標(biāo)直接從曲線上讀取感興趣的數(shù)據(jù)。

刻度圖例用來(lái)設(shè)置坐標(biāo)刻度的數(shù)據(jù)格式、類型(普通坐標(biāo)或?qū)?shù)坐標(biāo)),坐標(biāo)軸名稱以及刻度柵格的顏色等。

波形顯示主要是通過(guò)軟件對(duì)測(cè)量波形進(jìn)行顯示下圖3-7為波形顯示的主程序
圖3-7為波形顯示的主程序

下圖3-8為波形顯示子程序——生成時(shí)間軸序列

圖3-8生成時(shí)間軸序列

A、B顯示模塊的調(diào)節(jié)按鈕元素通過(guò)Bundle中把它們打包生成一個(gè)簇然后通過(guò)Unbundle By Name 把輸入簇中的元素按標(biāo)簽解包,A、B通道電壓數(shù)據(jù)分別用分支結(jié)構(gòu)來(lái)對(duì)其進(jìn)行顯示A、顯示B、顯示A&B等。

3.3.4測(cè)量波形的各種參數(shù)
測(cè)量波形的各種參數(shù)主要測(cè)量波形的幅值、周期、頻率等。主程序如下:

圖3-9 測(cè)量波形的各參數(shù)程序

當(dāng)測(cè)量信號(hào)輸入到分支結(jié)構(gòu)輸入端子時(shí),電壓數(shù)據(jù)通過(guò) Index Array 數(shù)組,當(dāng)選擇通道按鈕按下時(shí)則有它來(lái)控制索引電壓數(shù)據(jù)數(shù)組,然后輸入到osc測(cè)量子VI中。

測(cè)量表如下圖3-10:

圖3-10測(cè)量表
子程序如圖3-11:
圖3-11測(cè)量表程序
3.3.5手動(dòng)/自動(dòng)程序

事件結(jié)構(gòu)位于Functions->All Functions->Strunctures 子模板上。事件結(jié)構(gòu)包含有幾個(gè)基本組成部分:上方邊框中間是事件選擇標(biāo)簽,用于標(biāo)識(shí)當(dāng)前顯示的子框圖所處理事件的事件源;事件數(shù)據(jù)節(jié)點(diǎn)為子框圖提供所處理事件的相關(guān)數(shù)據(jù);超時(shí)端子隸屬整個(gè)事件結(jié)構(gòu),用于為超時(shí)事件提供超時(shí)時(shí)間參數(shù)。事件數(shù)據(jù)節(jié)點(diǎn)有若干事件數(shù)據(jù)端子組成,分為手動(dòng)、自動(dòng)、Time out .超時(shí)端子接入的,以毫秒為單位的整數(shù)值指定了超時(shí)時(shí)間,在等待其他類型事件發(fā)生的時(shí)間超過(guò)時(shí)間后,將自動(dòng)觸發(fā)Time out事件。為超時(shí)端子接入-1值表示不產(chǎn)生Time out事件。事件結(jié)構(gòu)的組織方式與Case結(jié)構(gòu)相似,都是把多個(gè)子框圖堆疊在一起。根據(jù)所發(fā)生事件的不同,每次只有一個(gè)子框圖得到執(zhí)行,并且該子框圖執(zhí)行完后,事件結(jié)構(gòu)隨之退出。

.
圖3-12 手動(dòng)/自動(dòng)程序


3.4總程序

如圖3-13

圖3-13總程序圖
結(jié)  論

虛擬示波器設(shè)計(jì)完成后,經(jīng)使用,所有控制鍵和功能正常,符合使用要求。本設(shè)計(jì)論文的主要工作就是利用LabVIEW設(shè)計(jì)兩通道數(shù)字示波器系統(tǒng)。主要完成了以下幾方面的工作:
1)              認(rèn)真研讀了教材《LabVIEW的虛擬儀器設(shè)計(jì)》(電子工業(yè)出版社),同時(shí)又在參考大量國(guó)內(nèi)外文獻(xiàn)資料的基礎(chǔ)上,總結(jié)了虛擬儀器的概念、特點(diǎn)及虛擬儀器的設(shè)計(jì)步驟。并對(duì)虛擬示波器設(shè)計(jì)所用到的LabVIEW知識(shí)進(jìn)行了較為詳細(xì)的闡述。
2)              利用LabVIEW編程設(shè)計(jì)了兩通道數(shù)字示波器,達(dá)到了傳統(tǒng)示波器所具有的基本功能。

通過(guò)驗(yàn)證,由于現(xiàn)實(shí)條件和時(shí)間上的原因,本文設(shè)計(jì)的兩通道數(shù)字示波器系統(tǒng)還很不完善,還有以下幾方面的工作要做:
1)              含有數(shù)據(jù)采集卡的示波器設(shè)計(jì),由于沒(méi)有數(shù)據(jù)采集卡,本次設(shè)計(jì)的示波器,它的數(shù)據(jù)采集是通過(guò)軟件模擬實(shí)現(xiàn)的。
2)              具有更多功能的虛擬示波器設(shè)計(jì)。本次設(shè)計(jì)的兩通道數(shù)字示波器具有傳統(tǒng)示波器的基本功能,還需要豐富更多的功能,如顯示模式可以加上微分、積分、A+B和A-B等功能。
3) 也不具有數(shù)據(jù)存儲(chǔ)功能,利有網(wǎng)絡(luò)遠(yuǎn)程操作等

因此,我還要不斷地學(xué)習(xí),不斷地探索不斷完善虛擬示波器。


后記

  本設(shè)計(jì)能順利完成與我的指導(dǎo)老師的不停的教誨和關(guān)懷分不開(kāi)的。本設(shè)計(jì)的選題和具體的實(shí)現(xiàn),朱老師花費(fèi)了大量的心血,并提出了大量的寶貴意見(jiàn),幫我們解決了不少設(shè)計(jì)上的困難。在我來(lái)這學(xué)校這幾年朱老師的嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、淵博的知識(shí)、寬大的胸懷和兢兢業(yè)業(yè)的敬業(yè)精神都令我非常佩服。在畢業(yè)設(shè)計(jì)即將完成之時(shí),謹(jǐn)向朱老師致以最衷心的感謝!

同時(shí)感謝這幾年教導(dǎo)我們的老師 ,感謝你們這幾年的孜孜不倦的教誨!

感謝所有關(guān)心我的人!


完整的Word格式文檔51黑下載地址:

基于LabVIEW虛擬示波器設(shè)計(jì).zip (298.99 KB, 下載次數(shù): 206)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏13 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:294274 發(fā)表于 2018-3-19 21:04 | 只看該作者
看起來(lái)不錯(cuò)呢
回復(fù)

使用道具 舉報(bào)

板凳
ID:294274 發(fā)表于 2018-3-19 21:04 | 只看該作者
謝謝樓主分享~
回復(fù)

使用道具 舉報(bào)

地板
ID:355068 發(fā)表于 2018-6-20 12:07 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

5#
ID:361937 發(fā)表于 2018-6-29 18:23 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

6#
ID:378933 發(fā)表于 2018-7-26 09:47 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

7#
ID:491036 發(fā)表于 2019-3-14 20:34 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

8#
ID:509834 發(fā)表于 2019-4-11 17:40 | 只看該作者
很棒
回復(fù)

使用道具 舉報(bào)

9#
ID:406155 發(fā)表于 2019-4-13 12:12 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

10#
ID:546002 發(fā)表于 2019-5-30 20:35 | 只看該作者
很好,照著試試做做看
回復(fù)

使用道具 舉報(bào)

11#
ID:571626 發(fā)表于 2019-6-25 12:33 | 只看該作者
有原碼嗎
回復(fù)

使用道具 舉報(bào)

12#
ID:571626 發(fā)表于 2019-6-25 12:40 | 只看該作者
非常好
回復(fù)

使用道具 舉報(bào)

13#
ID:637351 發(fā)表于 2019-11-18 16:07 | 只看該作者
沒(méi)有程序嗎?
回復(fù)

使用道具 舉報(bào)

14#
ID:759208 發(fā)表于 2020-5-23 15:40 | 只看該作者

非常好
回復(fù)

使用道具 舉報(bào)

15#
ID:751818 發(fā)表于 2020-6-12 16:15 | 只看該作者
請(qǐng)問(wèn)有源碼嗎
回復(fù)

使用道具 舉報(bào)

16#
ID:783804 發(fā)表于 2020-6-19 09:06 | 只看該作者
程序有么樓主
回復(fù)

使用道具 舉報(bào)

17#
ID:1102053 發(fā)表于 2023-12-1 16:43 | 只看該作者
確實(shí)很有用,謝謝樓主
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表