Labview字符串与文件I/O

发布者:星空行者最新更新时间:2015-09-18 来源: eefocus关键字:Labview  字符串  文件IO 手机看文章 扫描二维码
随时随地手机看文章
字符串

字符串是ASCII码字符的集合,当用户与GPIB和串行设备的通信,读写文本文件以及传递文本信息时,字符串都是非常有用的。字符串中的字符有些是可显示的,有些则是不可显示的。

LabVIEW在功能模板上的字符串子模板中提供了一整套的字符串处理函数,能够完成各种字符串处理功能。常用的字符串对象包括字符串输入控件和字符串显示控件,它们位于控件→新式→字符串与路径→字符串输入控件,字符串显示控件。如图:

[转载]Labview字符串与文件I/O

字符串的显示方式:

在前面板上放置一个字符串输入控件,右击鼠标,弹出如图所示的菜单:

[转载]Labview字符串与文件I/O

从上图中可以看出字符串有4种显示方式

下图是“www avrvi.com”分别用这4种方式显示,如图:

[转载]Labview字符串与文件I/O

字符串函数

打开程序框图中的字符串函数,如图:

[转载]Labview字符串与文件I/O

字符串函数模板除了包含一般的字符处理函数以外,还包含各种字符常量,以及字符串与数字量,路径的相互转换函数。

其中最后一行包含了各种常量,可以方便的使用。

字符串应用举例:

例一:组合字符串

该例的目的是将一些字符串和数值转化成一个新的输出字符串。

  1. 新建一个VI,在前面板上放置字符串输入控件“命令字”和“单位”,符串显示控件“输出命令字符”,数值输入控件“数值”和数值显示控件“字符串长度”。
  2. 切换到程序框图,在字符串函数模板中选择“格式化写入字符串”,如图连线:
  3. [转载]Labview字符串与文件I/O

  4. 双击“格式化写入字符串”函数,弹出如图所示对话框
  5. [转载]Labview字符串与文件I/O

    对它进行参数设定,将分数的长度改为4,如图:

    [转载]Labview字符串与文件I/O

  6. 同样在程序框图中添加“字符串长度”函数计算字符串的长度,它用于返回输出的命令字符串的长度。
  7. 完成连线,如图:
  8. [转载]Labview字符串与文件I/O

    运行结果如图:

    [转载]Labview字符串与文件I/O

例二:字符串子集和数值的提取

实际应用中很多情况下,必须把字符串转换成数值,例如需要将从仪器中得到的数据字符串转换成数值。

该例的目的是从一个输入的字符串中,提取一个子字符串,另外扫描字符串,将子字符串转换为数据。

  1. 新建一个VI,按照如图所示放置输入和输出控件。
  2. [转载]Labview字符串与文件I/O

  3. 切换到程序框图,从字符串函数模板中,选择“部分字符串”函数,在该例中,它的功能是返回从偏移地址开始的指定长度的子字符串。
  4. 选择“扫描字符串”函数,它用于扫描字符串,并将有效的数值(0~9,正,负,e和E)转换成数值。如果连接了一个格式字符串,它将根据字符串指定的格式进行转换,否则将进行默认格式的转换,该函数的初始扫描位置参数用于设置初始扫描位置,它与“数字相对偏移量”相连。
  5. 完成连线,如图:
  6. [转载]Labview字符串与文件I/O

    运行结果如图:

    [转载]Labview字符串与文件I/O

    注意:LabVIEW的偏移地址是从0开始计数的。

文件I/O

文件输入输出是程序设计中的一个重要概念,一般来说,文件是存储在磁盘伤的数据的集合。文件输入与输出就是要在磁盘文件中保存和读取信息数据,以文件形式存储起来的数据具有“永久性”,数据文件不仅可以与LabVIEW语言编写的其他VI交换数据,而且可以被其他程序共享。

文件输入与输出操作主要包括3个基本的步骤:新建或者打开一个已有的文件,对文件进行读写和关闭文件。

