第三章 数组、簇和波形
- 格式:doc
- 大小:476.00 KB
- 文档页数:16
第三章数据类型:数组、簇和波形3.1概述数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
索引的范围是0到n –1,其中n是数组中元素的个数。
图3-1所显示的是由数值构成的一维数组。
注意第一个元素的索引号为0,第二个是1,依此类推。
数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。
图3-1数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stuct。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。
3.2数组的创建及自动索引3.2.1创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。
如果需要用一个数组作为程序的数据源,可以选择Functions»Array»Array Constant,将它放置在流程图中。
然后再在数组框中放置数值常量、布尔数还是字符串常量。
下图显示了在数组框放入字符串常量数组的例子。
左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。
图3-1数组的创建在前面板中创建数组的方法是,从Controls模板中选择Array & Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。
这样就创建了一个数值数组。
也可以直接在前面板中创建数组和相应的控制对象,然后将它们复制或者拖曳到流程图中,创建对应的常数。
还有很多在流程图中创建和初始化数组的方法,有些功能函数也可以生成数组。
3.2.2数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
第1章虚拟仪器概述1.测试测量仪器发展至今经过了那些阶段?答:经历了4个阶段,即:第一代模拟式仪器(或指针式仪器)、第二代数字式仪器、第三代智能仪器、第四代虚拟仪器。
2.什么是虚拟仪器,它有哪些特点?答:虚拟仪器是指在以计算机为核心的硬件平台上,其功能由用户设计和定义,具有虚拟仪器面板,其测试功能由测试软件实现的一种计算机仪器系统。
特点:虚拟含义主要有两点:1、仪器面板是虚拟的,通过调用控件选板中的控件实现3.简述虚拟仪器的系统组成?答:虚拟仪器系统由硬件平台和软件平台两大部分完成:硬件平台:计算机、I/O接口设备;软件平台:4.简述虚拟仪器的软件层次结构?答:测试管理层:用户及仪器设备等管理。
应用程序开发层:用户根据仪器功能需求开发设计的虚拟仪器程序。
仪器驱动层:完成对特定仪器的控制和通信的程序集合。
I/O总线驱动层:完成对仪器寄存器进行直接存储数据操作,并为仪器设备与仪器驱动程序提供信息传递的底层软件。
第2章一个简单VI的设计1.输入两个数,求两个数的和差运算,并显示结果。
2.程序运行中,用旋钮控件改变图形曲线的颜色。
建立波形图表的属性节点,改为可写,并指定为曲线Plot的颜色Color属性。
第3章几种常用的程序结构1.创建一个VI产生100个随机数,求其最小值和平均值。
2.创建一个VI,每秒显示一个0到1之间的随机数。
同时,计算并显示产生的最后四个随机数的平均值。
只有产生4个数以后才显示平均值,否则显示0。
每次随机数大于0.5时,使用Beep.vi产生蜂鸣声。
3.求X的立方和(使用For和While循环)。
4.编程求1000内的“完数”。
“完数”指一个数恰好等于它本身的因子之和。
例如28=14+7+4+2+1。
5.创建一个VI ,实现加、减、乘、除四种运算方式。
6.编写一个程序测试输入以下字符所用的时间:LabVIEW is a graphical programming language.7.使用公式节点创建VI ,完成下面公式计算,并将结果显示在同一个屏幕上。
数据类型:数组、簇和波形.1概述数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
索引的范围是0到n – 1,其中n是数组中元素的个数。
图3-1所显示的是由数值构成的一维数组。
注意第一个元素的索引号为0,第二个是1,依此类推。
数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。
图3-1数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stuct。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。
3.2数组的创建及自动索引3.2.1创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(如果需要用一个数组作为程序的数据源,可以选择Functions»Array»Array Constant,将它放置在流程图中。
然后再在数组框中放置数值常量、布尔数还是字符串常量。
下图显示了在数组框放入字符串常量数组的例子。
左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。
图3-1数组的创建在前面板中创建数组的方法是,从Controls模板中选择Array & Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。
这样就创建了一个数值数组。
也可以直接在前面板中创建数组和相应的控制对象,然它们复制或者拖曳到流程图中,创建对应的常数。
还有很多在流程图中创建和初始化数组的方法,有些功能函数也可以生成数组。
3.2.2数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
《LabVIEW编程及虚拟仪器设计》课程说明一、概要课程编号:80220142开设学期:春季对象:全校研究生人数:30二、课程内容虚拟仪器是当前仪器与测量发展的一个重要方向,它为各学科提供了一个通用的测量及仪器的设计研究环境,同时它也是学生多门理论课程融合、理论与实践结合的一个很好的环节。
LabVIEW是当前用于数据采集、信号处理和虚拟仪器开发的一个标准工具。
本课程将介绍虚拟仪器的概况,LabVIEW语言、数据采集和虚拟仪器设计。
课程2/3的时间用来在教师指导下完成一到两个虚拟仪器或数据采集系统的设计。
学生所完成的设计成果及技术文档是评定成绩的主要依据。
鼓励学生在设计过程中的创造性工作。
该课程的教学在虚拟仪器实验室进行,每个实验组都配备NI公司的数据采集卡、LabVIEW开发环境及必要的外部设备。
学生可以带自选的设计选题参加。
课程面向全校各系学生开设。
选修该课的学生应当有计算机、数据采集、电工电子和信号处理以及各自研究方向有关测试技术的的基本知识。
三、教学大纲第一章虚拟仪器及LabVIEW入门1.1虚拟仪器概述1.2LabVIEW是什么?1.3LabVIEW的运行机制1.4LabVIEW的初步操作1.5图表(Chart)入门第二章程序结构2.1循环结构2.2分支结构:Case2.3顺序结构和公式节点第三章数据类型:数组、簇和波形(Waveform)3.1数组和簇3.2数组的创建及自动索引3.3数组功能函数3.4什么是多态化(Polymorphism)?3.5簇3.6波形(Waveform)类型第四章图形显示4.1概述4.2Graph控件4.3Chart的独有控件4.4XY图形控件(XY Graph)4.5强度图形控件(Intensity Graph)4.6数字波形图控件(Digital Waveform Graph)4.73D图形显示控件(3D Graph)第五章字符串和文件I/O5.1字符串5.2文件的输入/输出(I/O)5.3数据记录文件(datalog file)第六章数据采集6.1概述6.2模入(Analog Input)6.3模出(Analog Output)6.4采样注意事项6.5附:PCI-MIO-16E-4数据采集卡简介第七章信号分析与处理7.1概述7.2信号的产生7.3标准频率7.4数字信号处理第八章LabVIEW程序设计技巧8.1局部变量8.2全局变量8.3属性节点8.4程序流控制8.5触发与同步第九章数字IO和计数器9.1基本知识9.2数字I/O简介9.3计数器第十章测量专题四、上课及实验地点:西主楼1-301五、实验室环境共17组,每组提供:计算机一台,其中配有NI公司MIO-16E-4采集卡一块,LabVIEW等语言。
LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NATIONAL INSTRUMENTS,简称NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。
LabVIEW是一种图形化编程语言,又称G语言。
其编写的程序称为虚拟仪器VI(Virtual Instrument),以.VI后缀。
LabVIEW模板:◆ 工具模板(Tools Palette)◆ 控件模板(Controls Palette)◆ 功能模板(Functions Palette)VI的组成:◆ 前面板(Panel)控制(Control),指示(Indicator),修饰(Decoration)。
将前面板中的控制和指示统称为前面板对象或控件。
◆ 框图程序(Diagram Programme)节点(Node),数据连线(Wire)节点有:功能函数(Functions),结构(Structures),代码接口节点(CIN),子VI(SubVI)。
数据端口有:控制端口和指示端口,节点端口。
LabVIEW编程又称为“数据流编程”。
◆ 图标/连接端口(Icon/Terminal)把VI作为一个SubVI在其它VI中调用。
常用术语:SubVI 子VI Chart 实时趋势图LLBs VI库Graph 事后记录图Objects 对象Functions 功能Panel 前面板Structures 结构Block Diagram 框图程序Cluster 簇Control 控制Bundle 打包Indicator 指示Unbundle 解包Control和Indicator 前面板对象或控件RefNum 枚举,标志号Palette 模板Local Variable 本地变量Functions Palette 功能模板Global Variable 全局变量Controls Palette 控件模板Constant 常量Tools Palette 工具模板Disable Indexing 无索引Terminal 端口Enable Indexing 有索引Wires 数据连线Read Local 本地读Bad Wires 错误数据连线Write Local 本地写Node 节点Read Global 全局读Attribute Node Write Global 全局写Property Node 属性节点Legend 图例Frame 框架Cursor 光标Channel 框架通道Bounds 边界范围Index 索引Data Acqisition(DAQ) 数据采集Shift Register 移位寄存器Label 标签运行VI1.运行VI(Run)2.连续运行VI(Run Continuously)3.停止运行VI(Abort Execution)4.暂停运行VI(Pause)调试VI1.单步执行单步(入),单步(跳),单步(出)2.设置端点3.设置探针4.显示数据流动画数据类型:基本数据类型:数字型(Numeric),布尔型(Boolean),字符串型(String)构造数据类型:数组(Array),簇(Cluster)其它数据类型:枚举(RefNum),空类型数组(Array):索引号从0开始一维数组(1D,列或向量),二维数组(2D,矩阵)组成:数据类型,数据索引(Index),数据创建:1.控制模板->Array & Cluster子模板2.根据需要将相应数据类型的前面板对象放入数组框架中使用:1. Array Size返回输入数组的长度2. Index Array返回输入数组由输入索引指定的元素3. Replace Array Element替换输入数组的一个元素4. Array Subset从输入数组取出指定的元素5. Reshape Array改变输入数组的维数6. Initialize Array初始化数组7. Build Array建立一个新数组8. Rotate 1D Array将输入数组的最后n个元素移至数组的最前面9. Sort 1D Array将数组按升序排列10.Reverse 1D Array将输入的1D数组前后颠倒,输入数组可以是任何类型的数组11.Transpose 2D Array转置输入的二维数组,也叫矩阵转置12.Search 1D Array搜索指定元素在一维数组中的位置13.Array Max & Min返回输入数组中的最大值和最小值14.Split 1D Array将输入的一维数组在指定的元素处截断,分成2个一维数组15.Interpolate 1D Array线性插值16.Threshold 1D Array一维数组阀值,是线性插值的逆过程17.Interleave 1D Arrays将从输入端口输入的一维数组插入到输出的一维数组中18.Decimate 1D Array将输入的一维数组分成数个一维数组,是Interleave 1D Arrays的逆过程簇(Cluster):类似于Pascal语言的record和C语言的struct组成:不同的数据类型创建:控制面板—>Array & Cluster子面板;向框架添加所需的元素;根据需要更改簇和簇中元素的名称使用:1.Unbundle解包。
虚拟仪器技术实验指导书二○一零年九月目录实验一储液罐状态监控仿真系统 (1)实验二集合成员数据类型的使用 (4)实验三结构和属性的使用 (6)实验四数据的图形显示 (9)实验五信号的分析与处理 (10)实验六初始化前面板控件 (12)实验七数据的记录和回放 (15)实验八曲线拟合 (26)实验一储液罐状态监控仿真系统一、实验(上机)目的1、熟悉LabVIEW程序的组成;2、熟悉、掌握前面板设计和框图程序设计的基本方法;3、了解如何创建子VI;二、实验(上机)内容设计一个储液罐状态监控仿真系统。
要求如下1、监测一个储液罐的实际液位、温度、进口压力、出口压力(各个参数由给定值加扰动组成);2、用曲线图显示被测量液位随时间的变化情况;3、液位超标时用指示器报警;4、手动和自动两种方式调节储液罐的液位高度;5、用调节步长按钮决定自动调节的快慢程度;三、实验(上机)步骤前面板设计1、启动LabVIEW,打开一个空白的VI;2、从控件模版中的各个子模版找出图1-1所示的各个控件;其中压力表为数值子模版中的量表3、修改各个控件外形,并合理排列各个控件;同时修改控件的属性,使其符合系统的要求同时保证前面板的美观;程序框图设计1、在程序框图窗口中观察显示件和控制件的图表的异同;2、利用随机数生成函数模拟温度及压力的扰动;3、双指针压力表的输入为一个由两个数值型数据捆绑成的簇;4、用选择函数来切换自动与手动调节,调节步长控件用于自动调节;5、用While循环结构控制仿真的停止;参考程序框图如图1-2.子VI设计(将该VI设计成一个子VI)1、点击前面板右上角的图标/连接器如图1-3红色方框所示。
图1-1 系统前面板图1-2 仿真系统程序框图2、编辑自己喜欢的图标;3、从图标/连接器的快捷菜单中切换图标/连接器至连接器状态。
编辑连接器,输入为调节步长、自动控制按钮及设定高度,输出为温度压力及实际液位。
4、保存刚才建立的VI,以”学号+姓名”为文件名称,如090220101王华5、新建一个VI,在程序框图中调用刚刚的VI,观察其特点。
东南大学生物科学与医学工程学院虚拟仪器实验报告第三次实验实验名称:数组簇和曲线图形专业:生物医学工程姓名:学号:同组人员:学号:实验室:实验时间:评定成绩:审阅教师:目录一、实验题目 (3)二、实验目的 (3)三、实验内容 (3)1.1实验方案 (3)1.2程序框图设计 (3)1.3程序前面板设计 (4)1.4调试过程 (5)1.5结果分析 (5)1.6使用说明 (7)2.1实验方案 (7)2.2程序框图设计 (7)2.3程序前面板设计 (9)2.4调试过程 (10)2.5结果分析 (10)2.6使用说明 (11)四、心得体会 (11)五、参考文献 (11)一、实验题目1.在波形Graph显件上用两种不同颜色显示一条正弦曲线和一条余弦曲线,每条曲线长度为128个点,其中正弦曲线的x0 =0,△x=1;余弦曲线的x=2,△x=5。
并利用属性节点通过前面板控件改变每条曲线的颜色。
2.设计一个VI,将一个一维数组(含有正数和负数的混合数组)分成两个只含正数(包含0的数)和负数的一维数组。
并分别计算两个数组中各自有多少个元素,同时显示出各自数组中最大、最小值。
二、实验目的1.学习如何创建和初始化数组。
2.建立自动索引概念。
3.学习使用波形Graph显示多条曲线的方法,学习改变Graph上曲线的颜色等属性的方法。
三、实验内容1.在波形Graph显件上用两种不同颜色显示一条正弦曲线和一条余弦曲线,每条曲线长度为128个点,其中正弦曲线的x0 =0,△x=1;余弦曲线的x=2,△x=5。
并利用属性节点通过前面板控件改变每条曲线的颜色。
1.1实验方案使用for循环以及产生正弦和余弦,并使一个周期为128个点;利用簇函数设置正余弦函数的x0和△x,接入到波形图上产生波形;设置属性节点,可改变曲线颜色。
1.2程序框图设计⑴首先运用for循环,设置循环次数为128,产生曲线横轴的128个点。
⑵利用将一个周期2π分成128份,并与i(每次循环i自动加1)相乘后形成x轴的取样点。
簇和数组簇是一种类似数组的数据结构,用于分组数据。
簇和数组有着重要的差别,其中一个重要差别是,簇可以包含不同的数据类型,而数组仅可以包含相同的数据类型。
例如,一个数组可以包含10个数字指示器,一个簇却可以包含一个数字控件,一个开关和一个字符串控件。
尽管簇和数组的元素都是有序存放的,但访问簇的元素最好是通过释放的方法同时访问其中部分或全部元素,而不是通过索引一次访问一个元素。
簇和数组的另一个差别是簇具有固定的大小。
簇通常用于将出现在框图上的有关数据元素分组管理。
因为簇在框图中仅用唯一的连线表示,所以对于减少连线混乱和子VI需要的连接器端子个数,使用簇有着积极的效果。
可以将簇看做是一捆连线,线缆中每一个连线表示簇的不同元素。
在框图上,只有当簇具有相同类型,相同元素数量和相同元素顺序时,才可以将簇的子端连接。
多态性应用于簇时,只需要簇具有同样顺序,同样数量的元素。
下面来向大家介绍簇的创建簇的创建框位于前面板中的控件→新式→数组,矩阵和簇→簇,如图:然后就可以往簇的框中添加各种类型的控件了,例如现在要建立一个学生的记录信息,包括学生的姓名,学号,性别和年龄.这就需要在簇外壳里依次放入两个字符串输入控件,一个数字控件和一个布尔控件.如图:与数组的创建类似,簇也可以从程序框图中创建,先在程序框图上放置一个簇外壳,然后就可以在簇外壳里放置各种数据类型常数。
如图:簇内对象的大小是可以调整的,右击簇边界,在弹出的快捷菜单中可以选择各种调节操作,如图:选择调整为匹配大小,即可缩小簇的边框,如图为调整后的结果:簇结构中的元素排列是按照它们放置的先后来排序的,它与簇内元素的位置无关。
放入簇内的第一个元素序号为0,第二个元素序号是1,依次向下排列。
如果删除了一个元素,序号将重新自动调整。
簇的排序很重要,它直接影响着后面将要介绍的“捆绑”以及“接触捆绑”函数的端口顺序,如果你想将一个簇与另一个簇连接,这两个簇的序和类型必须相同。
第三章数据类型:数组、簇和波形3.1概述数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
索引的范围是0到n – 1,其中n是数组中元素的个数。
图3-1所显示的是由数值构成的一维数组。
注意第一个元素的索引号为0,第二个是1,依此类推。
数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。
图3-1数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stuct。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。
3.2数组的创建及自动索引3.2.1创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。
如果需要用一个数组作为程序的数据源,可以选择Functions»Array»Array Constant,将它放置在流程图中。
然后再在数组框中放置数值常量、布尔数还是字符串常量。
下图显示了在数组框放入字符串常量数组的例子。
左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。
图3-1数组的创建在前面板中创建数组的方法是,从Controls模板中选择Array & Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。
这样就创建了一个数值数组。
也可以直接在前面板中创建数组和相应的控制对象,然后将它们复制或者拖曳到流程图中,创建对应的常数。
还有很多在流程图中创建和初始化数组的方法,有些功能函数也可以生成数组。
3.2.2数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
数组元素不能是数组、图表或者图形。
如果您想查看一些数组的例子,请查看Examples\General\arrays.llb中的例子。
3.2.3自动索引For循环和While循环可以自动地在数组的上下限范围内编索引和进行累计。
这些功能称为自动索引。
在启动自动索引功能以后,当把某个外部节点的任何一维元素连接到循环边框的某个输入通道时,该数组的各个元素就将按顺序一个一个地输入到循环中。
循环会对一维数组中的标量元素,或者二维数组中的一维数组等编制索引。
在输出通道也要执行同样的工作――数组元素按顺序进入一维数组,一维数组进入二维数组,依此类推。
在默认情况下,对于每个连接到For循环的数组都会执行自动索引功能。
可以禁止这个功能的执行,方法是用鼠标右键单击通道(输入数组进入循环的位置),在快捷菜单中选择DisableIndexing。
练习3-1创建一个自动索引的数组目的:使用 For 循环的自动索引功能创建数组,并用一个图形(Graph)显示该数组。
前面板图3-2练习3-1的面板1.打开一个新的前面板。
2.选择Controls»Array & Cluster,在前面板中放置一个数组。
设置它的标签为Waveform Array。
3.选择Controls»Numeric,在数组框中插入一个数字式显示对象。
如右图所示。
它用于显示数组的内容。
4. 选择Controls»Graph ,在前面板中放置一个波形图。
设置它的标签为Waveform Graph 。
5. 隐藏图例和模板。
6. 用鼠标右键单击图形,并在快捷菜单中取消选中 YScale»Autoscale Y ,禁止自动坐标功能。
7. 使用文本工具,把Y 轴的范围改为-0.5到1.5。
流程图8. 按照下图创建流程图。
图3-2 练习3-1的流程图● 由Functions»Select a VI…寻找LabVIEW\activity 目录下的Generate WaveformVI ,它的作用是返回波形中的某一点。
这个VI需要输入一个索引,我们将循环周期连接到这个输入。
● 注意Generate Waveform VI 连出来的连线在循环边界变成一个数组时会变粗,正是在这个边界处形成了一维数组。
● For 循环会自动累计边界内的数组。
这种功能叫做自动索引。
在这个例子中,连接到循环计数输入的数值常数令For循环创建了一个由100个元素组成的数组。
● Bundle 函数( Functions» Cluster )——将图块中的各个组件组合成一个簇,在正确连接以前需要改变该函数的图标的大小。
将移位工具放在图标的左下角。
变形工具会变成如左图所示,拖曳鼠标直到出现第三个输入端子。
● 数值常数( Functions»Numeric)——三个数值常数用于设置For 循环执行的周期数N=100,初始X=0和delta X=1。
9. 从前面板执行该VI 。
该VI 将把自动索引后的波形图数组显示在波形图中。
10. 把 X 的delta 值改为0.5,X 的初始值改为20。
再次执行该VI 。
注意,波形图现在同样显示100个点,而每个点的初始值为20,X 的delta 值为0.5(见X 轴)。
11. 只需在显示器中输入元素的索引号就可以查看波形数组中的任何元素。
如果输入的数比数组的元素个数大,那么显示Waveform Graph Waveform Array器将变暗,表示您没有为该元素设置索引。
如果需要一次查看多个元素,可以通过改变数组显示对象的大小来实现。
把定位工具放置在数组框的右下角。
工具将变成右图所示的变形工具。
当工具变形时,用鼠标拖曳数组的右边或者下边。
数组现在就可以按照元素索引的上升顺序显示多个素,以某个与指定索引对应的元素开始,如下图所示。
图3-3练习3-1中多个数组元素的同时观察在前面的流程图中,您为波形图指定了初始的X值和deltaX值。
默认的X初始值是0,delta X 值是1。
这样,也可以把波形数组直接连接到波形图端子,而无需指定初始的X值和delta X值,如图3-4所示。
图3-4练习3-1使用默认X及Delta X时简化后的流程图12.按上图删除 Bundle功能函数和它所连接的常数对象。
方法是用移位工具选择该功能函数和连接的常数对象,按下<Delete>。
再选择Edit»Remove Bad Wire s。
按照上图完成流程图的连线。
13.执行该VI。
注意初始的X值是0,delta X值是1。
多图区图形可以创建含有多条曲线的图形,方法是创建一个数组,用它来汇集传给单图区图形的类型的数据元素。
图3-5 练习3-1多图区图形的流程图14. 按照上图创建流程图。
● 正弦函数(Functions»Numeric»Trig onometric )——在这里,它用于在For 循环中创建一个由数据点组成的数组,表示一个正弦波周期。
● Pi 常数(Functions»Numeric»AdditionalNumeric Constants )● Build Array (Functions»Arra y )——在这里,它用于创建合适的数据结构(一个二维数组),在波形图中绘制两条曲线。
用移位工具拖曳边角可以增大该函数的面积,创建两个输入端子。
15. 返回前面板,执行该 VI 。
注意同一个波形中的两个图区。
默认情况下,它们的X 初始值都是0,delta X 初始值都是1。
下图是该程序的运行结果(前面板未改动)。
16. 把该VI 保存为LabVIEW\Activity 目录中的GraphWaveform Arrays.vi 。
17. 可以修改图形中的某个图区的外观。
方法是,用鼠标右键单击这个图形,再从弹出菜单选择对应的图例。
Array图3-6 练习3-1多图区图形的面板显示练习 3-1 结束。
在上面这个例子中,由于计算端子连接了一个值为100的常数对象,所以 For 循环将执行100次。
下面这个例子显示了另外一种控制循环执行次数的方法。
更详细的例子建议调阅Examples》Fundamentals 》Graphsand Charts》Graph Examples》Waveform Graph例子。
练习3-2对输入数组使用自动索引功能目的:打开并执行一个VI,它将在一个For循环中使用自动索引功能处理一个数组。
1.选择File»Open…,打开Examples\General\arrays.llb中的Separate Array ValuesVI 。
2.打开流程图。
下面的示意图显示的是在TRUE和FALSE时的情况。
图3-7练习3-2的流程图注意,Input Array引出的连线与For循环外的粗线不同,表示这是一个数组,而循环内部的细线则表示这是一个数组元素。
数组元素在每个循环期间将自动编号。
用自动索引功能设置 For 循环的计数器注意,计数器端子还没有连线。
当您对某个进入For循环的数组使用自动索引功能时,循环就将根据数组的大小执行相应的次数,这样就无需连接某个值到计数器的端口。
如果对一个以上的数组使用自动索引功能,或者在使用自动索引功能之外还需要设置计数器时,实际的循环次数将是其中最小的数。
3.执行该VI。
在输入的八个数中,可以看到4个属于正数数组,另外4个属于负数数组。
4.从流程图中将一个值为5的常数对象连接到For 循环的计数器端子。
执行该 VI。
可以看到尽管输入数组仍然有八个元素,但是3个位于正数数组,另外2个位于负数数组。
这说明,如果设置了N并开启了自动索引功能,那么实际循环的次数将取较小的数。
5.关闭该VI,不要保存任何修改。
注:练习3-2的算法说明下面是一段伪代码,解释上面的算法,假定输入数组为A(已赋值),B(正数)、C(负数)。
Sbr 、Scr分别是与B数组、C数组对应的右寄存器数组,Sbl 、Scl分别是与B数组、C数组对应的左寄存器数组,size运算为测数组实际大小,ins运算为将一个数插入数组中最左边的空位。
练习3-2结束。
3.3数组功能函数LabVIEW提供了很多用于操作数组的功能函数,位于Functions»Array中。
其中包括Replace Array Element,、Search 1DArray、Sort 1D Array、Reverse 1D Array和Multiply ArrayElements等等。
创建数组——Build Array函数(Functions»Array),用于根据标量值或者其他的数组创建一个数组。