那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于NI 數(shù)據(jù)采集器的QT C++應(yīng)用程序開發(fā)測試輸出模擬電壓信號

liangyuhc ? 來源:戀 ? 作者:戀 ? 2023-06-26 17:19 ? 次閱讀

前言:
最近項目需要用到NI的數(shù)據(jù)采集設(shè)備,之前的項目在使用NI的采集設(shè)備時更多用的labview編寫相關(guān)程序,也能夠快速搭建相關(guān)的采集平臺,但是最近更多的使用的QT c++,前期的的其他工作均是有QT完成,所以這次采用QT C++平臺編寫相關(guān)程序,僅對QT調(diào)用NI設(shè)備API的配置做記錄。

NI-DAQmx安裝:
NI官網(wǎng)下載DAQmx。

poYBAGSZV4yAKLT8AACT32dFSTg281.png

根據(jù)需要下載相應(yīng)的版本,我下載的是最新版本。

下載完成之后,安裝需要選擇 ANSI C Support。

pYYBAGSZV5eALvaLAADOPogITKo327.png

新建QT工程:
工程可選擇32位編譯器或者64位編譯器均可,添加外部庫和頭文件。網(wǎng)上很多人說需要選擇32位編譯器是因為沒有找到相應(yīng)的64位庫導(dǎo)致。

poYBAGSZV6CAbVknAAB0HaJfcFU811.png

64位庫路徑:

C:Program Files (x86)National InstrumentsSharedExternalCompilerSupportClib64msvc

32位庫路徑:

C:Program Files (x86)National InstrumentsSharedExternalCompilerSupportClib32msvc

測試代碼:
測試代碼是應(yīng)用的NI提供的示例代碼。

#include
#include
#include
#include
#define DAQmxErrChk(functionCall) if( DAQmxFailed(error=(functionCall)) ) goto Error; else
#define PI 3.1415926535
int32 CVICALLBACK DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int32 error=0;
TaskHandle taskHandle=0;
float64 data[1000];
char errBuff[2048]={'?'};
int i=0;
for(;i<1000;i++)
// data[i] = 0+9.95*sin((double)i*2.0*PI/50.0);
data[i]=10-10*(double)i/1000;
/*********************************************/
// DAQmx Configure Code
/*********************************************/
DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandle,"Dev1/ao0","",-10.0,10.0,DAQmx_Val_Volts,NULL));
DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000));
DAQmxErrChk (DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL));
/*********************************************/
// DAQmx Write Code
/*********************************************/
DAQmxErrChk (DAQmxWriteAnalogF64(taskHandle,1000,0,10,DAQmx_Val_GroupByChannel,data,NULL,NULL));
/*********************************************/
// DAQmx Start Code
/*********************************************/
DAQmxErrChk (DAQmxStartTask(taskHandle));
printf("Generating voltage continuously. Press Enter to interruptn");
getchar();
Error:
if( DAQmxFailed(error) )
DAQmxGetExtendedErrorInfo(errBuff,2048);
if( taskHandle!=0 ) {
/*********************************************/
// DAQmx Stop Code
/*********************************************/
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
}
if( DAQmxFailed(error) )
printf("DAQmx Error: %sn",errBuff);
printf("End of program, press Enter key to quitn");
getchar();
return a.exec();
}
int32 CVICALLBACK DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData)
{
int32 error=0;
char errBuff[2048]={'?'};
// Check to see if an error stopped the task.
DAQmxErrChk (status);
Error:
if( DAQmxFailed(error) ) {
DAQmxGetExtendedErrorInfo(errBuff,2048);
DAQmxClearTask(taskHandle);
printf("DAQmx Error: %sn",errBuff);
}
return 0;
}
測試結(jié)果:

poYBAGSZV6yAKI-VAAAa5mCpipU403.png


代碼運行正常。

pYYBAGSZV8CAGZlpAA2HdoMgmOo848.png

輸出正常。
————————————————
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NI
    NI
    +關(guān)注

    關(guān)注

    19

    文章

    1123

    瀏覽量

    100611
  • 模擬電壓
    +關(guān)注

    關(guān)注

    6

    文章

    64

    瀏覽量

    18358
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2114

    瀏覽量

    73854
  • Qt
    Qt
    +關(guān)注

    關(guān)注

    1

    文章

    308

    瀏覽量

    38065
