1、LabVIEW 8.20程序设计从入门到精通 随书课件 作者:陈锡辉 版权所有,转载请注明出处 第1 章 揭开LabVIEW的面纱 引子 “ 最初只存在机器语言,计 算机的 世界里 一片 黑暗。可是不久,汇编语 言问世 了,给 计算机 的世界投下了一缕曙光。 后来,Fortran的出现 带来了光明。” LabVIEW 图形化编程语 言的出 现终于 把人们 尤其是工程师和科学家们从 繁杂的 编程工 作 中解放出来,使他们能够 真正专 心于自 己所关 注的事情。 本章内容 1.1 虚拟仪器的概念 1.2 什么是LabVIEW? 1.3 LabVIEW 可以做什么? 1.4 LabVIEW 的发展历
2、程 1.5 如何学好LabVIEW 1.1 虚拟仪器的概念 PROCESSOR BUS Conditioning Timing A/D D/A DI/O TI/O DISPLAY AND CONTROL 488 PORT礟 Math MEMORY 礟 ROMControl Panel Flow Pressure Alarm Conditions STOP Temperature 传统仪器 厂商定义功能 虚拟仪器 用户定义功能 1.1 虚拟仪器的概念 虚拟仪器系统是由计算机、应用软 件和仪器硬件 三大要素构成的。计 算机与仪器硬件又称为VI 的通用仪 器硬件平台 。 1.1 虚拟仪器的概念 软件
3、技术是虚拟仪器的核心技术。常 用 的仪器用开发软件有LabVIEW 、 LabWindows/CVI 、VEE 等等,其 中以 LabVIEW 应用最为广泛。 1.2 什么是LabVIEW? LabVIEW (Laboratory Virtual Instrument Engineering Workbench )是一种用图标 代替文 本行创建应用程序的图形 化编程 语言。 传统文本编程语言根据语 句和指 令的先 后顺序 决 定程序执行顺序,而LabVIEW 则采用数据流编 程方式,程序框图中节点 之间的 数据流 向决定 了 程序的执行顺序。它用图 标表示 函数, 用连线 表 示数据流向。 1
4、.2 什么是LabVIEW? LabVIEW 程序被称为VI (Virtual Instrument ),即虚拟 仪器。 LabVIEW 的核心概念就是“软件即是仪 器”,即虚拟仪器的概念。 LabVIEW 还包含了大量的工具与函数用 于数据采集、分析、显示与存储等。 1.3 LabVIEW 可以做什么? LabVIEW 在测试、测量 和自动 化等领 域具有 最 大的优势,因为LabVIEW 提供 了大量 的工具 与 函数用于数据采集、分析 、显示 和存储 。 用户可以在数分钟内完成 一套完 整的从 仪器连 接、数据采集到分析、显 示和存 储的自 动化测 试测量系统。 它被广泛 地应用 于 汽
5、车、通 信、航 空 、半导体 、 电子设计生产、过程控制 和生物 医学等 各个领 域。 1.3 LabVIEW 可以做什么? LabVIEW 不仅可以用来 快速搭 建小型 自动化 测 试测量系统,还可以被用 来开发 大型的 分布式 数据采集与控制系统。 在美国Lawrence Livermore 国家实验室,一个花费 2000万美金的极为复杂的飞秒激光切割系统就是基 于LabVIEW 开发的。 在北京正负电子对撞机二期工程北京谱仪慢控制系 统中,大约有30种物理量共7000多点的现场数据点 需要实时采集控制和分析记录等。 1.4 LabVIEW 的发展历程 1.5 如何学好LabVIEW 1
6、、多学习实例,本书以及LabVIEW 都提 供了大量的实例。 2 、大胆尝试,尝试编写自己的程序。 “I hearI forget. I seeI remember. I doI understand.” 习题 1. 什么是虚拟仪器?虚拟仪器与传统 仪 器的区别是什么? 2. 什么是LabVIEW ?LabVIEW 的主要优 势是什么?LabVIEW 被应用在了哪些领 域? 第2 章 牛刀小试 仿真信号采集VI 本章内容建议老师在课堂上进行实际 演 示。 小试身手 写一个类似于 左图的正弦波 发生器,要求 频率和幅度可 调 第3 章 开始LabVIEW之旅 本章内容 3.1 安装LabVIEW
7、 3.2 LabVIEW编程环境 3.2.1 LabVIEW 8.2 启动界面 3.2.2 前面板和程序框图 3.2.3 控件选板 3.2.4 函数选板 3.2.5 工具选板 3.3 善用LabVIEW联机帮 助 3.3.1 实时上下文帮助窗口 3.3.2 联机帮助文档 3.3.3 范例查找器 3.4 编辑前面板 3.4.1 输入控件(Controls )和显示控件(Indicator ) 3.4.2 控件属性 3.5 编辑程序框 图 3.5.1 程序框图中的控件对象 3.5.2 程序框图节点 3.5.3 对象连线 3.6 运行VI 3.7 调试VI 3.1 安装LabVIEW 性能要求及详细
8、安装过程请参考 LabVIEW 8.20程序设计从入门到精通 第3.1 、3.2 节 LabVIEW 程序包括前面板(用户界面) 和后面板(程序框图) 3 种选板: 控件选板(为前面板添加 控件) 函数选板 (在程 序 框图中添 加函数 或 数据等) 工具选板(选择各种编辑 工具, 前面板 和后 面板都要用到) 3.2 LabVIEW 编程环境 3.2.1 LabVIEW 8.2 启动界面 VI 程序和工程 创建栏 新近打开的 工程和VI 程 序列表栏 帮助资源列 表栏 3.2.2 前面板和程序框图 LabVIEW 程序被称为VI ,扩展名默认 为.vi 框图窗口 前面板窗口 图标 3.2.3
9、 控件选板 3.2.3 控件选板 控件选板 在前面板显示,它包含创建前面板 时可用的全部对象。控件选板中的基 本常用 控件可以以现代 (modern)、经典 (classic)和系统 (system )三 种风格 显 示。 选择主菜单View-Controls Palette 选项 或右击前面板空白处就可以显示控件 选板。 3.2.4 函数选板 3.2.4 函数选板 函数选板只能在编辑程序框图时使用 , 与控件选板的工作方式大体相同。创 建 框图程序常用的VI 和函数对象都包 含在 该选板中。 选择View-Functions Palette 或右击 框图面板空白处就可以显示函数选板 。 3.
10、2.5 工具选板 3.2.5 工具选板 在前面板和程序框图中都可以使用工 具 选板,使用其中不同的工具可以操作 、 编辑或修饰前面板和程序框图中选定 的 对象,也可以用来调试程序等。 可以选择View-Tools Palette 选项来 显示工具选板 3.3 善用LabVIEW 联机帮助 LabVIEW 为用户提供了非常全面的帮助 信息,有效地利用帮助信息是快速掌 握 LabVIEW 的一条捷径。 LabVIEW 提供了各种获取帮助信息的方 法,包括实时上下文帮助(Show Context Help )、联机帮助、LabVIEW 范 例查找器(Find Examples )、网络资源 (Web
11、 Resources )等。 3.3.1 实时上下文帮助窗口 单击此处访问 更详细的联机 帮助 更多帮助 信息 锁定上下 文相关帮 助 显示VI 路径 3.3.1 实时上下文帮助窗口 选择菜单栏中Help-Show Context Help 选项或按下Ctrl+H ,就会弹出 Context Help 窗口。 当鼠标移到某个对象或函数上时,上 下 文帮助窗口就会显示相应的帮助信息 。 3.3.2 联机帮助文档 3.3.2 联机帮助文档 当单击Context Help 窗口中Detailed help 会弹出相应的完整的帮助信息。 这 是一个Windows 标准风格的帮 助窗口 , 包含了Lab
12、VIEW 全部的帮助信息。 你也可以选择主菜单Help-Search the LabVIEW Help 选项打开它。 3.3.3 范例查找器 3.3.3 范例查找器 LabVIEW 提供了大量的范例,这些范例 几乎包含了LabVIEW 所有功能的应用实 例,并提供了大量的综合应用实例。 在菜单栏中选择Help-Find Examples 选项可以打开范例查找器。 3.4 编辑前面板 LabVIEW 中的前面板是图形化的人机界 面,利用控件选项板提供的各种控件 可 以所见即所得地编辑丰富多彩的人机 界 面。 3.4.1 输入控件(Controls)和显示控件(Indicator ) 利用输入控件
13、可以输入相应的数据, 例 如数字、 布尔量 、字符串 和文件 路径等。 3.4.1 输入控件(Controls)和显示控件(Indicator ) 显示控件用来显示数据。显示控件有 数 字、温度计、LED指示灯、文本、波 形图 等 。 3.4.1 输入控件(Controls)和显示控件(Indicator ) 前面板中的一些控件既可以作为输入 控 件也可以做作为显示控件。右击控件 , 选择Change to Indicator 或Change to Control可以进行输入控件与显示控 件之间的切换。 3.4.2 控件属性 前面板中的每个控件都有 自己的属性,如控件的颜 色、最大最小值、显示
14、精 度和方式等。许多属性都 可以根据不同的需要进行 编辑。右击前面板任何一 个控件选择Properties 选 项就可以弹出该控件的属 性配置窗口。 3.5 编辑程序框图 程序框图是图形化源代码的集合,这 种 图形化的编程语言也称为G 语言。 3.5.1 程序框图中的控件对象 程序框图中的控件对象实际上是前面 板 相应控件的接线端 前面板控件 程序框图中对应的接线端 3.5.2 程序框图节点 LabVIEW 中的程序框图节 点是指带有输入和输出接 线端的对象,类似文本编 程语言中 的语句 、运算 符、 函数和子程序。LabVIEW 中的节点主要包括函数、 结构、Express VI、子VI 等
15、。 3.5.3 对象连线 3.6 运行VI 1运行VI 单击前面板或程序框图工 具栏中 的运行 按钮 就可以运行VI 一次,当VI 正在运行时,运行按钮变为 状态。 2停止VI 运行 当程序运行时,停止按钮 由编辑 时的状 态 ,变为可用状态 ,单击此按钮可强行停止 程序的 运行。 如果调 试程序 时,使 程序无 意中进入死循环或无法退 出时, 这个按 钮可以 强行结 束程序 运行。 3.7 调试VI 在程序执行前或正在执行 时,单 击工具 栏上的 高亮执 行按钮 ,程序就可以在高亮方式 下运行 ,这时 可以逼 真地显 示数据 的流动 过程。 再次单击此按钮,程序又 恢复正 常运行 。 注意
16、,使用高亮执 行方式 ,将明 显降低 程序的 执行速 度。 1 高亮显示数 据流 3.7 调试VI 2 查找VI 不可执 行的 原因 如果在一个VI 程序中存在错误时,VI 是不能运行的。这时,工 具栏中 的运行 按钮由 变为断裂状态 ,如果单击此按钮就会弹 出错误 列表对 话框。 小试身手 1 、新建一个VI , 进行如下练习: 任意放置几个控件 在前面板,改变它 们的位置、名称、 大小、颜色等等。 在VI 前面板和后面 板之间进行切换 并排排列前面板和 后面板窗口 小试身手 2 、编写一个VI 求 三个数的平均值, 如右图所示。 要求对三个输入控 件等间隔 并右对 齐, 对应的程序框图控
17、件对象也要求如此 对齐。 添加注释 分别用普通方式和 高亮方式 运行程 序, 体会数据流向。 单步执行一遍 1 第4 章 数据操作 2 本章内容 4.1 数据类型 4.1.1 数字型控件 4.1.2 布尔型控件 4.1.3 枚举类型 4.1.4 时间类型(Time Stamp ) 4.1.5 局部变量和全局变量 4.2 数据运算 4.2.1 算术运算符 4.2.2 关系运算符 4.2.3 逻辑运算符 4.2.4 表达式节点(Expression Node ) 3 4.1 数据类型 VI 程序框图中接线端以不同的图标和颜色来表示不同 的数据类型 输入控件 显示控件 数据类型 默认值 32位无符号
18、整数 (32-bit unsigned integer numeric ) 0 64位无符号整数 (64-bit unsigned integer numeric ) 0 位时 间标示 (bit time stamp ) 当地时间 日期 枚举类型(Enumerated type ) - 布尔(Boolean ) FLASE 字符串(String ) 空字符串 4 4.1.1 数字型控件 数字型控件的外观 可以五花八门,但 是程序框图中的操 作却是以其代表的 数据类型为准 5 4.1.2 布尔型控件 布尔控件代表一个布尔 值,只能是True 或False 它既可以代表按钮输入, 也可以当作LED
19、 指示灯显 示。 6 4.1.3 枚举类型 LabVIEW 中的枚举类型 和C 语言中的枚举类型定义相同。 它提供了一个选项列表,其中每一项都包含一个字符 串标识和数字标识,数字标识与每一选项在列表中的 顺序一一对应。 枚举型控件 7 4.1.3 枚举类型 从上述的选板中选择枚举类型的输入 控件添 加到前 面板中 , 然后右击该控件,从快捷菜单中选择Edit Items 选项,打开 如下图所示的枚举型选项编辑对话框 。 8 4.1.4 时间类型(Time Stamp) 时间类型是LabVIEW 中特有的数据类型, 用于输入与输出时间 和日期 9 4.1.5 局部变量和全局变量 在很多情况下需要
20、在同一VI 的不同 位置 或在不同的VI 中访问同一个控件对 象, 这时控件对象之间的连线就无法实现 。 这时候我们就需要用到局部变量或全 局 变量,通过局部变量或全局变量你可 以 在程序框图中的多个地方读写同一个 控 件。 10 局部变量 局部变量只能在 同一程序内部使 用,每个局部变 量都对应前面板 上的一个控件, 一个控件可以创 建多个局部变量。 读写局部变量等 同于读写相应控 件 局部变量 11 局部变量 创建局部变量有两 种方法 从函数选板的 Structures 子选板 中选中Local Variable 节点 前面板或程序框图 中右击需要创建局 部变量的控件选择 Create-L
21、ocal Variable 选项创建 该控件的局部变量 12 局部变量 读写局部变量的方法与读写控件对象 的 方法完全一样 13 全局变量 通过全局变量可以在不同的VI 之间进行数据交换,一 个全局变量的VI 文件中可以包含多个不同数据类型的 全局变量。 LabVIEW 中的全局变量 是以独立的VI 文件形式存在的, 这个VI 文件只有前面板,没有程序框图,不能进行编 程。 14 注意: 使用局部变量和全局变量时要避免竞 争 现象。 例如在程序不同的两个地方同时写同 一 个的对象的局部变量或全局变量,就 会 产生竞争现象,这时变量的值是无法 预 期的。 因此我们必须要注意程序的执行顺序 , 避
22、免竞争现象 15 4.2 数据运算 LabVIEW 中 提供 了丰富的 数据运 算功能, 除了基本的数据运算符外,还有许多 功 能强大的函数节点,并且还支持通过 一 些简单的文本脚本进行数据运算。 LabVIEW 图形化编程中,运算是按照从 左到右沿数据流的方向顺序执行。 16 4.2.1 算术运算符 基本算术运算符包含在函 数选板的Numeric 子选板 中,该子选板中有 类 型转 换(Conversion )节点 、 复数(Complex ) 节点 、 数学和科学 常 数 (Math else b=a+1; end 5.4.1 等价于if.else.语句的Case结构 15 5.4 Cas
23、e结构 5.4.3 等价于switch 语句的Case 结构 switch (fruit) case apple: price=9; case banana: price=10; case pear: price=8; default: price=0; 16 5.5 事件结构(Event Structure ) 分析该程序可以看出,这个程序在没 有用户 点击的 情况下 完全都 是在“空转”,浪费了大量的CPU 资 源,而 且当“ 事件” 发生太 快时可能会被忽略。因此Labview 提供 了事件 结构来 解决这 个问 题,即仅当“事件”发生时,程序才 做相应 的响应 基于While循环和Ca
24、se 结构 的单 击计 数器 17 5.5 事件结构(Event Structure ) 18 5.5 事件结构(Event Structure ) 19 20 5.5 事件结构(Event Structure ) 基于事件结构的单 击计 数器 21 5.5 事件结构(Event Structure ) 5.5.2 Filter 事件 顾名思义,当该事 件发 生时 ,用 户可 以过 滤掉 甚至 完全放弃掉该事件 将触 发的 活动 。 22 注意: 一般来说 ,事件 只 能通过外 在用户 的 动作触发 , 如单击鼠标,键盘等。如 果需要 内部数 据触发 事件(例 如当ab 条件满足 时触发 一
25、个事件) , 就需要通过用户自定义事 件的方 法实现 ,这将 在本书的21.3节中介绍 。 23 5.6 使能结构 5.6.1 框图使能 结构 注 释程序框图 24 5.7 公式节点(Formula Node ) 通过公式节点,用户不仅 可以实 现复杂 的数学 公式,还能通过文本编程 写一些 基本的 逻辑语 句,如ifelse, case, while 循环之 类 的语句。 y= a tgb e b b a a a sin cos 5 3 + - - + +25 5.7 公式节点(Formula Node ) 公 式 节 点 中可以包 含任意数量的 公式 26 5.7 公式节点(Formula
26、 Node ) 5.7.2 文 本 编 程语 言的实现 基于公式节点的CRC16 算 法的 实现 27 5.8 跟着实例学 模拟温 度采集监测系 统 28 小试身手 1. 利用顺序结构和timing 面板 下的tick count VI ,计算for 循环1000000 次所需 的时间 。 2. 为第4 章习题4 添加一个While 循环和 定时 器,实现连续的温度采集 监测 29 小试身手 3 、利用顺序结构和循环 结构写 一个跑 马灯, 如下图所 示,5 个灯 从左到右 不停的 轮 流点亮, 闪烁间隔由滑动条调节 30 小试身手 4. 求分数序列 前20项之和。 5. 给出一百分制成绩,要
27、求输出等级 A,B,C,D,E 。90分以上为A,8089为B ,70 79为C ,6069为D ,60分以下为E 。 ,. 8 13 , 5 8 , 3 5 , 2 3 , 1 231 小试身手 6. 利用事件结构实现在数字输 入控件 中,每 当 用户按下一个数字后,累 加值就 将新数 字累加 上去。例 如按下34 时,累加 值为7 ; 按下345 时, 累加值为12 32 小试身手 7. 利用公式节点判断一个数是 否是素 数,我 们 可以采用这样的算法:用2 sqrt(N) ,依次 去 对N求余,只要有一个余数 是0,则N就不 是素 数。 1 第6 章 字 符 串 、数组 、簇和矩阵 2
28、本章内容 6.1 字符串(String ) 6.2 数组(Array ) 6.3 簇(Cluster )LabVIEW 中的结 构体 变量 6.4 矩阵(Matrix ) 3 6.1 字符串(String ) 字符串在LabVIEW 编程 中会频 繁的用 到,因 此 LabVIEW 封装了功能丰 富的字 符串函 数用于 字 符串的处理,用户不需要 再像C 语言 中一样 为 字符串的操作编写繁琐的 程序。 字符串控 件包括 输 入控件、 显示控 件 和下拉框 。 4 6.1 字符串(String ) 5 6.1 字符串(String ) 6.1.1 字符串控 件 字符串输入控件一 般被 用作 文
29、本 输入 框, 而字 符串 显示控件一般被用 作文 本显 示框 。 6 6.1 字符串(String ) 6.1.2 表格和树 形控 件 表格(Table )和树形控件在Controls Palette 的 Modern-List & Table 面板下。 表格实际上就是一个字符串组成的二维数组。 树形控件以树的形式显示多层内容,Windows 的资 源管理器就是用树形控件来显示文件目录的。 7 6.1 字符串(String ) 6.1.2 表 格 和 树形 控件举例 8 6.1 字符串(String ) 6.1.3 字符串函 数 9 6.1 字符串(String ) 6.1.3 字符串函 数
30、举 例 基本字符串函数示 例 10 6.1 字符串(String ) 6.1.3 字符串函 数举 例 数据数组/电子表格 字符 串转 换函数 示例 11 6.2 数组(Array ) 6.2.1 数组控件 数组控件 12 6.2 数组(Array ) 6.2.1 数组控件 13 6.2 数组(Array ) 6.2.2 数 组 之 间的 算术运算 LabVIEW一个非常大的优势就 是它 可以 根据 输入 数据的类型判断算 子的 运算 方法 ,即 自动 实现 多态 对于加减乘除,数 组之 间的 运算 满足 下面 的规 则: a ) 如果进行运算的两 个数 组大 小完 全一样 ,则 将两 个数 组
31、中 索 引相同的元素进行 运算 形成 一个 新的 数组 。 b ) 若大小不一样, 则忽 略较大 数组 多出 来的 部分 。 c ) 如果一个数组和一 个数 值进 行运 算, 则数 组的 每个 元素 都和 该数值进行运算从 而输 出一 个新 的数 组。 14 6.2 数组(Array ) 6.2.3 数组函数 15 6.2 数组(Array ) 6.2.3 数组函数 举例 用Array Size 函数获得三维数 组大 小示 例 16 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 簇是LabVIEW 中 比较独特的一 个概念,但 实 际上它就对 应 于C 语 言等文本编 程语
32、言中的 结 构体变量。 17 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 6.3.1 簇的创建 通过簇控件实现的 温度 显示 器 18 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 改 变 簇 内 部元素控 件的索引 19 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 6.3.2 簇操作函 数 20 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 1 、解包函数 (Unbundle ) 该函数将簇解开从而获得簇中各个元素的值。缺 省情况下,它会根据输入的簇自动调整输出端子 的数目和数据类型,并按照簇内部元素索引的顺
33、 序排列。 21 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 2 、打包函数 (Bundle ) 该函数用来为Cluster 中各元素赋值。 22 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 3 、 按 元 素 名称 解包函数(Unbundle By Name ) 普通的解包函数解包后只有将鼠标移到输出端子 上才能看到输出元素的名称,程序的可读性不高。 该函数可以根据名称有选择的输出簇内部元素。 其中元素名称就是指元素的Label 。 23 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 4 、 按 元 素 名称 打包函数(Unbu
34、ndle By Name ) 该函数通过簇内部元素名称来给簇内部元素赋值。 参考簇是必须的,该函数通过参考簇来获得元素 名称。 24 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 簇操作函数 使 用 示例 25 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 6.3.3 error in 和error out 簇 LabVIEW 利用error in 和error out 这两个预定义簇 来作为传递错误信息的载体。 26 6.3 簇(Cluster ) LabVIEW 中的结构 体变量 6.3.3 error in 和error out 簇 对于系统错误,
35、code 都有预先的定义,可以通过选 择Help-Explain Error 打开错误解释框来查找 该错误代码的更详细的解释。 27 6.4 矩阵(Matrix ) LabVIEW 8 之前的版本中只能通 过二维 数组来 实现矩阵的操作。但是数 组的运 算方法 和矩阵 的运算方法有很大不同, 譬如两 个数组 相乘是 直接将相同索引的数组元 素相乘 ,而矩 阵的相 乘必须按照线性代数中规 定的方 法相乘 ,因此 用数组实现矩阵运算是非 常麻烦 的。LabVIEW 8 最新加入了对矩阵的支 持,从 而使矩 阵的运 算变得非常简单。 28 6.4 矩阵(Matrix ) 矩阵乘法举例 29 6.4
36、矩阵(Matrix ) LabVIEW 8 还提供了 丰 富的线性代数运算函 数,它们位于 Functions Palette 的 mathematics - liner algebra 面板 下 30 小试身手 1. 为第5 章的习题2 连续温度 采集监 测添加 报警 信息,如下图所示,当报 警发生 时输出 报警信 息,例如“ 温度超限!当前 温度78.23 ”,正 常 情况下输出空字符串。 31 小试身手 2. 对字符串进行加密,规则是 每个字 母后移5 位,例如A 变为F,b 变为g ,x 变为c ,y 变为d 32 小试身手 3. 产生一个33 的整数随机 数数组 ,随机 数要 在0
37、到100之间,然 后找出 数组的 鞍点, 即该位 置上的元素在该行上最大 ,在该 列上最 小,也 可能没有鞍点。如下图所 示: 33 小试身手 4. 利用簇模拟汽车控 制,如右图所示,控制 面板可以对显示面板中 的参量进行控制。油门 控制转速,转速油门 *100,档位控制时 速, 时速档位*40, 油量 随VI 运行时间减少。 1 第7 章 图形化显示数据 图表和图形 2 引子 LabVIEW 很大的一 个优势就是它提供 了丰富的数据图形 化显示控件,而且 使用起来 极其方 便 。 3 本章内容 7.1 波形数据(Waveform) 7.2 Chart 趋势图 7.3 Graph图表 7.4
38、三维图形(3D Graph ) 7.5 Picture图形 控件 4 7.1 波形数据(Waveform) 7.1.1 波形数据 控件 为了方便地显示波形,LabVIEW 专门预定义了波形 数据类型。它实际上就是按照一定格式预定义的簇, 在信号采集,处理和分析过程中经常会用到它。 5 7.1 波形数据(Waveform) 波形数据控件携带的数据 包含了 时间波 形的 基本信息,因此可以直接 作为Chart 和Graph 的输入。横坐标代表时间 ,纵坐 标代表Y 值 6 7.1 波形数据(Waveform) 7.1.2 波形数据 操作 函 数 虽然波形数据是一种预定义格式的簇,但是必须用 专用的
39、波形数据操作函数才能对它进行操作,其中 某些操作函数与簇的操作函数非常类似。 波形数据的操作函数位于Functions Palette 的 Programming-Waveform 子模板下 7 7.1 波形数据(Waveform) 波形数据操 作 函 数举 例 8 7.2 Chart趋势图 Chart 可以将新测得 的数据添 加到曲 线 的尾端, 从而反映实时数据的变化 趋势, 它主要 用来显 示实时曲线。 9 7.2 Chart趋势图 7.2.1 波形趋势 图(Waveform Chart) 对于标量数据,Chart 图表 直接 将数 据添 加在 曲线 的尾端。 10 7.2 Chart趋
40、势图 对于一维数组数据,它会 一次性 把一维 数组的 数据添加在曲线末端,即 曲线每 次向前 推进的 点数为数组数据的点数。 11 7.2 Chart趋势图 若要显示多条标量曲线, 只需要 用簇的Bundle 函数将它们绑定在一起作 为输入 即可。 12 7.2 Chart趋势图 对于二维数组,缺省情况 下是每 一列的 数据当 作一条一维数组曲线。 13 7.2 Chart趋势图 技巧: 若想将曲线截图,可以通过右击曲线选择Data Operations-Copy Data 将曲线图复制到剪切板 上。 14 7.2 Chart趋势图 7.2.2 定制Chart 显 示样式 分栏显示多条曲线 。
41、 右击Chart 选择Stack Plots 15 7.2 Chart趋势图 7.2.2 定制Chart 显 示样式 设置更新模式 右击Chart 选择Advanced-Update Mode 可以设置曲线的更 新模式。 Strip Chart模式:曲线填满显示区后曲线通过左移来更新曲线。 Scope Chart 模式:曲线填满显示区后直接清空显示区重新开始 从左向右增长曲线 在Sweep Chart 模式:通过一条指示红线从左向右刷新数据 16 7.2 Chart趋势图 7.2.3 带 时 间 轴的 实时曲线 17 7.3 Graph图表 Graph 和Chart 的区别在于Graph 是一
42、次性将现 有数据绘图,在绘图之前 先自动 清空图 表,而 不会将新数据添加到曲线 的尾端 。 根据显示方法,Graph 又分为波形 图、XY曲线 图、强度图、数字时序图 和三维 图。 18 7.3 Graph图表 7.3.1 定制Graph 属性 19 7.3 Graph图表 右击Graph 控件可以看到该控件有很 多属性 可以设 置。选 择 Visible Items 可以看到关于该控件的很多 辅助选 项。选 择 这些选项可以使它们都可见,如下图 所示。 20 7.3 Graph图表Waveform Graph 7.3.2 Waveform Graph Waveform Graph 可以有多种数据输入类型:一维 数组,二维数组,簇,簇数组,波形数据。它在 Controls Palette 中的位置为Modern-Graph- Waveform Graph 。 21 7.3 Graph图表Waveform Graph 1 、一维数组 作为 输 入 当输入数据为一维 数组 时,Waveform Graph 直 接将一维数组画成 一条 曲线 ,纵 坐标 为数 组元 素 的值,横坐标为数 组索 引。