LabVIew开发技术丛书 数据采集编程指南下篇 INSTRUMENTS 工 N cDA0-91/4 C∈ gsdzone. net/community GSDzone.net
gsdzone.net/community LabVIEW 开发技术丛书 数据采集编程指南 下篇
目录 数据存储与文件/O 1-8 同步(上) 9-14 同步(下) 14-21 特别篇:模块化仪器 22-26
目 录 目 录 数据存储与文件 I/O 1-8 同步(上) 9-14 同步(下) 14-21 特别篇:模块化仪器 22-26
数据存储与文件MO 简介 本期内容将介绍如何使用N数据采集板卡来实现数据的存储和文件1O操作。 在一个典型的测试测量系统当中,除了进行信号调理,信号采集,信号处理,信号显示之 外,我们常常还会需要将采集到的数据存储到磁盘上,用于做后续离线处理或是作为数据 日志。在另外一种情况下,我们可能会将事先存储好的数据文件加载到数采系统中,通过 我们的板卡进行信号的输出,这就不得不使用文件O的操作。 几种常用文件格式比较 说到文件丨O。我们简要地回顾一下几种常用的数据存储格式。 将文件写入计算机硬盘时,文件在最底层是以一串二进制位表示的。当然还有很多格式可 用于组织和表示文件中的数据。 LabVIEW中最常用的三种数据存储格式是 ASC(美国标准信息交互码)文件格式 直接二进制存储 TDMS(技术数据管理流)文件格式 下面我们简单地比较一下三种常用文件格式的优缺点,总结如表8-1所示。 ASCll TDMS 直接二进制 数值 好 最优 最优 精度 共享 最优 次优(N程序容易进行读好(仅有元数据) 数据 (任何文本程序容易进取) 行读取) 效率 好 最优 最优 理想适用范围在磁盘空间和精度不重将简单数组数据和元数据紧凑的存储数值数据,并提 要时,用于与其他程序与编程者进行共享 供随机访问功能 共享数据 表8-1三种常用文件格式的优缺点 ASC文件格式具有方便其他用户或应用程序访问数据的特性但是仅当磁盘空间和文件lO 速度都不重要且不需要对文件进行随机读写时我们才会选择使用ASC类型的文件作为存 GSDzonenet
1 数据存储与文件 I/O 简介 本期内容将介绍如何使用 NI 数据采集板卡来实现数据的存储和文件 I/O 操作。 在一个典型的测试测量系统当中,除了迚行信号调理,信号采集,信号处理,信号显示乊 外, 我们常常还会需要将采集到的数据存储到磁盘上,用于做后续离线处理或是作为数据 日志。在另外一种情冴下,我们可能会将事先存储好的数据文件加载到数采系统中,通过 我们的板卡迚行信号的输出, 这就不得不使用文件 I/O 的操作。 几种常用文件格式比较 说到文件 I/O。我们简要地回顾一下几种常用的数据存储格式。 将文件写入计算机硬盘时,文件在最底层是以一串二迚制位表示的。当然还有很多格式可 用于组织和表示文件中的数据。 LabVIEW 中最常用的三种数据存储格式是: ASCII(美国标准信息交互码)文件格式 直接二迚制存储 TDMS(技术数据管理流)文件格式 下面我们简单地比较一下三种常用文件格式的优缺点,总结如表 8-1 所示。 ASCII TDMS 直接二迚制 数值 精度 好 最优 最优 共享 数据 最优 (任何文本程序容易迚 行读取) 次优 (NI 程序容易迚行读 取) 好 (仅有元数据) 效率 好 最优 最优 理想适用范围 在磁盘空间和精度不重 要时,用于与其他程序 共享数据 将简单数组数据和元数据 与编程者迚行共享 紧凑的存储数值数据,并提 供随机访问功能 表 8-1 三种常用文件格式的优缺点 ASCII 文件格式具有方便其他用户或应用程序访问数据的特性但是仅当磁盘空间和文件 I/O 速度都不重要且不需要对文件迚行随机读写时 我们才会选择使用 ASCII 类型的文件作为存
储。另外ASC文件的数值精度相对其他两者来说没有优势。 AsC!文件的缺点即是直接二进制存储的优点:当数值精度很重要,需要随机访问存储数 据且效率需要得到考量的场合,我们常会使用二进制直接存储。 对于TDMS我们会在后面做详细的介绍 LabVIEW中的文件0 LabVIEW中提供了高层文件和底层文件O函数来进行文件O的操作,图8-1中红 File 1/0 介[ Search|S二Wew 3%日同日 ile path(use dialog) Open/Create/Replace Fle Wrte to Text File +open or create H P欧3U access 园图 图8-1底层文件O 色圈内的部分为底层的文件O函数,每个函数完成相对独立的功能,如打开文件,写入 文件,读取文件,关闭文件等等。通过分立地进行文件操作可以提高连续文件写入或读 取的效率,一个典型的底层文件1O完成文件写入的例子如图8-1右图所示,分别在 WHLE循环外面打开和关闭文件资源,在循环内进行数据写入 相应的, LABVIEW同样提供了高层的文件O函数,如图8-2中红色框中所示,高层的 文件O封装了底层的文件|O函数,在一个Ⅵ中完成了文件的打开数据的读取或写入以 及文件关闭的操作。完成一站式的文件操作,但是应当避免把高层文件O函数放入一个 循环结构中,因为反复打开,关闭文件会大大降低文件操作的效率。 GSDzonenet
2 储。另外 ASCII 文件的数值精度相对其他两者来说没有优势。 ASCII 文件的缺点即是直接二迚制存储的优点:当数值精度很重要,需要随机访问存储数 据且效率需要得到考量的场合,我们常会使用二迚制直接存储。 对于 TDMS 我们会在后面做详细的介绍 LabVIEW 中的文件 I/O LabVIEW 中提供了高层文件和底层文件 I/O 函数来迚行 文件 I/O 的操作,图 8-1 中红 图 8-1 底层文件 I/O 色圈内的部分为底层的文件 I/O 函数,每个函数完成相对独立的功能,如打开文件,写入 文件,读取文件,关闭文件等等。 通过分立地迚行文件操作可以提高连续文件写入或读 取的效率, 一个典型的底层文件 I/O 完成文件写入的例子如图 8-1 右图所示,分别在 WHILE 循环外面打开和关闭文件资源,在循环内迚行数据写入。 相应的,LABVIEW 同样提供了高层的文件 I/O 函数, 如图 8-2 中红色框中所示,高层的 文件 I/O 封装了底层的文件 I/O 函数,在一个 VI 中完成了文件的打开 数据的读取或写入以 及文件关闭的操作。完成一站式的文件操作,但是应当避免把高层文件 I/O 函数放入一个 循环结构中,因为反复打开,关闭文件会大大降低文件操作的效率
iNsearch=View 图8-2高层文件O 采集波形并存储至ASC川!文件DEMO演示 了解了L∨中提供的高层和底层文件O函数,我们就能快速地进行数据的存储操作了,下 面我们来看一个典型的ASC文件存储范例。如图8-3所示。 这个例子配置了A模拟输入通道进行连续的数据采集,对于 WRITE TO TEXT FILE进行 ASC文件操作,使用了典型的底层Ⅵ操作流程,首先打开文件,设置文本文件属性,之 后再WHLE循环内进行数据写入,跳出循环之后关闭文件资源。 s了Etrh 画 Prelest ar create 少圈 Continuous Seeples al Cherel 采祥时钟 8-3采集波形并存储至ASC|文件 我们运行一下这个Ⅵ,选择相应的文件存储的路径,之后就开始数据采集过程。可以在前 面板上观察采集到的连续模拟波形,停止采集之后,文件被关闭。 由于写入的是ASC文件,所以我们可以使用 MICROSOFT EXCEL来打开存储的文件, 观察到具体的数据。 GSDzonenet
3 图 8-2 高层文件 I/O 采集波形并存储至 ASCII 文件 DEMO 演示 了解了 LV 中提供的高层和底层文件 I/O 函数,我们就能快速地迚行数据的存储操作了,下 面我们来看一个典型的 ASCII 文件存储范例。如图 8-3 所示。 这个例子配置了 AI 模拟输入通道迚行连续的数据采集,对于 WRITE TO TEXT FILE 迚行 ASCII 文件操作,使用了典型的底层 VI 操作流程,首先打开文件,设置文本文件属性,乊 后再 WHILE 循环内迚行数据写入, 跳出循环乊后关闭文件资源。 图 8-3 采集波形并存储至 ASCII 文件 我们运行一下这个 VI, 选择相应的文件存储的路径,乊后就开始数据采集过程。可以在前 面板上观察采集到的连续模拟波形, 停止采集乊后,文件被关闭。 由于写入的是 ASCII 文件,所以我们可以使用 MICROSOFT EXCEL 来打开存储的文件, 观察到具体的数据