LabVIEW数据记录和存储(五)—TDMS文件

2015-08-04 10:06:29来源: vihome
TDMS(Technical Data Management Streaming)文件是NI主推的一种二进制记录文件,它兼顾了高速、易存取和方便等多种优势,能够在NI的各种数据分析或挖掘软件之间进行无缝交互,也能够提供一系列API函数供其它应用程序调用。
TDMS的逻辑结构分为三层:文件(File)、通道组(Channel Groups)和通道(Channels),如图 25所示,每一个层次上都可以附加特定的属性(Properties)。程序员可以非常方便地使用这三个逻辑层次定义测试数据,也可以任意检索各个逻辑层次的数据,这使得数据检索是有序的、方便存取的。


25 TDMS文件的逻辑结构
TDMS文件的内部结构(物理结构)如图 25所示,实际上程序员无需了解该部分内容就可以利用相关的API函数进行TDMS文件的读写,因此这里只作简单的介绍。TDMS内部结构的核心是segment,当数据被写入到segment中时实际上是新建了segment。各个segment中包含的主要数据段的含义如下所示,更详细的信息可以参考http://zone.ni.com/devzone/cda/tut/p/id/5696
  • ToC Bitmask:这是一个32位的整型数据段,它表示该segment是否包含meta data、raw data。
  • Version number:表示segment的版本,这可以确保兼容一些旧的TDMS文件版本。
  • Next segment offset:表示下一个segment的偏移字节。
  • Raw data offset:表示Raw data的偏移字节。
  • Meta Data:三个层次的属性存储字段。
  • Raw data:实际的raw data存储字段。
这种物理结构也就决定了TDMS文件的随机存取特性,当程序员只希望读取raw data而并不关注属性时,此时可以利用raw data offset直接获得raw data信息而无需关注Meta Data信息。正如前面所述,往TDMS中添加信息时实际上是添加了新的segment,因此无需关心segment之前的内容是什么,也就确保了写TDMS文件的速度与TDMS文件的大小无关,保证了高速存取。值得注意的是,TDMS物理结构中的segment与其三层次逻辑结构没有任何关系。可能一个通道对应着多个segment,也可能一个segment中包含多个通道。当把数据写入硬盘时就是产生一个segment,而把数据从硬盘中读取出来时也就是把一个个的segment内容读取出来。


25 TDMS文件的物理结构
TDMS文件格式在LabVIEW、LabWindows/CVI、Signal Express和DIAdem中均可以使用,也可以在Excel或Matlab中被调用。在LabVIEW中,TDMS文件的操作函数在Programming>>File I/O>>TDM Streaming选板中,如图 25所示。其使用方法比较简单,这里只给出简单的解释,具体的实例可以参考LabVIEW自带的Examples。
  • TDMS Open/Write/Read/Close:与文本文件和二进制文件的功能类似,程序员只需要牢记TDMS文件的三层次逻辑结构即可。
  • TDMS List Contents:列出TDMS文件的Groups和Channels名称,或者根据指定的Group列出其包含的Channels的名称。
  • TDMS Set Properties:设置TDMS文件、通道组或通道的属性。
  • TDMS Get Properties:获取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文件中的属性和数据,便于用户查看。


25 TDMS函数选板
当写完TDMS文件之后,LabVIEW会自动生成两个文件:*.tdms文件和*.tdms_index文件。前者为数据文件(或主文件),后者为索引文件(或头文件)。二者最大的区别在于索引文件不含raw data信息,而只包含属性等信息,这样可以增加数据检索的速度并且利于搜索TDMS文件。该文件是自动生成的,不需要程序员干预。
LabVIEW 2009进一步改进了对TDMS格式的支持,从1.0版本升级到2.0版本,并且提高了对高速流盘应用的支持,以及对DAQmx的应用支持,比上一版本的TDMS文件至少有4倍以上速度的提升。当然,TDMS也有一些缺点。比如速度上并没有win32 streaming API快,不支持删除某个通道或通道组,以及只支持Windows操作系统和VxWorks、Phar Lap等实时平台。总体而言,TDMS文件格式兼顾了速度、逻辑组织、易用性等多个因素,在数据存储方面是一种非常不错的选择。

关键字:LabVIEW  数据记录  存储  TDMS文件

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2015/0804/article_12587.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
数据记录
存储
TDMS文件

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved