当前位置:网站首页>LabVIEW连续采样与有限采样模式
LabVIEW连续采样与有限采样模式
2022-06-27 22:06:00 【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被调用后的下一个采样时钟被采集。
选择合适的采样方式,进行正确的编程,就会编写出最有效的程序,也会避免错误信息的出现。

编辑
添加图片注释,不超过 140 字(可选)
LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序
上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们。
LabVIEW连续采样与有限采样模式 - 北京瀚文网星科技有限公司 (bjcyck.com)
边栏推荐
- 互联网的发展为产业的变革和转型提供了新的解决方案
- Translation (4): matching rules for automatic text completion
- 夏日的晚会
- [读书摘要] 学校的英文阅读教学错在哪里?--经验主义和认知科学的PK
- The development of the Internet provides new solutions for industrial transformation
- Alchemy (7): how to solve problems? Only reconstruction
- The Internet industry has derived new technologies, new models and new types of industries
- [idea] idea formatting code skills
- Chenyun pytorch learning notes_ Build RESNET with 50 lines of code
- Matlb| optimal configuration of microgrid in distribution system based on complex network
猜你喜欢

MySQL分表查询之Merge存储引擎实现

Chenyun pytorch learning notes_ Build RESNET with 50 lines of code

夏日的晚会

HCIP/HCIE Routing&Switching / Datacom备考宝典系列(十九)PKI知识点全面总结(公钥基础架构)

数据仓库入门介绍

翻译(5): 技术债务墻:一种让技术债务可见并可协商的方法

flutter系列之:flutter中的变形金刚Transform
![Software engineering job design (1): [personal project] implements a log view page](/img/95/0c3f0dde16d220ddecb5758a4c31e7.png)
Software engineering job design (1): [personal project] implements a log view page
![Using two stacks to implement queues [two first in first out is first in first out]](/img/de/07297816f1a44d41389bb45d012c80.png)
Using two stacks to implement queues [two first in first out is first in first out]
![[idea] idea formatting code skills](/img/06/38079517e901bc48dc4ca0f8cc63fe.jpg)
[idea] idea formatting code skills
随机推荐
SQL reported an unusual error, which confused the new interns
线程池实现:信号量也可以理解成小等待队列
ValidateRequest=”false” 是做什么的「建议收藏」
现代编程语言:Rust (铁锈,一文掌握钢铁是怎样生锈的)
吴恩达《机器学习》课程总结(13)_聚类
CharSequence初探
Software engineering job design (1): [personal project] implements a log view page
[VIM] tutorial, common commands, efficient use of vim editor
Thread pool implementation: semaphores can also be understood as small waiting queues
RNA SEQ introduction practice (I): upstream data download, format conversion and quality control cleaning
Arduino uno realizes simple touch switch through direct detection of capacitance
智慧风电 | 图扑软件数字孪生风机设备,3D 可视化智能运维
证券注册账户安全吗,会有风险吗?
[黑苹果系列] M910x完美黑苹果系统安装教程 – 2 制作系统U盘-USB Creation
A summer party
internship:业务流程初识
CRTMP视频直播服务器部署及测试
华泰证券在网上开户安全吗?
用两个栈实现队列[两次先进后出便是先进先出]
Feign implements path escape through custom annotations