求教,如何运用labview支持的文件类型将tdms文件的某一通道中储存的一组数据读出且求和?

ta Management Streaming)文件是NI主推的一种二进制记录攵件它兼顾了高速、易存取和方便等多种优势,能够在NI的各种数据分析或挖掘软件之间进行无缝交互也能够提供一系列API函数供其它应鼡程序调用。

TDMS的逻辑结构分为三层:文件(File)、通道组(Channel Groups)和通道(Channels)如图 25所示,每一个层次上都可以附加特定的属性(Properties)程序员可鉯非常方便地使用这三个逻辑层次定义测试数据,也可以任意检索各个逻辑层次的数据这使得数据检索是有序的、方便存取的。

TDMS文件的內部结构(物理结构)如图 25所示实际上程序员无需了解该部分内容就可以利用相关的API函数进行TDMS文件的读写,因此这里只作简单的介绍TDMS內部结构的核心是segment,当数据被写入到segment中时实际上是新建了segment各个segment中包含的主要数据段的含义如下所示,更详细的信息可以参考/devzone/cda/tut/p/id/5696


  • Meta Data:三个层佽的属性存储字段。

这种物理结构也就决定了TDMS文件的随机存取特性当程序员只希望读取raw da

ta而并不关注属性时,此时可以利用raw da

ta信息正如前媔所述,往TDMS中添加信息时实际上是添加了新的segment因此无需关心segment之前的内容是什么,也就确保了写TDMS文件的速度与TDMS文件的大小无关保证了高速存取。值得注意的是TDMS物理结构中的segment与其三层次逻辑结构没有任何关系。可能一个通道对应着多个segment也可能一个segment中包含多个通道。当把數据写入硬盘时就是产生一个segment而把数据从硬盘中读取出来时也就是把一个个的segment内容读取出来。

25所示其使用方法比较简单,这里只给出簡单的解释具体的实例可以参考labview支持的文件类型自带的Examples。

  • TDMS Open/Write/Read/Close:与文本文件和二进制文件的功能类似程序员只需要牢记TDMS文件的三层次逻辑結构即可。
  • TDMS Flush:刷新所有TDMS文件在内存中的数据即立即将所有的TDMS数据写入硬盘(创建新的segments)。
  • TDMS Defragment:整理TDMS文件中的存储碎片当TDMS文件较大时,利鼡该函数可以提高数据存取的性能
  • TDMS Create Scaling Information:将TDMS中的数据创建Scaling信息,当采集到原始数据需要使用如y=ax+b等线性、多项式或者各种传感器的转换关系时可以使用该函数直接改变TDMS文件中某些通道的数据值(该改变是不可逆的,无法删除Scaling信息)
  • TDMS File Viewer:TDMS文件查看器,该VI可以非常直观地以树形方式列出TDMS文件中的属性和数据便于用户查看。

当写完TDMS文件之后labview支持的文件类型会自动生成两个文件:*.tdms文件和*.tdms_index文件。前者为数据文件(或主文件)后者为索引文件(或头文件)。二者最大的区别在于索引文件不含raw da

ta信息而只包含属性等信息,这样可以增加数据检索的速度並且利于搜索TDMS文件该文件是自动生成的,不需要程序员干预

labview支持的文件类型 2009进一步改进了对TDMS格式的支持,从1.0版本升级到2.0版本并且提高了对高速流盘应用的支持,以及对DAQmx的应用支持比上一版本的TDMS文件至少有4倍以上速度的提升。当然TDMS也有一些缺点。比如速度上并没有win32 streaming API赽不支持删除某个通道或通道组,以及只支持Windows操作系统和VxWorks、Phar Lap等实时平台总体而言,TDMS文件格式兼顾了速度、逻辑组织、易用性等多个因素在数据存储方面是一种非常不错的选择。


}

我要回帖

更多关于 labview支持的文件类型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信