《《精编》图形显示、Express VI与LabVIEW的三个高级应用课件》由会员分享,可在线阅读,更多相关《《精编》图形显示、Express VI与LabVIEW的三个高级应用课件(31页珍藏版)》请在金锄头文库上搜索。
1、 LabVIEW编程及虚拟仪器设计 讲课教师 赵伟 黄松岭辅导教师 郝丽 郭建全电话 62772049 o E mail zhaowei 第四讲 图形显示 ExpressVI及LabVIEW的三个高级应用 上节课内容回顾 一 数组二 簇三 波形 在LabVIEW中 数组是相同类型元素的集合 可以随意改变长度 数组的创建 框架 性质 大小 具体数据 单一类型 数组操作函数 簇可以包含任意数目 任意类型的元素 但不能在运行时添加新元素 而数组长度可在运行时自由改变 波形数据有4个组成部分 t0具有时间标识类型 表示波形数据的时间起点 dt表示波形相邻数据点之间的时间间隔 Y是按时间先后顺序给出的整
2、个波形 被测对象 的所有数据点 而attribuates 变体 用于携带任意属性的信息 簇的创建 框架 性质 大小 具体数据 可多类型 簇操作函数 本节课内容 一 图形显示二 ExpressVI 快速VI 简介三 局部变量和全局变量四 属性节点五 练习 一 图形显示 1 LabVIEW具有强大的图形显示功能软件 多种方式 适应多种需求 使得用户界面十分友好 丰富 表现力很强 LabVIEW中 所有图形显示控件均位于 控件 选板 新式 图形 子选板上 波形图波形图表强度图形控件三维图形控件 一 图形显示 2 控件 选板 新式 图形 子选板 1 波形图 波形图的基本显示模式 等时间间隔地显示被测对
3、象的波形数据点 且每一时刻只有一个数据值与之对应 一 图形显示 3 帮助 查找范例 目录结构 general graphs gengraph llb中的WaveformGraph vi 波形图 所能接受的数据组织格式举例 这里给出的是相应显示控件的图标最小化显示模式 在框图面板上点击图标弹出快捷菜单 由 显示为图标 选项实现新老模式转换 一 图形显示 4 a 波形图能接受的数据格式 范例 目录结构 general graphs gengraph llb中的WaveformGraph vi 1 一维或二维数组 1 2 2 一维数组打包成簇 然后以簇为元素组成数组 3 3 簇类型的数据 4 4 以
4、簇为元素的二维数组 每个元素均由t0 dt和数值数据组成 每个波形曲线的上述3个参数可不同 5 5 由t0 dt及数据类型的二维数组Y组成簇 6 6 由t0 dt和以簇为元素的数组这三者组成的簇 7 除前述的输入数据组织格式之外 波形图还可直接接受波形数据类型 单曲线 或元素为波形数据类型的数组 多曲线 作为输入数据 应用举例 利用产生正弦波 方波的 快速VI 生成波形图 一 图形显示 5 一 图形显示 6 b 定制波形图的属性 1 在波形图上弹出快捷菜单 可以配置波形图的一些基本属性 打开其中的 属性 选项对话框 就可对波形图的各种属性进行设置或修改 再则 改用波形图上不同选项 标签 图例
5、X坐标 Y坐标等 的快捷子菜单 也可实现对相关具体属性的设置或修改 其效果与前者一样 一 图形显示 7 b 定制波形图的属性 2 图例中的 常用曲线 在 波形图 上弹出快捷菜单并打开 显示项 子菜单 可以进行对所显示项目的属性的设置和调整 一 图形显示 8 控件 选板 新式 图形 子选板 XY图 2 XY图 XY图 与 波形图 相似 也用于显示完整的曲线数据 两者的不同在于 XY图不要求水平坐标等间隔分布 且允许绘制一对多的映射关系 比如各种封闭曲线等 举例路径 函数 选板 编程 波形 模拟波形 波形生成 正弦波形 一 图形显示 9 找到演示示例的路径 帮助 查找范例 目录结构 general
6、 graph gengraph llb中的XYGraph vi XY图 的输入数据格式 1 单曲线 XY图 绘制单条曲线时 接受两种数据格式 1 x数组和y数组打包生成的簇 绘制曲线时 把相同索引的x和y数组元素的值作为一个点 并按索引顺序输出 且连接所有的数据点 形成曲线图 2 簇组成的数组 每个数组元素都是由一个x坐标值和一个y坐标值打包生成的 绘制曲线时 按照所形成的数组的索引顺序 连接数组元素解包后组合而成的数据坐标点 一 图形显示 10 查找范例 general graph gengraph llb中的XYGraph vi XY图 输入数据格式 2 多曲线 XY图 绘制多条曲线时 也
7、接受两种数据格式 1 先由x数组和y数组打包成簇 建立一条曲线 然后 将多个这样的簇作为元素建立数组 即每个数组元素对应一条曲线 2 先把x和y坐标值打包成簇作为一个点 并以点为元素建立数组 然后 把每个数组再打包成一个簇 每个簇表示一条曲线 最后建立由簇组成的数组 注意 把由点构成的数组进行打包这一步是完全必要的 因为LabVIEW不能建立以数组为元素的数组 即数组的元素不能是数组 而必须先把数组用簇打包起来 然后才能作为新建数组的元素 一 图形显示 11 查找范例 general graph gengraph llb中的XYGraph vi XY图 输入数据格式示例 一 图形显示 12 L
8、abVIEW中所谓快速VI即ExpressVI的特点是将一些基本函数或函数模块进一步打包 为用户提供更方便 简捷的编程途径 对于LabVIEW8 5 找到功能函数的快速VI的即ExpressVI的路径为 函数 选板 Express 子选板 而在前面板 经 控件 Express 图形显示控件 子选板路径 可找到ExpressXY图 普通 XY图 与 创建XY图 ExpressVI绑在了一起 于是 向前面板添加该VI 就意味着同时添加了 XY图 和 创建XY图 ExpressVI 一 图形显示 13 控件 选板 新式 图形 子选板 3 波形图表 前边介绍的 波形图 其在接收到新数据时 是先将旧数据
9、完全清除 然后再用新数据重新绘制出整条曲线 而 波形图表 则不然 它保存了旧数据 并将新数据接续在旧数据之后 波形图表 的显示模式类似于波形记录仪 心电图仪等的工作方式 特点比较 波形图表 多用于实时显示 而 波形图 则多用于事后对波形的显示 一 图形显示 14 波形图表 的数据格式 a 单条曲线显示举例 前者10个数 后者1个数一循环 延迟为便于观看 一 图形显示 15 波形图表 的数据格式 b 多条曲线显示举例 具体均以两条曲线为例 原理同前 1 缓冲区设置 波形图表设有一个缓冲区 专用于保存历史数据 在波形图表快捷菜单的 图表历史长度 选项中 可设定缓冲区长度 波形图表显示的点数 不能大
10、于所设定的缓冲区的大小 2 多条曲线显示方式设置 默认状态下 波形图表会将多条曲线绘制在同一坐标系中 其快捷菜单中的 层叠显示曲线 选项 就用于将多条曲线绘制在各自不同的坐标系中 这些曲线坐标系从上到下排列 3 数据更新模式设置 在波形图表的快捷菜单 高级 刷新模式 可以指定三种数据更新模式 一 图形显示 16 波形图表 的属性设置 从左向右绘制 旧左出 新右进 从左向右绘制 清空重来 从左向右绘制 竖线左移 前 左 旧 后 右 新 一 图形显示 17 4 强度图表 是一种在二维坐标平面表征三维数据的显示工具 数据类型是数值元素构成的二维数组 在 强度图表 中 数组的第0行对应于最左面的一列
11、且数组各元素对应的色块 按从下到上排列 数组第1行对应于左数第二列 即指名了数组索引与图上色块位置的对应关系 控件 选板 新式 图形 子选板 一 图形显示 18 控件 选板 新式 图形 子选板 E 三维图形控件 与其它LabVIEW控件不同 图形 选板上提供的三个三维图形空件 三维曲面图 三维参数图 三维曲线图 均非独立控件 即它们均包含了名为CWGraph3D的ActiveX控件的ActiveX容器 即均是该容器与某个三维绘图函数的组合 二 ExpressVI 快速VI 1 从LabVIEW7 x系列版本开始 出现了ExpressVI 它们面向应用 将LabVIEW中的一些基本函数或函数模块
12、做了进一步打包 捆绑 整合 结果 为用户提供了更方便 简捷的编程途径 这类VI因此得名 快速VI 即ExpressVI 显然 在编程中使用ExpressVI 可减少连线 简化框图 突出所编制程序的主脉络 编得的VI更容易读懂 使用ExpressVI的另一个好处 可得到一个ExpressVI的多个不同实现 例如 把一个非快速的标准VI模块放置在同一框图的3个不同地方 得到的是该VI的3个备份 即它们的源码 默认值和在前面板上的外形等均完全相同 而将一个ExpressVI放置在同一框图的3个不同地方的结果却不然 如此 会产生3个互为独立的ExpressVI 它们可有不同名称和相互独立的配置 二 E
13、xpressVI 快速VI 2 当把某个ExpressVI刚放在框图上时 配置该ExpressVI的对话框会自动打开 允许用户交互式地按照需求来配置该ExpressVI的属性 对于函数波形类的ExpressVI 配置结果可从对话框的 结果预览 框中查看 之后 若用户希望再修改或调整该ExpressVI的参数配置 可双击已放在框图上的该ExpressVI图标 或也可右键单击它 在弹出的对话框选择 属性 从而打开属性配置对话框 再进行相关操作 但是 ExpressVI在具有简便 易用等优点之同时 也丧失了一些功能和灵活性 因此 若想得到一个高效的应用程序 可能还应更多地选用标准VI模块 函数 选板
14、中除Express外的其他子选板中的VI模块 另外 ExpressVI并不支持在程序运行中的交互配置 三 局部变量和全局变量 1 局部变量 LocalVariable 可在一个VI的多个位置访问前面板控件 也可实现非连线框图区域之间的数据传递 且使用局部变量 可实现对控制器的写操作和对显示器的读操作 每个局部变量都是对某个前面板控件数据的一个引用 可以为一个前面板控件建立多个局部变量 且从任一个都可读取该前面板控件中的数据 向这些局部变量中任一个写入数据 都会改变包括控件本身和其它局部变量在内的所有数据拷贝 局部变量的创建 1 在控件图标上弹出快捷菜单 选择 创建 局部变量 选项 以确定关联关
15、系 2 也可经 函数 选板 编程 结构 局部变量 途径 由其快捷菜单再确定关联关系 见右图 三 局部变量和全局变量 2 全局变量可在同时运行的几个VI间传递数据 全局变量文件是只有 前面板 而无 框图 的一种特殊VI 全局变量的建立 在LabVIEW启动界面的 新建 列表中选择 更多 其他文件 全局变量 选项并单击 确定 即可打开一个新建的全局变量窗口 样子似前面板 可采用在前面板添加控件 输入 显示 的相同步骤 向新建全局变量窗口中添加控制器或显示器 之后 在主菜单选择 文件 保存 命令 把该新全局变量保存成扩展名为vi的磁盘文件 全局变量用法 在框图面板 经 函数 选板 选择VI 途径 打
16、开 选择需打开的VI 对话框界面 找到之前保存好的全局变量磁盘文件并将其打开 然后拖曳到合适位置后点击鼠标放置好即可 每个全局变量只能用来访问全局变量文件中的一个控件 三 局部变量和全局变量 3 利用局部变量和全局变量 会使VI编程更加灵活 但是在实际VI编程中应该慎用它们 这是因为 引起竞态条件示例 使用局部变量后 由于无法确认两段程序并行代码的执行顺序 故不能估计出x的最终数据值是多少 消除竞态条件的一种方法 是使用数据流或顺序结构 即给VI强制加入顺序执行的约束 1 每一局部变量都是一数据拷贝 使用过多 会占更多内存 2 过多使用局部变量和全局变量 会使程序的可读性变差 有可能致使不易发现编程错误 3 在多线程并行运行的程序中 局部变量可能引起竞态条件 四 属性节点 1 LabVIEW允许对前面板控件的属性进行更改 且不同类前面板控件的属性种类和个数不同 VI编程时 通过对不同前面板控件属性的更换和调整 可使VI人机界面更生动 美观 属性节点 PropertyNode 用于设置前面板控件的属性 并允许动态地对其进行调整改变 属性节点的创建 在前面板控件的快捷菜单上选 创建 属性节