久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 23234|回復: 16
打印 上一主題 下一主題
收起左側

基于LabVIEW虛擬示波器設計論文

  [復制鏈接]
跳轉到指定樓層
樓主
ID:294062 發表于 2018-3-19 15:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
畢業設計論文
設計題目:基于LabVIEW虛擬示波器設計
指導教師:
設 計 者:



摘 要

虛擬儀器是現代計算機軟硬件技術飛速發展的產物,它正逐步取代傳統的電子儀器,是現代電工電子測量儀器的發展方向。虛擬儀器主要由數據采集、數據分析處理、數據輸出與顯示三部分模塊組成。其軟件開發平臺有LabView、VC++ 等。

   在此基礎上,利用美國NI公司的虛擬儀器開發環境LabVIEW設計了虛擬示波器,介紹虛擬示波器的實現過程。該儀器是用基于圖形化編程語言LabVIEW8i 而編寫的, 本虛擬示波器涉及主要功能包括:雙通道信號輸入、觸發控制、通道控制、時基控制、波形顯示、參數自測量等。本虛擬示波器的數據采集的功能與普通示波器一樣;波形顯示模式:通道 A或B 、A+B及A-B等。測試結果表明,本文設計的兩通道數字示波器系統設計正確。



目 錄

引 言

第一章:虛擬儀器

1.1虛擬儀器概述

1.2 虛擬儀器的特點

1.3虛擬儀器現狀及其發展趨勢

1.3.1 虛擬儀器的發展及特點

1.3.2 虛擬儀器的發展方向

1.4虛擬儀器的設計步驟

第二章:LabVIEW概述

2.1 什么叫LabVIEW

2.2  LabVIEW 軟件的特點

第三章 示波器設計

3.1本示波器功能

3.1.1主要功能模塊

3.1.2波形顯示模塊

3.2 示波器前面板設計

3.3示波器的后面板(程序設計)

3.3.1數據采集模塊(模擬數據采集)

3.3.2自動掃描控制

3.3.3波形顯示

3.3.4測量波形的各種參數

3.3.5手動/自動程序

3.4總程序

結  論

后記

參考文獻

隨著計算機技術的發展,傳統儀器開始向計算機化的方向發展。虛擬儀器是90年代提出的新概念。虛擬儀器技術的提出與發展,標志著二十一世紀自動測試與電子測量儀器領域技術發展的一個重要方向。所謂虛擬儀器,就是在通用的計算機平臺上定義和設計儀器的測試功能,使用者操作這臺計算機,就像是在使用一臺專門設計的電子儀器。

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

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

第一章:虛擬儀器

1.1虛擬儀器概述

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

虛擬儀器的主要特點有:




    • 盡可能采用了通用的硬件,各種儀器的差異主要是軟件。
    • 可充分發揮計算機的能力,有強大的數據處理功能,可以創造出功能更強的儀器。
    • 用戶可以根據自己的需要定義和制造各種儀器。

虛擬儀器實際上是一個按照儀器需求組織的數據采集系統。虛擬儀器的研究中涉及的基礎理論主要有計算機數據采集和數字信號處理。目前在這一領域內,使用較為廣泛的計算機語言是美國NI公司的LabVIEW。

虛擬儀器的起源可以追朔到20世紀70年代,那時計算機測控系統在國防、航天等領域已經有了相當的發展。PC機出現以后,儀器級的計算機化成為可能,甚至在Microsoft公司的Windows誕生之前,NI公司已經在Macintosh計算機上推出了LabVIEW2.0以前的版本。對虛擬儀器和LabVIEW長期、系統、有效的研究開發使得該公司成為業界公認的權威。

普通的PC有一些不可避免的弱點。用它構建的虛擬儀器或計算機測試系統性能不可能太高。目前作為計算機化儀器的一個重要發展方向是制定了VXI標準,這是一種插卡式的儀器。每一種儀器是一個插卡,為了保證儀器的性能,又采用了較多的硬件,但這些卡式儀器本身都沒有面板,其面板仍然用虛擬的方式在計算機屏幕上出現。這些卡插入標準的VXI機箱,再與計算機相連,就組成了一個測試系統。VXI儀器價格昂貴,目前又推出了一種較為便宜的PXI標準儀器。

