70
虚虚虚虚虚虚虚 《》 第 1第 虚虚虚虚虚 《》 虚虚虚虚虚 《》 虚虚虚虚虚虚虚虚虚虚虚 虚虚虚虚虚虚虚虚虚虚虚 虚虚虚虚虚虚虚 虚虚虚虚虚虚虚 028 028 88013287 88013287 [email protected] [email protected]

《 虚拟仪器 》

Embed Size (px)

DESCRIPTION

《 虚拟仪器 》. 电子科技大学自动化学院 虚拟仪器课程组 028 - 88013287 [email protected]. 2. 虚拟仪器软件开发平台. 2.1 虚拟仪器软件开发平台介绍 2.1.1 概述 软件可完成数据分析与处理、结果表达与输出。 同一硬件平台,软件不同,则功能不同。 虚拟仪器软件应完成以下功能: 1 、仪器面板的软件设计 。 2 、仪器测试功能的软件设计。 3 、 I/O 接口的仪器驱动程序设计。. 虚拟仪器的软件开发工具 :. ( 1 ) 文本式编程语言 - PowerPoint PPT Presentation

Citation preview

Page 1: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 1页

《虚拟仪器》《虚拟仪器》

电子科技大学自动化学院电子科技大学自动化学院虚拟仪器课程组虚拟仪器课程组

028028 -- 8801328788013287

[email protected]@uestc.edu.cn

Page 2: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 2页

2.2. 虚拟仪器软件开发平台 虚拟仪器软件开发平台

2.1 2.1 虚拟仪器软件开发平台介绍虚拟仪器软件开发平台介绍2.1.1 2.1.1 概述概述 软件可完成数据分析与处理、结果表达与输出。软件可完成数据分析与处理、结果表达与输出。 同一硬件平台,软件不同,则功能不同。同一硬件平台,软件不同,则功能不同。 虚拟仪器软件应完成以下功能:虚拟仪器软件应完成以下功能:

11 、仪器面板的软件设计、仪器面板的软件设计。。 22 、仪器测试功能的软件设计。、仪器测试功能的软件设计。 33 、、 I/OI/O 接口的仪器驱动程序设计。接口的仪器驱动程序设计。

Page 3: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 3页

虚拟仪器的软件开发工具虚拟仪器的软件开发工具 ::(( 11 ))文本式编程语言文本式编程语言有有 CC 、、 Visual C++Visual C++ 、、 Visual BasicVisual Basic 和和 Labwindows/CVILabwindows/CVI 等。等。

(( 22 ))图形化编程语言图形化编程语言有有 NINI 公司的公司的 LabVIEWLabVIEW 和和 AgilentAgilent 公司的公司的 Agilent VEEAgilent VEE 等。 等。

Page 4: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 4页

2.1.2 LabVIEW2.1.2 LabVIEW 特点: 特点:

(( 11 )图形化的仪器编程环境)图形化的仪器编程环境 提供显示和控制对象,如表头、旋钮、图表等。提供显示和控制对象,如表头、旋钮、图表等。

(( 22 )内置高效的程序编译器)内置高效的程序编译器 编译方式运行编译方式运行 3232 位应用程序 ,内置代码评估器。位应用程序 ,内置代码评估器。

(( 33 )灵活的程序调试手段)灵活的程序调试手段

可设断点 ,探针,高亮,单步。可设断点 ,探针,高亮,单步。 (( 44 )支持各种数据采集与仪器通信应用)支持各种数据采集与仪器通信应用

支持 支持 ISAISA 、、 EISAEISA 、、 PCIPCI 、、 PCMCIAPCMCIA 和和 MacintMacintoshNuBusoshNuBus 等各种总线 。等各种总线 。

Page 5: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 5页

(( 55 )功能强大的数据处理和分析函数库)功能强大的数据处理和分析函数库 包括数值函数、字符串处理函数、数据运算函数包括数值函数、字符串处理函数、数据运算函数

和文件和文件 I/OI/O 函数,还包括概率与统计、回归分析、函数,还包括概率与统计、回归分析、线性代数、信号处理、数字滤波器、窗函数、三线性代数、信号处理、数字滤波器、窗函数、三维图形处理等高级分析函数。 维图形处理等高级分析函数。

(( 66 )支持多种系统平台)支持多种系统平台 可在可在 LabVIEWLabVIEW 平台上调用其他软件平台编译的平台上调用其他软件平台编译的

模块。 模块。 (( 77 )开放式的开发平台)开放式的开发平台 (( 88 )网络功能)网络功能

Page 6: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 6页

2.1.3 LabWindows/CVI2.1.3 LabWindows/CVI

特点:特点: (( 11 )采用事件驱动与回调函数编程 )采用事件驱动与回调函数编程 (( 22 )集成化开发平台 )集成化开发平台 (( 33 )支持多种总线 )支持多种总线 (( 44 )支持数据处理和分析功能,提供格式化)支持数据处理和分析功能,提供格式化 I/OI/O 库、库、

AnalysisAnalysis 库、库、 Advanccd AnalysisAdvanccd Analysis 库、库、 ANSI CANSI C 库等库等 (( 55 )提供图形化用户界面编辑,)提供图形化用户界面编辑, User InterfaceUser Interface 库 库 (( 66 )支持网络和进程间通信功能 )支持网络和进程间通信功能 (( 77 )支持多种操作系统 )支持多种操作系统

Page 7: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 7页

2.1.4 Agilent VEE2.1.4 Agilent VEE

