是的,这是一个TDMS已知的问题,TDMS会将同一个channel中的数据存在一起,默认地认为他们在时间上是连续的。
暂时的一个解决方法是:如果方便,请把不同时间采集的数据放到不同的channel中。
谢谢你的解答!
我要采的就有16个模拟输入通道,要把不同时间采集的数据放到不同的channel中,存储和读取感觉都很不好处理。
之前对TDMS了解并不是很多,不知道有这个问题。或许只能换存储的文件格式?一般有哪些文件类型不会存在这个问题?
其他文件格式是否会有这样的问题,我也没有试过,不过可以肯定的是TDMS是LabVIEW自带文件格式中存储格式最为优良、最为高效的一种。
如果使用TDMS ,还有其他几种方法:1)把每个通道存储为TDMS的一个group,然后每次采集的数据作为TDMS的channel,这样你就有16个tdms的group;2)还是一个通道存到一个tdms的channel中,如果每次采集的数据量一定,那么可以把每次采集的数据的起始时间作为一个属性存下来,但是在读取数据的时候可能要稍微做点编程工作,把他们拆分开来。
我现在是将每一段数据存成一个group,其中每个group里存了16个channel的数据。
读的时候采用for循环,将每个group里的数据读出。这样好像就解决了存储的波形的时间的问题。
不知这样的方式是否可用。
读数据时,遇到了一些麻烦。从for循环出去之后,如果自动索引启用的话,信号就成了二维数组,要是关闭自动索引,就只有最后一段波形输出了,所以还得想想办法。
总之,谢谢你的建议!