收藏 人收藏

    評論

    相關(guān)推薦

    低成本NI-USB-6009數(shù)據(jù)采集卡,數(shù)據(jù)采集,提供Labview使用指導(dǎo)

    `NI USB-600914位, 48 kS/s低價位多功能數(shù)據(jù)采集卡(二手95新,898元,全網(wǎng)最低,現(xiàn)貨100件) · 8路模擬輸入通道(14位分辨率,48 kS/s) ·2路模擬輸出
    發(fā)表于 08-15 10:58

    關(guān)于NI myRIO模擬信號數(shù)據(jù)采集

    我使用NI myRIO進行模擬信號數(shù)據(jù)采集程序很簡單,如下:然后由外部函數(shù)信號發(fā)生發(fā)出1K
    發(fā)表于 11-08 17:19

    不是NI公司的數(shù)據(jù)采集器,怎么加入labview進行采集呢?

    不是NI公司的數(shù)據(jù)采集器,怎么加入labview進行采集呢?
    發(fā)表于 11-08 19:08

    基于QT/Embedded的可變情報板應(yīng)用程序開發(fā)

    基于QT/Embedded的可變情報板應(yīng)用程序開發(fā) QT是奇趣科技推出的一種多平臺的C++圖形用戶界面
    發(fā)表于 03-03 09:36 ?793次閱讀

    基于QT/Embedded的可變情報板應(yīng)用程序開發(fā)

    基于QT/Embedded的可變情報板應(yīng)用程序開發(fā)  0引言   QT是奇趣科技推出的一種多平臺的C++圖形用戶界面
    發(fā)表于 03-09 10:39 ?930次閱讀

    低成本的U盤數(shù)據(jù)采集器設(shè)計

    本文以帶有片上A/D轉(zhuǎn)換C8051F340處理和USB接口芯片CH375為基礎(chǔ),設(shè)計了一款可對100 kHz以下的低頻模擬信號進行10位深度采樣的低成本
    發(fā)表于 05-11 11:07 ?1682次閱讀
    低成本的U盤<b class='flag-5'>數(shù)據(jù)采集器</b>設(shè)計

    基于C++數(shù)據(jù)采集器的設(shè)計與實現(xiàn)

    數(shù)據(jù)采集器是普遍用在超市、商場、各大小企業(yè)之中的數(shù)據(jù)采集設(shè)備。本文主要介紹如何基于C++語言來設(shè)計數(shù)據(jù)采集器,并根據(jù)數(shù)據(jù)庫的基本原理,成功設(shè)
    發(fā)表于 04-15 19:34 ?0次下載
    基于<b class='flag-5'>C++</b>的<b class='flag-5'>數(shù)據(jù)采集器</b>的設(shè)計與實現(xiàn)

    C#教程之數(shù)據(jù)采集器讀寫

    C#教程之數(shù)據(jù)采集器讀寫,很好的C#資料,快來學習吧。
    發(fā)表于 04-21 09:52 ?41次下載

    跨平臺C++圖形用戶界面應(yīng)用程序QT4中文教程手冊

    跨平臺C++圖形用戶界面應(yīng)用程序QT4中文教程手冊
    發(fā)表于 08-29 14:22 ?0次下載

    通用采集器電壓信號采集電路(基于FPGA)

    機載通用采集器用于機載環(huán)境下各類常規(guī)信號采集。不同于專用采集器測試任務(wù)單一固定,通用采集器被測
    發(fā)表于 11-01 14:35 ?21次下載
    通用<b class='flag-5'>采集器</b><b class='flag-5'>電壓</b>量<b class='flag-5'>信號</b><b class='flag-5'>采集</b>電路(基于FPGA)

    什么是數(shù)據(jù)采集器數(shù)據(jù)采集器的分類有哪些

    數(shù)據(jù)采集器是一種具有現(xiàn)場實時數(shù)據(jù)采集、處理功能的自動化設(shè)備。一般具備實時采集、自動存儲、即時顯示、即時反饋、自動處理、自動傳輸?shù)裙δ埽瑸楝F(xiàn)場數(shù)據(jù)的真實性、有效性、實時性、可用性提供了保
    發(fā)表于 03-11 17:41 ?5590次閱讀

    多通道數(shù)據(jù)采集器怎么看數(shù)據(jù)

    多通道數(shù)據(jù)采集器是一種廣泛應(yīng)用于工業(yè)自動化、科研實驗、醫(yī)療設(shè)備等領(lǐng)域的設(shè)備,它可以同時采集多個通道的模擬信號或數(shù)字信號,并將采集到的
    的頭像 發(fā)表于 07-01 16:50 ?876次閱讀

    多通道數(shù)據(jù)采集器采集什么

    通道數(shù)據(jù)采集器的功能、特點、應(yīng)用領(lǐng)域以及發(fā)展趨勢。 一、多通道數(shù)據(jù)采集器的功能 模擬信號采集:多通道數(shù)據(jù)采集器可以
    的頭像 發(fā)表于 07-02 09:02 ?870次閱讀

    多通道數(shù)據(jù)采集器的作用有哪些

    數(shù)據(jù)采集器的作用、特點、應(yīng)用領(lǐng)域以及發(fā)展趨勢。 一、多通道數(shù)據(jù)采集器的作用 實時數(shù)據(jù)采集 多通道數(shù)據(jù)采集器可以實時采集各種
    的頭像 發(fā)表于 07-02 09:04 ?867次閱讀

    多通道數(shù)據(jù)采集器的特點和功能有哪些

    通道數(shù)據(jù)采集器的特點 高精度:多通道數(shù)據(jù)采集器具有高精度的模擬-數(shù)字轉(zhuǎn)換(ADC),可以精確地采集模擬
    的頭像 發(fā)表于 07-02 09:05 ?1070次閱讀
    网上棋牌游戏| 12bet备用| 真人游戏大全| 龙门县| 百家乐官网博娱乐平台| 百家乐游戏的玩法| 大发888娱乐城开户| 蓝山县| 百家乐官网导航| 百家乐代理合作| 龙口市| 百家百家乐官网视频游戏世界| 澳门百家乐娱乐平台| 乐百家| 百家乐官网一般多大码| 澳门百家乐开户投注| 大发888游戏平台88| 百家乐官网必胜课| 最大的百家乐网站| 尊龙备用网址| 澳门百家乐官网的玩法技巧和规则 | 线上百家乐赢钱| 香港六合彩论坛| 百家乐官网龙虎台布多少钱| 百家乐送18元彩金| 贵族娱乐城| 百家乐官网单机版的| 百家乐牡丹娱乐城| 百家乐官网投注翻倍方法| 百家乐技巧运气| 顶级赌场dj| 蓝盾百家乐官网赌城| 全讯网12580a.com| 门赌场百家乐官网的规则| 百家乐赌场技巧论坛| 博乐百家乐官网游戏| 澳门百家乐必胜看路| 前郭尔| 新葡京百家乐现金网| 皇冠网888799| 网上百家乐哪里开户|