虛擬儀器研究的另一個問題是各種標準儀器的互連及與計算機的連接。目前使用較多的是IEEE 488或GPIB協議。未來的儀器也應當是網絡化的。

1.2 虛擬儀器的特點
虛擬儀器與傳統儀器相比,有以下6個特點。

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

導致許多識別與操作錯誤。虛擬儀器與之不同,它可以通過在幾個分面板上的操作來實現比較復雜的功能。這樣,在每個分面板上就可以實現功能操作的單純化面板布置的簡捷化,從而提高操作的正確性與便捷性。同時,虛擬儀器面板上的顯示元件和操作元件的種類與形式不受“標準件”和“加工工藝”的限制,它們是由編程來實現的,設計者可以根據用戶的認知要求和操作要求,設計儀器面板。

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

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

4)儀器性能的改進和功能擴展只需更新相關軟件設計,而不需購買新的儀器。研制周期較傳統儀器大為縮短。

5)虛擬儀器開放、靈活,可與計算機同步發展,與網絡及其它周邊設備互聯。

    6)決定虛擬儀器具有傳統儀器不可能具備的特點的根本原因在于“虛擬儀器的關鍵是軟件”。

    虛擬儀器在工程應用和社會經濟效益方面具有突出的優勢。目前,我國高檔臺式儀器,如數字示波器、頻譜分析儀、邏輯分析儀等還主要依賴進口,因為這些儀器加工工藝復雜,對制造水平要求高,生產突破有困難,而采用虛擬儀器技術后,就可以通過只采購必要的通用儀器硬件來設計自己的高性能價格比的儀器系統。   

1.3虛擬儀器現狀及其發展趨勢
1.3.1 虛擬儀器的發展及特點

電子測量儀器發展至盡,大體可分為四代:模擬儀器、分立元件式儀器、數字化儀器、智能儀器和虛擬化儀器。

    儀器的發展過程

    第一代——模擬儀器。這類儀器在某些實驗室仍能看到,是以電磁感應基本定律為基礎的指針式儀器,如指針式萬用表、指針式電壓表、指針式電流表等。這類指針式儀表借助指針來顯示最終結果。

    第二代——分立元件式儀器。當20世紀60年代出現晶體管時,便產生了以電子管或晶體管電子電路為基礎的第二代測試儀器——分立元件式儀器。

    第三代——數字化儀器。20世紀70年代,隨著集成電路的出現,誕生了以集成電路芯片為基礎的第三代儀器——數字化儀器。這類儀器目前相當普及,數字電壓表、數字頻率計等。這類儀器將模擬信號的測量轉化為數字信號的測量,并以舒數字方式輸出最終結果,適用于快速響應和較高準確度的測量。

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

    目前,微電子技術和計算機技術飛速發展,測試技術與計算機深層次的結核癥引起測試儀器領域里的一場新的革命,一種全新的儀器結構概念導致了新一代儀器——虛擬儀器的出現。它是現代計算機計術、通信技術和測量技術相結合的產物,是傳統儀器觀念的一次巨大的變革,是傳統儀器儀器觀念的一次巨大變革,是儀器產業發展的一個重要方向。它的出現使得人類的測試技術進入一個新的發展紀元。

    國際上從1988年開始陸續有虛擬儀器產品面市。當時有5家制造商推出了30種產品,此后,虛擬儀器產品成倍增加。

1.3.2 虛擬儀器的發展方向

    隨著計算機、通信、微電子技術的不斷發展,以及網絡時代的到來和信息化要求的不斷提高,網絡技術應用到虛擬儀器領域中是虛擬儀器發展的大趨勢。在國內網絡化虛擬儀器的概念目前還沒有一個比較明確的提法,也沒有一個被測量界廣泛接受的定義。其一般特征是將虛擬儀器、外部設備、被測試點以及數據庫等資源納入網絡,實現資源共享,共同完成測試任務。使用網路化虛擬儀器,可以在任何地點、任意時刻獲取到測量數據信息的愿望成為現實。網路化虛擬儀器也適合異地或遠程控制、數據采集、故障檢測、報警等。