特点:特点: (( 11 )图形化的编程)图形化的编程

提供显示和控制模块 ,如按钮、图表、温度指示提供显示和控制模块 ,如按钮、图表、温度指示器等 。器等 。

(( 22 )内置的程序编译器)内置的程序编译器 交互式编译器技术 交互式编译器技术

(( 33 )丰富的仪器驱动程序)丰富的仪器驱动程序

Page 8: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 8页

(( 44 )强大的数据分析与处理)强大的数据分析与处理 数理统计、类型比较、矩阵运算、微积分、信号分数理统计、类型比较、矩阵运算、微积分、信号分

析与处理、数字滤波器等 。析与处理、数字滤波器等 。 (( 55 )灵活的程序调试手段)灵活的程序调试手段

可设断点,单步,分步。可设断点,单步,分步。 (( 66 )支持多种系统平台 )支持多种系统平台 (( 77 )网络功能)网络功能

Page 9: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 9页

2.2 LabVIEW2.2 LabVIEW 编程初步编程初步

2.2.1 LabVIEW2.2.1 LabVIEW 的基本的基本 VIVI 介绍介绍 LabVIEWLabVIEW 中开发的应用程序称为虚拟仪器(中开发的应用程序称为虚拟仪器( Virtual instrVirtual instr

umentsuments )程序,简称)程序,简称 VIVI 。。 一个基本的一个基本的 VIVI 包括:包括:

前面板(前面板( front panelfront panel )) 框图程序(框图程序( block diagramblock diagram )) 图标图标 // 连结端口连结端口 (icon/connector)(icon/connector)

Page 10: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 10页

前面板 框图程序

例如:求两个数的和与差控制型控件

指示型控件

前面板:

包括两类控件:控制型控件( control ) ,指示型控件( indicator ) 。

框图程序:

由节点( node )、端口( terminal )和数据连线( wire )组成 。

节点

端口

Page 11: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 11页

11 .节点.节点 节点是程序的执行元素,节点是程序的执行元素, LabVIEWLabVIEW 有有 44 种节点类型:种节点类型:

函数(函数( functionsfunctions ):执行各种数学运算、文件输):执行各种数学运算、文件输入入 // 输出等基本操作 。节点代码不能修改。 输出等基本操作 。节点代码不能修改。

结构控制(结构控制( structuresstructures ):实现结构化程序控制 。):实现结构化程序控制 。 代码端口(代码端口( CINCIN 、、 DLLDLL ):是与):是与 CC 语言程序或动语言程序或动

态连接库的接口。 态连接库的接口。 子子 VIVI :节点代码可以修改。 :节点代码可以修改。

22 .端口.端口33 .数据连线.数据连线

定义了框图程序中的数据流动方向定义了框图程序中的数据流动方向 。 。

Page 12: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 12页

2.2.2 LabVIEW2.2.2 LabVIEW 的基本开发环境的基本开发环境 11 .启动界面.启动界面

LabVIEW 7 Express 的启动界面

单击,会生成一个新 VI ,新 VI 包括前面板窗口、框图程序窗口

Page 13: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 13页

新的 VI 界面

前面板窗

框图程序窗口

Page 14: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 14页

22 .窗口主菜单.窗口主菜单 包括文件包括文件 (File)(File) 、编辑、编辑 (Edit)(Edit) 、操作、操作 (Operate)(Operate) 、工具、工具 (Tools)(Tools) 、浏、浏

览览 (Browse)(Browse) 、窗口、窗口 (Windows)(Windows) 、帮助、帮助 (Help)(Help) 。。 33 .窗口工具栏.窗口工具栏

前面板窗口工具栏如下图。前面板窗口工具栏如下图。

主菜单

Page 15: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 15页

框图程序窗口的工具栏与前面板类似,只增加了框图程序窗口的工具栏与前面板类似,只增加了 44 个调试按钮。个调试按钮。 窗口主菜单与前面板相同。窗口主菜单与前面板相同。

高亮、单步步入、单步步过、单步步出

点击该高亮执行按钮可使 VI程序的运行以一种缓慢的节奏一步一步地执行程序,所执行到的节点都以高亮方式显示,并可观察到数据的流动,这样用户可以清楚地了解到程序的运行过程,也可以很方便地查找错误 。

Page 16: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 16页

窗口工具栏功能窗口工具栏功能

图 标图 标 名 称名 称 功 能 说 明功 能 说 明

运行按钮 运行按钮 单击此按钮运行单击此按钮运行 VIVI 。当执行按钮变为形状。当执行按钮变为形状时,表明时,表明 VIVI 有错误,不能运行。单击该按有错误,不能运行。单击该按钮,可弹出钮,可弹出 Error ListError List 对话框,提示对话框,提示 VIVI 中中的错误。的错误。

连续运行按连续运行按钮钮

单击此按钮可使单击此按钮可使 VIVI 程序连续地重复执行。程序连续地重复执行。

停止运行按停止运行按钮钮

单击此按钮可停止运行单击此按钮可停止运行 VIVI 。。

暂停按钮 暂停按钮 单击此按钮可暂停单击此按钮可暂停 VIVI 执行,再次单击此按执行,再次单击此按钮,钮, VIVI 又继续执行。又继续执行。

高亮显示执高亮显示执行按钮行按钮

单击此按钮,可动态显示单击此按钮,可动态显示 VIVI 执行时数据的执行时数据的流动。流动。

Page 17: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 17页

单步步入单步步入按钮按钮

