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