7.2.4 TDM流

更新于 2026年10月10日 版权声明
7.2.4 TDM流

使用TDM流VI和函数将波形数据和属性写入二进制测量文件。TDM流子选板如图7-37所示。

1.打开TDMS

打开一个扩展名为.tdms的文件。也可以使用该函数新建一个文件或替换一个已存在的文件。TDMS打开函数的节点图标及端口定义如图7-38所示。

图示

图7-37 TDM流子选板

图示

图7-38 TDMS打开函数

操作:选择操作的类型。可以指定为下列5种类型之一。

图示 open(0):打开一个要写入的.tdms文件。

图示 open or create(1):创建一个新的或打开一个已存在的要进行配置的.tdms文件。

图示 create or replace(2):创建一个新的或替换一个已存在的.tdms文件。

图示 create(3):创建一个新的.tdms文件。

图示 open(read-only)(4):打开一个只读类型的.tdms文件。

2.写入TDMS

将数据流写入指定.tdms数据文件。所要写入的数据子集由组名称输入和通道名输入指定。TDMS写入函数的节点图标及端口定义如图7-39所示。

图示

图7-39 TDMS写入函数

图示 组名称输入:指定要进行操作的组名称。如果该输入端没有连接,默认为无标题。

图示 通道名输入:指定要进行操作的通道名。如果该输入端没有连接,通道将自动命

名。如果数据输入端连接波形数据,则LabVIEW将使用波形的名称。

3.读取TDMS

打开指定的.tdms文件,并返回由数据类型输入端指定类型的数据。TDMS读取函数的节点图标及端口定义如图7-40所示。

4.关闭TDMS

关闭一个使用TDMS打开函数打开的.tdms文件。TDMS关闭函数的节点图标及端口定义如图7-41所示。

图示

图7-40 TDMS读取函数

图示

图7-41 TDMS关闭函数

5.列出TDMS内容

列出由TDMS文件输入端指定的.tdms文件中包含的组和通道名称。TDMS列出内容函数的节点图标及端口定义如图7-42所示。

6.设置TDMS属性

设置指定.tdms文件的属性、组名称或通道名。如果组名称或通道名输入端有输入,属性将被写入组或通道。如果组名称或通道名无输入,属性将变为文件标识。TDMS设置属性函数的节点图标及端口定义如图7-43所示。

图示

图7-42 TDMS列出内容函数

图示

图7-43 TDMS设置属性函数

7.获取TDMS属性

返回指定.tdms文件的属性。如果组名称或通道名输入端有输入,函数将返回组或通道的属性。如果组名称和通道名无输入,函数将返回特定.tdms文件的属性。TDMS获取属性函数的节点图标及端口定义如图7-44所示。

8.刷新TDMS

刷新系统内存中的.tdms文件数据以保持数据的安全性。TDMS刷新函数的节点图标及端口定义如图7-45所示。

图示

图7-44 TDMS获取属性函数

图示

图7-45 TDMS刷新函数

9.TDMS文件查看器

打开由文件路径输入端指定的.tdms文件,并将文件数据在TDMS查看器窗口中显示出来。TDMS文件查看器函数的节点图标及端口定义如图7-46所示。

图示

图7-46 TDMS文件查看器函数

将.tdms文件的路径和TDMS文件查看器VI的文件路径输入相连,并运行该VI,将出现“TDMS文件查看器”窗口,如图7-47所示。该窗口用于读取和分析.tdms文件和属性数据。

图示

图7-47 “TDMS文件查看器”窗口

该窗口包括以下部分。

图示 文件内容:列出.tdms文件的属性和通道数据。选择要分析的值,以及出现在文件内容列表右侧的数据。

图示 属性:包含显示指定.tdms文件属性数据的表格。

图示 值(表格):包含显示指定.tdms文件原始数据值的图表。

图示 模拟值(图形):包含.tdms数据的图形。

10.TDMS碎片整理

整理由文件路径指定的.tdms文件的数据。如果.tdms数据很乱,可以使用该函数进行清理,从而提高性能。TDMS碎片整理函数的节点图标及端口定义如图7-48所示。

图示

图7-48 TDMS碎片整理函数

11.高级TDMS

高级TDMS VI和函数可用于对.tdms文件进行高级I/O操作(例如异步读取和写入)。通过此类VI和函数可读取已有.tdms文件中的数据,写入数据至新建的.tdms文件,或替换已有.tdms文件的部分数据。也可使用此类VI和函数转换.tdms文件的格式版本,或新建未换算数据的换算信息。