单击此按钮,按节点顺序单步执行程序,每单单击此按钮,按节点顺序单步执行程序,每单击一次,程序执行一步。如果节点为一个子程击一次,程序执行一步。如果节点为一个子程序或结构,则进入子程序或结构内部执行单步序或结构,则进入子程序或结构内部执行单步运行方式运行方式 。 。

单步步过单步步过按钮按钮

单击此按钮,按节点顺序单步执行程序(不进单击此按钮,按节点顺序单步执行程序(不进入循环,入循环, SunVISunVI 内部)。内部)。

单步步出单步步出按钮按钮

单击此按钮,退出单步执行,进入暂停状态。单击此按钮,退出单步执行,进入暂停状态。

文本字体文本字体设置按钮设置按钮

点击右边的小按钮将弹出一个下拉式的列表,该列点击右边的小按钮将弹出一个下拉式的列表,该列表可以设置字体的格式。表可以设置字体的格式。

对齐列表对齐列表框框

首先选定需要对齐的对象,然后单击此按钮,可设首先选定需要对齐的对象,然后单击此按钮,可设置对象之间的对齐方式。置对象之间的对齐方式。

分布列表分布列表框 框

单击此按钮,可选择图标的分布方式,如对象单击此按钮,可选择图标的分布方式,如对象之间的间距等。之间的间距等。

层叠列表层叠列表框框

为选定对象重新设定在窗口中的前后叠放顺序。为选定对象重新设定在窗口中的前后叠放顺序。

Page 18: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 18页

2.2.3 LabVIEW2.2.3 LabVIEW 的模板的模板 程序的创建主要依靠三个模板:程序的创建主要依靠三个模板:

工具(工具( ToolsTools )模板)模板 控件(控件( ControlsControls )模板)模板 函数(函数( FunctionsFunctions )模板 )模板

1.1. 工具模板工具模板 选择选择 WindowsWindows 菜单下的菜单下的 Show Tools PaletteShow Tools Palette 选项可显示出工具模选项可显示出工具模

板。板。 使用工具模板中的工具可创建、修改和调试使用工具模板中的工具可创建、修改和调试 VIVI 。当从工具模板。当从工具模板

中选择了某种工具后,鼠标光标就变为该工具的形状,表示可以中选择了某种工具后,鼠标光标就变为该工具的形状,表示可以进行某类操作。 进行某类操作。

Page 19: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 19页

工具模板中的各工具功能工具模板中的各工具功能

图标 图标 名称 名称 功能 功能

11 操作工具操作工具 用于操作前面板控件数值和字符的工具。将用于操作前面板控件数值和字符的工具。将其移动到文本、字符串或数字控件,光标形其移动到文本、字符串或数字控件,光标形状变成 ,点击一下即可输入字符或数字。状变成 ,点击一下即可输入字符或数字。

22 定位定位 // 调整大调整大小小 //选择工具选择工具

用于选择、移动或改变对象的大小。当它位用于选择、移动或改变对象的大小。当它位于前面板控件的边角时,形状变为 于前面板控件的边角时,形状变为 ,可以改变前面板控件的大小。 ,可以改变前面板控件的大小。

33 文本编辑文本编辑

工具工具 用于输入标签文本或者创建自由标签。用于输入标签文本或者创建自由标签。当创建自由标签时它会变成相应形状。当创建自由标签时它会变成相应形状。

44 连线工具连线工具 用于在框图程序上连接对象。用于在框图程序上连接对象。

Page 20: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 20页

55 快捷菜单工快捷菜单工具 具

用鼠标左键可以弹出对象的弹出式菜单。 用鼠标左键可以弹出对象的弹出式菜单。

66 窗口平移工窗口平移工具具

使用该工具就可以不需要使用滚动条而在窗使用该工具就可以不需要使用滚动条而在窗口中平移。口中平移。

77 设置/清除设置/清除断点工具断点工具

使用该工具在使用该工具在 VIVI 的框图程序中设置断点。若使的框图程序中设置断点。若使用该工具在已设置断点处点击,则可以清除断点。用该工具在已设置断点处点击,则可以清除断点。

88 数据探针 数据探针 可在框图程序上的数据流线上设置探针。通过探可在框图程序上的数据流线上设置探针。通过探针窗口来观察该数据流线上的数据变化状况。针窗口来观察该数据流线上的数据变化状况。

99 颜色提取 颜色提取 使用该工具来获取已染色对象的颜色,用于使用该工具来获取已染色对象的颜色,用于编辑其他的对象。编辑其他的对象。

1010 颜色设置 颜色设置 用来给窗口中的对象定义颜色。用来给窗口中的对象定义颜色。

Page 21: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 21页

2. 2. 控件模板控件模板 选择前面板窗口的选择前面板窗口的 WindoWindo

wsws 菜单下的菜单下的 Show ControlShow Controls Palettes Palette 选项可显示出控选项可显示出控制模板制模板。。

控制模板只用于前面板,控制模板只用于前面板,用来创建控制器和指示器。用来创建控制器和指示器。模板中显示的是一些子模模板中显示的是一些子模板的图标,点击图标即可板的图标,点击图标即可弹出该图标下的子模板弹出该图标下的子模板。。

Page 22: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 22页

控件模板中的子模板功能控件模板中的子模板功能

图标 图标 子模板子模板名称 名称

功能功能

11 数字子模数字子模板 板

提供各种数值控制和指示控件,如滑动杆、滚提供各种数值控制和指示控件,如滑动杆、滚动条、旋钮、转盘和数值显示框等。动条、旋钮、转盘和数值显示框等。