與以PC為核心的虛擬儀器相比,網絡化將對虛擬儀器的發展產生一次革命,網絡化虛擬儀器是儀器發展史上的又一次革命。網絡化虛擬儀器將由單臺虛擬儀器實現的三大功能(數據獲取、數據分析及圖形化顯示)分開處理,分別使用獨立的基本硬件模塊實現傳統儀器的三大功能,以網線相連接,實現信息資源的共享。

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

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

我經常聽到,甚至有時關注于對LabVIEW的爭論,即LabVIEW是一種通用的語言還是一種用于測量和自動化的特定應用程序的開發環境。一方面,有經驗的程序員指出了LabVIEW缺乏的流行編程語言所具有的特性,但是另一方面,一些用戶詳細闡述了他們使用LabVIEW所建立的通用應用程序,而完全沒有使用任何數據采集或分析。對LabVIEW用戶的調查可能與最近一個非正式的對一個團隊中的開發者的調查一致,這個團隊中的絕大多數人都認為LabVIEW已具有足夠的功能來被歸為通用語言類,而且事實上,正是以這種方式在使用它。LabVIEW被提到次數最多的不足是常用的遞歸和遞歸式數據類型,以及面向對象的結構,但是這些都不是建立通用應用程序的嚴重障礙。錯誤的問題盡管有了調查結果,但是我認為這是一個錯誤的問題而且試圖回答它會導致錯誤的方向。對我來說,這有點像在問:汽車是不是用來就座的地方?當然你可以在汽車里就座,但是如果那是你利用它所做的全部,那么你失去了擁有它可以得到的主要用途。一個較好的問題是:LabVIEW可以被用作通用編程語言嗎?或者更好的是:LabVIEW能夠被用來創建通用的應用程序嗎?這個問題的新表述在什么被視為通用這個方面仍然是同樣模糊的,但是它沒有強調有時顯得嚴謹的爭論,即LabVIEW是不是一種編程語言?一些人并不認為它是一種語言,因為它不是基于文本的 而且它不是順序化的。更為奇怪的是,關于什么被看作是一種編程語言的這個問題上,那些具有計算機科學背景的人持有最為狹隘的觀點。但是,經過改正后的問題最為重要的一個方面是它將包容性轉換到了正確的方向。換一種方式來 表達,即最初的問題間接地暗示了通用編程語言在某種程度上是一個更大的問題或者是測量和自動化編程的一個父集,然而,實際上子集卻在其他的方向。通常,測量和自動化的程序必須處理所有與通用程序一樣的問題,如數據結構和算法、文件I/O、網絡I/O、用戶I/O和數據庫存取、打印等等這些常見的問題。但是測量和自動化程序也必須處理比通用程序更多的問題,例如物理I/O、實時性約束和硬件配置。它們也可以具有一些最為苛刻的用戶界面要求。測量和自動化程序處理了一個通用程序所處理問題的父集。如果工具A和工具B可以被用于一定的任務集,但是工具B具有更多的功能可使它益于完成額外的任務,哪一種工具是事實上更為通用的呢?這正是我們關于LabVIEW問題。LabVIEW適于測量和自動化應用程序的能力不是來自于它的基本編程能力被某種方式所限制,而是因為它們經過了增強和擴展。這就是為什么有必要提出“LabVIEW能夠被用來創建通用的應用程序嗎?”這個問題而不是 “LabVIEW是一種通用編程語言嗎?”。我們不希望通過把LabVIEW僅視為一種編程語言而限制了它的范圍或它將來的發展。

2.2 LabVIEW 軟件的特點

LabVIEW軟件的特點如下:

1) 具有圖形化的編程方式,設計者無需寫任何文本格式的代碼,是真正的工程師的語言:

2)提供豐富的數據采集、分析及存儲的庫函數:

3) 提供傳統的程序調試手段,如設置斷點、單步運行,同時提供獨具特色的執行工具,使程序動畫式運行,利于設計者觀察到程序運行的細節,使程序的調試和開發更為便捷;

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

5) 囊括了PCI,GPIB,PXI,VXI,RS-232/485,USB等各種儀器通信總線標準的所有功能函數,使得不懂得總線標準的開發者也能夠驅動不同總線標準接口設備與儀器。  


第三章 示波器設計
3.1本示波器功能