高级TDM子选板如图7-49所示。

图示

图7-49 高级TDM子选板

1)高级TDMS打开:按照主机使用的字节顺序打开用于读写操作的.tdms文件。该VI也可用于创建新文件或替换现有文件。不同于“TDMS打开”函数,高级TDMS打开函数不创建.tdms文件。如使用该函数打开.tdms文件,且该文件已有对应的.tdms_index文件,该函数可删除.tdms_index文件。高级TDMS打开函数的节点图标及端口定义如图7-50所示。

图示

图7-50 高级TDMS打开函数

2)高级TDMS关闭:关闭通过高级TDMS打开函数打开的.tdms文件,释放TDMS预留文件大小保留的磁盘空间。高级TDMS关闭函数的节点图标及端口定义如图7-51所示。

3)TDMS设置通道信息:定义要写入指定.tdms文件的原始数据中包含的通道信息。通道信息包括数据布局、组名、通道名、数据类型和采样数。TDMS设置通道信息的节点图标及端口定义如图7-52所示。

图示

图7-51 高级TDMS关闭函数

图示

图7-52 TDMS设置通道信息

4)TDMS创建换算信息(VI):创建.tdms文件中未缩放数据的缩放信息。该VI将缩放信息写入.tdms文件。必须手动选择所需要的多态实例。

TDMS创建换算信息(线性、多项式、热电偶、RTD、表格和应变)如图7-53所示。(https://www.daowen.com)

图示

图7-53 TDMS创建换算信息(VI

5)TDMS设置下一个写入位置(函数):配置高级TDMS异步写入或高级TDMS同步写入函数开始重写.tdms文件中已有的数据。如果高级TDMS打开的禁用缓冲?输入为TRUE,则设置的下一个写入位置必须为磁盘扇区大小的倍数,其节点图标及端口定义如图7-54所示。

6)TDMS设置下一个读取位置(函数):配置高级TDMS异步读取函数读取.tdms文件中数据的开始位置。如果高级TDMS打开的禁用缓冲?输入为TRUE,则设置的下一个读取位置必须为磁盘扇区大小的倍数,其节点图标及端口定义如图7-55所示。

图示

图7-54 TDMS设置下一个写入位置

图示

图7-55 TDMS设置下一个读取位置

7)TDMS预留文件大小(函数):为写入操作预分配磁盘空间,防止文件系统碎片。函数使用.tdms文件时,其他进程无法访问该文件,其节点图标及端口定义如图7-56所示。

8)TDMS转换格式(VI):将.tdms文件的格式从1.0转换为2.0,或者相反。该VI依据目标版本中指定的新文件格式版本指定重写.tdms文件,如图7-57所示。

图示

图7-56 TDMS预留文件大小

图示

图7-57 TDMS转换格式 (VI

9)TDMS高级同步I/O (VI):用于同步读取和写入.tdms文件。

① 高级TDMS同步写入.tdms文件。同步写入数据至指定的.tdms文件。高级TDMS同步写入的节点图标及端口定义如图7-58所示。

② 高级TDMS同步读取。读取指定的.tdms文件并以数据类型输入端指定的格式返回数据。高级TDMS同步读取的节点图标及端口定义如图7-59所示。

图示

图7-58 高级TDMS同步写入函数

图示

图7-59 高级TDMS同步读取

10)TDMS高级异步I/O:用于异步读取和写入.tdms文件。

① TDMS配置异步写入 (函数):为异步写入操作分配缓冲区并配置超时值。写超时的值适用于所有后续异步写入操作,其节点图标及端口定义如图7-60所示。

② 高级TDMS异步写入(函数):异步写入数据至指定的.tdms文件。该函数可以同时执行多个在后台执行的异步写入操作。使用TDMS获取异步写入状态函数可以查询暂停的异步写入操作的数量,其节点图标及端口定义如图7-61所示。

图示

图7-60 TDMS配置异步写入

图示

图7-61 高级TDMS异步写入

③ TDMS获取异步写入状态 (函数):获取高级TDMS异步写入函数创建的尚未完成的异步写入操作的数量,其节点图标及端口定义如图7-62所示。

④ TDMS生成随机数据:可以使用生成的随机数据去测试高级TDMS VI或函数的性能。在标记测试时利用从数据获取装置中生成的数据,使用该VI进行仿真,其节点图标及端口定义如图7-63所示。

