引言
20 世紀80 年代中后期,國外提出了“虛擬儀器”、“虛擬系統”的概念,隨著微電子技術、計算機技術的飛速發展及其在測量與儀器上的應用,測試領域的新理論、新方法以及儀器結構不斷出現,突破了傳統儀器的概念,繼而開創了儀器儀表的新時代——虛擬儀器。虛擬儀器技術最核心的思想就是利用計算機的硬/軟件資源,使本來需要硬件實現的技術軟件化(虛擬化),以便最大限度的降低系統成本,增強系統的功能和靈活性。
虛擬儀器技術的實質是利用最新的計算機技術來實現和擴展傳統儀器的功能。其基本構成包括計算機、虛擬儀器軟件、硬件接口模塊等。在這里,硬件僅是為了解決信號的輸入輸出,軟件才是整個系統的關鍵。當基本硬件確定了以后,就可以通過不同的軟件實現不同的功能。虛擬儀器應用軟件集成了儀器的所有采集、控制、數據分析、結果輸出和用戶界面等功能,使傳統儀器的某些硬件甚至整個儀器都被計算機軟件所代替。虛擬儀器系統的設計與實現已成為儀器產業發展的一個重要方向,代表著一起發展的最新方向和潮流,是信息技術的一個重要領域,開創了個人計算機儀器時代,是測量儀器工業發展的一個里程碑,其思想將更多地滲透到未來電子測量儀器和自動化測試技術的發展中去,有著廣泛的發展和應用前景。
1 硬件組成
虛擬儀器的硬件平臺主要是解決信號的輸入輸出,由計算機和I/O 接口設備組成的,計算機是硬件平臺的核心,一般是工作站、工控機,亦可以是普通的帶總線插槽的個人計算機. I/O接口設備負責被測信號的采集、調整、放大,以及A/D 轉換。本文中硬件由工控機及其接口,數據采集卡和放大及濾波電路構成,其原理框圖如圖1 所示:
本設計用的數據采集設備是采用 NI 公司生產的1200 系列Lab-PC-1200,這是一種性能優良低價位適合PC 及兼容機的數據采集卡,它能夠完成信號采集(A/D),數字信號的模擬輸出(D/A)及定時/計數功能。它具有8 個12 位模擬量輸入通道, 2 個12 位模擬量輸出通道, 24 個數字量I/O 接口和3 個16 位定時/計數器。Lab-PC-1200 輸出的模擬信號通過濾波器進行濾波平滑、放大后即可使用。其中濾波器的選擇視輸出信號頻率范圍而定,放大倍數根據實際需要分不同的檔位。
2 儀器面板設計
儀器軟件開發采用的是美國 NI 公司的虛擬儀器開發環境LabWindows/CVI,它是基于C語言的半圖形化軟件開發平臺,將使用靈活的C 語言平臺與用于數據采集、分析和顯示的測控專業工具有機結合起來,利用它的集成開發環境、交互式編程方法、函數面板和豐富的庫函數大大增強了C 語言的功能,為熟悉C 語言的開發設計人員便于編寫檢測系統、自動測試系統、數據采集系統等應用軟件提供的一個理想的軟件開發環境。面板設計過程包括創建控件和修改控件屬性兩部分,設計的前面板如圖 2 所示。
2.1 創建控件
用戶界面共 6 個控件:兩個Graph 控件,三個Ring 控件,一個Command Button.。啟動CVI 在工程窗口中選擇File→New→User Interface(*.uir),打開用戶界面編輯窗口,在其中點右鍵,依次選擇Graph 控件,Ring 控件和 Command Button.,依次拖放好各自位置。
2.2 修改控件屬性
波形選擇 Ring 控件主要是要產生幾種波形選項,包括無,正弦波,三角波,鋸齒波,方波。雙擊Ring 控件進行設置,將Label 設置為“波形選擇”將Constant Name 設置為“WAVEFORM”將Callback Function 設置“WaveFormChooseCB”,然后通過Label/ValuePairs…設置Ring 控件的選擇項。Graph 控件和Command Button 控件設置與Ring 控件類似。修改完成后,選擇 File→Save as,保存.uir 文件,其文件名為信號發生器.uir 保存,點擊Save 關閉保存文件對話框。
3 儀器程序設計
儀器的程序設計是整個虛擬儀器的核心部分,在用戶完成用戶界面設計后,CVI 可自動生成程序的框架以及缺醒消息處理函數,只要在這些函數中添加所需的代碼即可完成程序的設計。具體操作如下:在用戶界面窗口菜單中選擇Code→Generate All Code,點OK 鍵即可進入代碼編輯窗口,即可生成程序的框架,限于篇幅有限,本文只寫出自己根據儀器需要自己編寫的部分代碼。首先在源代碼窗口main 函數上方輸入如下代碼聲明變量和函數,如
編寫調用函數show_wave()
當點擊用戶界面上的波形選擇時,程序將自動執行WaveFormChooseCB 函數,實現函數波形和頻譜的產生并顯示。
添加完成以上代碼添加后,在源代碼窗口里選擇File→Save,以文件名信號發生器.c 保存源文件。
4 調試運行
在工程窗口中選擇:Edit→Add Files To Project…→All Files,依次將前述用戶界面文件,源程序代碼文件以及自動生成的頭文件添加到工程文件中,現在已完成信號發生器.prj。選擇工程窗口Run→Debug 信號發生器_dbg.exe 執行代碼,編譯過程中LabWindows/CVI 會發現程序缺少ansi_c.h 引用并彈出對話框詢問是否在源文件中加入引用語句,點擊Yes 添加該應用文件,接著根據提示在運行前保存對文件‘信號發生器.c’的修改。
運行時,我們選擇鋸齒波為例,在波形選擇鍵選中鋸齒波,幅值為1.12V,頻率為62.39Hz,在波形顯示上得到一個鋸齒波并在頻譜顯示上顯示其頻譜,如圖3。
5 結論
本文通過以 LabWindows/CVI 為虛擬儀器的開發工具進行虛擬信號發生器的設計,充分利用了計算機的強大信息處理能力和LabWindows/CVI 強大的開發功能與靈活的編程手段,最終實現了虛擬信號發生器的設計,可以看出虛擬儀器給用戶提供了一個充分發揮自己才能和想象力的空間,可根據用戶自己的設想及要求,通過編程來設計、組建自己的儀器系統,它的靈活、開放,技術更新周期短,可隨著計算機技術的發展和用戶的需求進行儀器與系統的升級,在性能維護和靈活組態等多個方面有著傳統儀器無法比擬的優點。
-
計算機
+關注
關注
19文章
7565瀏覽量
88873 -
虛擬儀器
+關注
關注
23文章
775瀏覽量
87497 -
信號發生器
+關注
關注
28文章
1485瀏覽量
109155
發布評論請先 登錄
相關推薦
基于Labwindows/CVI和SBS實時光網的虛擬示波器設計
怎么利用LabWindows/CVI設計實現對429信號的仿真和測試?
基于CV1任意波形發生器的整體設計
一種LabWindows/CVI與MATLAB混合編程的實現
DLL在基于LabWindows/CVI 的虛擬儀器中的應用
cvi 8.0 下載 (NI LabWindows 電子測量)

基于LabWindows CVI虛擬示波器的設計與實現

NI宣布推出ANSI C開發環境LabWindows/CVI
LabWindows教程之LabWindows CVI的虛擬儀器設計與應用教材免費下載
使用LabWindows CVI進行虛擬示波器設計與實現資料免費下載

LabWindows CVI在USB2. 0接口數據采集器在開發中的應用

Labwindows CVI的簡介說明

評論