微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > Labview关于大数据(约50M,速率500KS/s,持续时间100s)实时采集和存储的问题

Labview关于大数据(约50M,速率500KS/s,持续时间100s)实时采集和存储的问题

时间:10-02 整理:3721RD 点击:
发送的信号500KS/s,持续时间100s,想要实时采集并存储这些数据,实际中我总是遇到系统内存已满,不能完成此操作的问题,我在百度,论坛中都搜过相关问题,可是实例少之又少,以至于我还是一头雾水,我的想法是能不能一边采集一边存储,这样会对内存要求少一点,小弟跪谢论坛中大神给把把脉.

每采集一次就存储一次不就好了

可以边采集便存储,我这可以实现1s存储20-200k个浮点数(更高的存储速度没有测试),可以连续运行20min,存储的文件建议用labview自带的tdms格式存储,用txt格式存储超过10M的数据读数据的时候就会很卡。

并不能使用一个变量来保存这个数据,labview内对于数组的大小是有限制的,实测大概是10M以上就会出问题。所以可以如楼上所说使用tdms存储,边采集边存,采集100ms或者数据大于1M存储一次。而不是直接采集1s再存

现在已经可以实现一边采集一边存储,用的是TDMS存储格式,跪谢谢大神花时间回复我的问题

现在可以实现边采集边存储了,采样速率500KS/s可以持续5Min,采回来的数据放到硬盘上,不会影响Labview本身的内存,真的很感谢您能在百忙之中回复我的问题,您的建议也是启发了我

您说的很对,Labview中一个数组大约在20M个数时就会非常卡,而且会出现内存不足的现象,想要用一个变量保存大于20M的数据是不可能,我用了tdms格式存储,直接存储到硬盘上,我是一边采集一边存储,到是还没有找到您说的采够100ms或者是数据大于某一个阈值就存储一次的方法···多谢您抽时间回答的我的问题,

当采样和传输的数据速率很高的时候入你所说的500k,而你的接收存储端的速度又比较慢,则会出现丢数据的情况。所以通过硬件或软件上会设计一个缓冲区来先保存采集到的数据,这个缓冲区通常都不会很大。因此我感觉如果500k下持续采集和保存而不丢数据几乎是不可能的。采集卡在设计的时候会设计一个FIFO缓冲来应付高速采集和低速存储。
      所以希望小编说明一下这个500k的设备是否有缓存。如果不存在请赐教边采边保存的具体方法

您好,我这儿实际上:
发送端是重复速率500KHz,总数为5M个电压值的电压信号,同时也有和它同步的时钟发出,这样一个周期就是10s,发送端所加的电压是用来进行光调制的···
而接收端是采用外部时钟触发采集,采集速率同样是500KHz,这样保证来一个时钟采一个点,我然后重复这个过程,把采集到数据实时以TDMS文件存在硬盘里面,
之前的程序是运行10s结束,5M的数据量Labview完全可以处理,现在的情况是想加大数据量···
您说的意思,我理解的是发送的速率大于采集速率,那么一定会有数据丢失,发送的卡我用的是USB-6259,接收的卡是PCI-6111,您说的那个硬件上的缓冲区,我也了解过一些,但是感觉理解还不是很透彻···我在仔细看看采集卡关于您说的FIFO缓冲区···然后再联系您···
有些词说的不专业,也不知道您能不能理解我说的意思,
真的很感谢您关注我的问题

这个我就明白了,labview内有个内存调节,如果不使用变量共用地址,那么每次读取时都会重新开辟一个内存空间(印象中是这样的),时间长了自然就会出现内存不足。我用研华PCI卡是同步10M,两通道,采样率和数据比你这个大得多。建议使用内存控制(编程--应用程序控制---内存控制---总是复制)如果是循环的话就使用移位寄存器,目的是让lv只使用我们定义的这个数组空间。谢谢小编的解惑

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

网站地图

Top