首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在高速率采集多通道数据时定期更新Labview图

如何在高速率采集多通道数据时定期更新Labview图
EN

Stack Overflow用户
提问于 2008-12-06 04:16:24
回答 2查看 11.6K关注 0票数 1

寻找一些帮助的Labview数据收集程序。如果我能收集2毫秒的数据在8千赫(给出16个数据点)每通道(我正在收集4个模拟通道的数据与国家仪器数据采集委员会)。DAQ-MX采集任务给出了一个由4个波形组成的一维阵列.

如果我不显示数据,我可以完成所有的计算时间大约是2ms,如果处理循环落后于集合循环,也可以。更新Labview前面板中的图表会造成不可接受的延迟。我们不需要非常快地更新显示,可能在5-10赫兹就足够了。但我不知道该怎么安排。

我现在的Labview有三个平行回路

  1. 用于数据收集的定时循环。
  2. 用于分析和处理的循环
  3. 将数据缓存到磁盘作为TDMS文件的低优先级循环

数据使用队列从集合循环传递到其他循环。Labview的例子给了我一些想法,但我被困住了。

如有任何建议、参考和意见,将不胜感激。

谢谢

阿齐姆

后续问题

eaolson建议我重新取样数据,以供显示之用。数据来自DAQ读取的数据是一个一维波形阵列.因此,我需要以某种方式建立或连接每个通道的波形数据。然后在更新前面板图表之前重新对数据进行采样。我认为最好的方法是对数据进行排队,并在显示循环中排好堆栈构建的队列,并根据屏幕分辨率重新采样数据,然后更新图表。还有别的办法吗。我将查看(NI Labview论坛)[http://forums.ni.com/ni/board?board.id=170]获得更多信息,如eaolson所建议的。

更新

  1. 将图形的可接受更新率更改为5-10 to (感谢下流和eaolson)
  2. 磁盘缓存循环是一个低优先级的循环(谢谢eaolson)
  3. 谢谢你的回复。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-06 05:25:41

你的总体架构描述听起来很可靠,但是.对于任何非平凡的图形来说,达到30赫兹是很有挑战性的。在试着实现之前,一定要确保你真的需要这个比率。优化到该级别可能需要一些时间。

应该有用的引用:

你可以推迟面板更新。这使前面板不会刷新,直到您准备好这样做为止,允许您在后台缓冲数据,并且只偶尔绘制数据。

你应该知道(A)同步显示的事。此选项允许对显示速率进行某种控制。

有一些关于超速执行的一般意见可用。

在熔岩论坛上有一个(有点过时的)关于执行速度的报告。谷歌周围的熔岩论坛是一个伟大的想法,如果你需要优化你的速度。

票数 5
EN

Stack Overflow用户

发布于 2008-12-06 16:17:35

电视更新频率约为30赫兹。比这更快的是人的眼睛所能看到的。30赫兹应该是在最大的更新率,你应该考虑一个显示器,而不是起点。考虑一个5-10赫兹的更新率。

LabVIEW图将最新的数据附加到它们存储和显示的历史数据中,并同时显示所有数据。在8 kHz时,每秒获得至少8000个数据点。这意味着支持该图形的数组必须不断调整大小以保存新数据。此外,即使您的图形是1000像素宽,这意味着您显示8个数据点每屏幕像素。每个像素通常没有任何理由显示多个数据点。如果您确实需要快速更新速率,请少绘制数据。创建一个数组来保存历史数据,并且只绘制每个N个数据点,其中N被选中,所以您只绘制了几百个点。

记住,循环可以以不同的速率运行。以比数据收集率低得多的频率运行写到磁盘循环可能是令人满意的,也许每隔几秒钟运行一次。

如果可以的话,尽量避免属性节点。它们在UI线程中运行,这比大多数其他执行都慢。

除此之外,在没有看到代码或更多细节的情况下,很难提供大量的实质性建议。也可以考虑在NI LabVIEW论坛问你的问题。那里有很多乐于助人的人。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/345893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档