本虛擬儀器涉及主要功能包括:雙通道信號輸入、觸發控制、通道控制、時基控制、波形顯示、參數自測量等。本虛擬儀器的數據采集的功能與普通示波器一樣;波形顯示模式:通道 A或B 、A+B及A-B等;電壓參數測量,時間/頻率參數測量,定位標尺,測量結果顯示。由于條件有限,沒有數據采集卡,我在設計數據采集時,采用了LaBVIEW內部信號發生器來產生信號;這些發生器有正弦波發生器、方波發生器、三角波發生器、鋸齒波發生器,通過這些信號的輸入來進行測量。

3.1.1主要功能模塊

概括地講,虛擬儀器主要由軟件控制完成信號的采集、處理和顯示。系統軟件總體上包括數據采集、波形顯示、參數測量等模塊。其功能結構如下圖

注釋:由于條件有限,沒有數據采集卡,我在設計數據采集時,采用了LaBVIEW內部信號發生器來產生信號;這些發生器有正弦波發生器、方波發生器、三角波發生器、鋸齒波發生器,通過這些信號的輸入來進行測量。

3.1.2波形顯示模塊

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

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

*XY模式:當兩通道都處于選同狀態時,使用此模式來顯示李沙育圖形,測量相位差或頻率;

*A+B A-B模式:當兩通道都處于選通狀態時使用此模式來顯示兩通道信號帶數相加、相減后的波形。

3.2 示波器前面板設計

虛擬示波器的界面圖,分為波形顯示區和操作面板區。波形顯示區橫軸表示時間,縱軸表示幅值。單元格當前時間和幅值也可通過操作面板的“時間”框、“幅值”框顯示。操作區有:顯示模式轉換,數據采集配置,時基控制,數據處理等。顯示模式轉換是選擇要測量的設備類型,通道和極性選擇。數據采集是調節波形幅值,波形周期和選擇顯示的波形是哪個通道的,先是波形的類型等。時基控制是選者掃描率,掃描數,選擇手動、自動等。

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

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

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

由于條件有限,沒有數據采集卡,我在設計數據采集時,采用了LaBVIEW內部信號發生器來產生信號;這些發生器有正弦波發生器、方波發生器、三角波發生器、鋸齒波發生器,通過這些信號的輸入來進行測量。


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

方波發生器     均勻分布的隨機信號發生器

正弦波形發生器函數圖標左側一列為輸入端口,即該函數調用前的參數設置端口。

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

函數圖標的右側一列為輸出端口(即該函數調用后的輸出參數 ),其各自的含義如下:

  • sine wave: 數組名,該數組內存放所生成的波形數據。
  • phase out: reset phase TRUE時,該參數無效。當reset phaseFALSE時,該參數作為下一次生成正弦波的初始相位。
  • error: 錯誤代碼。若有錯誤,則輸出錯誤代碼。根據錯誤代碼,查找LabVIEW幫助文件,可以找到與錯誤代碼對應的錯誤含義。

信號發生器的產生

介紹怎樣產生標準頻率的信號,以及怎樣創建模擬函數發生器。使用分析庫中的信號發生VI產生各種類型的信號。信號產生的應用主要有:

  •              當無法獲得實際信號時,(例如沒有DAQ板卡來獲得實際信號或者受限制無法訪問實際信號),信號發生功能可以產生模擬信號測試程序。
  •      產生用于D/A轉換的信號

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

圖3-2 基本函數發生器

其功能是建立一個輸出波形,該波形類型有:正弦波、三角波、鋸齒波和方波。這個VI會記住產生的前一波形的時間標志并且由此點開始使時間標志連續增長。它的輸入參數有波形類型、樣本數、起始相位、波形頻率(單位:Hz)

參數說明:

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

reset signal將波形相位重置為相位控制值且將時間標志置為0。缺省值為FALSE.

signal type產生的波形的類型,缺省值為正弦波。

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

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

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

error in :在該VI運行之前描述錯誤環境。缺省值為 no error. 如果一個錯誤已經發生,該VI在error out端返回錯誤代碼。該VI僅在無錯誤時正常運行。 錯誤簇包含如下參數。

status :缺省值為FALSE,發生錯誤時變為TRUE。

code :錯誤代碼,缺省值為0。

source :在大多數情況下是產生錯誤的VI或函數的名稱,缺省值為一個空串。

sampling info :一個包括采樣信息的簇。共有Fs和#s 兩個參數。

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

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

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

