寻找一些帮助的Labview数据收集程序。如果我能收集2毫秒的数据在8千赫(给出16个数据点)每通道(我正在收集4个模拟通道的数据与国家仪器数据采集委员会)。DAQ-MX采集任务给出了一个由4个波形组成的一维阵列.
如果我不显示数据,我可以完成所有的计算时间大约是2ms,如果处理循环落后于集合循环,也可以。更新Labview前面板中的图表会造成不可接受的延迟。我们不需要非常快地更新显示,可能在5-10赫兹就足够了。但我不知道该怎么安排。
我现在的Labview有三个平行回路
数据使用队列从集合循环传递到其他循环。Labview的例子给了我一些想法,但我被困住了。
如有任何建议、参考和意见,将不胜感激。
谢谢
阿齐姆
后续问题
eaolson建议我重新取样数据,以供显示之用。数据来自DAQ读取的数据是一个一维波形阵列.因此,我需要以某种方式建立或连接每个通道的波形数据。然后在更新前面板图表之前重新对数据进行采样。我认为最好的方法是对数据进行排队,并在显示循环中排好堆栈构建的队列,并根据屏幕分辨率重新采样数据,然后更新图表。还有别的办法吗。我将查看(NI Labview论坛)[http://forums.ni.com/ni/board?board.id=170]获得更多信息,如eaolson所建议的。
更新
发布于 2008-12-06 05:25:41
你的总体架构描述听起来很可靠,但是.对于任何非平凡的图形来说,达到30赫兹是很有挑战性的。在试着实现之前,一定要确保你真的需要这个比率。优化到该级别可能需要一些时间。
应该有用的引用:
你可以推迟面板更新。这使前面板不会刷新,直到您准备好这样做为止,允许您在后台缓冲数据,并且只偶尔绘制数据。
你应该知道(A)同步显示的事。此选项允许对显示速率进行某种控制。
有一些关于超速执行的一般意见可用。
在熔岩论坛上有一个(有点过时的)关于执行速度的报告。谷歌周围的熔岩论坛是一个伟大的想法,如果你需要优化你的速度。
发布于 2008-12-06 16:17:35
电视更新频率约为30赫兹。比这更快的是人的眼睛所能看到的。30赫兹应该是在最大的更新率,你应该考虑一个显示器,而不是起点。考虑一个5-10赫兹的更新率。
LabVIEW图将最新的数据附加到它们存储和显示的历史数据中,并同时显示所有数据。在8 kHz时,每秒获得至少8000个数据点。这意味着支持该图形的数组必须不断调整大小以保存新数据。此外,即使您的图形是1000像素宽,这意味着您显示8个数据点每屏幕像素。每个像素通常没有任何理由显示多个数据点。如果您确实需要快速更新速率,请少绘制数据。创建一个数组来保存历史数据,并且只绘制每个N个数据点,其中N被选中,所以您只绘制了几百个点。
记住,循环可以以不同的速率运行。以比数据收集率低得多的频率运行写到磁盘循环可能是令人满意的,也许每隔几秒钟运行一次。
如果可以的话,尽量避免属性节点。它们在UI线程中运行,这比大多数其他执行都慢。
除此之外,在没有看到代码或更多细节的情况下,很难提供大量的实质性建议。也可以考虑在NI LabVIEW论坛问你的问题。那里有很多乐于助人的人。
https://stackoverflow.com/questions/345893
复制相似问题