微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > 我做的数据采集显示保存分析vi的效率疑问

我做的数据采集显示保存分析vi的效率疑问

时间:12-13 整理:3721RD 点击:
我是用的自制的板卡,编制驱动dll,然后在lv里调用。
现在基本功能已经成行,困扰我的是效率问题:
当时为了省事,从dll里传到lv的数据是32位浮点的,上面进行运算的也全是浮点数
采样率并不高,每个通道1.6k S/s,6个通道
6路波形数据实时显示在同一个chart里,显示0.1s里的五个周波
现在发现这个0.1s变化的太慢,估计是现实中准确计时的1.5倍左右
采集数据的时钟是硬件实现的,应该比较精确,关键就是怕存储的时候来不及
总之现在波形的模样有点怪,不是标准的正弦信号。
今天又把分析部分(fft变换后的幅频、相频和功率谱分析)封装成了一个subvi
效率就更低下了,估计延时是现实中的3倍了!
由于我对lv的数据流控制理解的不是很深刻,所以我担心我大量使用while循环
还有sequence结构,会不会也导致了效率的低下?
总之,现在的实际运行效果很差,CPU占用率100%!
稍微动一下鼠标都显困难。
我机子配置:P3 667 392M内存,Win2000
请大家帮分析一下,究竟怎么样才能改善一下效率?
bow~~~
.131

while和sequence的使用是可能导致你的机器性能低下!
你可以看看《labview高级程序设计》这本书!
.243

极有可能你
的WHILE没有加延时
加上就好了
其他不用担心
.10

延时我是加了的,但是还是效率比较低
不加的话鼠标都没响应了
.131

还是把我做的这个vi放上来吧
我对lv的数据流控制确实不在行,觉得怪怪的
数据回显那部分明显的影响了总体运行速度,因为我是把它做成一个while循环放在
主体Sequence外面的。我做了一个小实验:
如果没有数据回显这个while循环,那么数据显示30s后实际用时34s,
而有了这个循环,数据显示30s后实际用时48s!
具体功能就如这个vi所示,包含了数据采集、显示、存储、分析、回显。
请各位高手帮看看结构需要怎么改变才能保证效率?
不是说很差的机子都可以运行的很好吗?
说明一下:在Sequence第2帧里的那个while循环,100ms的延时是要求精确的
因为要实现每个循环显示160个数据,1s内要10个循环(100ms一次)正好达到同步显示
数据,因为采样率是 1600S/s。
其他几个地方的延时要求不那么严格。
如果这个vi做好了,也可以当作一个自制板卡做数据采集分析的例子吧
再次谢谢大家!
.131

 FFTASpectrum.vi

图形显示非常耗cpu的,你把所有的图形都删掉,不显示再看看!
因为你用系统的时间来定时的,一旦图形显示占着cpu的话,时间肯定不准确了。
.243

显示是我做这个vi最重要的一部分啊,就是不知道怎么提高显示效率
这个实验我可以做,只能等明早了,呵呵
.131

有人看过我上传的vi吗?
有什么建议啊?
.134

各位牛牛出手吧,火烧眉毛啊
.134

看来我错怪chart和graph了
我这个vi在全部删除了图形显示后,CPU占用率依然有100%!
看来确实是结构上的问题
到底该怎么解决啊?
我正在查阅相关资料,也请大家继续关注,谢谢!
**

缺驱动dll.没法帮你看。
.72

即使给了dll,也用不了啊,板卡是自行设计的
就看看这个vi整体结构合不合理?
**

附件

 波形.vi

刚刚down了你的程序看了看,你同时用了两个while循环这样子效率就很低
不知道你能不能将两个while循环合并成一个这样也许就好一些了

你在每个while循环中间都加上延时效率就高了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top