基于LabWindows/CVI的雙通道數(shù)據(jù)采集系統(tǒng)
摘要介紹了使用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)前狀況。因此特征的獲知尤為重要。通常用專(zhuān)業(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編寫(xiě)上位機(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è)控的專(zhuān)業(yè)工具與C語(yǔ)言平臺(tái)結(jié)合,利用測(cè)控專(zhuān)業(yè)工具的集成化開(kāi)發(fā)環(huán)境、交互式編程方法、函數(shù)面板和豐富的庫(kù)函數(shù)大幅增強(qiáng)了C語(yǔ)言的功能,為開(kāi)發(fā)設(shè)計(jì)人員編寫(xiě)檢測(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)證和汽車(chē)工業(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是板卡類(lèi)型,如使用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)存的名稱(chēng);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所示。
評(píng)論