LabVIEW写入可快速加载的TDMS文件

news2024/11/26 4:35:42

LabVIEW写入可快速加载的TDMS文件

TDMS文件格式的设计目的是在尽可能快地读写数据的同时仍保持足够的灵活性来适应采集过程中通道数量和采样率的变化。 但是数据读写速度快的文件未必可快速加载。 TDMS文件是一个完全的二进制文件,由多个部分数据段组成,在写入文件时每个数据段叠加在另一个数据段之上。 这些数据段包含分配到一个或多个通道数据值缓冲区以及/或关联至一个或多个层次的元数据属性。 通常,TDMS文件包含的数据段越少,加载速度越快。

每次写入或读取TDMS文件时便会生成一个 TDMS_Index 文件,该文件包含二进制数据段的分布图。 之后如果读取同一个TDMS文件,系统会询问TDMS_Index文件以确定正确的比特位置来读取TDMS文件的每个通道和属性集合。 一般来说,如果生成的TDMS_Index文件大小与TDMS文件相似,则该TDMS文件被“碎片化”,也就是说该文件包含的数据段多于所需的数据段,因此加载速度变慢。 无论在采集过程中还是采集后,均可采用多种方法来最小化多余数据段的数量,以达到最大的TDMS文件读取速度。

以最少碎片写入TDMS文件

首先,如果使用NI数据采集硬件来采集数据,则可考虑使用NI-DAQmx TDMS写入功能,因为该功能可自动写入未碎片化的TDMS文件。 如果使用NI LabVIEW采集数据通道,则可从 TDMS高级选项 选板中选择VI,以写入碎片化程度最小的TDMS文件。 如果使用标准TDMS写入函数,则以下技巧可以最大程度减少TDMS文件的碎片化。

在数据采集(循环)之前或之后写入所有TDMS属性。

从多个通道写入数据时使用二维矩阵和一个TDMS写入函数。

每次至少写入1000个数据点到TDMS文件的一个采集数据通道。

如果一次只能写入1个数据点,则将通道属性 NI_MinimumBufferSize 的值设置为1000。

采集后对TDMS文件进行碎片整理

即时由于数据采集限制而不得不创建碎片化的TDMS数据文件,用户仍可在采集后解决这个问题。 如果使用的是NI LabVIEW, TDMS碎片整理 功能能够以最低程度的碎片化重新写入TDMS文件。 或者,如果将TDMS数据文件加载到NI DIAdem并重新保存,则生成的TDMS数据文件也具有最低程度的碎片化。

写入加载速度提高通道属性

如果读取TDMS文件的目标应用程序是NI DIAdem,则可通过创建以下四个TDMS文件中每个数据通道的属性来大幅提高加载到NI DIAdem的速度。 如果这四个属性都没有出现且加载指定TDMS数据通道时填充了一个有效值,则NI DIAdem将会自动计算这四个属性来加快图轴的自动换算速度。 如果这些属性已经创建并填充了有效值且关联至TDMS文件的每个数据通道,则该TDMS文件加载到NI DIAdem的速度将会快很多。

提高NI DIAdem内文件加载速度的属性

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/167868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多线程~实现一个自己的线程池,以及基于单例模式的线程池

目录 1.线程池的概念 2.线程池的实现 3.基于单例模式的线程池 (1).单例模式的概念 (2).基于单例模式的线程池 1.线程池的概念 池化技术本质上都是为了提高效率。线程池也是同理,提前准备好一些线程,用…

Lesson 1. 线性回归模型的一般实现形式

文章目录一、线性回归模型建模准备1. 数据准备2. 模型准备二、线性回归模型训练1. 模型训练的本质:有方向的参数调整1.1 模型训练与模型参数调整1.2 模型评估指标与损失函数1.3 损失函数与参数求解2. 利用最优化方法求解损失函数2.1 损失函数的求解2.2 图形展示损失…

【DevOps实战|基于Jenkins与Gitlab构建企业级持续集成环境系统】(更新中未完成)

目录 一、DevOps简介 二、CI/CD简介 1、代码部署的最基本流程 2、软件开发生命周期 3、持续集成整体流程 三、Git简介 1、GitHub与Gitlab区别 四、基于Jenkins与Gitlab构建持续集成环境系统 1、环境说明 2、安装gitlab 1)配置邮件报警 一、DevOps简介 De…

目标检测的新范式:Towards Open World Object Detection

论文题目:Towards Open World Object Detection 1 摘要 人类有一种识别其环境中未知物体实例的自然本能(natural instinct)。当这些未知的实例最终获得相应的知识时,对它们的内在好奇心有助于了解它们。这促使我们提出一种新的计算机视觉问题称为&…

Week 11

洛谷P1796 汤姆斯的天堂梦 题目描述 汤姆斯生活在一个等级为 000 的星球上。那里的环境极其恶劣,每天 121212 小时的工作和成堆的垃圾让人忍无可忍。他向往着等级为 NNN 的星球上天堂般的生活。 有一些航班将人从低等级的星球送上高一级的星球,有时需…