signal out:信號輸出端

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

error out :錯誤信息。如果 error in 指示一個錯誤,error out 包含同樣的錯誤信息。否則,它描述該VI 引起的錯誤狀態。

使用該VI制作的函數發生器如下,由框圖可以看出,其中沒有附加任何其他部件。

圖3-3 VI制作的函數發生器

數據采集主要是把通道A、通道B、設備,掃描率、掃描數、極性, 觸發源、模式、斜坡、電平,信號分別生成一個簇然后輸入到子程序OSCdaq 這個子程序是里,里面有一個自生成的波形發生器,通過外面的變量來對波形發生器進行控制。

圖3-4 數據采集的總的程序圖

子VI的建立

子VI(SubVI)相當于普通編程語言中的子程序,也就是被其他的 VI調用的VI。可以將任何一個定義了圖標和聯接器的 VI作為另一個 VI的子程序。在流程圖中打開 Functions»Select a VI…. ,就可以選擇要調用的子 VI 。構造一個子VI主要的工作就是定義它的圖標和聯接器。

每個VI在前面板和流程圖窗口的右上角都顯示了一個默認的圖標。啟動圖標編輯器的方法是,用鼠標右鍵單擊面板窗口的右上角的默認圖標,在彈出菜單中選擇 Edit Icon

下圖顯示了圖標編輯器的窗口。可以用窗口左邊的各種工具設計像素編輯區中的圖標形狀。編輯區右側的一個方框中顯示了一個實際大小的圖標。圖標編輯器的具體使用細節參閱有關資料。

圖3-5 圖標編輯器窗口

聯接器是 VI 數據的輸入輸出接口。如果用面板控制對象或者顯示對象從子 VI 中輸出或者輸入數據,那么這些對象都需要在聯接器面板中有一個連線端子。您可以通過選擇 VI的端子數并為每個端子指定對應的前面板對象以定義聯接器。

定義聯接器的方法是,用鼠標右鍵單擊面板窗口中的圖標窗口,在快捷菜單中選擇 Show Connector

聯接器圖標會取代面板窗口右上角的圖標。LabVIEW 自動選擇的端子連接模式是控制對象的端子位于聯接器窗口的左邊,顯示對象的端子位于聯接器窗口右邊。選擇的端子數取決于前面板中控制對象和顯示對象的個數。

聯接器中的各個矩形表示各個端子所在的區域,可以用它們從 VI 中輸入或者輸出數據。如果必要,也可以選擇另外一種端子連接模式。方法是在圖標上單擊鼠標右鍵單出快捷菜單,選擇 Show Connector,再次彈出快捷菜單,選擇Patterns

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

分支結構(Case Structure)位于Functions->Programming->Structures子模版上。分支結構左邊框上有一個輸入端子,該端子中心有一個問號,稱為選擇器端子(Selector Terminal);上邊框上有分支選擇器標簽(Case Selector Label)。

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

圖3-5 數據采集中的OSCdaq子程序
3.3.2自動掃描控制

自動掃描控制主要是利用軟件編程來對采集到的數據進行對掃描率和掃描數的控制程序如下圖3-6:

圖3-6 自動掃描控制

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

3.3.3波形顯示

圖形顯示對于虛擬儀器面板設計是一個重要的內容。LabVIEW為此提供了豐富的功能。。

我們不從圖形的實現方法上去討論問題,那是計算機圖形學的課題。但我們需要從用戶的可能的需求角度探求一下,如果你需要做虛擬儀器方面的開發,那么可能遇到些什么圖形問題。LabVIEW在這方面所做的工作是非常值得借鑒的。

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

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


Chart
Graph
Waveform(波形)
*
*
XY

*
Intensity(強度圖)
*
*
Digital(數字圖)

*
3D Surface(三維曲面)

*
3D Parametric(三維參變量)

*
3D Curve(三維曲線)

*

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

Graph控件

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

曲線圖例可用來設置曲線的各種屬性,包括線型(實線、虛線、點劃線等)、線粗細、顏色以及數據點的形狀等。

圖形模板可用來對曲線進行操作,包括移動、對感興趣的區域放大和縮小等。

光標圖例可用來設置光標、移動光標,幫助你用光標直接從曲線上讀取感興趣的數據。