22 布尔量布尔量 提供各种布尔型的控制和指示控件。包含各种提供各种布尔型的控制和指示控件。包含各种开关、按钮以及指示灯等。开关、按钮以及指示灯等。

33 字符串和字符串和路径路径

用于创建文本输入框和标签、输入和返回文件用于创建文本输入框和标签、输入和返回文件或目录的地址。或目录的地址。

44 数组数组和簇 和簇

数组和簇的控制和显示控件。数组和簇的控制和显示控件。

Page 23: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 23页

55 列表和表列表和表格格

表格形式数据的控制和显示控件。 表格形式数据的控制和显示控件。

66 图形图形

显示显示 显示数据结果的趋势图和曲线图控件。显示数据结果的趋势图和曲线图控件。

77 环与环与

枚举枚举 环与枚举的控制和显示控件。环与枚举的控制和显示控件。

88 容器容器 分页控件、子面板控件、分页控件、子面板控件、 ActiveXActiveX 控件。控件。

99 输入输入 //

输出输出 与与 VISAVISA 、、 IVIIVI 、、 DAQDAQ 有关的数据源及通道有关的数据源及通道名称。名称。

1010 对话框控对话框控件 件

这组控件和其它子模板的控件类似,只是外形这组控件和其它子模板的控件类似,只是外形有些差别有些差别。 。

Page 24: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 24页

1111 经典控经典控件件

经典控件,指以前版本软件的控件图标。经典控件,指以前版本软件的控件图标。

1212 参考号 参考号 LabVIEWLabVIEW 对文件、目录、设备等操作都需要一个参考对文件、目录、设备等操作都需要一个参考号标示,这个子模板包括各类参考号。号标示,这个子模板包括各类参考号。

1313 装饰件 装饰件 用于对前面板进行装饰的各种图形对象。 用于对前面板进行装饰的各种图形对象。

1414 从文件从文件系统选系统选择控件 择控件

调用存储在文件中的控件。调用存储在文件中的控件。

1515 用户用户

控制控制 把控件放在把控件放在 \National Instruments\LabVIEW 7.0\\National Instruments\LabVIEW 7.0\

useruser 目录中时,将出现在这个子模板中。目录中时,将出现在这个子模板中。

Page 25: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 25页

其中最常用的控件是:数值型 、布尔型其中最常用的控件是:数值型 、布尔型 ①① 数值型 数值型 NumericNumeric

主要完成参数设置和结果显示。主要完成参数设置和结果显示。 这些控件相对于高级文本中的变量。这些控件相对于高级文本中的变量。 控制型控件有:数字式、滑动式、进度条式、旋纽式、桶式控制型控件有:数字式、滑动式、进度条式、旋纽式、桶式 指示型控件有:数字式、表盘式、温度计式、色彩指示型控件有:数字式、表盘式、温度计式、色彩

Page 26: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 26页

数值型控件的属性设置数值型控件的属性设置 前面板窗口中放置一个数值型控件前面板窗口中放置一个数值型控件 KnobKnob ,鼠标右击控件会弹出,鼠标右击控件会弹出

一个快捷菜单。一个快捷菜单。

Page 27: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 27页

快捷菜单中有一些共同的选项,如:快捷菜单中有一些共同的选项,如: ①①Visible ltemsVisible ltems :显示、隐藏控件的一些属性。:显示、隐藏控件的一些属性。 ②②Find TerminalFind Terminal :高亮显示和该控件相对应的:高亮显示和该控件相对应的

数据端口。数据端口。 ③③Change to ControlChange to Control // IndicatorIndicator :控制和指示:控制和指示属性的转换。属性的转换。

④④Description and Tip…Description and Tip… :打开控件对象的描述:打开控件对象的描述/提示对话框。/提示对话框。

⑤⑤CreateCreate :创建局部变量:创建局部变量 (Local Variable)(Local Variable) 、属、属性节点性节点 (Property Node)(Property Node) 、控件参考、控件参考 (Reference)(Reference)以及调用节点以及调用节点 (1nvoke Node)(1nvoke Node) 。。

Page 28: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 28页

⑥⑥ReplaceReplace :用其它控件对象来代替当前对象:用其它控件对象来代替当前对象。。 ⑦ ⑦ DataOperationsDataOperations :对数据的操作::对数据的操作:

ReinitializetoDefaultValueReinitializetoDefaultValue :恢复初始值。:恢复初始值。 MakeCurrentValueDefaultMakeCurrentValueDefault :设初始(默认)值。:设初始(默认)值。 DataSocketConnectionDataSocketConnection :启动:启动 DataSocketDataSocket 连接。连接。 CutCut // CopyCopy // PasteDataPasteData :剪切/复制/粘贴。:剪切/复制/粘贴。

⑧⑧AdvancedAdvanced :对前面板对象的高级操作::对前面板对象的高级操作: KeyNavigationKeyNavigation :快捷键的设置:快捷键的设置 SynchronousDispSynchronousDisp

laylay :同步显示:同步显示 CustomizeCustomize :用户自行定制控件。:用户自行定制控件。 HideControlHideControl // IndicatorIndicator :在前面板隐藏控制。:在前面板隐藏控制。

EnabledStateEnabledState :确定对象是否有效。:确定对象是否有效。

Page 29: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 29页

在数值型控件在数值型控件 KnobKnob快捷菜单快捷菜单中还有中还有 ::

