2.case 选择结构
选择结构如上图所示。它的子框图像一摞卡片一样重叠在一起,任何时候只显示其中一个, 向这些子框图填写代码也要一层层打开进行。由选择结构外连接到选择端口的值决定了选择
结构应该执行哪一个子框图的代码。这个值的类型可以是整形、布尔型、字符型或枚举型,
默认为布尔型。选择端口图标的颜色也会随连接的数值类型而改变。子框图标志指明当前显 示的子框图对应的选项,但是程序运行时并不一定执行当前显示的子框图。
- 15 -
第五章:图形显示
1.概述
图形显示对于虚拟仪器面板设计是一个重要的内容。LabVIEW 为此提供了丰富的功能。 在前面几章我们已经接触了这个问题,现在较系统地介绍一下。
我们不从图形的实现方法上去讨论问题,那是计算机图形学的课题。但我们需要从用户 的可能的需求角度探求一下,如果你需要做虚拟仪器方面的开发,那么可能遇到些什么图形 问题。LabVIEW 在这方面所做的工作是非常值得借鉴的。
在 LabVIEW 的图形显示功能中 Graph 和 Chart 是两个基本的概念。一般说来 Chart 是将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示出来,它可以反映 被测物理量的变化趋势,例如显示一个实时变化的波形或曲线,传统的模拟示波器、波形记 录仪就是这样。而 Graph 则是对已采集数据进行事后处理的结果。它先将被采集数据存放 在一个数组之中,然后根据需要组织成所需的图形显示出来。它的缺点是没有实时显示,但
是它的表现形式要丰富得多。例如采集了一个波形后,经处理可以显示出其频谱图。现在,
数字示波器也可以具备类似 Graph 的显示功能。
LabVIEW 的 Graph 子模板中有许多可供选用的控件,其中常用的见下表:
Chart Graph Waveform(波形) XY Intensity(强度图) Digital(数字图) 3D Surface(三维曲面) 3D Parametric(三维参变量) 3D Curve(三维曲线)
* * * * * * * * * 由表中可以看出,Chart 方式尽管能实时、直接地显示结果,但其表现形式有限,而 Graph 方式表现形式要远为丰富,但这是以牺牲实时为代价的。在 LabVIEW 中还包含有极 坐标等其他图形(Plot),本章不讨论。
2.Graph 控件
各种图形都提供了相应的控件,以 Graph 为例介绍。下图所示为它的控件。所有这些
控件都包含在图形快速菜单的 Visible Items 选项下。
曲线图例可用来设置曲线的各种属性,包括线型(实线、虚线、点划线等)、线粗细、 颜色以及数据点的形状等。
图形模板可用来对曲线进行操作,包括移动、对感兴趣的区域放大和缩小等。
光标图例可用来设置光标、移动光标,帮助你用光标直接从曲线上读取感兴趣的数据。 刻度图例用来设置坐标刻度的数据格式、类型(普通坐标或对数坐标),坐标轴名称以 及刻度栅格的颜色等。
- 16 -
标签(Label)
曲线图例 说明 (Caption) 图形模板 (Graph Palette) 刻度图例 (Scale Legend)
光标图例 (Cursor Legend) Graph 的图形控件
3.Chart 的独有控件
Chart 的数据并没有事先存在一个数组中,它是实时显示的,为了能够看到先前的数据, Chart 控件内部含有一个显示缓冲器,其中保留了一些历史数据。这个缓冲器按照先进先出 的原则管理,其最大容量是 1024 个数据点。
? 滚动条(Scrollbar)
它直接对应于显示缓冲器,通过它可以前后观察缓冲器内任何位置的数据。
? 数据显示(Digital Display)
选中它,可以在图形右上角出现一个数字显示器,这样可以在画出曲线的同时显示当前 最新的一个数据值。
? 刷新模式(Update Mode)
Chart 提供了三种画面的刷新模式,分别是 ? Strip Chart Mode(条壮图):它与纸带式图表记录仪类似。曲线从左到右连续绘
制,当新的数据点到达右部边界时,先前的数据点逐次左移。 ? Scope Chart Mode(示波器模式):它与示波器类似。曲线从左到右连续绘制,当
新的数据点到达右部边界时,清屏刷新,从左边开始新的绘制。它的速度较快。 ? Sweep Chart Mode(扫描模式):与示波器模式的不同在于当新的数据点到达右
部边界时,不清屏,而是在最左边出现一条垂直扫描线,以它为分界线,将原有曲
- 17 -
线逐点向右推,同时在左边画出新的数据点。如此循环下去。
? 堆叠式图区(Stack Plots)
在相同的纵坐标下,由于各种测量信号的差异,将几条曲线显示在同一个图区有困
难时,可以组织出一种纵坐标相同,而有各自横坐标的堆叠式图区。
4.Chart 和 Graph 的比较
目的:创建一个 VI,用 Chart 和 Graph 分别显示 40 个随机数产生的曲线,比较程序的差别。
前面板及流程图如下
40 Waveform Char Waveform Graph 100
显示的运行结果是一样的。但实现方法和过程不同。在流程图中可以看出,Chart 产生在循环内,每得到一个数据点,就立刻显示一个。而 Graph 在循环之外,40 个数都产生之后,跳出循环,然后一次显示出整个数据曲线。从运行
过程可以清楚地看到这一点。
值得注意的还有 For 循环执行 40 次,产生的 40 个数据存储在一个数组中,这个数组创建于 For 循环的边界上(使用自动索引功能)。在 For 循环结束之后,该数组就将被传送到外面的 Graph。仔细看流程图,穿过循环边界的连线在内、外两侧粗细不同,内侧表示浮点数,外侧表示数组。