虚拟仪器

98
虚虚虚虚 虚虚虚虚 E-Mail : E-Mail : tangqiuhnu tangqiuhnu @ @ hnu.edu.cn hnu.edu.cn Tel : Tel : 13077368836 13077368836 虚虚虚虚虚虚虚虚虚虚虚虚虚 Virtual Virtual Instrument Instrument

Upload: lavinia-combs

Post on 02-Jan-2016

29 views

Category:

Documents


0 download

DESCRIPTION

湖南大学电气与信息工程学院. 虚拟仪器. Virtual Instrument. 唐 求. E-Mail : tangqiuhnu @ hnu.edu.cn Tel : 13077368836. 第三章 LabVIEW 入门. 主要内容:. 3.1 基本概念与术语 3.2 LabVIEW 的操作模板 3.3 创建和编辑 VI 3.4 运行和调试 VI 3.5 创建和调用 子 VI 3.6 善用 LabVIEW 联机帮助. 计算机程序语言历经几代的发展演变 : 机器语言 (Machine language) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 虚拟仪器

虚拟仪器虚拟仪器

唐 求E-Mail : E-Mail : tangqiuhnutangqiuhnu@@hnu.edu.cnhnu.edu.cnTel : Tel : 1307736883613077368836

湖南大学电气与信息工程学院

Virtual InstrumentVirtual Instrument

Page 2: 虚拟仪器

第三章 LabVIEW 入门

Page 3: 虚拟仪器

3.1 基本概念与术语

3.2 LabVIEW 的操作模板

3.3 创建和编辑 VI

3.4 运行和调试 VI

3.5 创建和调用子 VI

3.6 善用 LabVIEW 联机帮助

主要内容:

Page 4: 虚拟仪器

引子 计算机程序语言历经几代的发展演变:

• 机器语言 (Machine language)• 汇编语言( Assembly language )• 高级语言: C 语言、:面向对象的 C++ 、 Java 及具有可

视化编程环境的 VC 、 VB 、 Delphi 等• 图形化编程语言:“高级语言”是否还可以进一步抽象出

“超级编程语言”呢? 从计算机语言的发展规律来看,回答应该是肯定的。 并且早在二十多年前,这种语言的雏形就已经出现,那就

是 LabVIEW 图形化编程语言

Page 5: 虚拟仪器

引子 图形化编程语言优势:

• 1 、因为使用图形,可以直观的表达比较复杂的事情。

• 2 、图形表现的是一种视觉语言。• 3 、图形因为形象化所以容易记忆和理解。

Page 6: 虚拟仪器

引子 几种高级语言和图形化语言的代码展示:

显示“ Hello, World!”

Page 7: 虚拟仪器

引子 C 程序代码:

# include<stdio.h>

int main ()

{

Printf (“Hello , World! \n”);

Return 0;

}

Page 8: 虚拟仪器

引子 C++ 程序代码:

# include <iostream>Int main(){ Std::cout<<’Hello , World !\n’; return 0;}

Page 9: 虚拟仪器

引子 C# 程序代码:

class ConsoleHelloWorld{ public static void main (){ System.Console.WriteLine(“Hello , World !”) ;}}

Page 10: 虚拟仪器

引子 JAVA 程序代码:

public class HelloWorldCommandLine{

public static vold main (String[ ] args){

System.out.printLn(“Hello,World!”);

}

}

Page 11: 虚拟仪器

引子 Windows 程序代码:

# include <windows.h>Int WINAPI WinMain (HINSTANCE hinstance,HINSTANCE

