LabVIEW连续采样与有限采样模式

简介: LabVIEW连续采样与有限采样模式

LabVIEW连续采样与有限采样模式


连续采样、N采样、或者其他采样模式的时候,各自都有什么样的含义?


每一种情况都需要一种合适的采样定时模式,而每一种采样定时都使得特定的DAQ编程流程更有意义。在开始之前,有必要介绍一下将测量转变成您计算机中的数字的两个步骤。


第一步是由DAQ硬件决定的。这一步是将输入的电压值实际转化为RAM缓冲区中比特的过程。这是由硬件中的模数转换器(ADC)实现的。


第二步是将缓冲区的比特读取出来的过程。这些比特在大多数情况下是按照浮点数的格式读取出来的,而这都是由计算机中的CPU和CPU中的程序实现的。


这两步发生的频率是连续采样和有限点采样的主要区别。


连续采样意味着DAQ硬件连续地按照采样时钟设定的速率,将输入的电压转化为缓冲区的比特。如果担心计算机或程序的延迟会导致漏掉采样的点,那么连续采样将会是一种好的选择。DAQ硬件采样的速度总是由采样时钟设置决定的,而这一部分的采集是完全由硬件实现的。硬件的采样是非常快速并且稳定的,同时软件的读取是异步的,并且是以一个不定的速率进行的。为了解决这个冲突,DAQ板卡采用了缓冲区的结构。


对于连续采样任务,当“开始任务”vi运行的时候,采集就开始了。由于它需要一定的开支以及与CPU的交互,这个vi只能允许防止在While循环的前面。之后,在一个循环内,DAQmx开始实际地读取缓冲区。因此解释了为什么一次要读很多的点,因为如果一次读得太少,就会引起缓冲区的溢出。DAQ驱动仅允许在一个连续采样中读取两个或更多的采样。如果发现每次只需要一个采样,那么就应该考虑一下重新设计程序或者采样模式了。如果设定的读取点数(每通道采样数)超过了缓冲区已经准备好的数据,那么DAQmx读取vi就会一直等待采样点数充足之后才结束。这会表现为图形刷新过程中会有一定的延迟,但是并不意味着有采样点被遗漏了。采样点数设置为-1,则会在每次读取尽可能多的采样点。


N采样(也叫有限点采样)用在已知需要的总共采样点数情况下的采集任务,尤其是用在带触发的采样任务中。例如,可能需要在某个触发信号开始之后采集10秒钟长度的数据,就可以使用有限点采样。有限点的模式仅仅缓冲调用“开始任务”这个VI的时候。DAQmx函数将从缓冲区中将这些数据读取出来,因此需要设定采样的数目N。这种任务与While循环或者状态机是相互匹配的。


但是和连续采样不同,必须在每个循环中调用“开始任务”,然后进行“读取”,接下来“停止任务”。否则,否则DAQ驱动会继续尝试读取数据的,尽管采样需求已经结束了,这样就会得到错误。需要注意的是,每次采样之间的时间间隔是受软件定时的。如果需要精确控制时序的问题,建议使用连续采样。


通过硬件定时或者软件定时进行单采样和之前讲到的N采样是一致的。如果需要对每次来的数据进行处理或者反应,并且并不十分关心精准的计时,那么这种采样方式是比较值得推荐的。比如,有个电池正在缓慢地放电,整个过程耗时几分钟或几个小时。在此的过程中,每次电压低于某个设定的数值,就发送一封邮件给控制人员。这种情况就适合使用单采样。通常情况下,采样在“开始任务”被调用的时候开始。如果是硬件定时的,需要考虑一下硬件同步问题。采样点会在“开始任务”VI被调用后的下一个采样时钟被采集。


选择合适的采样方式,进行正确的编程,就会编写出最有效的程序,也会避免错误信息的出现。


db3f6b66566dd5a8c18003fb770fbfcc.png

编辑

添加图片注释,不超过 140 字(可选)

LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序

上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们。

相关文章
|
安全 程序员 编译器
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
5773 0
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
人工智能 自然语言处理 算法
科研论文翻译神器!BabelDOC:开源AI工具让PDF论文秒变双语对照,公式图表全保留
BabelDOC 是一款专为科学论文设计的开源AI翻译工具,采用先进的无损解析技术和智能布局识别算法,能完美保留原文格式并生成双语对照翻译。
2949 67
科研论文翻译神器!BabelDOC:开源AI工具让PDF论文秒变双语对照,公式图表全保留
|
数据采集
LabVIEW写入可快速加载的TDMS文件
LabVIEW写入可快速加载的TDMS文件
565 1
|
数据采集 安全 测试技术
LabVIEW调用DLL时需注意的问题
LabVIEW调用DLL时需注意的问题
967 0
|
负载均衡 安全 网络安全
西门子S7-1200编程实例,移位和循环移位指令如何使用?
西门子S7-1200的移位指令包括左移位指令和右移位指令,循环移位指令包括循环左移位指令和循环右移位指令。
西门子S7-1200编程实例,移位和循环移位指令如何使用?
|
数据可视化 数据挖掘 Python
"揭秘Visium HD黑科技:空间数据分析大揭秘,可视化与整合的艺术之旅!"
【8月更文挑战第20天】近年来,空间转录组技术,特别是Visium HD技术,因其高分辨率与高通量特性,在单细胞生物学领域受到广泛关注。本文通过Python演示了Visium HD数据的全流程分析:从数据准备(读取表达矩阵和空间坐标)、空间数据分析(计算基因表达统计量)、数据可视化(绘制基因表达热图和空间点分布图),到多样本数据整合,为读者提供了实用的分析指南,助力深入探索空间转录组学的奥秘。
480 4
汇编语言中的条件跳转和无条件跳转(je,jz,jmp)
汇编语言中的条件跳转和无条件跳转(je,jz,jmp)
1185 1
|
索引
LabVIEW加载和使用树型控件项目中的定制符号
LabVIEW加载和使用树型控件项目中的定制符号
505 0