作者:劉玉璽,桑會(huì)平,湯楠,崔琪琳
在數(shù)據(jù)采集和處理過(guò)程中,有些模擬信號(hào)的幅值和頻率變化的速度是非??斓?,如何將這些高速變化的模擬信號(hào)采集到計(jì)算機(jī)里進(jìn)行處理便是一個(gè)需要解決的實(shí)際問(wèn)題。由于數(shù)字?jǐn)?shù)據(jù)傳輸速率等系統(tǒng)瓶頸的影響,使用常規(guī)的技術(shù)方法往往不能理想地解決上述實(shí)際問(wèn)題。以PCI總線為代表的高性能局部總線的推出,為計(jì)算機(jī)的模擬輸入通道采樣頻率的大幅度提高提供了堅(jiān)實(shí)的技術(shù)基礎(chǔ)。
PCI-1711數(shù)據(jù)采集卡
PCI-1711是12位的低損耗多功能采集卡卡,具有獨(dú)特的電路設(shè)計(jì)和完善的數(shù)據(jù)采集與控制功能,支持即插即用,具有FIFO的高速緩存,可靈活設(shè)定輸入類型和范圍,具有16通道單端模/數(shù)輸入、16通道數(shù)字I/O和2通道數(shù)模輸出,采集速率可達(dá)100kHz,可編程的計(jì)數(shù)/計(jì)時(shí)器可作為A/D轉(zhuǎn)換的速度觸發(fā),同時(shí)具有通道自動(dòng)搜索功能。內(nèi)部結(jié)構(gòu)主要有單端模擬輸入通道、模擬輸出通道和觸發(fā)源連接三部分。
庫(kù)函數(shù)及其應(yīng)用
廠家為用戶提供了PCI-1711采集卡的庫(kù)函數(shù)和不同語(yǔ)言的例程,使用戶具有良好的Windows開發(fā)環(huán)境。廠家主要為可編程的DAS卡提供DDL、ActiveDAQ和GeniDAQ等驅(qū)動(dòng)文件,同時(shí)還提供了在Visual Basic、Visual C++、C++ Builder和Delphi等開發(fā)環(huán)境下的例程,這些都方便了用戶根據(jù)自己的實(shí)際情況完成數(shù)據(jù)采集的編程工作。在Visual C++開發(fā)環(huán)境下,其原文件要包含庫(kù)函數(shù)“driver.h”。
結(jié)合Visual C++ 軟件開發(fā)環(huán)境,PCI-1711采集卡的軟件編程需要以下幾個(gè)步驟。
(1)采集卡的注冊(cè)??梢苑旁?cpp文件的開始位置,或者直接包含注冊(cè)的庫(kù)函數(shù)。
(2)采集卡的配置。在配置文件里,可以設(shè)置通道號(hào)和通道增益模式。
(3)采集卡的數(shù)據(jù)采集。這里要根據(jù)設(shè)置的通道號(hào)和采集模式來(lái)采集數(shù)據(jù),同時(shí)選擇觸發(fā)模式和電壓補(bǔ)償。觸發(fā)模式中,0為內(nèi)觸發(fā)模式,1為外觸發(fā)模式。
(4)數(shù)據(jù)處理。用戶可根據(jù)自己的需要將采集來(lái)的電壓值進(jìn)行處理,同時(shí)可在Visual C++的環(huán)境下,將采集處理后的數(shù)據(jù)通過(guò)友好的人機(jī)界面顯示出來(lái)。
(5)釋放采集卡。在Visual C++開發(fā)環(huán)境下,可用庫(kù)函數(shù)提供的DRV_DeviceClose()函數(shù)將采集卡關(guān)閉。
應(yīng)用中的注意事項(xiàng)
PCI-1711采集卡的信號(hào)線要盡可能遠(yuǎn)離電源線、發(fā)電機(jī)和具有電磁干擾的場(chǎng)所,也要遠(yuǎn)離視頻監(jiān)視系統(tǒng),因?yàn)樗鼤?huì)對(duì)數(shù)據(jù)采集系統(tǒng)產(chǎn)生很大的影響。在現(xiàn)場(chǎng)試驗(yàn)中,如果信號(hào)線和電源線必須并行(比如在同一個(gè)電纜溝里),則兩者之間必須保持適當(dāng)?shù)陌踩嚯x,同時(shí)最好用屏蔽電纜,以確保信號(hào)安全準(zhǔn)確地傳輸。
采集卡的每個(gè)通道的模擬量采集都有一個(gè)輸入電壓范圍,超過(guò)了這一范圍會(huì)造成采集卡A/D轉(zhuǎn)換部分的燒毀,所以在采集模擬信號(hào)時(shí),要保證被采集的信號(hào)在設(shè)定的量程范圍內(nèi)。
應(yīng)用實(shí)例
下面是在Visual C++的環(huán)境下實(shí)現(xiàn)PCI-1711數(shù)據(jù)采集的一段程序。采樣頻率可以通過(guò)SetTimer()函數(shù)設(shè)定,采用內(nèi)部觸發(fā)方式。采集卡使用的五個(gè)步驟中,第一步在OnCtrStart()函數(shù)中實(shí)現(xiàn),第五步在OnCtrStop(),第二步和第三步在Adinput()函數(shù)中實(shí)現(xiàn),第四步為數(shù)據(jù)處理,根據(jù)用戶不同的需要進(jìn)行相應(yīng)的處理,這里從略。
//Step 2:配置設(shè)備
ptAIConfig.DasChan = chan;
ptAIConfig.DasGain = 1;
if(ErrCde = DRV_AIConfig(DriverHandle,(LPT_AIConfig)&ptAIConfig)!=0)
return 0;
// Step 3:采集數(shù)據(jù)
ptAIVoltageIn.chan = chan; // 輸入通道
ptAIVoltageIn.gain = 1; // 增益代碼,可參考手冊(cè)的電壓范圍
ptAIVoltageIn.TrigMode = 0; // 0: 內(nèi)觸發(fā)器,1: 外觸發(fā)器
ptAIVoltageIn.voltage = &fVoltage; // 返回的電壓
if(ErrCde = DRV_AIVoltageIn(DriverHandle, &ptAIVoltageIn)!=0)
return 0;
return (fVoltage);
}
//step 4:處理數(shù)據(jù)(發(fā)送)
void CStable2View::OnCtrStop()
{
// TODO:添加命令句柄代碼
timeId=0;
KillTimer(timeId);
// Step 5:釋放設(shè)備
DRV_DeviceClose(&DriverHandle);
}
結(jié)語(yǔ)
PCI-1711是一種非常經(jīng)濟(jì)實(shí)用的數(shù)據(jù)采集卡,可以應(yīng)用在很多領(lǐng)域。在現(xiàn)場(chǎng)試驗(yàn)中,用PCI-1711采集卡采集重力加速度計(jì)和陀螺輸出的電壓信號(hào),經(jīng)過(guò)采集卡的A/D采集,并對(duì)數(shù)據(jù)進(jìn)行處理,將所得數(shù)據(jù)通過(guò)一個(gè)良好的人機(jī)界面顯示出來(lái)。
責(zé)任編輯:gt
-
數(shù)據(jù)采集
+關(guān)注
關(guān)注
39文章
6108瀏覽量
113667 -
視頻監(jiān)視
+關(guān)注
關(guān)注
0文章
10瀏覽量
7464 -
監(jiān)視系統(tǒng)
+關(guān)注
關(guān)注
0文章
34瀏覽量
8558
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論