这里给你提供一种思路,因为不清楚你的连续采集的循环每次间隔多少?我薯数这里假定为50ms,则一小时是3600s,即通过i来控制,键哪当达到72000时稿手码,说明经过一个小时,则新创建一个文件,用于保存新的一小时的数据,文件以当前时间命名,存储在D盘Data路径下。程序框图如下:
程序如下:(8.6版本)
先建立一个子VI,将相对时间转换成数值,然后生成数组导入XY图的X轴"value"是当前计时的时间,“value”=“set time"时,"time up" = T,中途可以暂停棚键。(选择函数液租)
2、按下开始,程序开始采集数据并实时显示出来,根据采集的数据量调整X轴(时间)的范围。采集到设定的数据链埋巧量后便停止采集,并保存数据。(数组插入、引用属性节点)
数据保存为TDMS文件(创建文件路径,TDMS文件写入)
3、通过XY图的一些事件来查看曲线上每个时间点对应的值。(事件语句应用)
4、创建一个子VI用于读取文件夹内的所有文件名(递归文件列表,匹配模式)
用选卡控件建立2中查询方式,查询结果存放在列表框内
匹配符合条件的文件名,显示在列表框内(范围选定)
双击列表框内的文件名,读取对应的文件,并显示出来在XY图中。(TDMS文件读取)
基本的数据流是:打开TDMS文件(这个vi自带文件对话框很方便)-------读取TDMS文件(组名和通道名是你写入这个文件的时候设定的)---------fft vi(将读到数据直接连上,给个采样率)。扒谈这个方法和简单,但是有个问春握碰题,如果你的数据量很大的话,内存可能不够用。解决的办法是分段读取数据,用一个while循环(读取TDMS文件vi可以设皮派定歧视位置的,文件结束后跳出循环),这样不能算所有数据的频谱,如果非要算所有数据的频谱,您只能换个更牛叉的电脑啦!希望对你有帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)