实时数据采集中数学运算的问题
时间:12-13
整理:3721RD
点击:
我用labview通过488卡控制计数器采集数据,每10s采集一次数据,然后对采集的数据进行如下处理:每次要求对最近十次采集的数据进行一些诸如最小二乘法、阿伦方差之类的计算。
我现在是先把采集的数据存到硬盘中,然后再从硬盘中把全部数据读到一个数组中(没想到什么别的方法),通过数组来找到最近的十个数据(在找数据的过程中,还要完成数据挑选,例如,每间隔20s、50s等任意时间间隔的数据),然后再进行计算,最后再把结果存到另一个文中。
这样短时间测试没问题,但是长时间程序就会很慢(因为我还要通过开关来控制多台这样的计数器来进行同样的工作),在C里面有队列queue和栈stack,不知道labview中有没有类似的东西,因为我想要是把最近十次的数据放到队列里是不是就可以加快运行速度啊?因为这样就不用每次都从硬盘中读数据了。大家看这样行不行啊,我今天找了半天也没发现类似的东西,看大家有没有好的方法啊
还有一个问题,应为我是对多台计数器通过开关进行同样的操作和运算。是不是我的数据处理部分就可以只做一个子VI啊?我现在是有几个计数器就做几个一样的子VI,这样修改起来太麻烦了,我原来也试着用一个子VI的,结果老出问题。所以想看看大家谁有这方面的经验,谢谢了
我的信箱是 ysuwlg@163.com
希望收到您的指导
我现在是先把采集的数据存到硬盘中,然后再从硬盘中把全部数据读到一个数组中(没想到什么别的方法),通过数组来找到最近的十个数据(在找数据的过程中,还要完成数据挑选,例如,每间隔20s、50s等任意时间间隔的数据),然后再进行计算,最后再把结果存到另一个文中。
这样短时间测试没问题,但是长时间程序就会很慢(因为我还要通过开关来控制多台这样的计数器来进行同样的工作),在C里面有队列queue和栈stack,不知道labview中有没有类似的东西,因为我想要是把最近十次的数据放到队列里是不是就可以加快运行速度啊?因为这样就不用每次都从硬盘中读数据了。大家看这样行不行啊,我今天找了半天也没发现类似的东西,看大家有没有好的方法啊
还有一个问题,应为我是对多台计数器通过开关进行同样的操作和运算。是不是我的数据处理部分就可以只做一个子VI啊?我现在是有几个计数器就做几个一样的子VI,这样修改起来太麻烦了,我原来也试着用一个子VI的,结果老出问题。所以想看看大家谁有这方面的经验,谢谢了
我的信箱是 ysuwlg@163.com
希望收到您的指导
如果一个子VI会同时被多个VI调用,应该在VI property里钩上reentrant属性
.192
谢谢您的回答,我会尽快在程序中试验的,有问题会再相您请教的
多谢了
一年才31755个数据,不算大不算大,现在计算机的能力还是够强的
如果对内存在意而对执行速度不感兴趣的话,可以不勾这个 :)
.149
用measurement studio吧,在内存里开一个缓冲,30k个数据一点都不多,我10分钟就要
存60k多个数据,同时还在视频压缩也没什么的