您的位置 首页 测评

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

TDMS(TechnicalDataManagementStreaming)文件是NI主推的一种二进制记录文件,它兼顾了高速、易存取和方便等多种优势,能够在NI的各

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文件格局统筹了速度、逻辑安排、易用性等多个要素,在数据存储方面是一种十分不错的挑选。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/212394.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部