图示

图7-62 TDMS获取异步写入

图示

图7-63 TDMS生成随机数据

⑤ TDMS配置异步读取(函数):为异步读取操作分配缓冲区并配置超时值。读超时的值适用于所有后续异步读取操作,其节点图标及端口定义如图7-64所示。

⑥ TDMS开始异步读取(函数):开始异步读取过程。此前异步读取过程完成或停止前,无法配置或开始异步读取过程。通过TDMS停止异步读取函数可停止异步读取过程,其节点图标及端口定义如图7-65所示。

图示

图7-64 TDMS配置异步读取

图示

图7-65 DMS开始异步读取

⑦ TDMS停止异步读取(函数):停止初始新的异步读取。该函数不忽略完成的异步读取或取消尚未完成的异步读取操作。通过该函数停止异步读取后,可以通过高级TDMS异步读取函数读取完成的异步读取操作,其节点图标及端口定义如图7-66所示。

⑧ TDMS获取异步读取状态(函数):获取包含高级TDMS异步读取函数要读取数据的缓冲区的数量,其节点图标及端口定义如图7-67所示。

图示

图7-66 TDMS停止异步读取

图示

图7-67 TDMS获取异步读取状态(函数

⑨ 高级TDMS异步读取(函数):读取指定的.tdms文件并以数据类型输入端指定的格式返回数据。该函数可以返回此前读入缓冲区的数据,缓冲区通过TDMS配置异步读取函数配置。该函数可以同时执行多个异步读取操作,其节点图标及端口定义如图7-68所示。

图示

图7-68 高级TDMS异步读取

11)TDMS高级数据引用I/O(函数):用于与数据交互,也可以使用这些函数从“.tdms”文件异步读取数据并将数据直接置于DMA缓存中。

① TDMS配置异步写入(数据引用):配置异步写入操作的最大数量以及超时值。超时的值适用于所有后续写入操作。使用TDMS高级异步写入(数据引用)之前,必须使用该函数配置异步写入,其节点图标及端口定义如图7-69所示。

② 高级TDMS异步写入(数据引用):该数据引用输入端指向的数据异步写入指定的“.tdms”文件。该函数可以在后台执行异步写入的同时发出更多异步写入指令。还可以查询挂起的异步写入操作的数量,其节点图标及端口定义如图7-70所示。

图示

图7-69 TDMS配置异步写入

图示

图7-70 高级TDMS异步写入(数据引用

③ TDMS获取异步写入状态(数据引用):返回高级TDMS异步写入(数据引用)函数创建的尚未完成的异步写入操作的数量,其节点图标及端口定义如图7-71所示。

④ TDMS配置异步读取(数据引用):配置异步读取操作的最大数量、待读取数据的总量以及异步读取的超时值。使用TDMS高级异步读取(数据引用)之前,必须使用该函数配置异步读取,其节点图标及端口定义如图7-72所示。

图示

图7-71 TDMS获取异步写入状态(数据引用

图示

图7-72 TDMS配置异步读取(数据引用

⑤ 高级TDMS异步读取(数据引用):从指定的“.tdms”文件中异步读取数据,并将数据保存在LabVIEW之前的存储器中。该函数在后台执行异步读取的同时发出更多异步读取指令,其节点图标及端口定义如图7-73所示。

⑥ TDMS获取异步读取状态(数据引用):返回高级TDMS异步读取(数据引用)函数创建的尚未完成的异步读取操作的数量,其节点图标及端口定义如图7-74所示。

图示

图7-73 高级TDMS异步读取(数据引用

图示

图7-74 TDMS获取异步读取状态(数据引用

文件格式版本2.0包括文件格式1.0的所有特性以及下列特性。

图示 可以写入间隔数据至.tdms文件。

图示 在.tdms文件中写入数据可以使用不同的endian格式或字节顺序。

图示 不使用操作系统缓冲区写入.tdms数据,可以提高性能,特别是在冗余磁盘阵列(RAID)中。

图示 也可以使用NI-DAQmx在.tdm文件中写入带换算信息的元素数据。

图示 通过位连续数据的多个数据块使用单个头,文件格式版本2.0可优化连续数据采集的写入性能,可提升单值采集的性能。

图示 文件格式版本2.0支持.tdms文件异步写入,可以使应用程序在写入数据至文件的同时处理内存中的数据,无须等待写入函数结束。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)