hPrevlnstance,PSTR szCmdLine,int iCmdShow){ MessageBox(NULL,TEXT(“Hello, World!”), TEXT(“HelloMsg”,0); returm 0;}

Page 12: 虚拟仪器

引子 VB 程序代码:

Dim ny As Integer

Private Sub Form_Load ()

Ny=0

Text1.Text=”Hello , World !”

Text1.ForeColor=RGB(255,0,0)

End Sub

Page 13: 虚拟仪器

引子 LabVIEW( 图形化 ) 程序代码:

Page 14: 虚拟仪器

3.1 基本概念与术语

Page 15: 虚拟仪器

3.1 基本概念与术语 LabVIEW (Laboratory Virtual Instrument Enginee

ring Workbench) 是一种图形化的编程语言,又称为“ G” 语言。使用这种语言编程时,基本上不 写 程 序 代 码 , 取 而 代 之 的 是 流 程 图 。

传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而 LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序。它用图标表示函数,用连线表示数据流向。

Page 16: 虚拟仪器

LabVIEW 程序被称为 VI ( Virtual Inst

rument ),即虚拟仪器。

LabVIEW 的核心概念就是“软件即是仪器”,即虚拟仪器的概念。

LabVIEW 还包含了大量的工具与函数用于数据采集、分析、显示与存储等。

Page 17: 虚拟仪器
Page 18: 虚拟仪器

LabVIEW 有以下主要特点:

( 1 )图形化的仪器编程环境

LabVIEW 使用“所见即所得”的可视化技术建立人机界面。

LabVIEW 提供了面板上所必需的许多显示和控制对象,如旋钮、表头、图表等。用户还可以方便地将现有控制对象改成适合自己需要的控制对象。

Page 19: 虚拟仪器

( 2 )自定义界面和数据流编程

自定义界面• 灵活个性地进行应用界面设计

数据流编程• 直观形象地编程实现

Page 20: 虚拟仪器

( 3 )内置的程序编译器

LabVIEW 采用编译方式运行 32 位应用程序,解决了其它按解释方式工作的图形编程平台速度慢的问题,其速度大体相当于编译 C 的速度。

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

用户可以在源代码中设置断点,单步执行源代码,在源代码的数据流上设置探针,在程序运行中观察数据流的变化。

Page 21: 虚拟仪器

( 5 )功能强大的函数库

LabVIEW 提供了大量的现成函数供用户直接调用,从底层 VXI 、 GPIB 、串口及数据采集板的控制子程序到大量的仪器驱动程序,从基本的功能函数到高级分析库,基本涵盖了仪器设计需要的函数。

( 6 )支持多种系统平台

LabVIEW 支持多种系统平台,在 Windows NT 、HP 、 SUN SPARC ( SUN 工作站)等系统平台上,NI 公司都提供了相应版本的软件,并且平台之间开发的应用程序可直接进行移植。

Page 22: 虚拟仪器

( 7 )开放式的开发平台 LabVIEW 提供了 DLL (动态链接库)接口和 CIN 接口,使用户在 LabVIEW 平台上能调用其它软件平台编译的模块,提供对 OLE (对象链接和嵌入)的支持。

( 8 )网络功能 LabVIEW 支持 TCP/IP (传输控制协议 / 网际协议)、 DDE (动态数据交换)、 IAC (应用间通信)等功能。

Page 23: 虚拟仪器

( 9 )提供丰富的数据显示方法

LabVIEW 为用户提供了多种结果显示控件,如旋钮、表头、表盘、图表等,以及多种结果显示方式,例如,数字显示、模拟仪表显示、极坐标显示、时域波形显示、频谱图形显示等。

用户可以根据实际需要进行显示方式的选择与配置,也可以对显示控件进行必要的修饰。

Page 24: 虚拟仪器
Page 25: 虚拟仪器

( 10 )灵活的数据报表生成方式

LabVIEW 一般是以数据文件或数据库文件的形式储存监测与分析结果的,它本身也包含了丰富的数据报表格式。

如果需要生成的数据报表格式非常复杂,可以通过接口将数据输出到 EXCEL 等专用电子表格软件中,由 EXCEL 完成报表的生成与统计工作。

Page 26: 虚拟仪器

( 11 )层次化结构

LabVIEW 的强大功能归因于它的层次化结构,用户可以把创建的 VI 程序当作子程序调用,以创建更复杂的程序,而这种调用阶数是无限的。 LabVIEW 这种创建和调用子程序的方法,使创建的程序结构模块化,易于调试、理解和维护。

Page 27: 虚拟仪器

LabVIEW 可以做什么?

Page 28: 虚拟仪器

LabVIEW 在测试、测量和自动化等领域具有最大的优势,因为 LabVIEW 提供了大量的工具与函数用于数据采集、分析、显示和存储。

用户可以在数分钟内完成一套完整的从仪器连接、数据采集到分析、显示和存储的自动化测试测量系统。

它被广泛地应用于汽车、通信、航空、半导体、电子设计生产、过程控制和生物医学等各个领域。

LabVIEW 可以做什么 ?

Page 29: 虚拟仪器

LabVIEW 不仅可以用来快速搭建小型自动化测试测量系统,还可以被用来开发大型的分布式数据采集与控制系统。

在美国 Lawrence Livermore 国家实验室,一个花费 2000 万美金的极为复杂的飞秒激光切割系统就是基于LabVIEW开发的。

在北京正负电子对撞机二期工程北京谱仪慢控制系统中,大约有 30 种物理量共 7000 多点的现场数据点需要实时采集控制和分析记录等。

Page 30: 虚拟仪器
Page 31: 虚拟仪器

助力各个工程领域的 LabVIEW 工具包

报表生成工具包

声音与振动工具包

高级信号处理工具包

数据库连接工具包控制设计工具包

系统辨识工具包

频谱分析工具包

调制解调工具包

Page 32: 虚拟仪器

LabVIEW 的发展历程

Page 33: 虚拟仪器

使用 LabVIEW开发平台编制的程序称为虚拟仪器( Virtual Instruments )程序,简称为 VI 。扩展名默认为 .vi 。

它包括前面板( Front Panel )、框图程序( Block Diagram )以及图标 / 连接端口 (Icon/Connector) 三部分。

Page 34: 虚拟仪器

框图窗口

前面板窗口

图标

Page 35: 虚拟仪器

前面板

Page 36: 虚拟仪器

1. 前面板

前面板:即图形化用户界面,用于设置输入数值和观察输出量,模拟真实仪表的前面板。

Page 37: 虚拟仪器
Page 38: 虚拟仪器

1. 前面板

前面板构成:控制( Control )、指示( Indicator ) 和 修 饰 ( Decoration ) 构 成 。

控 制 : 用 户 设 置 和 修 改 VI 输 入 量 的 接 口;

指 示 : 显 示 VI 输 出 数 据 或 图 形 ;修 饰 : 对 前 面 板 进 行 美 化 、 装 饰 。

控制和指示统称为对象或控件。

Page 39: 虚拟仪器

10

- 10

- 5

0

5

正弦波

STOP

10000

200

400 600

800

频率

100123

4 5 6789

振幅

Page 40: 虚拟仪器

输入控件( Controls )和显示控件( Indicator )

利用输入控件可以输入相应的数据,例如数字、布尔量、字符串和文件路径等。

Page 41: 虚拟仪器

显示控件用来显示数据。显示控件有数字、温度计、 LED 指示灯、文本、波形图等 。

前面板中的一些控件既可以作为输入控件也可以做作为显示控件。右击控件,选择 Change to Indicator或 Change to Control 可以进行输入控件与显示控件之间的切换。

Page 42: 虚拟仪器

前面板中的每个控件都有自己的属性,如控件的颜色、最大最小值、显示精度和方式等。许多属性都可以根据不同的需要进行编辑。

右击前面板任何一个控件选择 Properties 选项就可以弹出该控件的属性配置窗口。

Page 43: 虚拟仪器

框图程序

Page 44: 虚拟仪器

2. 框图程序每一个程序前面板都对应着一段框图程序。框图程序用 LabVIEW 图形编程语言编写,可以把它理解成传统程序的源代码。框图程序构成:节点( Node )、端子、图框和连线( Wire )构成。节点:带有输入和输出连接线的对象,类似文本编程 语言中的语句、运算符、函数和子程序,包括 功能函数、结构、代码接口节点和子 VI;端子 : 可 视 为 入 口 和出口 ,或者源 和目的 地;图框:实现结构化程序控制命令;连线:端子、节点间的数据通道,定义了框图内 的数据流动方向。

Page 45: 虚拟仪器

正弦波

频率

振幅

100

512采样点数

10

100000

Page 46: 虚拟仪器

程序框图中的控件对象实际上是前面板相应控件的接线端

前面板控件 程序框图中对应的接线端

Page 47: 虚拟仪器

程序框图节点

LabVIEW 中的程序框 图 节 点 是 指带有输入 和输出 接 线端的 对 象 ,类似文 本编程语言中的语句、运 算符、 函 数 和 子程序。 LabVIEW 中的 节 点主要包括函数、结构、 Express VI 、子 VI 等。

Page 48: 虚拟仪器

对象连线

Page 49: 虚拟仪器

整 形

浮点数

逻辑量

字符串

文件路径

下面是一些常用数据类型所对应的线型和颜色:

Page 50: 虚拟仪器

图标 / 连接端口

Page 51: 虚拟仪器

3. 图标 /连接端口

图标和连接端口可以将一个虚拟仪器系统变成一个子系统( SubVI ),然后被其他的虚拟仪器程序调用。

图标:作为 SubVI 的直观标记,代表着该 SubVI中所有的框图程序和前面板控件;

连接端口:描述了该 SubVI 与调用它的 VI 之间进行数据交换的输入输出端口,每一个输入输出口分别与 SubVI 前面板上的控件相对应。连接端口通常隐藏在图标中。

Page 52: 虚拟仪器

波形发生器的图标 波形发生器的连接端口

Page 53: 虚拟仪器

图标

图标可以将一个虚拟仪器系统变成一个子系统( SubVI ),然后被其他的虚拟仪器程序调用。

图标是 VI 的图形表示,会在另外的 VI 框图中作为一个对象使用。

图标:作为 VI 的直观标记,代表着该 VI 中所有的框图程序和前面板控件。

Page 54: 虚拟仪器

3.2 LabVIEW 的操作模板

Page 55: 虚拟仪器

3.2 LabVIEW 的操作模板

LabVIEW 具有多个图形化的操作模板,用于创建和运行程序。共分三类:为工具( Tools )模板、控件( Controls )模板和功能( Functions )模板。

1.工具模板

工具模板为编程者提供了各种用于创建、修改和调试 VI 程序的工具。

Page 56: 虚拟仪器

:Operation Tool :Positioning Tool:Labeling Tool:Wiring Tool:Object pop-up menu Tool:Scrolling Tool:Break Point Tool:Probe Tool:Color Copy Tool:Color Tool

Page 57: 虚拟仪器

2. 控件模板

该模板用来给前面板设置各种所需的输出显示对象和输入控制对象。

每个图标代表一类子模板。

只有当打开前面板窗口时才能调用控制模板。

Page 58: 虚拟仪器

:Numeric :Boolean:String & Path:Array & Cluster :List & Table:Graph:Ring & Enum:I/O

Page 59: 虚拟仪器

:Refnum :Dialog:Classic:ActiveX :Decorations:Select:User

Page 60: 虚拟仪器

3. 功能模板

功能模板是创建流程图程序的工具。

该模板上的每一个顶层图标都表示一个子模板。

只有打开了框图程序窗口,才能出现功能模板。

Page 61: 虚拟仪器

:Structures :Numeric:Boolean:String:Array:Cluster:Comparison:Time & Dialog:File I/O:Data Acquisition:Waveform:Signal Processing

Page 62: 虚拟仪器

:Instrument I/O :Motion & Vision:Mathematics:Communication:Application Control:Graphics & Sound:Tutorial:Report Generation :Advanced :Select a VI:User Lobrary

Page 63: 虚拟仪器

3.3 创建和编辑 VI

Page 64: 虚拟仪器

3.3 创建和编辑 VI

3.3.1 创建 VI

创建 VI 的一般步骤如下: 1. 选择创建一个新的 VI; 2.创建 VI前面板; 3.创建框图程序; 4.创建 VI 图标; 5.保存 VI 。 例 3.2.1 下面以 c=a+b 为例。

Page 65: 虚拟仪器

1. 选择创建一个新的 VI

VI程序和工程创建栏

新近打开的工程和 VI程序列表栏

帮助资源列表栏

Page 66: 虚拟仪器

2.创建 VI前面板

Page 67: 虚拟仪器

3.创建框图程序

Page 68: 虚拟仪器
Page 69: 虚拟仪器

4.创建 VI 图标

Page 70: 虚拟仪器

3.3.2 编辑 VI 编辑 VI操作: 1. 选择对象; 2.删除对象; 3. 改变对象位置; 4. 改变对象大小; 5. 改变对象颜色; 6. 对象对齐; 7. 对象分布; 8. 改变对象层次; 9. 设置对象字体 10.添加标签。

Page 71: 虚拟仪器

3.4 运行和调试 VI

Page 72: 虚拟仪器

3.4 运行和调试 VI 3.4.1 运行 VI 1. 运行 VI 2.停止运行 VI 2.连续运行 VI 4.暂停 VI 运行

Page 73: 虚拟仪器

Run Button

Continuous Run Button

Abort Execution

Execution Highlighting Button

程序框图工具条

前面板工具条

Retain Wire Values ButtonStep Function Buttons

Page 74: 虚拟仪器

1.运行 VI 单击前面板或程序框图工具栏中的运行按钮

就可以运行 VI 一次,当 VI正在运行时,运行按钮变为

2.停止运行 VI当程序运行时,停止按钮由编辑时的状态变为可用状态

单击此按钮可强行停止程序的运行。如果调试程序时,使程序无意中进入死循环或无法退出时,这个按钮可以强行结束程序运行。

状态。

Page 75: 虚拟仪器

3.4.2 调试 VI 1. 单步执行 VI (1) 单步(入)执行 (2) 单步(跳)执行 (3) 单步(出)

Page 76: 虚拟仪器

2. 设置断点 将工具模板总鼠标切换到断点工具状态,单击框图程序中需设置断点的地方即可。

Page 77: 虚拟仪器

3. 设置探针 将工具模板总鼠标切换到探针工具状态,单击框图程序中需查看的数据连线,会弹出一个对话框,若有数据流过,即显示该数据值。

Page 78: 虚拟仪器

4. 显示数据流动动画 程序在高亮方式下运行,可以逼真地显示数据的流动过程。再次单击此按钮,程序又恢复正常运行。

注意 : 使用高亮执行方式,将明显降低程序的执行速度。

单击工具条中 ,运行 VI ,在框图程序上实时显示程序执行过程。通常和单步结合使用。

Page 79: 虚拟仪器

运行按钮 连续执行按 钮 停止按钮 暂停按钮

字体框。包括字体类型、尺寸、风格和颜色。

排列调整框。用位置工具选择调整对象后,上下左右调整,美化界面设计。

间隔列表框。为选定的两个或多个对象提供间隔派了控制。

重新排列框。为选定的对象重新设定在窗口中的前后次序。

默认的图标 / 连接端口。

Page 80: 虚拟仪器

框图程序窗口

运行指示灯按钮。单击,动态显示 VI执行时的数据流动动画。

单 步 ( 入 ) 按 钮 。单击,不仅按节点顺序 单 步 执 行 ,而且 在节点 内 也 单 步执行。

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

单 步 (出) 按 钮 。单击,推出循环, SubVI 内部节点单步执行。

Page 81: 虚拟仪器

5.查找 VI 不可执行的原因

变为断裂状态 ,如果单击此按钮就会弹出错误列表对话框。

如果在一个 VI 程序中存在错误时, VI 是不能运行的。这时,工具栏中的运行按钮由

Page 82: 虚拟仪器

3.5 创建和调用子 VI

Page 83: 虚拟仪器

3.5 创建和调用子 VI

3.5.1 创建子 VI 创建完成一个 VI后,按一定规则定义 VI 的连接端口,就完成了子 VI 的创建。 定义连接端口的步骤: 1.创建理解端口 2. 将控制和指示对象与连接端口的对应端相连 3.保存

Page 84: 虚拟仪器

图标 /连接器( Icon/Connector )

图标和连接端口可以将一个虚拟仪器系统变成一个子系统( SubVI ),然后被其他的虚拟仪器程序调用。图标作为 SubVI 的直观标记,代表着该 SubVI 中所有的框图程序和前面板控件;连接端口描述了该 SubVI 与调用它的 VI 之间进行数据交换的输入输出端口,每一个输入输出口分别与 SubVI前面板上的控件相对应。连接端口通常隐藏在图标中。

Page 85: 虚拟仪器

3.5.2 调用子 VI 调用子 VI 的步骤: 1. 选择子 VI; 2. 将子 VI 的图标放入主 VI框图程序中; 3.连线。

Page 86: 虚拟仪器

3.6 善用 LabVIEW 联机帮助

Page 87: 虚拟仪器

3.6 善用 LabVIEW联机帮助

LabVIEW 为用户提供了非常全面的帮助信息,有效地利用帮助信息是快速掌握 LabVIEW 的一条捷径。

LabVIEW 提供了各种获取帮助信息的方法,包括实时上下文帮助( Show Context Help )、联机帮助、 LabVIEW范例查找器( Find Examples )、网络资源( Web Resources )等。

Page 88: 虚拟仪器

3.6.1 实时上下文帮助窗口

单击此处访问更详细的联机帮助更多帮

助信息锁定上下文相关帮助

显示VI路径

选择菜单栏中 Help->Show Context Help 选项或按下 Ctrl+H ,就会弹出 Context Help窗口。

当鼠标移到某个对象或函数上时,上下文帮助窗口就会显示相应的帮助信息。

Page 89: 虚拟仪器

3.6.2 联机帮助文档

当单击 Context Help窗口中 Detailed help会弹出相应的完整的帮助信息。这是一个 Windows 标准风格的帮助窗口,包含了 LabVIEW全部的帮助信息。

也可以选择主菜单 Help->Search the LabVIEW Help 选项打开它。

Page 90: 虚拟仪器

3.6.3 范例查找器

LabVIEW 提供了大量的范例,这些范例几乎包含了 LabVIEW 所有功能的应用实例,并提供了大量的综合应用实例。

在菜单栏中选择 Help->Find Examples 选项可以打开范例查找器。

Page 91: 虚拟仪器

LabVIEW 更多特性与编程技巧

www.ni.com/labview/zhs

Page 92: 虚拟仪器

走进 LabVIEW 的世界

Page 93: 虚拟仪器

实验一

Page 94: 虚拟仪器

新建一个 VI ,进行如下练习:• 任意放置几个控件在前

面板,改变它们的位置、名称、大小、颜色等等。

• 在 VI 前面板和后面板之间进行切换

• 并排排列前面板和后面板窗口

实验一 VI 程序的创建、编辑和调试

1.熟悉 LabVIEW 环境。

Page 95: 虚拟仪器

2.创建一个 VI 。 发生一个值为 0.0~ 1.0 的随机数 a ,放大 10倍后与某一常数 b比较,若 a>b ,则指示灯亮。要求:① 编程实现;② 单步调试程序;③ 应用探针观察各数据流。

3.创建和调用子 VI 。 创建一个子 VI ,子 VI 功能:输入 3 个参数后,求其和,再开方。 编一个 VI 调用上述子 VI 。

Page 96: 虚拟仪器

• 对三个输入控件等间隔并右对齐。

• 添加注释• 分别用普通方式和高亮方式运行程序,体会数据流向。

• 单步执行一遍

4. 编写一个 VI求三个数的平均值。要求:

Page 97: 虚拟仪器

1.熟悉 LabVIEW 环境。2.创建一个 VI 。 发生一个值为 0.0~ 1.0 的随机数 a ,放大 10倍后与某一常数 b比较,若 a>b ,则指示灯亮。要求:① 编程实现;② 单步调试程序;③ 应用探针观察各数据流。

3.创建和调用子 VI 。 创建一个子 VI ,子 VI 功能:输入 3 个参数后,求其和,再开方。 编一个 VI 调用上述子 VI 。

4 、编写一个 VI求三个数的平均值。

Page 98: 虚拟仪器

谢谢!