Waveform Graph。
图3-13 框图程序(二)
Waveform Graph 1用来显示1D Array,且可以通过改变数字型控制器“步长”的值来改变显示的步长。Waveform Graph 2用来显示两个一维数组 “1D Array”和“X Array”。 XY Graph 1为从All Controls ? XY Graph中调用的控件,利用Bundle函数将“X Array” 作为X轴,将“1D Array”作为Y轴显示。XY Graph 2为利用LabVIEM 8所提供的XY Graph (Controls ? Graph Inds ? Express XY Graph),显示以“X Array”作为X轴、以“1D Array”作为Y轴的图形。
前面板如图3-14所示。
五、 作业
图3-14 前面板(二)
1. 简述Chart和Graph的区别。
2. chart的三种工作模式是什么 ?简单介绍各自的工作方式。 3. 对于下面的二维数组,回答如下问题 : 2 6 2 ① [1,3]中的元素值是什么 ?
45-26
4 9 5 7 3 8 5 4 4 1 5 9 ② 在对此二维数组使用Array Subset函数时,如果输入为 :
index=2, length=3, index=3, 1ength=2,
输出是什么 ?
4. 簇和数组的区别是什么 ?
5. Bund1e和Bundle by Name函数有何不同 ?Unbundle和Unbund1e by Name 区别是什么 ?
45-27
实验4 字符串、文件I/O和属性节点编程实验
一、 实验目的
?
? ? ? ? ?
学习字符串方面的知识。
LabVIEW编写一些简单的VI数据管理程序,以完成对文件的输入/输出控制。 了解属性节点如何作为前面板转换的方法。 学习不同的字符排列方式。 学习从一个用户接口访问文件。 学习特性结点的执行次序。
二、 实验设备
安装有LabVIEW 8的计算机。
三、 实验原理
1. 字符串
一个字符串是指一个可显示或不可显示的ASCII字符序列,不可显示的字符如换行符、 制表位等。字符串为信息和数据提供了一个独立的平台格式。图4-1为字符串函数面板。以
图4-1 字符串函数面板
下各项列出了更多字符串的常用范围 :
? 创建简单的文本信息。
? 以字符串的形式传输数值型数据到仪器,并重新把这些字符串转换为数字数据。 ? 存储数值型数据到磁盘。要以ASCII文件的形式存储数值型数据,必须在数值型数据写入磁盘文件之前把数值型数据转换为字符串。 ? 以对话框形式对用户做出指示或提示。
在前面板中,字符串以表(table)、文档条目框以及标题的形式出现;在框图中,使用字符串函数对字符串进行编辑和操作。
在Functions ? All Functions ? String 中找到字符串函数板,并可以以如下方式对字符串进行编辑:
? 寻找、检索以及在一个字符串里更换字符或子串。 ? 在一个字符串里把所有的文本文档改为大写或小写。 ? 在一个字符串里寻找和检索匹配的模式。 ? 一个字符串里检索一个队列。
? 在一个字符串里旋转和反转一个文本文档。 ? 连接两个或更多的字符串。
45-28
? 在一个字符串里删除字符。
要想在其他VI、函数以及应用中使用相同的数据,用户通常必须将数据转换为一个字 符串,并将其转化为其他VI、函数以及应用中能够识别的格式,如Microsoft Excel就期待包含定界符函数的字符串能够将数字和单词分割成数据元。
例如,要使用读文件功能将一个数字的一维数组写入到电子表格中,用户就必须把它格式化为一个字符串,并用定界符将每一个数字元素分割开来,如同标签那样。要用Write to Spreadsheet File VI函数将数组写入一个电子表格中,就必须用Array to Spreadsheet String函数将此数组组格式化,并确定一个格式和定界符。
在Functions ? All Functions ? String中使用字符串功能可完成以下工作 : ? 连接两个或更多的字符串。
? 从一个字符串中提取出一个子串。 ? 将数据转换为字符串。
? 将字符串转化为文字处理和电子表格可以应用的格式。
在Functions ? File I/O子模板中,使用文件输入/输出功能可以将字符串保存到文档或电子表格中。
2. 文件输入/输出(File I/O)
文件输入/输出(File I/O)完成的是数据和文件之间的转换(如图4-2所示)。在Functions ? All functions ? File I/O子模板中,文件输入/输出功能用来解决所有的文件输人/输出问题,包括以下各方面 :
? 打开和关闭数据文件。
? 文件中读出数据和写入数据到文件中。 ? 从电子表格中读出和写入数据。 ? 文件和目录的移动以及重命名。 ? 改变文件属性。
? 创建、修改配置文件。
图4-2 文件输入/输出功能面板
一般,高级的文件输入/输出程序用来完成常见的输入/输出操作,使用方便,低级的文件输入/输出程序用来单独控制每一个文件的输入/输出操作,使用它们可编出符合特殊要求的输入/输出程序。
1)文件输入/输出基础
一个典型的文件输入/输出过程包括以下各过程 :
? 创建或打开文件。说明所要打开的文件在哪儿或者所要创建文件的路径,也可以根据LabVIEW提供的对话框来找到文件的位置。打开文件后,一个refnum可以用来代表
45-29
此文件。
? 从文件里读出或写入到文件里。 ? 关闭文件。
绝大多数的文件输入/输出程序和功能在输入/输出中仅需进行一次。但是,一些为通常的文件输入/输出设计的高级的文件输入/输出虚拟程序则需经历以上3个步骤。尽管这些程序并不常常与低级功能具有相同的效率,但是它们很容易使用。
2) 选择一个文件输入/输出格式
File I/O依赖于文件的格式,用户可以用3种格式对文档进行读/写操作:文本格式,二进制数格式和数据记录格式。文件的格式取决于所获取或创建的数据以及将要访问的数据的应用范围。
如果想让自己的数据在其他应用领域也同样可用,如Microsoft Excel,则使用文本文 件,因为它们最常用也最方便。
如果需要随机读/写或者速度和磁盘空间有限,则可以使用二进制文件,因为它们与文 文档相比,具有更快的速度,占用更小的磁盘空间。
如果想在LabVIEW里操作复杂的数据记录或者不同的数据格式,则可以使用数据记录 文件,因为它们是只使用LabVIEW访问数据和存储复杂数据结构时存储数据的最佳方式。
3) 使用高级文件I/O程序
在Functions ? All Functions ? File I/O面板中使用高级文件输入/输出程序完成普通的输入/输出操作,如对以下的数据类型进行读/写 :
? 文本文档中输入/输出宇符。 ? 从文本文档中读出列。
? 从电子表格中读取、输入一维或二维单精度的数字队列。
? 从二进制文件中读取、输入单精度的数字或者有符号的十六位整数。
用高级输入/输出程序来完成对文件的读/写可以节省大量的时间和精力。高级输入/输出程序除了打开和关闭文件之外,还完成读和写的操作。因为每次运行时都要打开和关闭文件,所以高级输入/输出程序能够避免繁琐的编程。
高级VI等待一个文件路径输入。如果没有写出文件路径,则系统将弹出一个对话框, 提示用户选定所要读出和写入的文件。而当出现错误时,系统将弹出一个对话框来说明这个错误,用户可以选择退出程序或者继续执行。
在Functions ? All Functions ? File I/O ? Binary File中使用二进制文件VI。VI 面板以二进制数的格式读和写,数据可以是整数或者单精度浮点数。 3. 属性节点
属性节点可以在一个应用程序或者虚拟仪器中得到或者设定各种不同的属性,可以使 用单击操作工具中的属性终端或者在节点的白色区域单击右键,并从弹出的快捷菜单中选 择Properties来操作。
可通过单击右键,从弹出的快捷菜单中选择Change to Red或Change to Write来改变属性节点中各属性的读/写状态。
属性节点从头至尾都起作用。只有当错误在其执行之前发生时,属性节点才停止执行, 所以要不断地检查可能的错误。假如在一个属性中发生错误,LabVIEW会忽略余下的属性 并产生一个错误。
在前面板中单击右键,并在弹出的快捷菜单中选择创建一个新的属性节点时, LabVIEW就会在方框图中创建一个与前面板没有命名连接方式的属性节点。由于节点与创 建它的位置没有说明连接方式,所以它们没有参考数字输入,所以用户不需将属性节点连接到前面板的中断或者控制参数上。
45-30