Representation(Representation( 数据类型设置数据类型设置 )) Data RangeData Range (数值范围设置)(数值范围设置) Format and PrecisionFormat and Precision (数据(数据

表示格式和精度设置)表示格式和精度设置) Add NeedleAdd Needle (添加指示针)(添加指示针) ScaleScale (刻度)(刻度) Text LabelsText Labels (文本刻度模式)(文本刻度模式) PropertiesProperties (属性设置)(属性设置)

Page 30: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 30页

在控件快捷菜单中选择 在控件快捷菜单中选择 PropertiesProperties ,将打开控件的属性,将打开控件的属性对话窗口。对话窗口。

Page 31: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 31页

在在 KnobKnob 数值型控件的属性窗口中包括以下设置:数值型控件的属性窗口中包括以下设置: AppearanceAppearance :外观设置。:外观设置。

可设控件的标签可设控件的标签 (Label)(Label) 、标题 、标题 (Caption)(Caption) , 可用, 可用性设置性设置 Enabled StateEnabled State ,可设该旋钮控件指针(,可设该旋钮控件指针( NeedNeedlele )颜色。)颜色。

Data Range:Data Range: 数据范围设置。数据范围设置。 可设置控件的缺省值可设置控件的缺省值 Default Value,Default Value, 数据的表示法数据的表示法 RR

epresentationepresentation ,设置控件的最小值、最大值以及数,设置控件的最小值、最大值以及数值变化步长。值变化步长。

Page 32: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 32页

Scale:Scale: 刻度设置。刻度设置。 可设置刻度线的颜色、刻度标识文字颜色、刻度可设置刻度线的颜色、刻度标识文字颜色、刻度

反向、对数分布、显示颜色梯度图。还设置最小反向、对数分布、显示颜色梯度图。还设置最小刻线值、最大刻线值。刻线值、最大刻线值。

Format and Precision Format and Precision 数据表示格式和精度设置。数据表示格式和精度设置。 可选择设置数据表示为浮点、科学记数法、十六可选择设置数据表示为浮点、科学记数法、十六

进制、二进制等以及数据的小数点后保留的位数。进制、二进制等以及数据的小数点后保留的位数。

Page 33: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 33页

单击属性对话窗口右上角的移动按钮,还会出现单击属性对话窗口右上角的移动按钮,还会出现 Text LabelsText Labels 和和 DoDocumentaioncumentaion 的设置。的设置。

将该控件设置为文本刻度模式,控件的文本刻度分别设置为将该控件设置为文本刻度模式,控件的文本刻度分别设置为 sinesine 、、SquareSquare 和和 TriangleTriangle ,控件在前面板的外观如右图。,控件在前面板的外观如右图。

Page 34: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 34页

②② 布尔型布尔型 包含控制器和指示器:按钮、开关、指示灯按键等。包含控制器和指示器:按钮、开关、指示灯按键等。 控件的值只能是控件的值只能是 TureTure 和和 FalseFalse 。。

Page 35: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 35页

在前面板窗口中放置一个布尔型控件在前面板窗口中放置一个布尔型控件 BooleanBoolean ,然后用,然后用鼠标右键单击该控件,会弹出一个快捷菜单 。鼠标右键单击该控件,会弹出一个快捷菜单 。

Boolean控件的特有选项

Page 36: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 36页

在快捷菜单中选择“在快捷菜单中选择“ Properties”Properties” ,会弹出该控件的属性窗,会弹出该控件的属性窗口 。口 。

动作方

文字说明

图解m 表示鼠标的操作动作 ,下降沿表示鼠标左键按下的时刻,上升沿表示鼠标按键释放的时刻。

V 表示开关的值, 0 或 1 。

RD 表示程序读取控件的时间点。

Page 37: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 37页

在在 Switch When PressedSwitch When Pressed 、、 Switch When ReleasedSwitch When Released 、、 Switch Until ReleSwitch Until Releasedased 三种动作方式中,开关的状态变化与三种动作方式中,开关的状态变化与 VIVI 程序是否读取开关值程序是否读取开关值无关。无关。

在在 Latch When PressedLatch When Pressed 、、 Latch When ReleasedLatch When Released 、、 Latch Until ReleaseLatch Until Releasedd 三种动作方式中,开关的状态变化与三种动作方式中,开关的状态变化与 VIVI 程序读取有关。程序读取有关。

选择选择 Latch When PressedLatch When Pressed 动作方式,表明当开关按下鼠标时,开关动作方式,表明当开关按下鼠标时,开关的值立刻改变,并保持该值,直到的值立刻改变,并保持该值,直到 VIVI 程序读取该值后,其值又恢程序读取该值后,其值又恢复为初始值(与按下鼠标后是否释放无关)。复为初始值(与按下鼠标后是否释放无关)。

该开关动作常用于终止该开关动作常用于终止 WhileWhile 循环。循环。

Page 38: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 38页

33 .函数模板.函数模板 (Functions Palette)(Functions Palette) 用于创建流程图程序。用于创建流程图程序。

Page 39: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 39页

函数模板中子模板功能 函数模板中子模板功能

图标 图标 子模板名称 子模板名称 功能 功能

StructureStructure (结构) (结构) 包括程序控制结构命令,以及全局、包括程序控制结构命令,以及全局、局部变量。 局部变量。

NumericNumeric

(数值运算) (数值运算) 包括各种常用的数值运算 。包括各种常用的数值运算 。

BooleanBoolean

(布尔运算) (布尔运算) 包括各种逻辑运算符以及布尔常数。 包括各种逻辑运算符以及布尔常数。

