基于LabWindows/CVI的雙通道數(shù)據(jù)采集系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要 介紹了使用Labwindows/CVI和DAQ/PXI-2005數(shù)據(jù)采集卡搭建的數(shù)據(jù)測(cè)量系統(tǒng)。通過(guò)傳感器將所測(cè)特征信號(hào)變?yōu)殡娦盘?hào)傳輸,再用數(shù)據(jù)采集卡采集傳送給處理器,用LabWindow/CVI搭建數(shù)據(jù)處理和顯示的人機(jī)交互界面,實(shí)現(xiàn)對(duì)物體特征的測(cè)量。該系統(tǒng)可以實(shí)時(shí)顯示所測(cè)物體特征,修改數(shù)據(jù)采集時(shí)的各項(xiàng)參數(shù),顯示采集到數(shù)據(jù)的波形,存儲(chǔ)、調(diào)用采集到的數(shù)據(jù)。
關(guān)鍵詞 LabWindows/CVI;數(shù)據(jù)采集卡;人機(jī)交互界面;數(shù)據(jù)存儲(chǔ)
物體的特征有多種,如溫度、壓力、流量、液位等,本文以溫度為例。通過(guò)獲知部分特征,可以確定其當(dāng)前狀況。因此特征的獲知尤為重要。通常用專業(yè)的儀器測(cè)量這些信號(hào),所需儀器較昂貴。虛擬儀器利用高性能的模塊化硬件,加上高效靈活的軟件完成測(cè)試。目前國(guó)內(nèi)、國(guó)際虛擬儀器市場(chǎng),主要采用LabView軟件,但LabView作為一款圖形化的開(kāi)發(fā)工具,不夠靈活。因此NI公司推出了面向測(cè)控領(lǐng)域的LabWindo ws/CVI軟件開(kāi)發(fā)平臺(tái),這款測(cè)量軟件將控件和編程結(jié)合在一起,靈活高效。
1 總體架構(gòu)
首先通過(guò)傳感器測(cè)量物體的特征,以溫度為例,將模擬溫度信號(hào)轉(zhuǎn)換為相應(yīng)大小的電壓信號(hào),對(duì)電壓信號(hào)進(jìn)行調(diào)理放大并去噪,然后通過(guò)數(shù)據(jù)采集卡對(duì)電壓信號(hào)進(jìn)行采集,實(shí)現(xiàn)A/D轉(zhuǎn)換,處理所采信號(hào),將之轉(zhuǎn)變?yōu)橄鄳?yīng)的溫度信號(hào)加以顯示,如圖1所示。
1.1 硬件方面
處理器用PXI-8106。PXI-8106是2.16 GHzIntelCore2 Duo雙核處理器。PXI-8106插在PXI機(jī)箱的0號(hào)插槽上,通過(guò)機(jī)箱上的高速PXI總線與插在1號(hào)插槽上的PXI數(shù)據(jù)采集卡相連接。LabWindows/CVI與NI的數(shù)據(jù)采集卡配套使用靈活方便,但考慮到成本,選用了凌華公司的PXI-2005數(shù)據(jù)采集卡。其是一款4通道16位并行多功能數(shù)據(jù)采集卡,最高采樣速率為500 ksample/s,滿足項(xiàng)目需要。
1.2 軟件方面
使用NI公司的LnbWindows/CVI編寫上位機(jī)界面,對(duì)采集到的數(shù)據(jù)進(jìn)行處理和顯示。
LabWindows/CVI是NI公司推出的面向計(jì)算機(jī)測(cè)控領(lǐng)域的虛擬儀器軟件開(kāi)發(fā)平臺(tái),能夠在多操作系統(tǒng)下運(yùn)行。LabWindows/CVI將用于測(cè)控的專業(yè)工具與C語(yǔ)言平臺(tái)結(jié)合,利用測(cè)控專業(yè)工具的集成化開(kāi)發(fā)環(huán)境、交互式編程方法、函數(shù)面板和豐富的庫(kù)函數(shù)大幅增強(qiáng)了C語(yǔ)言的功能,為開(kāi)發(fā)設(shè)計(jì)人員編寫檢測(cè)系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、過(guò)程監(jiān)控系統(tǒng)等應(yīng)用軟件提供了一個(gè)理想的軟件開(kāi)發(fā)環(huán)境。
LabWindows/CVI適用于測(cè)試盒測(cè)量的ANSI C開(kāi)發(fā)環(huán)境,提高了生產(chǎn)效率,廣泛用于制造測(cè)試、軍事/航天、通訊、設(shè)計(jì)驗(yàn)證和汽車工業(yè)等領(lǐng)域。
2 測(cè)量系統(tǒng)
測(cè)量系統(tǒng)首先要驅(qū)動(dòng)數(shù)據(jù)采集卡,對(duì)數(shù)據(jù)進(jìn)行采集,并進(jìn)行數(shù)據(jù)處理,最后將處理結(jié)果顯示到界面上。
2.1 數(shù)據(jù)采集卡的驅(qū)動(dòng)
在驅(qū)動(dòng)數(shù)據(jù)采集的過(guò)程如下:數(shù)據(jù)采集卡首先要經(jīng)過(guò)硬件初始化,這個(gè)過(guò)程多數(shù)由生產(chǎn)商提供的驅(qū)動(dòng)程序完成。初始化完成以后,在工程內(nèi)加入D2K-Dask.lih,就可使用生產(chǎn)商提供的軟件操作語(yǔ)句對(duì)數(shù)據(jù)采集卡進(jìn)行控制。
數(shù)據(jù)采集卡的硬件驅(qū)動(dòng)一般由硬件生產(chǎn)廠家提供的驅(qū)動(dòng)完成。硬件生產(chǎn)廠家會(huì)提供函數(shù)庫(kù)以供使用該數(shù)據(jù)采集卡。
2.1.1 PXI-2005編程所用主要函數(shù)
(1)D2K_Register_Card。
該函數(shù)用于初始化凌華的板卡,函數(shù)原型為:D2K_Register_Card(U16 CardType,U16card_num)。
CardType是板卡類型,如使用PXI-2005即添DAQ_2005;card_num為板卡所插插槽,只用一塊板卡就添0,有兩塊板卡則用0、1區(qū)分開(kāi)。
(2)D2K_AI_ContBufferSetup。
為連續(xù)采集數(shù)據(jù)分配內(nèi)存,函數(shù)原型為:D2K_AI_ContBufferSetup(U16 CardNumber,void*Buffer,U32 ReadCount,U16*BufferId)。
CardNumber是所操作板卡的ID;*Buffer即分配內(nèi)存的名稱;ReadCount為所需內(nèi)存的大?。?BufferId是分配好內(nèi)存返回的序列。
(3)D2K_AI_ContSeanChannels。
開(kāi)始連續(xù)的A/D轉(zhuǎn)換,函數(shù)原型為:D2K_AI_ContScanChannels(U16 CardNumber,U16 Channel,U16Build,U32 ReadScans,U32 ScanIntrv,U32 SampIntrv,U16 SyneMode)。
Channel為使用的最多的通道數(shù),如PXI-2005可以使用0,1,2,3這4個(gè)通道;BufId為數(shù)據(jù)存放的內(nèi)存位置;ReadScans為每通道采樣數(shù);最大掃描速率除以ScanIntrv即為當(dāng)前掃描速率;SampIntrv為A/D轉(zhuǎn)換最小間隔,最大采樣速率除以SampIntrv即為當(dāng)前采樣速率。
(4)D2K_Release_Card。
釋放使用中的數(shù)據(jù)采集卡,函數(shù)原型為:D2K_Release_Card(U16 CardNumber)。
2.1.2 PXI-2005數(shù)據(jù)采集卡驅(qū)動(dòng)實(shí)例
驅(qū)動(dòng)凌華PXI-2005數(shù)據(jù)采集卡,進(jìn)行4通道、采樣速率為500 kHz、每通道采樣點(diǎn)數(shù)為60 000的采樣。
2.2 軟件整體設(shè)計(jì)
軟件設(shè)計(jì)總體框圖如圖2所示。
LabWindows/CVI由自行選用的插件以及C代碼組成,除此之外,系統(tǒng)還配有各類豐富的軟件包,從而更方便地構(gòu)建軟件系統(tǒng),界面如圖3所示。
2.2.1 顯示界面
將采集到的數(shù)據(jù)顯示到界面上,有兩種方式:(1)靜態(tài)方式。將所采集到的點(diǎn)一次性顯示在界面上,如果要繼續(xù)顯示,則要將之前界面上的點(diǎn)擦除后才可以繼續(xù)。(2)動(dòng)態(tài)方式。以帶狀圖實(shí)時(shí)顯示圖形數(shù)據(jù),可以包含一個(gè)或多個(gè)同時(shí)刷新的曲線,每一條曲線代表一個(gè)連續(xù)量的數(shù)據(jù)通道。為顯示處理過(guò)的數(shù)據(jù),要選用靜態(tài)顯示。而靜態(tài)顯示只能顯示一次,因此需要使用CVI內(nèi)置時(shí)鐘Timer隔幾秒刷新顯示數(shù)據(jù)。某一區(qū)間的數(shù)據(jù)可以以橫軸為時(shí)間、縱軸為幅度顯示,也可以其他方式顯示。這里選擇環(huán)形圖顯示。
2.2.2 環(huán)形圖顯示
環(huán)形圖顯示如圖4所示,顯示的是溫度信號(hào),單位℃。圖中有兩個(gè)圓。大圓代表最大量程值,小圓代表最小量程值。圖中共有86條線段,代表這一段時(shí)間被平分為86段,每條線段代表一個(gè)時(shí)間點(diǎn)。測(cè)量到的數(shù)據(jù)依照時(shí)間先后在這86個(gè)線段上逆時(shí)針標(biāo)出,數(shù)據(jù)越大越靠近大圓,數(shù)據(jù)越小越靠近小圓。將這些點(diǎn)依次連接,易看到哪一時(shí)間點(diǎn)上的數(shù)據(jù)較大,而哪一時(shí)間點(diǎn)上的數(shù)據(jù)較小。直觀地顯示出所測(cè)時(shí)間內(nèi)數(shù)據(jù)的大小變化。左下角最大量程顯示的是大圓代表的值,最小量程顯示著小圓代表的值,這兩個(gè)量程可以重新輸入設(shè)置,以便觀察數(shù)據(jù)在更小量程里的變化。
3 數(shù)據(jù)的處理
3.1 數(shù)據(jù)的分離
數(shù)據(jù)采集卡是將采集到的數(shù)據(jù)以交錯(cuò)方式存儲(chǔ)內(nèi)存當(dāng)中。所謂交錯(cuò)即內(nèi)存中的存儲(chǔ)依次是第1,2,3,4通道的數(shù)據(jù)。以4通道采集為例,把第一位數(shù)據(jù)和每隔3位后的第4位數(shù)據(jù)存放在一起,形成了第一通道數(shù)據(jù),從第3位開(kāi)始,每隔3位數(shù)據(jù)存儲(chǔ)在一起,則形成了第3通道數(shù)據(jù)。再將這些數(shù)據(jù)用于處理和顯示。
3.2 數(shù)據(jù)的轉(zhuǎn)換
數(shù)據(jù)采集卡采集到的數(shù)據(jù)并不是10進(jìn)制的電壓數(shù)據(jù),而是由某種對(duì)應(yīng)關(guān)系對(duì)應(yīng)得到的數(shù)字信號(hào),需要進(jìn)行一次轉(zhuǎn)換得到10進(jìn)制電壓數(shù)據(jù)。轉(zhuǎn)換原理如下:PXI-2005這款數(shù)據(jù)采集卡是16位的,采集最大電壓范圍是-10~+10 V;基準(zhǔn)電壓是+10 V,因此數(shù)字0對(duì)應(yīng)-10 V,數(shù)字215對(duì)應(yīng)0 V,數(shù)字216對(duì)應(yīng)10 V。因此得出數(shù)據(jù)轉(zhuǎn)換公式為
data_D=data_collect/215×10.0-10.0 (1)
這樣就將從模擬電壓上采集到的原始數(shù)字?jǐn)?shù)據(jù)(data_collect)轉(zhuǎn)換為相應(yīng)的10進(jìn)制數(shù)字電壓數(shù)據(jù)(data_D)。
3.3 數(shù)據(jù)的存儲(chǔ)
數(shù)據(jù)是以TDMS格式存儲(chǔ),TDMS是NI公司主推的一種二進(jìn)制記錄文件,擁有高速、易存取等多種優(yōu)勢(shì),能在NI的各種數(shù)據(jù)分析或軟件之間進(jìn)行無(wú)縫交互,而且提供一系列API函數(shù)供LabWindows/CVI使用。
存儲(chǔ)的數(shù)據(jù)是采集轉(zhuǎn)換后的電壓數(shù)據(jù)。每通道內(nèi)的數(shù)據(jù)都是單獨(dú)存儲(chǔ)的,互不影響。存儲(chǔ)后的TDMS文件可以通過(guò)安裝CVI時(shí)同時(shí)安裝的一個(gè)插件一Excel Importer打開(kāi),打開(kāi)效果如圖5和圖6所示。
PXI-2005這款數(shù)據(jù)采集卡是4通道的,本試驗(yàn)中只用到了兩通道,如圖6所示,只有1、3通道有數(shù)據(jù)存儲(chǔ),2、4通道的數(shù)據(jù)是0。
3.4 生成報(bào)表
將采集到的數(shù)據(jù)計(jì)算后整理到word文件上以供打印。報(bào)表如圖7所示。報(bào)表中存儲(chǔ)的是已經(jīng)轉(zhuǎn)換的溫度數(shù)據(jù),單位℃。
使用word的函數(shù)語(yǔ)句包含在wordrepoit.fp文件里,因此要先要在工程內(nèi)加載wordreport.fp,然后才能使用其中包含的函數(shù)來(lái)制作word文件。
4 結(jié)束語(yǔ)
由LabWindows/CVI搭建的數(shù)據(jù)采集系統(tǒng),具有快速測(cè)量、實(shí)時(shí)顯示等功能。搭配相應(yīng)的傳感器,容易制作成相應(yīng)領(lǐng)域的測(cè)量?jī)x器。同時(shí)CVI可以應(yīng)用到大多數(shù)操作系統(tǒng)上,具有良好的移植性、使用簡(jiǎn)單。相比MFC,CVI的研發(fā),因?yàn)閾碛写罅繉I(yè)測(cè)控插件而顯得更加方便快捷;相比LabView,CVI的可編程性使其更加靈活,更能滿足研發(fā)人員的思想。同時(shí),CVI插件的隨意放大縮小功能也適合移植到大小不一的觸摸屏上使用,適用于嵌入式系統(tǒng)。由此可見(jiàn)CVI在測(cè)量方面有著較大的優(yōu)勢(shì),將成為虛擬儀器發(fā)展過(guò)程中的重要工具。