数据采集时的内存不足问题
时间:10-02
整理:3721RD
点击:
我在利用PXI-6251进行数据采集时,采样率设置为1MHZ,想把采集到的数据写到EXCEL中,但是VI运行一段时间后,显示如下图所示错误,是因为采样率过高的原因吗,有什么办法解决,可以将采样数据写到数据库中吗?请各位大侠指导下。
程序截图,看你编程是否合理。
是不是采集的太多,每次需要内存也太大,所以资源不够了。
应该是这个原因,请问有什么办法解决吗?
这是写入EXCEL的程序,运行一段时间就出现上图内存已满的情况。
可以试试跟你一直往xcl中写数据是否有关系,你每五分钟换一个文件试试,因为全部往一个xcl中写,到时候文件大了,你也打不开。
数据采集设置中,决定采集时缓冲区大小N的参数分别为:采样率f、单次循环执行时间T和每次循环读取的采样数n。由于缓冲区是环形的,程序在执行过程中不断从缓冲区读取数据,每读取一部分数据后缓冲区中读取之前的该部分将在读取之后变为可写,便于数据采集卡不段的从外部采集数据存储到环形缓冲区中。当缓冲区中的数据被填满即没有可写的部分后,将发生溢出,从而导致程序缓冲不足报错提示。设程序能正常运行时长为t,则t时间内数据采集卡采集的数据点数为
t时间内程序读取的数据点数为
使得缓冲区不溢出,则必须满足如下条件:
由于实际工程应用程序中,采样率f、单次循环执行时间T、每次循环读取的采样数n和缓冲区大小N都是可确定值,则表示 是关于t的一次函数,令 ,当K﹥0时,随着采集时间t的增加,t会增加到一个临界值t0,使得 ,故此种情况不能避免缓冲区溢出,我们可以通过设定程序报错时的时长t足够大来解决;当K≤0时, 恒成立,则可避免缓冲区溢出
你把写入表单文件放while外面试试