标题：TDMS
简介
TDMS (Technical Document Management System)符合国际航空运输电子数据交换标准，并采用“客户机/应用服务器/数据服务器”和互联网发布（Web Delivery) 的体系结构技术，为全新的标准化管理流程系统。
重点介绍
TDMS电子化的集中管理模式，彻底消除了纸张人工管理模式的种种弊端，提高了资料的可用性、适航性和利用率，减少了人为的差错。不仅减轻了维修部门人员的工作强度、改善了工作流程，还降低资料购置及管理费用、减少飞机停场时间、降低维修费用，为航空公司带来明显的直接经济效益的同时，也带来更大的间接的经济效益，管理效益和社会效益。这种管理手段上的革命性突破，更新了传统的理念。
TDMS的建设符合航空业技术资料管理的发展要求，使南航技术资料管理达到世界先进水平。
TDMS（维修技术资料管理系统），该系统曾获得南航2001年科技进步一等奖及国家民航总局科技进步二等奖。
先进技术
TDMS是国内航空公司首家采用电子化维修的数据系统，该系统采用ATA电子技术资料标准(ATA2200)，在借鉴国外航空公司经验的基础上，由南航计算中心在2000年开发完成。该系统覆盖了整个南航的机务维修和飞机维修基地，覆盖了所有机型，给南航提供了机务可持续发展的标准平台，提高了维修技术资料的准确性、有效性和适航标准，使南航在技术资料管理方面达到了世界先进水平。 
TDMS融合了Client/ApplicationServer/DB Server三层结构，以及Web/Browser两种体系，应用系统运行于南航内部Intranet上，波音、空中客车、发动机生产厂家及FAA、CAAC等部门提供的各种技术资料和技术通告，经过系统提供的数据转换/校验功能，可转换成统一的格式并装载到系统中。利用这些格式规范的技术资料，机务维修部门可以实现资料的版本管理、修订、出版、网上发布、服务通告（SB/SL）的全电子化评估，工程指令（EO）、工卡及维修方案（MS）编写审核出版、指令执行情况的统计以及飞机远程的诊断。 
TDMS分为资料管理/发布、SB/EO工作流管理、工卡/工作流管理、MS系统和接口、飞机维修支持五大模块。其中，飞机维修支持系统（AMSS）是一个维修专家系统，它在功能上相对独立于TDMS的其他模块，该系统基于飞机机载计算机和地面支持网络，通过地、空数据链所形成的网络，利用地面的飞机维修信息数据库、技术支持、决策管理系统，及时处理飞机机载设备所采集的各类实时状态数据，建立地面与飞机的人机交互系统。AMSS系统建立故障数据库，根据模式诊断原则，建议新发生故障的维护步骤，使飞机的远程诊断成为可能，从而减少了故障排除时间（TDMS系统功能结构如下图所示）。
使用效果
南航采用TDMS后，资料管理正在逐步过渡到24小时在线服务模式，同时保证了EO、工卡等重要维修资料的及时有效性，还减少了人为差错。根据维修部门的统计，仅A320和B777两种机型使用TDMS后，一年可以节省纸张及微缩胶卷费用约22万美元; 维修手册的修订和更新周期从7天缩短到3天; 根据定检级别，每架飞机平均每次定检至少节约10个工时，按照目前80架飞机的维修工时费计算，每年可节约维修费用近230万元。
LabVIEW数据记录文件格式—TDMS
TDMS（Technical Data Management Streaming）文件是NI主推的一种二进制记录文件，它兼顾了高速、易存取和方便等多种优势，能够在NI的各种数据分析或挖掘软件之间进行无缝交互，也能够提供一系列API函数供其它应用程序调用。
TDMS的逻辑结构分为三层：文件（File）、通道组（Channel Groups）和通道（Channels），每一个层次上都可以附加特定的属性（Properties）。程序员可以非常方便地使用这三个逻辑层次定义测试数据，也可以任意检索各个逻辑层次的数据，这使得数据检索是有序的、方便存取的。
TDMS文件的内部结构（物理结构）如图 25所示，实际上程序员无需了解该部分内容就可以利用相关的API函数进行TDMS文件的读写，因此这里只作简单的介绍。TDMS内部结构的核心是segment，当数据被写入到segment中时实际上是新建了segment。各个segment中包含的主要数据段的含义如下所示。
&Oslash;  ToC Bitmask：这是一个32位的整型数据段，它表示该segment是否包含meta data、raw data。
&Oslash;  Version number：表示segment的版本，这可以确保兼容一些旧的TDMS文件版本。
&Oslash;  Next segment offset：表示下一个segment的偏移字节。
&Oslash;  Raw data offset：表示Raw data的偏移字节。
&Oslash;  Meta Data：三个层次的属性存储字段。
&Oslash;  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内容读取出来。
TDMS文件格式在LabVIEW、LabWindows/CVI、Signal Express和DIAdem中均可以使用，也可以在Excel或Matlab中被调用。在LabVIEW中，TDMS文件的操作函数在Programming>>File I/O>>TDM Streaming选板中。其使用方法比较简单，这里只给出简单的解释，具体的实例可以参考LabVIEW自带的Examples。 &Oslash;  TDMS Open/Write/Read/Close：与文本文件和二进制文件的功能类似，程序员只需要牢记TDMS文件的三层次逻辑结构即可。
&Oslash;  TDMS List Contents：列出TDMS文件的Groups和Channels名称，或者根据指定的Group列出其包含的Channels的名称。
&Oslash;  TDMS Set Properties：设置TDMS文件、通道组或通道的属性。
&Oslash;  TDMS Get Properties：获取TDMS文件、通道组或通道的属性。
&Oslash;  TDMS Flush：刷新所有TDMS文件在内存中的数据，即立即将所有的TDMS数据写入硬盘（创建新的segments）。
&Oslash;  TDMS Defragment：整理TDMS文件中的存储碎片，当TDMS文件较大时，利用该函数可以提高数据存取的性能。
&Oslash;  TDMS Create Scaling Information：将TDMS中的数据创建Scaling信息，当采集到原始数据需要使用如y=ax+b等线性、多项式或者各种传感器的转换关系时，可以使用该函数直接改变TDMS文件中某些通道的数据值（该改变是不可逆的，无法删除Scaling信息）。
&Oslash;  TDMS File Viewer：TDMS文件查看器，该VI可以非常直观地以树形方式列出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文件格式兼顾了速度、逻辑组织、易用性等多个因素，在数据存储方面是一种非常不错的选择。[1]