第5章波形控件
本章学习目标
熟练掌握波形图和波形图表的使用方法
了解XY图、强度图和数字波形图的使用方法
熟练掌握三维图形的使用方法
波形显示控件是程序设计中前面板常用对象之一,其子选板位于“控件”→“新式”→“图形”中,如图5.1所示。本章先介绍波形图表和波形图的相关知识,再介绍XY图、强度图和数字波形图的使用方法,最后介绍三维图形的表示方法。
图5.1“图形”子选板
5.1波形图表
波形图表作为显示控件使用,主要由波形显示区、横纵坐标以及图例构成。
波形图表可以保存旧数据,所保存数据的长度可以自行指定。新传给波形图表的数据被接续在旧数据之后,这样就可以在保存一部分旧数据显示的同时显示新数据。也可以把波形图表这种工作方式想象为先进先出的队列,新数据到来之后,会把同样长度的旧数据从队列中挤出去,这个长度默认为1024,用户也可以右击图表,从弹出的快捷菜单中选择“图标历史长度”设置大小。
5.1.1波形图表的右键快捷菜单
1. 显示项
显示项是设置波形图表外观显示的,用于指明对象中哪些元素是可观的,如图5.2所示,它提供了一种选择显示标签、X滚动条、图形工具选板及标尺图例的方法。
图5.2波形图表显示项菜单
图5.3为除默认条件下的波形图表之外选择标尺图例和图形工具选板的显示样式。
图5.3显示标尺图例和图形工具选板的波形图表(X标尺,Y标尺)
在图例处,通过鼠标拖曳可以扩展出多条曲线,右击曲线,弹出如图5.4所示的对话框,可以设置曲线的样式、颜色以及宽度等属性,方便区分各个曲线。
2. 高级
在“高级”选项的子菜单中,选择刷新模式,可以切换波形图表在交互式数据显示中三种刷新模式: 示波器图表、带状图表和扫描图表,如图5.5所示。
带状图表: 从左到右连续滚动显示运行数据,类似于纸带表记录器。
示波器图表: 当曲线到达绘图区域的右边界时,LabVIEW将擦除整条曲线并从左边界开始绘制新曲线,类似于示波器。
图5.4图例对话框
图5.5波形图表刷新模式
扫描图表: 扫描图中有一条垂线将右边的旧数据和左边的新数据隔开,类似于心电图仪。
3. 属性
属性对话框如图5.6所示,包含外观、显示格式、曲线以及标尺等属性设置。用户可以根据需要单击需要设置的选项进行设置。
4. 分格显示和层叠显示设置
波形图表中,当显示多条曲线时,可以选择“层叠式”重叠模式,即分格显示曲线或层叠显示曲线,如图5.7所示。
图5.6波形图表属性对话框
图5.7层叠式显示曲线
5.1.2波形图表应用例题
例5.1利用波形图表输出随机数乘以5和3的结果。
该程序的前面板和程序框图如图5.8和图5.9所示,程序框图中用到了捆绑函数,在前面板分别采用层叠和分格形式进行显示。
图5.8例5.1前面板
图5.9例5.1程序框图
例5.2用波形图表同时显示正弦和余弦两个波形。
程序框图用到了2π,它位于“函数”→“数值”→“数学与科学常量”子选板中; 用到的“正弦”和“余弦”函数在“函数”→“数学”→“初等与特殊函数”子选板中。前面板和程序框图如图5.10和图5.11所示。
在前面板的波形图表上,右击选择“属性”命令,在属性设置界面标尺属性内的“自动调整标尺”处设置最大值为359和最小值为0,如图5.12所示,则每次运行数据长度为360,一个周期,再运行一次程序,横坐标的数值就会变为起始360,终止719,再次运行再依次增加。
图5.10例5.2前面板图
图5.11例5.2程序框图
图5.12标尺设置对话框
5.2波形图
波形图和波形图表大部分功能和显示样式都是一样的,也可以接收多种数据类型,从而最大程度地降低数据在显示为图形前进行类型转换的工作量。波形图显示波形是以成批数据一次刷新方式进行的,数据输入基本形式是数组、簇或波形数据,其显示默认状态下含有主网络和辅网络。
例5.3利用创建波形函数创建波形,在波形图中进行显示。
具体步骤为:
(1) 新建VI,在程序框图中按目录“函数”→“编程”→“波形”子选板,找到“创建波形函数”,将其所包含的元素Y、t0以及dt显示出来。
(2) 添加for循环,输出接至创建波形的Y输入端,dt接数值常量10。
(3) 按目录“函数”→“编程”→“数值”→“转换”子选板,选择“转换为时间标识”函数,其连线如图5.13所示。
(4) 前面板添加波形图,程序框图接至创建波形的输出端口,运行程序,显示结果如图5.14所示。这里设置了波形图显示的图例,以凸显数值。
例5.4本例题给出了波形可以接收的所有数据格式。
波形数据来源于两个双精度数组,这两个数组的数据来自“打开索引功能”边框上的“输出通道”。在for循环中,对0~2π均匀分布的100个点,连接至正弦和余弦函数上,进行数据显示,给出了7种波形图可以接收的数据格式。图5.15和图5.16分别为例5.4的程序框图和前面板。
图5.13例5.3程序框图
图5.14例5.3前面板
图5.15例5.4程序框图
图5.16例5.4前面板
使用Graph可以绘制一条或多条曲线,在这两种情况下有着不同的数据组织格式。
当绘制一条曲线时,波形Graph可以接收如下两种数据格式:
(1) 一维数组,对应于图5.15和图5.16中的单曲线波形图。此时的时间默认为从0开始,而且数据点之间的时间间隔为1s,即在时刻0对应数组中的第0个元素,时刻1对应于数组中的第1个元素等。
(2) 簇数据类型。对应于图5.15和图5.16中的(Xo=10,dx=2,Y)单曲线。簇中应包括时间起点、时间间隔和数值数组3个元素。
当绘制多条曲线时,波形Graph可以接收如下数据格式:
(1) 二维数组,对应于图5.15和图5.16中的多曲线波形图1。每一行可解释为一条曲线数据,时间从0开始,每个数据点之间的间隔为1s。因为二维数组本身要求每一行的长度相同,所以这种数据格式要求每条曲线的数据长度相同。
(2) 把数组打包成簇,然后以簇作为元素组成数组,对应于图5.15和图5.16中的多曲线波形图2。每个簇里包含的数组都是一条曲线。当多条曲线的数据点的个数不同时,可以使用这种数据组织方式。时间从0开始,每个数据点之间的间隔为1s。
(3) 由数值类型元素t0、dt以及数值类型二维数组Y组成的簇,对应于图5.15和图5.16中的(Xo=10,dx=0.5,Y)多曲线波形图,其中,t0作为时间起点,dt为数据点之间的时间间隔,Y的每一行为一条曲线数据。
(4) 由簇作为元素的一维数组,对应于图5.15和图5.16中(Xo=10,dx=2,Y)Multi Plot 1。每个簇元素都由数值类型元素t0,dt和数值类型数组3个元素组成。t0作为时间起点,dt为数据点之间的时间间隔,数值数组代表一条曲线的数据点。这是最通用的一种多曲线数据格式,因为允许每条曲线都有不同的起始时间、数据点时间间隔和数据点长度。
(5) 在由数值类型元素t0、dt以及以簇为元素的数组,这3个元素组成的簇中,数组元素每一个簇元素都由一个数组打包而成,每个数组都是一条曲线,对应于图5.15和图5.16中的(Xo=10,dx=5,Y)多曲线波形图。所有曲线共用最外层簇提供的起始时间t0和时间间隔dt参数。
5.3XY图
“波形图表”和“波形图”只能用于显示一维数组中的数据或是一系列单点数据,对于需要显示横坐标、纵坐标对的数据,它们就无能为力了。要想描绘X和Y的函数关系,就需要用到“XY图形”。
例5.5应用XY图描述同心圆。
设计步骤如下:
(1) 新建一个VI,在前面板上放置一个XY图,使曲线图注显示两条曲线标识。
(2) 在程序框图窗口放置一个for循环结构,给计数端口赋值360,按照路径“数值”→“数学”→“初等与三角函数”→“三角函数”子选板的“正弦与余弦”函数,分别求出一个周期0~2π数据的正弦值和余弦值,选择“捆绑”函数,将每次循环产生的一对正弦值和余弦值组成一个簇,循环结束后将这360个簇组成一个簇数组。
(3) 因为XY图的显示机制决定了它的输入必须是簇,所以添加两个创建簇数组函数,最后再用“建立数组”函数组成一个簇数组,创建数组函数选择“连接输入”。
完成连线,并运行程序,前面板和程序框图如图5.17和图5.18所示。
图5.17例5.5的前面板
图5.18例5.5的程序框图
5.4强度图
“强度图形”控件提供了一种在二维平面上表现三维数据的方法。例如可以用屏幕色彩的亮度反映一个二维数组元素值的大小。强度图可以分为“强度趋势图”和“强度波形图”。它们的大部分组件和功能都是相同的。
例5.6通过实例来说明使用强度波形图显示数组元素大小。
设计步骤如下:
(1) 新建一个VI,在前面板上放置一个“强度图”,将它的X轴和Y轴的“刻度”标签分别改为“行”和“列”。
(2) 另外在前面板上放置一个数值型的“二维数组”控件,右击任一数组成员,在快捷菜单的“显示类型”命令项中将数据类型改为I8型,用操作工具向二维数组中输入4行3列的数据,切换到程序框图编辑窗口,将“二维数组”与“强度图”相连。
运行程序,前面板和程序框图如图5.19所示。
当改变二维数组内的元素值时,其对应的强度波形图中的颜色值也跟着发生相应变化。
图5.19例5.6的前面板和程序框图
5.5数字波形图
LabVIEW提供了“数字波形图”来显示0和1表示的数字信号。显示数字信号首先要对数字信号用“捆绑函数”进行捆绑,数字捆绑的顺序Xo,Delta X,输入数据和采样点数。这里采样点数反映了二进制的位数或字长,等于1时为8bit,等于2时为16bit,依次类推。
例5.7用数字波形图显示二进制的数组,1为高电平,0为低电平。
设计步骤:
(1) 新建一个VI,在前面板上放置一个“数字波形图”。
(2) 在前面板放置一个数值型的“一维数组”,数据类型设为I8型,在“格式与设置”对话框中选择“二进制显示”,选择一个数组元素,在工具栏上的“字体”设置下拉菜单中选择“右对齐”,将二进制数字设为右对齐显示。
图5.20例5.7的程序框图
(3) 切换到程序框图,在“簇函数”子模板选择“打包”函数,分别在“打包”函数的输入端口添加为Xo=0,Delta X=1,输入数组和采样点数=1,将输出簇送给数字波形显示。
程序框图如图5.20所示。
运行程序,显示运行结果如图5.21所示。
图5.21例5.7的前面板
从程序运行结果图中可以看出,横坐标X轴表示数据的序号,序号从0~5,纵坐标Y轴从上到下表示数字信号从最低位到最高位的电平变化,例如对序号为3的二进制数101(十进制5),用数字波形图表示就是00000101,行7代表最高位,行0代表最低位。
5.6三维图形
在实际工程应用中,“三维图形”通常是一种最直观的数据显示方法,它可以很清楚地绘制出空间轨迹,给出X、Y和Z三个方向的依赖关系。例如在非平稳随机信号分析中,通常采用时域分析方法,这时就可以用三维图形来描述,X轴表示时间,Y轴表示频率,Z轴表示时域频谱。
LabVIEW中包含的三维图形如图5.22所示。
图5.22三维图形子选板
主要模块介绍如下:
1. 三维曲面图形
前面板放置一个三维曲面图形时,程序框图将同时显示两个图标,如图5.23所示,分别为creat_plot_surface.vi和3D Graph,前一个用来三维作图,后一个用来显示图形。
creat_plot_surface.vi的端口和定义如图5.24所示,该端口依据x、y和z点绘制曲面,该VI有两个一维数组(x,y)和一个二维数组(z),指定图上的各个点。
图5.23三维曲面图形
图5.24creat_plot_surface.vi的端口
2. 三维参数图形
前面板放置一个三维参数图形时,程序框图将同时显示两个图标,如图5.25所示,类似三维曲面图形。
图5.25三维参数图形
creat_plot_parametric.vi的端口和定义如图5.26所示,依据x、y和z点绘制曲面。该VI有三个二维数组,指定曲面上的各个点。
例5.8三维曲面图形例程。
本例显示z=sin(x)cos(y)的曲面图,前面板和程序框图如图5.27和图5.28所示,可以用鼠标任意拖动前面板三维图形,以多角度观察图形。
图5.26creat_plot_parametric.vi的端口
图5.27例5.8前面板
图5.28例5.8程序框图
这里,z变量为二维数组,但x和y为一维数组,因此第一个for循环输出端要选择“最终值”,而非“索引”。
例5.9使用三维参数图形来绘制空心球体。
空心球体的参数方程为:
x=(2+cosα)cosβ
y=(2+cosα)sinβ
z=sinα(51)
程序框图和前面板分别如图5.29和图5.30所示。
图5.29例5.9程序框图
前面板的三维图形,右击都有一项三维图形属性设定,对话框如图5.31所示,可以对三维图形做进一步设置。
图5.30例5.9的前面板
图5.31“三维图形属性”对话框
……
展开