LabVIEW支持的文件格式主要包含以下3种:

  • ASCII码文本格式文件
  • 二进制格式文件
  • LabVIEW数据记录文件
  1. ASCII码文本格式文件
  2. 文本文件又称为ASCII码文件或字符文件,它的每一个字节代表一个字符,存放的是这个字符的ASCII码。文本文件的优点是它几乎在任何应用程序中都是可读的,这种文件最易于进行整体互换,用户可以用其他的软件来访问数据,例如字处理软件Word或者Excel等,在仪器控制系统中的大部分控制指令也是用文本字符串。当然在写文件之前必须要将所有的数据都变成ASCII字符串格式,读文件之后要将字符串恢复为原数据值。

    文本文件的缺点是占用的磁盘空间较大,比如存储一个浮点数-864.39571,因为每个字符要占用一个字节,所以需要10个字节空间。文本文件的存取数据过程中存在ASCII码与机器内码的转换,所以存取数据的速度也比较慢。

  3. 二进制格式文件
  4. 二进制文件是把数据按其在内存中存储的形式(机器内码)原样输出到磁盘上,所以它的存取速度最快,格式也最紧凑。二进制格式占用的磁盘空间比ASCII码文本文件要小得多,对于上诉的浮点数-864.39571,如果存储为单精度型,只占用4个字节,要是存储为双精度型,则占用8个字节。

    用户在读写二进制文件时,必须明确文件使用的时哪一种数据类型,各种类型的二进制文件之间是不能通用的。二进制格式文件可以随机的访问其中的某一数据。而这一点是文本文件无法比拟的,要想在文本文件中访问某一数据,则必须把它之前的数据全部都读出来,才可以访问所需要的数据。

  5. 数据记录文件
  6. 数据记录文件也是一种二进制格式的文件,只有LabVIEW才可以对它进行读取和处理。数据记录文件可以看成是数据库文件格式,它将数据存储为一系列相互独立的有各自数据类型的记录,就像簇一样,每一个记录可以包含不同类型的数据,这些数据类型是由用户事先指定的。LabVIEW允许用户自由读取数据记录文件,在各个记录中索引出不同数据类型的数据,并且每一个记录文件都包含由时间标记。

    LabVIEW在程序框图上的为我们提供了一整套功能强大而且方便灵活的文件输入/输出函数,如图:

    [转载]Labview字符串与文件I/O

    具体每个控件的作用和功能不在这里向大家详细地介绍,下面将通过一系列地例子来说明各种文件的读取。

例一:

使用“写文本文件”函数写文本文件

1.新建一个VI,在前面板上放置一个“波形图表”,将标签内容改为“温度”,取消显示曲线图注和X,Y坐标轴标签,同时放置一个数字输入控件,将标签改为“采样点数”。再放入一个“文件路径输入控件”,它位于控件→新式→字符串与路径→文件路径输入控件,如图:

[转载]Labview字符串与文件I/O

2.后面板程序如图:

[转载]Labview字符串与文件I/O

其中用到了一个LabVIEW自带的程序Digital Thermometer.vi,在程序框图中点击“选择VI…”,如图:

[转载]Labview字符串与文件I/O

系统会自动打开一个对话框,如图:

[转载]Labview字符串与文件I/O

在我的计算机里,它位于labview8.2→Activity→Digital Thermometer,如图:

[转载]Labview字符串与文件I/O

其中在“格式化写入字符串”函数上的“%3.fn”是转换后保留三位小数,字符串间以回车间隔。[page]

回到前面板,点击“路径”右边的小图标:

[转载]Labview字符串与文件I/O

打开一个对话框,选择文件的存储路径,如图:

[转载]Labview字符串与文件I/O

选择完后,程序即可运行,运行结果如图:打开记事本,即可看到写入的文件,如图:

[转载]Labview字符串与文件I/O

此程序中利用了For循环自动索引的功能,一次产生了10个数据,然后逐一写入文本。正因为此,“写入文本文件”是高层文件I/O操作函数,高层文件I/O操作函数每调用一次就会实现创建或打开文件,读写文件,关闭文件的整个过程。如果需要向文件中连续写入数据,这样的效率是非常低的。如果想要提高效率,可以采用底层文件I/O操作函数来实现写文本文件。

例二:

使用底层文件I/O操作函数向文本文件写入数据。

[转载]Labview字符串与文件I/O

图中框起来的便是底层文件I/O函数

前面板的构建和例一类似,下面是程序框图:

[转载]Labview字符串与文件I/O

从途中可以看出,程序进行循环后,文件则被打开,这样就可以一直向文件中输入数据,直到循环结束,才关闭文件,它大大提高了写文件的效率。

运行结果如图:

[转载]Labview字符串与文件I/O

 

[转载]Labview字符串与文件I/O

从上图可以看出,每两个数字之间正好间隔一个Tab定界符。

例三:写电子表格文件

“写入电子表格文件”函数的应用与“写入文本文件”函数的应用十分相似。它能直接写入一维或是二维的数据。程序框图如图:

[转载]Labview字符串与文件I/O

图中Generate Waveform.vi也使LabVIEW自带的一个VI,它与前面所讲的Digital Thermometer.vi在同一个文件夹里,它是用于模拟产生抽样信号的。[转载]Labview字符串与文件I/O该函数默认的是将数据在表格中按行排列,那么一个二维数组的记录则只有两行,若在该接口中给其赋值“真”,则数据会按列排列。