StringString

(字符串运算)(字符串运算) 包含各种字符串操作函数、数值与字包含各种字符串操作函数、数值与字符串之间的转换函数。符串之间的转换函数。

Page 40: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 40页

函数模板中子模板功能 函数模板中子模板功能

图标 图标 子模板名称 子模板名称 功能 功能

ArrayArray (数组) (数组) 包括数组运算函数、数组转换函数,包括数组运算函数、数组转换函数,以及常数数组。 以及常数数组。

ClusterCluster (簇) (簇) 包括簇的处理函数,以及群常数等。 包括簇的处理函数,以及群常数等。

ComparisonComparison (比较) (比较) 包括各种比较运算函数。 包括各种比较运算函数。

WaveformWaveform (波形) (波形) 各种波形处理工具。 各种波形处理工具。

Page 41: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 41页

函数模板中子模板功能 函数模板中子模板功能

图标 图标 子模板名称 子模板名称 功能 功能

AnalyzeAnalyze

(信号分析) (信号分析) 信号发生、时域及频域分析功能模块 信号发生、时域及频域分析功能模块 。。

CommunicationCommunication (通(通讯)讯)

包括包括 TCPTCP 、、 DDEDDE 、、 ActiveXActiveX 和和 OLOLEE 等功能的处理模块。 等功能的处理模块。

Select a VISelect a VI

(选择子(选择子 VIVI ) ) 用来调用储存在文件系统中的子用来调用储存在文件系统中的子 VIVI 。。

Decorations(Decorations( 修饰修饰 ) ) 用线条、标签等对框图程序进行装饰用线条、标签等对框图程序进行装饰的对象。 的对象。

Page 42: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 42页

数据运算子模板和布尔运算子模板数据运算子模板和布尔运算子模板

Page 43: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 43页

2.2.42.2.4 创建创建 VIVI 程序程序

VIVI 程序的创建:程序的创建: 创建前面板创建前面板 设计框图程序设计框图程序 调试程序调试程序

11 .前面板的设计.前面板的设计 应根据实际中的仪器面板以及该虚拟仪器所要实现的功能来设计前应根据实际中的仪器面板以及该虚拟仪器所要实现的功能来设计前

面板。面板。 多数控件本质的区别在于其代表的数据类型不同多数控件本质的区别在于其代表的数据类型不同 。 。 可对控件对象进行编辑,包括:可对控件对象进行编辑,包括:

改变对象的大小,改变对象的大小, 设置对象的颜色,设置对象的颜色, 设置对象标签、设置对象标签、 标题的字体,标题的字体, 排列、组合、锁定对象。排列、组合、锁定对象。

Page 44: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 44页

22 .框图程序的设计.框图程序的设计 框图程序相当于源代码框图程序相当于源代码 。 。 用函数模板中用函数模板中 VIVI 的相关函数和程序结构 ,去处理数的相关函数和程序结构 ,去处理数

据以及数据端口之间的关系据以及数据端口之间的关系 。 。 函数和程序结构即是节点,节点即是程序的一条语句函数和程序结构即是节点,节点即是程序的一条语句 ,,

它包括函数、它包括函数、 VIVI 子程序、结构和代码接口 。子程序、结构和代码接口 。 数据端口则可理解为程序的变量。数据端口则可理解为程序的变量。

Page 45: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 45页

33 .程序的调试.程序的调试 如果如果 VIVI 程序有错误,不能运行,工具栏的程序有错误,不能运行,工具栏的 RunRun 按钮将会显按钮将会显

示成一个折断的箭头。示成一个折断的箭头。 点击该按钮可打开一个显示错误清单的窗口,选择一个列出点击该按钮可打开一个显示错误清单的窗口,选择一个列出

的错误项,然后再点击的错误项,然后再点击 FindFind 按钮,则框图程序中出错的对按钮,则框图程序中出错的对象就会被呈高亮状态显示。象就会被呈高亮状态显示。

VIVI 程序常见的错误:程序常见的错误: (( 11 )连接的端口之间数据类型不匹配。)连接的端口之间数据类型不匹配。 (( 22 )必须连接的函数数据端口未连线。)必须连接的函数数据端口未连线。

Page 46: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 46页

程序的调试方法主要有:程序的调试方法主要有: (( 11 )高亮显示执行方式:正在执行的节点会以高亮形式显示。)高亮显示执行方式:正在执行的节点会以高亮形式显示。常结合单步模式,跟踪框图中的数据流传输情况。常结合单步模式,跟踪框图中的数据流传输情况。

(( 22 ) 单步执行:一个节点一个节点地执行。) 单步执行:一个节点一个节点地执行。 (( 33 )探针:查看运行过程中数据流在该连线上的数据。)探针:查看运行过程中数据流在该连线上的数据。 (( 44 )断点:程序运行到该处时会暂停执行,再单击暂停按钮程)断点:程序运行到该处时会暂停执行,再单击暂停按钮程

序会继续运行到下一个断点处或直到序会继续运行到下一个断点处或直到 VIVI 运行结束。运行结束。

Page 47: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 47页

程序需实现功能程序需实现功能:每隔一定时间测量一次温度,显示当前:每隔一定时间测量一次温度,显示当前的测量温度值和已运行时间,同时显示实时温度测量曲线。的测量温度值和已运行时间,同时显示实时温度测量曲线。

第第 11 步步:设计前面板:设计前面板 (( 11 )在前面板放置一个)在前面板放置一个 KnobKnob 控件,此圆形旋钮用于控件,此圆形旋钮用于