刻度圖例用來設置坐標刻度的數據格式、類型(普通坐標或對數坐標),坐標軸名稱以及刻度柵格的顏色等。

波形顯示主要是通過軟件對測量波形進行顯示下圖3-7為波形顯示的主程序
圖3-7為波形顯示的主程序

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

圖3-8生成時間軸序列

A、B顯示模塊的調節按鈕元素通過Bundle中把它們打包生成一個簇然后通過Unbundle By Name 把輸入簇中的元素按標簽解包,A、B通道電壓數據分別用分支結構來對其進行顯示A、顯示B、顯示A&B等。

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

圖3-9 測量波形的各參數程序

當測量信號輸入到分支結構輸入端子時,電壓數據通過 Index Array 數組,當選擇通道按鈕按下時則有它來控制索引電壓數據數組,然后輸入到osc測量子VI中。

測量表如下圖3-10:

圖3-10測量表
子程序如圖3-11:
圖3-11測量表程序
3.3.5手動/自動程序

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

.
圖3-12 手動/自動程序


3.4總程序

如圖3-13

圖3-13總程序圖
結  論

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

通過驗證,由于現實條件和時間上的原因,本文設計的兩通道數字示波器系統還很不完善,還有以下幾方面的工作要做:
1)              含有數據采集卡的示波器設計,由于沒有數據采集卡,本次設計的示波器,它的數據采集是通過軟件模擬實現的。
2)              具有更多功能的虛擬示波器設計。本次設計的兩通道數字示波器具有傳統示波器的基本功能,還需要豐富更多的功能,如顯示模式可以加上微分、積分、A+B和A-B等功能。
3) 也不具有數據存儲功能,利有網絡遠程操作等

因此,我還要不斷地學習,不斷地探索不斷完善虛擬示波器。


后記

  本設計能順利完成與我的指導老師的不停的教誨和關懷分不開的。本設計的選題和具體的實現,朱老師花費了大量的心血,并提出了大量的寶貴意見,幫我們解決了不少設計上的困難。在我來這學校這幾年朱老師的嚴謹的治學態度、淵博的知識、寬大的胸懷和兢兢業業的敬業精神都令我非常佩服。在畢業設計即將完成之時,謹向朱老師致以最衷心的感謝!

同時感謝這幾年教導我們的老師 ,感謝你們這幾年的孜孜不倦的教誨!

感謝所有關心我的人!


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

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



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

使用道具 舉報

沙發
ID:294274 發表于 2018-3-19 21:04 | 只看該作者
看起來不錯呢
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

13#
ID:637351 發表于 2019-11-18 16:07 | 只看該作者
沒有程序嗎?
回復

使用道具 舉報

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

非常好
回復

使用道具 舉報

15#
ID:751818 發表于 2020-6-12 16:15 | 只看該作者
請問有源碼嗎
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩中文字幕在线 | 久久精品97 | 成人激情视频免费在线观看 | 亚洲一区二区三区免费视频 | 欧美精品被 | 成年精品| 99精品电影 | 久久久国产一区二区三区四区小说 | 亚洲精品区| 91麻豆精品一区二区三区 | 久久久久久国产 | 午夜精品一区二区三区三上悠亚 | 国产高清在线精品一区二区三区 | h在线| 色综合天天综合网国产成人网 | 久久中文字幕一区 | 国产露脸国语对白在线 | 欧美日韩在线视频一区 | 夜夜爽99久久国产综合精品女不卡 | 久久综合一区 | 天天综合久久 | 亚洲精品电影在线观看 | 日本精品一区二区三区在线观看视频 | 国产免费拔擦拔擦8x高清 | 欧美色综合天天久久综合精品 | 亚洲精品国产综合区久久久久久久 | 中文字幕在线免费视频 | 日韩精品 电影一区 亚洲 | 国产在线高清 | 一本色道精品久久一区二区三区 | 国产精品免费一区二区三区四区 | 日本aa毛片a级毛片免费观看 | 天天干视频网 | 成人福利网站 | 精品久久免费 | 欧美精品区 | 久久精品无码一区二区三区 | 91性高湖久久久久久久久_久久99 | 一二区视频| 国产精品一卡 | 久久久久久蜜桃一区二区 |