《数据类型:数组、簇和第六章图形显示.ppt》由会员分享,可在线阅读,更多相关《数据类型:数组、簇和第六章图形显示.ppt(26页珍藏版)》请在三一办公上搜索。
1、第五章 数据类型:数组、簇和波形 51 概述,数组是同类型元素的集合。一维或者多维,每维最多可有2311个元素。通过数组索引访问其中的每个元素。索引范围是0到n 1,其中n是数组中元素的个数。图5 簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。,52数组的创建及自动索引,创建数组:首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。前面板中创建数组的方法是,从Contr
2、ols模板中选择Array&Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。数组控制对象、常数对象和显示对象:通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。数组元素不能是数组、图表或者图形。,52数组的创建及自动索引,自动索引:For和While循环可以自动地在数组的上下限范围内编索引和进行累计此称自动索引引。当把某个外部节点的任何一维元素连接到循环边框的某个输入通道时,该数组的各个元素就将按顺序一个个地输入到循环中。循环会对一维数组中的标量元素,或者二维数组中的一维数组等编制索引。在输出
3、通道也要执行同样的工作数组元素按顺序进入一维数组,一维数组进入二维数组,依此类推。练习 5-1创建自动索引的数组。Graph Waveform Arrays 在默认下,对每个连接到For循环的数组都会执行自动索引功能。练习5-2对输入数组用自动索引功能。Separate Array Values,5数组功能函数,操作数组的功能函数位于FunctionsArray中。其中包括Replace Array Element,、Search 1D Array、Sort 1D Array、Reverse 1D Array和 Multiply Array Elements等等。创建数组Build Array
4、函数(FunctionsArray),用于根据标量值或者其他的数组创建一个数组。初始化数组(Initialize Array)用于创建所有元素值都相等的数组。下图中,该功能函数创建了一个一维数组。,5数组功能函数,数组大小Array Size函数,返回输入数组中的元素个数,见例子 array size 数组子集(Array Subset)选取数组或者矩阵的某个部分。索引数组(Index Array)用于访问数组中的某个元素。见例子index array 替换子数组内容(Replace Array Subset)用new element/subarray的内容替换索引目标。见例子replace
5、array,5数组功能函数,向数组加入新元素(Insert into Array)见例子insert into array 从数组删除(Delete From Array),从n-dim array中删除单个元素或子数组。从索引的位置开始删除长度为length的元素或子数组。见例子delete from array 练习 5使用创建数组功能函数:使用创建数组函数,把一些元素和输出组织成一个更大的数组。(做作业),5 什么是多态化(Polymorphism),多态化是指一种函数功能,即可以协调不同格式、维数或者显示的输入数据。大多数LabVIEW的函数都是多态化的。G语言函数对于各种情况都具有多
6、态性功能。有些函数接受数值和布尔输入,而有些函数接受其他任何数据格式的组合。举例子说明(讲义P11)图3-9,5簇,创建簇控制和显示:在前面板上放置一个簇壳(Cluster shell)就创建了一个簇,可以将前面板上的任何对象放在簇中。簇的序(Order):簇的元素有一个序,它与簇内元素的位置无关。簇内第一个元素的序为0,第二个是1,等等。如果你删除了一个元素,序号将自动调整。如果你想将一个簇与另一个簇连接,这两个簇的序和类型必须同一。改变簇内元素的序,可在快速菜单中选择ReOrder Controls In Claster,这时会出现一个窗口,在该窗口内可以修改序。,5簇,使用簇与子VI传递
7、数据 捆绑(Bundle)数据:Bundle功能将分散的元件集合为一个新的簇,或允许你重置一个已有的簇中的元素。最终簇的序是取决于被捆绑的输入的顺序。分解(Unbundle)簇:Unbundle功能是Bundle的逆过程,它将一个簇分解为若干分离的元件。练习5-簇:学习创建簇、分解簇,再捆绑簇并且在另一个簇中显示其内容。,5簇,用名称捆绑与分解簇Bundle By Name和Unbundle By Name功能:允许根据元素的名称(而不是其位置)来查询元素。访问你需要的元素,但不能创建新簇;它只能重置一个已经存在的簇的元素,同时你必须给Bundle By Name图标中间的输入端子一个输入以申
8、明要替换其元素的簇。Unbundle可返回指定名称的簇元素,不必考虑簇的序和大小。,5簇,数组和簇的互换数组变为簇(或者相反)很方便,LabVIEW包括的关于数组的操作功能多于簇。Cluster to Array 和 Array to Claster 实现二者之间的相互转换。,5簇,error in 和 error out 簇:是一类特殊的预定义簇,两个是具有相同结构的簇,都由布尔类型、整型和字符串数据类型组成。在函数执行之前检查error in 输入参数,如果已发生错误,就不在进行操作,直接把输入进来的error in 参数复制给error out 参数输出。否则,正常执行。,56波形,Wa
9、veform数据类型(包含4个组成部分)1、t0为Time Stamp类型表示波形数据的时间起点。2、dt为双精度浮点类型,表示波形相邻数据点之间的时间距离,以s为单位。3、Y为双精度浮点数组,按时间先后顺序给出整个波形的所有数据点。4、attribuates为Variant 类型,用于携带任意的属性信息。,56波形,波形操作函数Build Waveform:建立或修改已有波形。如果Waveform端子没有接输入,则根据输入参数建立新的波形数据,在输出端子中返回。如果有,则根据输入参数修改波形数据,修改后的结果在输出端子中返回。Get Waveform components 把波形解包。Set
10、 Waveform Attribute 为Waveform添加名为name、值为value的属性。,56波形,Get Waveform Attribute 获取波形中名为name的属性。例子:exampleswaveformoprations.llb中的Creat Waveform example.vi,第六章 图形显示 6概述,图形显示功能中Graph和Chart两个基本概念的区别:Chart是将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示出来,它可以反映被测物理量的变化趋势。传统的模拟示波器、波形记录仪就是这样。Graph则是对已采集数据进行事后处理的结果。它先将被采集数据
11、存放在一个数组之中,然后根据需要组织成所需的图形显示出来。它的缺点是没有实时显示,但是它的表现形式要丰富得多。,第六章 图形显示 6Graph控件,曲线图例可用来设置曲线的各种属性,包括线型(实线、虚线、点划线等)、线粗细、颜色以及数据点的形状等。见图6-2 图形模板可用来对曲线进行操作,包括移动、对感兴趣的区域放大和缩小等 光标图例可用来设置光标、移动光标,帮助你用光标直接从曲线上读取感兴趣的数据。刻度图例用来设置坐标刻度的数据格式、类型(普通坐标或对数坐标),坐标轴名称以及刻度栅格的颜色等。,第六章 图形显示 6Chart的独有控件,显示缓冲器:Chart的数据并没有事先存在一个数组中,它
12、是实时显示的,为了能够看到先前的数据,Chart控件内部含有一个显示缓冲器,其中保留了一些历史数据。这个缓冲器按照先进先出的原则管理,其最大容量是1024个数据点。滚动条(Scrollbar):它直接对应于显示缓冲器,通过它可以前后观察缓冲器内任何位置的数据。数据显示(Digital Display):选中它,可以在图形右上角出现一个数字显示器,这样可以在画出曲线的同时显示当前最新的一个数据值。,第六章 图形显示 6Chart的独有控件,刷新模式(Update Mode):Strip Chart Mode(条壮图)、Scope Chart Mode(示波器模式)、Sweep Chart Mod
13、e(扫描模式)堆叠式图区(Stack Plots):在相同的纵坐标下,由于各种测量信号的差异,将几条曲线显示在同一个图区有困难时,可以组织出一种纵坐标相同,而有各自横坐标的堆叠式图区。练习:6 Chart和Graph的比较,第六章 图形显示 64XY图形控件(XY Graph),波形图(Waveform Graph)有一个特征,其X是测量点序号、时间间隔等,Y是测量数据值。但是它并不适合描述一般的Y值随X值变化曲线。适合于这种情况的控件是XY Graph,不要求水平坐标等间隔分布,允许绘制一对多的映射关系。练习6ExpressXY Graph应用举例。书P134,第六章 图形显示 6.5 强度
14、图形控件(Intensity Graph),强度图形控件提供了一种在二维平面上表现三维数据的方法。例如可以用屏幕色彩的亮度来反映来反映一个二维数组元素值的大小。图6 注意:图中的x、y轴刻度对应的是数组行、列的序号。,第六章 图形显示 6.6 字波形图控件(Digital Waveform Graph),见该控件的例子该程序的框图中值得注意的问题有以下几点:1、十进制数可以直接送给Digital Waveform Graph,不必事先转化为二进制数。2、在送给Digital Waveform Graph之前,需要经过一个捆绑(bundle函数)。3、捆绑的顺序是x0、deltx、输入数据,最后是Number of Ports。这里的Number of Ports将反映二进制的位数或字长,为时是位,为时变为位,余类推。,第六章 图形显示 6.7 3D Graph 图形显示控件,3D Surface.vi:使用该子VI绘制三维空间的曲面。见例子3D Surface Graph 3D Parametric Surface.vi:3D Curve.vi:绘制三维空间的曲面。练习:,图5数组示意图 返回,返回,刻度图例(Scale Legend),光标图例(Cursor Legend,图6用强度图形表现一个二维数组及其元素值的大小 返回,