选择测量时间间隔。选择测量时间间隔。 (( 22 )在前面板放置一个布尔型控件开关,此开关用)在前面板放置一个布尔型控件开关,此开关用

于控制测量的启停。于控制测量的启停。

温度显示实例温度显示实例

Page 48: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 48页

(( 33 )在前面板放置一个数值型的指示控件,用于显)在前面板放置一个数值型的指示控件,用于显示程序运行时间。示程序运行时间。

(( 44 )在前面板放置一个图形显示控件,用于显示温)在前面板放置一个图形显示控件,用于显示温度实时测量曲线。度实时测量曲线。 在控件的快捷菜单中选择在控件的快捷菜单中选择 Visible Items→Digital DisVisible Items→Digital Dis

playplay ,显示出该控件附带的一个数字指示 ,并用,显示出该控件附带的一个数字指示 ,并用文本标签工具添加文本“温度”文本标签工具添加文本“温度”

Page 49: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 49页

完成以上步骤后创建出如图所示的前面板。完成以上步骤后创建出如图所示的前面板。

Page 50: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 50页

第第 22 步步:设计框图程序:设计框图程序 (( 11 )切换到框图程序窗口,调整数据端口图标的)切换到框图程序窗口,调整数据端口图标的

位置,位置, Waveform ChartWaveform Chart 控件,它在框图程序中出现控件,它在框图程序中出现的初始端口图标是 ,在该图标上右击弹的初始端口图标是 ,在该图标上右击弹出的快捷菜单中选择出的快捷菜单中选择 View As IconView As Icon 项,端口图标就项,端口图标就变为 。变为 。

(( 22 )选择)选择 While LoopWhile Loop ,, WhileWhile 循环中的 循环中的 端口输出端口输出 WhileWhile 循环次数。循环次数。

Page 51: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 51页

(( 33 )放置随机函数发生器。该函数产生()放置随机函数发生器。该函数产生( 00 ,, 11 ))之间的一个随机数,产生的随机数经运算处理后模拟之间的一个随机数,产生的随机数经运算处理后模拟温度采集值。温度采集值。

(( 44 )放置)放置 22 个乘法函数 。个乘法函数 。 (( 55 )放置)放置 33 个数值常量端口。分别输入框图程序中个数值常量端口。分别输入框图程序中所需的常数。所需的常数。

( ( 66 )放置延时函数,该函数控制每次)放置延时函数,该函数控制每次 While While 循环循环的时间间隔,函数的左边端口连接一个数值指定延时的时间间隔,函数的左边端口连接一个数值指定延时的时间,单位为的时间,单位为 msms 。。

Page 52: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 52页

(( 77 )选用用连线工具根据程序设计原理连接各个节点 ,得到)选用用连线工具根据程序设计原理连接各个节点 ,得到框图程序如下。 框图程序如下。

Page 53: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 53页

2.2.5 VI2.2.5 VI 子程序创建子程序创建

VIVI 子程序类似于传统程序设计语言中的函数或子程序。子程序类似于传统程序设计语言中的函数或子程序。 VIVI 包括前面板、框图程序以及图标包括前面板、框图程序以及图标 // 连结端口连结端口 (icon/con(icon/con

nector)3nector)3 部分。部分。 图标是图标是 VIVI 子程序,在调用它的框图程序中所显示的外观。子程序,在调用它的框图程序中所显示的外观。 连结端口的是该连结端口的是该 VIVI 与调用它的与调用它的 VIVI 交换数据的端口。 交换数据的端口。

11 .创建子.创建子 VIVI 子子 VIVI 的创建包括图标编辑和连接端口的定义两部分。的创建包括图标编辑和连接端口的定义两部分。

Page 54: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 54页

(( 11 )图标编辑)图标编辑 右击窗口右上角图标 右击窗口右上角图标 ,, 弹出菜单 弹出菜单 ,, 选择选择 Edit IconEdit Icon 选选

项即可激活项即可激活 Icon EditorIcon Editor (图标编辑器)窗口,如下图 :(图标编辑器)窗口,如下图 :

图标编辑工具

图标编辑工具:画线、画矩形工具、选择工具、文本工具、调色板工具等

单色

Page 55: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 55页

(( 22 )连接端口的创建)连接端口的创建

连接端口是连接端口是 VIVI 程序的数据的输入输出接口。程序的数据的输入输出接口。 应根据应根据 VIVI 程序所需要的输入输出参数的个数,来确定程序所需要的输入输出参数的个数,来确定

连接端口的端口数,并确定前面板控制器和指示器与连接端口的端口数,并确定前面板控制器和指示器与这些端口的对应关系。这些端口的对应关系。

Page 56: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 56页

例:将摄氏温度转换为华氏温度例:将摄氏温度转换为华氏温度

第第 11 步:在前面板上放置一个数字控制器和一个数字指步:在前面板上放置一个数字控制器和一个数字指示器。将标签分别改为:摄氏温度值和华氏温度值。示器。将标签分别改为:摄氏温度值和华氏温度值。

第第 22 步:在框图程序中放置一个加法器和一个乘法器,步:在框图程序中放置一个加法器和一个乘法器,以及两个数字常量。然后连线。以及两个数字常量。然后连线。

第第 33 步:图标编辑为步:图标编辑为 。 。

Page 57: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 57页

