关闭

[DAQmx]定时与触发的学习

659人阅读 评论(0) 收藏 举报
分类:
    问题描述:数据采集中的定时非常重要,即决定了多久采集一个点的这个时间间隔,触发用于外部信号达到某项要求时会程序控制自动执行某些动作。
    DAQmx的定时:分为软件定时和硬件定时。硬件定时可以使用DAQmx中的“采样时钟”函数来设置硬件定时。软件定时则由编程时控制采集的定时,如用循环结构中放置延时函数来实现。

数据采集的缓冲区:

在使用DAQmx API函数控制数据采集卡进行数据采集时,会在PC创建一个数据缓冲区,之前设置的通道采样数大小一般是1000,有时设置4096,偶尔会遇到“设置的采样数超出数据缓冲区”之类的错误,现在来看看DAQmx具体是如何分配数据缓冲区大小的。

(1)有限采样:DAQmx划分的缓冲区大小与每通道采样数的数值相等。

(2)连续采样:DAQmx划分的缓冲区大小与每通道采样数的数值相等,但是当每通道采样数的值小于下表所列的值时,DAQmx使用下表中的值:

采样率

缓冲区大小

未指定速率

10 kS

0-100 S/s

1 kS

101-10,000 S/s

10 kS

10,001-1,000,000 S/s

100 kS

>1,000,000 S/s

1 MS

从上表中,初略可见当设置采样率低于10kS/s时,缓冲区至少可以存放1s内采集的数据量,当采样率高于10kS/s时,缓冲区能存放的数据量就远小于1s内采集的数据了,这种情况下需1s内进行缓冲区数据的多次读,防止缓冲区数据被覆盖掉。

(3)当定时函数的采样模式设置为硬件定时单点采集时,NI-DAQmx不会创建缓冲区。

NI-DAQmx API是使用循环缓冲区的,即读取掉缓冲区前面部分的数据后,当采集的数据到达缓冲区尾部时,会将新采集的数据放到缓冲区开始数据已被读取的区域。DAQmx数据传输方式多采用DMA方式实现。

 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:240097次
    • 积分:3750
    • 等级:
    • 排名:第8542名
    • 原创:287篇
    • 转载:16篇
    • 译文:0篇
    • 评论:18条
    最新评论