运行结果如图:

[转载]Labview字符串与文件I/O

打开保存的电子表格文件,即可看到数据

[转载]Labview字符串与文件I/O

例四:读文本文件

该例采用在例一中保存的文件,程序框图如图:

[转载]Labview字符串与文件I/O

说明:其中用到了一个LabVIEW自带的子VI:Extract Numbers,它位于LabVIEW8.2→examples→general→strings,如图:

[转载]Labview字符串与文件I/O

单击确定后,系统会弹出下面的对话框:

[转载]Labview字符串与文件I/O

选择Extract Numbers.vi,它的作用是提取由逗号,分行符号,非数值字符等分隔开的数据所组成的ASCII字符串,并将它们转换成数值数组,用于将读取的字符串转换为双精度数据类型的一维数组。运行结果如图:

[转载]Labview字符串与文件I/O

例五:另一种读取文本文件的方法

上面的例子是用一个函数完成了,文件的打开,读取,关闭。和写入文本文件时一样,我们也可以通过三个函数来实现以上的三个步骤,程序框图如图:

[转载]Labview字符串与文件I/O

其中For循环默认的是自动索引,在连线后,需将图中框起来的两个节点禁用索引。运行结果如图:

[转载]Labview字符串与文件I/O

例六:读取电子表格文件

本例使用例三所产生的表格文件。

程序框图如图:

[转载]Labview字符串与文件I/O

运行结果如图:

[转载]Labview字符串与文件I/O

从结果中可以看到,因为例三在生成表格文件时采用的格式为“%.3ft”,所以从该电子表格中读取数据时,中间的一行空白LabVIEW会自动把它们默认为0数组,从而在波形图表中显示的时候会出现中间的一行红线。

关键字:Labview  字符串  文件IO 引用地址:Labview字符串与文件I/O

上一篇:Labview簇
下一篇:Labview簇元素顺序更改中的规律

推荐阅读最新更新时间:2024-03-30 23:04

使用LabVIEW进行心电信号处理
  目录   1.心电信号预处理   2.对心电信号进行特征提取   3.总结   4.更多相关资源   心电图是一种记录心脏产生的生物电流的技术。临床医生可以利用心电图对患者的心脏状况进行评估,并做出进一步诊断。ECG记录是通过对若干电极(导联)感知到的生物电流进行采样获得的。图1中显示了典型的单周期心电图波形。 图1 典型的单周期心电图波形   通常说来,记录的心电信号会被噪声和人为引入的伪影所污染,这些噪声和伪影在我们感兴趣的频段内,并且与心电信号本身有着相似的特性。为了从带有噪声的心电信号中提取出有用的信息,我们需要对原始的心电信号进行处理。   从功能上来说,心电信号的处理可以大致分为两个
[测试测量]
使用<font color='red'>LabVIEW</font>进行心电信号处理
LabVIEW设计模型——顺序模型之顺序结构
在任何编程语言中顺序模型都是最基本的设计模型,LabVIEW也不例外。 顺序模型从程序开始到初始化,到模块1、模块2 一直到程序的结束,都是严格按照编程者事先指定的顺序依次执行的。这种模型简单、易懂,是编写小程序的理想模型,如下图。 在LabVIEW中,一提到顺序模型就会很自然的想到顺序结构。没错,使用顺序结构是实现顺序模型的一种方法。 在LabVIEW中,顺序结构就像是电影胶片,不论是外观和应用形式都很像(如下图所示)。它是严格按照从左到右的顺序将各个帧中的模块依次执行的。前面的帧执行完毕之前,后面帧中的内容是无法开始的。顺序结构看上去很清晰,容易理解。 然而,顺序结构有两个致命的缺陷,以至于我们在实际应用中应该尽
[测试测量]
<font color='red'>LabVIEW</font>设计模型——顺序模型之顺序结构
基于PXI模块化仪器和LabVIEW软件
"相比于早期手动连接的台式设备,通过使用NI PXI模块化仪器和LabVIEW开发的二次监视雷达(SSR)自动测试系统,用户可以节省90%的雷达测试时间。相比于其它基于传统盒式仪器的自动测试设备,在有效节省时间的同时,此种设计还可为用户节省60%的成本。" - Vishwanath Kalkur, Captronic Systems Pvt Ltd 挑战: 运用PXI模块化仪器和LabVIEW软件开发二次监视雷达自动测试系统。 解决方案: 通过使用NI PXI模块化仪器和NI LabVIEW FPGA模块,设计一种用户自定义的且可扩展的方案,以测试雷达的全部功能。 与主雷达不同,二次监视雷达(SSR)可以通过建立双向通
[测试测量]
基于PXI模块化仪器和<font color='red'>LabVIEW</font>软件
基于LabView的恒流源电路设计
  该恒流源电路使用运算放大器以及三极管组成电压-电流转换电路。其中,OPA211的主要功能是实现高精度V/I转换,三极管的主要功能是实现功率放大。如图2所示。   图2 恒流源控制电路   在图2中,电阻Rf是反馈电阻,为运算放大器的输入电压,为流经灯丝负载的电流。根据运算放大器的特性,控制电压:,因而流经负载的电流与负载无关。由于MAX530单极输出0~2.048V,因而其输出分辨率为0.5mV,且Rf=1Ω,故本设计的理论精度可达0.5mA。