第第 44 步:步:右击 ,选择右击 ,选择 Show ConnectorShow Connector 选项来定选项来定义连接端口,这时图标变成连接端口显示模式 ,呈义连接端口,这时图标变成连接端口显示模式 ,呈现出现出 22 个端口,对应前面板上的个端口,对应前面板上的 22 个控件。连线工具单击个控件。连线工具单击图标左边的端口,然后再单击前面板上的“摄氏温度值”图标左边的端口,然后再单击前面板上的“摄氏温度值”控件 ,这时端口变为 ,表明已经定义了第一个数据端控件 ,这时端口变为 ,表明已经定义了第一个数据端口。同样,定义华氏温度值的输出数据端口 。口。同样,定义华氏温度值的输出数据端口 。

Page 58: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 58页

右击图标选择右击图标选择 Disconnect TerminalsDisconnect Terminals ,可重新分配数据端,可重新分配数据端口 。口 。

这样就完成了这样就完成了 VIVI 子程序的创建。子程序的创建。

Page 59: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 59页

22 .. VIVI 子程序的调用子程序的调用 调用方法是调用方法是 : :

在函数模板中选择在函数模板中选择 Select a VI…Select a VI… 子模板 ,将该子子模板 ,将该子 VIVI 的图标加入的图标加入到主到主 VIVI 的框图程序窗口中 。的框图程序窗口中 。

下图就调用了前面所建立的摄氏转换为华氏温度的子程下图就调用了前面所建立的摄氏转换为华氏温度的子程序。序。

注意:子 VI可以调用另一个子 VI,但不能调用自己。

Page 60: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 60页

33 .创建.创建 VIVI 子程序的另一种方法(选定部分框图程序来创子程序的另一种方法(选定部分框图程序来创建建 VIVI 子程序)子程序)

用选择工具选定要转换的部分框图程序。用选择工具选定要转换的部分框图程序。 然后在然后在 EditEdit 菜单下选择菜单下选择 Create SubVICreate SubVI 选项。选项。

VI子程序

Page 61: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 61页

VIVI 子程序的打开、运行和改变子程序的打开、运行和改变

双击该双击该 VIVI 子程序的图标子程序的图标即可以打开其前面板窗口,然后即可以打开其前面板窗口,然后可以运行或修改子可以运行或修改子 VIVI 。。

对对 VIVI 子程序所做的修改只有在存盘后才会起作用。子程序所做的修改只有在存盘后才会起作用。 在在 HelpHelp 菜单下选择菜单下选择 Show Context HelpShow Context Help ,可打开文本帮,可打开文本帮助窗口,将鼠标移到助窗口,将鼠标移到 VIVI 子程序节点上时,子程序节点上时, HelpHelp 窗口可窗口可显示出该显示出该 VIVI 子程序的每个连接端口的连线说明。子程序的每个连接端口的连线说明。

Page 62: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 62页

2.2.6 LabVIEW2.2.6 LabVIEW 的数据类型的数据类型

前面板的控制和指示两类控件,在前面板的控制和指示两类控件,在 VIVI 的框图程序中都的框图程序中都有与之对应的数据端口,这些数据端口类似于传统编程有与之对应的数据端口,这些数据端口类似于传统编程语言的变量,有着不同的数据类型。语言的变量,有着不同的数据类型。

控制器在框图程序中只能输出,指示器在框图程序中只控制器在框图程序中只能输出,指示器在框图程序中只能接收输入。能接收输入。

LabVIEWLabVIEW 的数据类型按其特征可分为数值量类型和非的数据类型按其特征可分为数值量类型和非数值量类型 。数值量类型 。

Page 63: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 63页

11 .数值数据类型:浮点数、整数和复数.数值数据类型:浮点数、整数和复数 。 。

Page 64: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 64页

22 .非数值数据类型.非数值数据类型

Page 65: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 65页

习题习题 2.22.2

1.1.创建一个创建一个 VIVI 程序,比较两个数,如果两数相程序,比较两个数,如果两数相等则灯亮。 等则灯亮。

2. 2. 产生一个随机数与产生一个随机数与 10.010.0 相乘,然后通过一个相乘,然后通过一个VIVI 子程序将积与子程序将积与 100100 相加后开方。查找出错对相加后开方。查找出错对象,调试程序,如:设置探针,断点,使用单象,调试程序,如:设置探针,断点,使用单步和高亮执行方式运行该步和高亮执行方式运行该 VIVI 。。

Page 66: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 66页

3.3.创建一个测量温度的创建一个测量温度的 VIVI 程序,该程序显示温程序,该程序显示温度的单位可以选择为华氏度或摄氏度,并建立其度的单位可以选择为华氏度或摄氏度,并建立其图标图标 // 连接口,使之可被其他连接口,使之可被其他 VIVI 程序作为子程程序作为子程序调用。序调用。

思考:思考: 1.1. 温度计显示超过范围,怎么办?温度计显示超过范围,怎么办? 2.2. 显示更新太快,看不清楚,怎么办? 显示更新太快,看不清楚,怎么办?

4.4. 学习调用子学习调用子 VIVI 。学习调用练习。学习调用练习 33 中所建立的中所建立的子子 VIVI ,若是华氏温度则直接显示,若是摄氏温,若是华氏温度则直接显示,若是摄氏温度则将其转化为华氏温度。度则将其转化为华氏温度。

Page 67: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 67页

参考答案参考答案

第第 11题题

Page 68: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 68页

第第 2 2 题题

Page 69: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 69页

第第 33题题

Page 70: 《 虚拟仪器 》

《虚拟仪器设计》《虚拟仪器设计》

第 70页

第第 44题题