• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      NI-6002數(shù)據(jù)采集卡的調(diào)試與應(yīng)用

      2022-01-05 18:21:46陳政宇
      儀器儀表用戶 2021年12期
      關(guān)鍵詞:采集卡時(shí)鐘噪聲

      裴 銳,陳政宇

      (1.沈陽(yáng)工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,沈陽(yáng) 110870;2.沈陽(yáng)計(jì)量測(cè)試院,沈陽(yáng) 110179;3.北京尚麗外國(guó)語(yǔ)學(xué)校 康福國(guó)際部,北京 100093)

      NI-6002數(shù)據(jù)采集卡是NI高性價(jià)比USB多功能I/O設(shè)備,NI USB DAQ設(shè)備包含適用于各種應(yīng)用開(kāi)發(fā)環(huán)境和編程語(yǔ)言的軟件支持和資源。USB、PCI和PCI Express輕便小巧,適合進(jìn)行臺(tái)式儀器測(cè)量。DAQExpress軟件提供了一種交互式方法,可更快地完成首次測(cè)量。NI-DAQmx驅(qū)動(dòng)程序支持所有NI DAQ硬件,使用NI DAQ設(shè)備無(wú)縫進(jìn)行測(cè)量,不必安裝額外的驅(qū)動(dòng)程序。對(duì)于高級(jí)測(cè)量和自動(dòng)化應(yīng)用,隨附的NI-DAQmx驅(qū)動(dòng)程序可為L(zhǎng)abVIEW編程提供全面支持,并支持ANSI C、Python、Visual C# .NET和Visual Basic.NET等編程語(yǔ)言。

      1 NI-DAQmx平臺(tái)

      使用NI-DAQmx可以節(jié)省編程時(shí)間,常見(jiàn)的測(cè)量應(yīng)用有:加速度、頻率(模擬)、角位移、控制、邊沿計(jì)數(shù)、電流生成、電流測(cè)量、數(shù)字值生成、數(shù)字值測(cè)量、占空比、力、頻率(數(shù)字)、線位移、周期(數(shù)字)、壓強(qiáng)、接近度、脈沖生成、脈沖寬度、電阻、半周期(數(shù)字)、聲壓、應(yīng)變、扭矩、溫度、兩邊沿間隔、速度、電壓生成和電壓測(cè)量[1]。

      1.1 直交流電壓測(cè)量

      測(cè)量電壓,絕大多數(shù)測(cè)量設(shè)備可測(cè)量或讀取電壓。通常測(cè)量的電壓有兩種:直流(DC)和交流(AC)。直流電壓用于測(cè)量隨時(shí)間變化緩慢的現(xiàn)象,例如:溫度、壓力、應(yīng)變。在直流信號(hào)中,可在給定時(shí)間點(diǎn)測(cè)量精確的幅值。輸出范圍為0V~10V,對(duì)應(yīng)的風(fēng)速為0mph~200mph。通過(guò)下列方程對(duì)數(shù)據(jù)進(jìn)行換算:在該方程中,3V的量值對(duì)應(yīng)60mph的風(fēng)速:3 V×20 mph/V = 60 mph。平均值操作是取平均數(shù)可改善對(duì)噪聲或迅速變化信號(hào)的測(cè)量精度。對(duì)于陣風(fēng),風(fēng)速圖形與噪聲的圖形類似。29 mph的風(fēng)速為測(cè)量的峰值,但并不表示風(fēng)速一直保持在29 mph。更好的表示方法是求取一段時(shí)間內(nèi)測(cè)量到的風(fēng)速值的平均值。取平均數(shù)可消除頻率為50Hz或60 Hz的電源線路噪聲。對(duì)于沒(méi)有屏蔽的傳感器連線,電源線周圍的磁場(chǎng)振蕩可產(chǎn)生噪聲。由于電源線的噪聲為正弦波,或者類似于正弦波,其一個(gè)周期的平均值為0。掃描率為噪聲周期的整數(shù)倍時(shí),對(duì)整數(shù)個(gè)周期取平均值就可清除電源線的噪聲。對(duì)于頻率為50Hz~60Hz的噪聲,可將采樣率設(shè)置為300采樣/秒,并對(duì)每30個(gè)點(diǎn)取平均值。注意,300是50和60的整數(shù)倍。對(duì)于頻率為50 Hz的噪聲,一個(gè)周期為300/50 = 6個(gè)點(diǎn)。對(duì)于頻率為60 Hz的噪聲,一個(gè)周期為300/60 = 5個(gè)點(diǎn)。30是5和6的整數(shù)倍,因此可確保對(duì)整數(shù)個(gè)周期取平均值[2]。

      測(cè)量交流電壓時(shí),交流電壓的波形為連續(xù)遞增和遞減,然后轉(zhuǎn)換極性。交流電壓常用于家庭、實(shí)驗(yàn)室或工業(yè)設(shè)備,絕大多數(shù)電源線傳送交流電。通過(guò)測(cè)量交流電壓可測(cè)量信號(hào)的最大值、最小值,以及峰峰值。信號(hào)的峰峰值是電壓值的最大變化,從最大值至最小值。交流信號(hào)的電壓、電流和功率不是常量,會(huì)隨交流信號(hào)而變化。但是,通過(guò)Vrms(均方根)即交流電壓均方根(RMS)測(cè)量電壓、電流和功率時(shí),連接到120V交流信號(hào)源(VAC)的負(fù)載所產(chǎn)生的功率,與連接到120V直流信號(hào)源(VDC)的負(fù)載所產(chǎn)生的功率相同。通過(guò)RMS,直流信號(hào)的功率公式也適用于交流信號(hào)。對(duì)于正弦波,Vrms = Vpp/2的平方根[3]。

      1.2 加速度及頻率測(cè)量

      加速度是速度相對(duì)于時(shí)間變化的速率。加速計(jì)是一種用電壓表示加速度的傳感器,可用于測(cè)量振動(dòng)和沖擊,它通常以g為單位,將加速度轉(zhuǎn)化為電壓。例如,對(duì)于輸出為10 mV/g的傳感器,加速度為5g時(shí),輸出為50 mV[4]。

      測(cè)量模擬頻率,某些設(shè)備可通過(guò)頻率-電壓電路直接測(cè)量模擬頻率。然而,某些設(shè)備只能測(cè)量電壓,必須通過(guò)軟件算法將測(cè)量值轉(zhuǎn)換為頻率。某些用于測(cè)量模擬頻率的設(shè)備,通過(guò)電路可產(chǎn)生與測(cè)量信號(hào)具有相同頻率的觸發(fā)。每當(dāng)信號(hào)從“閾值電平--滯后”傳遞到閾值電平時(shí),將產(chǎn)生觸發(fā)。脈沖發(fā)生器將通過(guò)這些觸發(fā)在每個(gè)頻率周期生成一個(gè)脈沖,輸入頻率范圍用于設(shè)置脈沖的寬度。輸入頻率范圍增加時(shí),脈沖寬度將減小。脈沖序列將被轉(zhuǎn)換為直流信號(hào),其電平與脈沖序列的占空比成正比。脈沖發(fā)生時(shí),占空比是脈沖序列周期的分?jǐn)?shù)。直流信號(hào)的電壓與輸入頻率成正比,因此可換算為該頻率值。在波形的重復(fù)中,滯后是在波形閾值水平之下加窗,通常用于避免信號(hào)中的噪聲或抖動(dòng)造成的測(cè)量誤差。信號(hào)必須下降至低于閾值減去滯后值后,NI-DAQmx才認(rèn)為波形在閾值線開(kāi)始重復(fù)。對(duì)于無(wú)法直接測(cè)量頻率的設(shè)備,需要使用快速傅立葉變換(FFT)等軟件算法,將電壓轉(zhuǎn)換為頻率。無(wú)論使用現(xiàn)有VI和函數(shù)還是自行編程處理,采樣速率必須大于采樣信號(hào)最高頻率的兩倍[5]。

      2 NI-6002數(shù)據(jù)采集卡

      NI-6002數(shù)據(jù)采集卡,支持4通道差分輸入或8通道單段輸入,逐次逼近型ADC模擬采集分辨率為16位,最大采樣率為50kS/s。AI采集的FIFO緩沖支持2047個(gè)采樣值,采集觸發(fā)源可以是軟件觸發(fā)、PFI0硬件觸發(fā)和PFI1硬件觸發(fā)。模擬電壓可以輸入±10V電壓值,支持兩通道的DAC16位分辨率的模擬輸出,電壓輸出范圍是±10V,最大更新速率為5kS/s同步/通道,AO輸出的FIFO緩沖支持2047個(gè)采樣值,同樣支持軟件觸發(fā)、PFI0硬件觸發(fā)和PFI1硬件觸發(fā)。模擬輸出的驅(qū)動(dòng)電流為±5mA,邊沿斜率為3V/μs,輸出端的阻抗為0.2Ω。數(shù)字I/O有端口0、端口1和端口2,P0.0~P0.7支持靜態(tài)數(shù)字輸入或輸出,P1.0、P1.2、P1.3支持靜態(tài)數(shù)字輸入或輸出,而P1.1(PFI1)和P2.0(PFI0)。每個(gè)數(shù)字I/O可以通過(guò)編程,獨(dú)立配置為輸入或輸出。NI-6002同時(shí)支持計(jì)算器1通道計(jì)數(shù)器功能,分辨率為32位,可以進(jìn)行邊沿計(jì)數(shù),上升沿或下降沿的升值計(jì)數(shù),計(jì)數(shù)器接入源可以為PFI0或PFI1,最大輸入頻率為5MHz,最小電平脈沖寬度為100ns。NI-DAQ函數(shù)中集成了調(diào)用NI-6002的庫(kù)函數(shù)說(shuō)明及應(yīng)用例程,提供NI-DAQmx C Reference Help幫助、NI-DAQmx范例和NIDAQmx文檔。本文以模擬電壓輸入和模擬電壓輸出為例,介紹調(diào)用C語(yǔ)言實(shí)現(xiàn)單次操作和連續(xù)操作的過(guò)程[6-9]。

      3 模擬電壓輸入

      3.1 單次采集(內(nèi)部時(shí)鐘)

      NI-6002數(shù)據(jù)采集卡可以實(shí)現(xiàn)高速的多通道電壓采集,位于安裝目錄/Analog In/ Measure Voltage中的Acq-Int Clk工程是實(shí)現(xiàn)基于內(nèi)部時(shí)鐘的單次采集。具體程序如下:DAQmxCreateTask("",&taskHandle)

      //創(chuàng)建taskHandle采集任務(wù)的句柄

      DAQmx Create AIVoltage Chan(task Hand le,"Dev 1/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL)

      // Dev1/ai0是通道0,Dev1/ai1是通道1,以此類推;空白項(xiàng)是name To AssignToChannel給采集通道的命名;DAQmx_Val_Cfg_Default是標(biāo)準(zhǔn)終端配置,分為:RSE參考單端測(cè)量,NRSE非參考單端測(cè)量,DIFF差分輸入和PSEUDODIFF,默認(rèn)配置為RSE的參考單端測(cè)量;-10.0是采集電壓下限值,10.0是采集電壓上限值,對(duì)應(yīng)采集電壓的單位伏對(duì)應(yīng)DAQmx_Val_Volts。

      DAQmxCfgSampClkTiming(taskHandle,"",10000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,1000)

      //10000.0是fs硬件的采樣率,單位:Hz;針對(duì)數(shù)據(jù)的DAQmx_Val_Rising上升沿或者數(shù)據(jù)的下降沿DAQmx_Val_Falling觸發(fā);如果要達(dá)到明確的采樣個(gè)數(shù)配置DAQmx_Val_FiniteSamps,否則配置成DAQmx_Val_ContSamps進(jìn)行連續(xù)采樣。采樣個(gè)數(shù)達(dá)到1000時(shí),完成單次采樣操作。

      DAQmxStartTask(taskHandle)

      //啟動(dòng)采集任務(wù)

      DAQmxReadAnalogF64(taskHandle,1000,10.0,DAQmx_Val_Gro upByChannel,data,1000,&read,NULL)

      //1000是讀取上述采集數(shù)據(jù)的個(gè)數(shù),10.0是單次讀取操作超時(shí)時(shí)長(zhǎng),單位:s;采樣的數(shù)據(jù)不進(jìn)行交叉保存,需配置成DAQmx_Val_GroupByChannel;數(shù)據(jù)進(jìn)行保存的數(shù)組名稱:data,1000為數(shù)組的長(zhǎng)度大小。

      DAQmxStopTask(taskHandle);

      //結(jié)束采集任務(wù)

      DAQmxClearTask(taskHandle);

      //清除所創(chuàng)建的任務(wù)

      DAQmxGetExtendedErrorInfo(errBuff,2048)

      //如果上述操作出現(xiàn)錯(cuò)誤,將對(duì)應(yīng)錯(cuò)誤信息輸出。

      3.2 連續(xù)采集(內(nèi)部時(shí)鐘)

      NI-6002數(shù)據(jù)采集卡可以實(shí)現(xiàn)高速的多通道電壓采集,位于安裝目錄/Analog In/ Measure Voltage中的 Cont Acq-Int Clk工程是實(shí)現(xiàn)基于內(nèi)部時(shí)鐘的連續(xù)采集。具體程序如下:DAQmxCreateTask("",&taskHandle)

      //創(chuàng)建taskHandle采集任務(wù)的句柄

      DAQmx Create AIVoltage Chan(task Handle,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL)

      //配置采集通道

      DAQmxCfgSampClkTiming(taskHandle,"",10000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000)

      //初始化采樣配置參數(shù)

      DAQmxRegisterEveryNSamplesEvent(taskHandle,DAQmx_Val_Acquired_Into_Buffer,1000,0,EveryNCallback,NULL)

      //配置回調(diào)函數(shù)進(jìn)入采集數(shù)據(jù)

      DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL)//循環(huán)調(diào)用回調(diào)函數(shù)進(jìn)行采集

      CVICALLBACK EveryNCallback(TaskHandle taskHandle, int32 everyNsamplesEventType, uInt32 nSamples, void *callbackData)//回調(diào)函數(shù)結(jié)束

      int32 CVICALLBACK DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData)

      4 模擬輸出

      4.1 單次輸出和(內(nèi)部時(shí)鐘)

      NI-6002數(shù)據(jù)采集卡可以實(shí)現(xiàn)高速的多通道電壓采集,位于安裝目錄/ Analog Out / Generate Voltage中的 Volt Update工程是實(shí)現(xiàn)基于內(nèi)部時(shí)鐘的單次電壓輸出。具體程序如下:

      DAQmxCreateTask("",&taskHandle)

      //創(chuàng)建taskHandle采集任務(wù)的句柄

      DAQmxCreateAOVoltageChan(taskHandle,"Dev1/ao0","",-10.0,10.0,DAQmx_Val_Volts,"")

      //配置電壓輸出通道

      DAQmxStartTask(taskHandle)

      //開(kāi)始采集任務(wù)

      DAQmxWriteAnalogF64(taskHandle,1,1,10.0,DAQmx_Val_GroupByChannel,data,NULL,NULL)

      //將數(shù)值中預(yù)置的數(shù)據(jù)輸出至硬件通道

      DAQmxStopTask(taskHandle);

      //停止輸出任務(wù)

      DAQmxClearTask(taskHandle);

      //清空采集任務(wù)

      4.2 連續(xù)輸出(內(nèi)部時(shí)鐘)

      NI-6002數(shù)據(jù)采集卡可以實(shí)現(xiàn)高速的多通道電壓輸出,位于安裝目錄/ Analog Out / Cont Gen Volt Wfm-Int Clk中的ContGen-IntClk工程是實(shí)現(xiàn)基于內(nèi)部時(shí)鐘的連續(xù)輸出[10]。for(;i<1000;i++)

      {

      data[i]= 9.95*sin((double)i*2.0*PI/1000.0);

      }

      //初始化參數(shù)

      DAQmxCreateTask("",&taskHandle)

      //創(chuàng)建任務(wù)

      DAQmxCreateAOVoltageChan(taskHandle,"Dev1/ao0","",-10.0,10.0,DAQmx_Val_Volts,NULL)

      //初始化電壓輸出通道

      DAQmxCfgSampClkTiming(taskHandle,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000)

      //配置回調(diào)函數(shù)進(jìn)入電壓輸出

      DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL)

      //配置回調(diào)函數(shù)

      DAQmxWriteAnalogF64(taskHandle,1000,0,10.0,DAQmx_Val_GroupByChannel,data,NULL,NULL)

      //將數(shù)值中預(yù)置的數(shù)據(jù)輸出至硬件通道

      DAQmxStopTask(taskHandle);

      //停止輸出任務(wù)

      DAQmxClearTask(taskHandle);

      //清空采集任務(wù)

      DAQmxGetExtendedErrorInfo(errBuff,2048)

      //獲取輸出的錯(cuò)誤信息

      5 結(jié)論

      本文通過(guò)調(diào)用NI-DAQ的NI-6002的庫(kù)函數(shù),實(shí)現(xiàn)了NI-6002數(shù)據(jù)采集卡的調(diào)用。介紹了NI-6002的硬件功能特性和在NI-DAQmx平臺(tái)上的典型測(cè)量應(yīng)用,實(shí)現(xiàn)加速度頻率及交直流電壓的高速精確測(cè)量,并詳細(xì)闡述了模擬電壓輸入(單次操作和循環(huán)操作)及模擬電壓輸出(單次操作和循環(huán)操作)的4種工作模式的編程實(shí)現(xiàn)過(guò)程。針對(duì)上述應(yīng)用開(kāi)發(fā)出了上位機(jī)軟件,有效地提高了現(xiàn)場(chǎng)計(jì)量檢定效率和操作可靠性,達(dá)到了預(yù)期的設(shè)計(jì)效果。

      猜你喜歡
      采集卡時(shí)鐘噪聲
      高精度AD采集卡性能測(cè)試及評(píng)價(jià)方法研究
      別樣的“時(shí)鐘”
      古代的時(shí)鐘
      噪聲可退化且依賴于狀態(tài)和分布的平均場(chǎng)博弈
      控制噪聲有妙法
      面向數(shù)控機(jī)床的多通道傳感數(shù)據(jù)采集卡設(shè)計(jì)
      有趣的時(shí)鐘
      并行高速采樣在地震物理模擬采集中的應(yīng)用
      時(shí)鐘會(huì)開(kāi)“花”
      PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
      電子器件(2015年5期)2015-12-29 08:43:12
      普定县| 武平县| 田东县| 凌源市| 濉溪县| 新干县| 田东县| 内乡县| 馆陶县| 德安县| 昌乐县| 九江市| 吴江市| 绩溪县| 金门县| 塔河县| 徐水县| 西畴县| 四川省| 三亚市| 司法| 安多县| 梅州市| 扶绥县| 方城县| 灵川县| 黎平县| 仲巴县| 沙洋县| 长乐市| 苍山县| 内丘县| 精河县| 宁化县| 华容县| 巴林左旗| 武隆县| 大埔区| 桃园县| 逊克县| 广宗县|