前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件编程||DAQNavi高速采集StreamingAI

软件编程||DAQNavi高速采集StreamingAI

作者头像
SHOUT
发布2022-05-31 16:01:56
1.6K0
发布2022-05-31 16:01:56
举报

DAQNavi的API充分利用了组件思想,以DeviceCtrlBase为基类,派生出模拟输入(AI)、模拟输出(AO)、数字输入或数字输出和计数器的其他功能组件。

WaveformAiCtrl是模拟输入中重要的类,用于Buffered AI。Buffered AI又称高速采集AI,它可以高速传输大量数据,因此采集速度(采样频率)、数据量等是 Instant AI无法满足的。WaveformAiCtrl提供了一些属性和方法来操作这些批量数据的保存和传输。驱动将监控缓冲AI转换的进程,并发送适当的事件来通知用户当前的转换状态,因此在WaveformAiCtrl类中也定义了一些Buffered AI的事件。Buffered AI包括Streaming BufferedAI和One BufferedAI,Streaming BufferedAI为连续采集数据,One BufferedAI为采集一批数据后停止。

Streaming Buffered AI程序开发框图如下:

编程步骤

步骤1:为缓冲的AI功能创建一个“WaveformAiCtrl”。

WaveformAiCtrl::Create();

步骤2:设置通知事件处理程序,通过它我们可以有效地了解操作状态。

addDataReadyHandler为采集导数据时事件,通过此事件获取数据。其他事件为addOverrunHandler,addCacheOverflowHandler,addStoppedHandler

步骤3:根据设备编号或设备描述选择设备,并指定访问模式。在这个例子中,我们使用了ModeWrite模式,这样我们就可以完全控制设备,包括配置、采样等。使用LoadProfile获取采集卡配置参数。

步骤4:参数获取。

使用LoadProfile从xml配置文件(该文件可通过DAQNavi配置工具对采集卡参数设置后保存或通过程序设置)中取出startChannel,channelCount,sectionCount,sectionLength参数用于设置采集的缓冲区。

步骤5:开始采集。

wfAiCtrl->Prepare();wfAiCtrl->Start();

步骤6:主程序进入等待循环,

同时通过在步骤2中创建的OnDataReadyEvent事件处理程序获得数据,如下:

OnDataReady(void * sender, BfdAiEventArgs * args),args->Count为采集到的数据数量,用sender指向该采集卡的数据缓冲区。

步骤7:需要人工停止采集则退出等待循环停止操作。wfAiCtrl->Stop();

步骤8:关闭设备,释放所有分配的资源。

wfAiCtrl->Dispose()

程序变量

程序运行如下

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能制造预测性维护与大数据应用 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档