算法第十四期——动态规划(DP)初入门

目录 DP初步:状态转移与递推 最少硬币问题 DP基础 DP的两个特征 DP:记忆化 图解DP求解过程 最经典的DP问题:0/1背包 模板题:小明的背包 DP状态设计 DP状态转移方程(重点) 代码 空间优化:滚动数组 (1)交替滚…

【机组组合】基于Benders分解算法解决混合整数规划问题——机组组合问题(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【鸟哥杂谈】腾讯云 CentOS8 Linux环境下通过docker安装mysql

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-01-15 ❤️❤️ 本篇更新记录 2023-01-15 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝&#x1f64…

Vite中如何更好的使用TS

TS 是JS的一个类型检查工具,检查我们代码中可能会存在的一些隐形问题;同时可以使我们的编译器具备一些语法提示功能。 如果我们使用create-vue(vue3官方脚手架工具)创建了项目,该项目基于 Vite 且 TypeScript 已经准备…

SpringBoot+Vue使用easypol出现无法导出Excel表的问题

本篇博文目录1.异常信息2.原因3.解决办法4.详细的SpringBooteasypol前后端分离实现excel导出的步骤1.异常信息 今天在使用easypol导出Excel表的时候,发现能够从后端接口返回数据,但是就是无法导出Excel,控制台输出devicepolicies:1 Uncaught (in promise) error,并且…

2022年度总结 - 明月醉窗台

2022年度总结 - 明月醉窗台 1.2022年成果 - 感谢CSDN提供了自我创作的平台,有多少个夜晚我将其作为心灵的寄托... - 感谢各位小伙伴的抬爱和学习过程中的共同见证,将人生视为一条向上的曲线是明确且坚持不懈的抉择... - 立足当下,不忘脚踏实…

【算法基础】1.5 前缀和与差分

文章目录前缀和题目描述解法讲解二维前缀和题目描述解法讲解差分题目描述解法讲解二维差分题目描述解法讲解前缀和 题目描述 输入一个长度为 n 的整数序列。 接下来再输入 m 个询问,每个询问输入一对 l,r。 对于每个询问,输出原序列中从第 l 个数到第 …

IVD-Net:多模态UNet在MRI中的椎间盘定位和分割

摘要 本文提出了一种多模态磁共振图像中的椎间盘(IVD)定位和分割体系结构,它扩展了UNet。与单一的图像相比,多模态的数据带来了互补的信息有助于更好的数据表示和判别能力。 在本文中,每种MRI模态的数据都以不同的路…

Waf功能、分类与绕过

一. waf工作原理 Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 常见的系统攻击分为两类: 一是利用Web服务器的漏洞进行攻击,如DDOS攻击、病毒木马破坏等攻击;二是利用网页自身的安全漏洞进…

【C语言】实现通讯录(详解)

目录 一、需要实现的功能 1.1 类型和结构体的定义 二、拆分代码 2.1 游戏菜单 2.1.1 函数调用 2.1.2 函数体的实现 2.1.2运行效果 2.2 初始化结构体 2.2.1 函数调用 2.2.2 函数体的实现 2.2.3 运行结果 2.3 添加联系人信息 2.3.1 函数调用 2.3.2 函数体的实现 2…

操作系统之光--鸿蒙

鸿蒙是什么?鸿蒙包含Openharmony和harmonyOS。Openharmony是华为向开放原子开源基金会捐赠了鸿蒙开源部分的代码,归属于开放原子开源基金会。HarmonyOS是基于Openharmony的商业发行版本。目前大家华为手机上运行就是它。鸿蒙能做什么?很明显&…

【算法基础】1.6 双指针算法

文章目录双指针思想最长连续不重复子序列数组元素的目标和题目讲解判断子序列双指针思想 双指针算法,就是可以将 n ^ 2 优化到 n。 最长连续不重复子序列 给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度…

IO流的学习

文章目录一、File类的使用创建File实例File常用方法总结二、IO流分类读入数据的基本操作步骤(第一种)步骤(第二种)写出数据的基本操作步骤读入并写出数据的基本操作(复制)步骤注意处理流之一:缓…

【Nginx】静态资源部署(下)

文章目录静态资源的缓存处理缓存概述浏览器缓存相关指令expires指令add_header指令Nginx的跨域问题解决同源策略跨域问题跨域问题的案例演示解决方案静态资源防盗链什么是资源盗链Nginx防盗链的实现原理:针对目录进行防盗链静态资源的缓存处理 缓存概述 什么是缓存…

【爪洼岛冒险记】第4站:Java中如何进行控制台输入输出?用Java实现猜数字小游戏;超详细讲解Java中的方法:方法的重载,方法的签名

🌱博主简介:是瑶瑶子啦,一名大一计科生,目前在努力学习JavaSE。热爱写博客~正在努力成为一个厉害的开发程序媛! 📜所属专栏:爪洼岛冒险记【从小白到大佬之路】 ✈往期博文回顾:链接: 【爪洼岛冒…