[电源管理]
基于<font color='red'>LabView</font>的恒流源电路设计
利用LabVIEW实时拈缩减F-35联合攻击战斗机的测试成本与时间
便携式数字数据采集系统(PDDAS)使用了LabVIEW实时模块和PXI,以控制风洞测试和采集记录来自128个不同通道的空气压力数据 "通过LabVIEW实时模块,可以在各种操作情况下获得采集空气压力数据及向风洞提供反馈控制信号所需的确定性响应时间。" – Dave Scheibenhoffer, G Systems 挑战: 用一个可采集、分析和存储来自下一代喷气式战斗机引擎设计的动态压力数据的系统,来替换洛克希德马丁航空公司的一个专用的基于VME的DSP 系统。 解决方案: 利用业界标准的、现成可用的技术,其中包括PXI、MXI、UDP 和RAID,以及LabVIEW实时模块,创建一个满足严格技术要求的、紧密集成的数
[测试测量]
不得不看的LabVIEW新手5大错误
  虽然NI LabVIEW软件长期以来一直帮助工程师和科学家们快速开发功能测量和控制应用,但不是所有的新用户都会遵循LabVIEW编程的最佳方法。 LabVIEW图形化编程比较独特,因为只需看一眼用户的应用程序,就马上可以发现用户是否遵循编码的最佳方法。有些用户会犯这些错误是因为他们没有真正理解LabVIEW框图数据流背后的原理,而有些用户则是不知道哪些特性可提高LabVIEW编程质量。   本文介绍了经验欠缺的LabVIEW程序员最经常犯的一些编程错误,同时也提供了采用正确LabVIEW编程方法的建议。   图 1. LabVIEW新手典型“杰作”   过度使用平铺式顺序结构   许多LabVIEW新手并不完全了解
[测试测量]
不得不看的<font color='red'>LabVIEW</font>新手5大错误
关于ARM汇编中字符串表达式及运算符总结
:LEN:X 返回字符串X的长度(字符数) :CHR:M 将0~255之间的整数转换为一个字符 :STR:X 将一个数字表达式或逻辑表达式转换为一个字符串.对于数字表达式,STR运算符将其转换为一个以十六进制组成的字符串;对于逻辑表达式,STR运算符将其转换为字符串T或F. X:LEFT:Y 返回某个字符串左端的一个子串.X为源字符串,Y表示返回的个数 X:RIGHT:Y 与LEFT对应 X:CC:Y 将Y连接到X的后面 :BASE:X 返回基于寄存器的表达式中寄存器的编号 :INDEX:X 返回基于寄存器的表达式中相对于其基址寄存器的偏移量 ?X 返回定义符号X的代码行所生成的可执行代码的字节数 :DEF:X 如
[单片机]
基于LabVIEW与MATLAB的模糊参数自整定PID控制
1 引言   传统的PID控制器结构简单,稳定性好,可靠性高,制造技术成熟,已广泛应用于工业生产过程的控制中。但它主要适用于控制具有确切模型的线性过程,而对于具有非线性、大滞后和时变不确定的系统,则无法达到理想的控制效果。人工智能的兴起和快速发展为控制领域提供了全新的方法。模糊控制是人工智能控制的一个重要分支,它是运用模糊数学的基本理论和方法,把规则的条件、操作用模糊集表示,并把这些模糊控制规则及有关信息作为知识存入计算机知识库中,然后计算机根据控制系统的实际响应情况,运用模糊推理决定系统控制量的大小。将模糊理论与PID控制策略相结合,可实现对PID参数在线自适应调整,使系统既具有模糊控制的灵活、适应性强的优点,又具有PID控制
[工业控制]
基于<font color='red'>LabVIEW</font>与MATLAB的模糊参数自整定PID控制
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved