990 likes | 1.15k Views
湖南大学电气与信息工程学院. 虚拟仪器. 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)
E N D
湖南大学电气与信息工程学院 虚拟仪器 Virtual Instrument 唐 求 E-Mail : tangqiuhnu@hnu.edu.cn Tel : 13077368836
主要内容: 3.1 基本概念与术语3.2 LabVIEW的操作模板3.3 创建和编辑VI3.4 运行和调试VI 3.5 创建和调用子VI3.6 善用LabVIEW联机帮助
计算机程序语言历经几代的发展演变: 机器语言(Machine language) 汇编语言(Assembly language) 高级语言:C 语言、:面向对象的C++、Java 及具有可视化编程环境的VC、VB、Delphi 等 图形化编程语言:“高级语言”是否还可以进一步抽象出“超级编程语言”呢? 从计算机语言的发展规律来看,回答应该是肯定的。 并且早在二十多年前,这种语言的雏形就已经出现,那就是LabVIEW 图形化编程语言 引子
图形化编程语言优势: 1、因为使用图形,可以直观的表达比较复杂的事情。 2、图形表现的是一种视觉语言。 3、图形因为形象化所以容易记忆和理解。 引子
几种高级语言和图形化语言的代码展示: 显示“Hello, World!” 引子
C 程序代码: # include<stdio.h> int main () { Printf (“Hello , World! \n”); Return 0; } 引子
C++程序代码: # include <iostream> Int main() { Std::cout<<’Hello , World !\n’; return 0; } 引子
C# 程序代码: class ConsoleHelloWorld { public static void main () { System.Console.WriteLine(“Hello , World !”) ; } } 引子
JAVA 程序代码: public class HelloWorldCommandLine{ public static vold main (String[ ] args){ System.out.printLn(“Hello,World!”); } } 引子
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; } 引子
VB 程序代码: Dim ny As Integer Private Sub Form_Load () Ny=0 Text1.Text=”Hello , World !” Text1.ForeColor=RGB(255,0,0) End Sub 引子
LabVIEW(图形化)程序代码: ? 引子
3.1 基本概念与术语 • LabVIEW (Laboratory Virtual Instrument Engineering Workbench) 是一种图形化的编程语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序。它用图标表示函数,用连线表示数据流向。
LabVIEW程序被称为VI(Virtual Instrument),即虚拟仪器。 LabVIEW的核心概念就是“软件即是仪器”,即虚拟仪器的概念。 LabVIEW还包含了大量的工具与函数用于数据采集、分析、显示与存储等。
LabVIEW有以下主要特点: (1)图形化的仪器编程环境 LabVIEW使用“所见即所得”的可视化技术建立人机界面。 LabVIEW提供了面板上所必需的许多显示和控制对象,如旋钮、表头、图表等。用户还可以方便地将现有控制对象改成适合自己需要的控制对象。
(2)自定义界面和数据流编程 数据流编程 自定义界面 • 直观形象地编程实现 • 灵活个性地进行应用界面设计
(3)内置的程序编译器 LabVIEW采用编译方式运行32位应用程序,解决了其它按解释方式工作的图形编程平台速度慢的问题,其速度大体相当于编译C的速度。 (4)灵活的程序调试手段 用户可以在源代码中设置断点,单步执行源代码,在源代码的数据流上设置探针,在程序运行中观察数据流的变化。
(5)功能强大的函数库 LabVIEW提供了大量的现成函数供用户直接调用,从底层VXI、GPIB、串口及数据采集板的控制子程序到大量的仪器驱动程序,从基本的功能函数到高级分析库,基本涵盖了仪器设计需要的函数。 (6)支持多种系统平台 LabVIEW支持多种系统平台,在Windows NT、HP、SUN SPARC(SUN工作站)等系统平台上,NI公司都提供了相应版本的软件,并且平台之间开发的应用程序可直接进行移植。
(7)开放式的开发平台 LabVIEW提供了DLL(动态链接库)接口和CIN接口,使用户在LabVIEW平台上能调用其它软件平台编译的模块,提供对OLE(对象链接和嵌入)的支持。 (8)网络功能 LabVIEW支持TCP/IP(传输控制协议/网际协议)、DDE(动态数据交换)、IAC(应用间通信)等功能。
(9)提供丰富的数据显示方法 LabVIEW为用户提供了多种结果显示控件,如旋钮、表头、表盘、图表等,以及多种结果显示方式,例如,数字显示、模拟仪表显示、极坐标显示、时域波形显示、频谱图形显示等。 用户可以根据实际需要进行显示方式的选择与配置,也可以对显示控件进行必要的修饰。
(10)灵活的数据报表生成方式 LabVIEW一般是以数据文件或数据库文件的形式储存监测与分析结果的,它本身也包含了丰富的数据报表格式。 如果需要生成的数据报表格式非常复杂,可以通过接口将数据输出到EXCEL等专用电子表格软件中,由EXCEL完成报表的生成与统计工作。
(11 )层次化结构 LabVIEW的强大功能归因于它的层次化结构,用户可以把创建的VI程序当作子程序调用,以创建更复杂的程序,而这种调用阶数是无限的。LabVIEW这种创建和调用子程序的方法,使创建的程序结构模块化,易于调试、理解和维护。
LabVIEW在测试、测量和自动化等领域具有最大的优势,因为LabVIEW提供了大量的工具与函数用于数据采集、分析、显示和存储。LabVIEW在测试、测量和自动化等领域具有最大的优势,因为LabVIEW提供了大量的工具与函数用于数据采集、分析、显示和存储。 用户可以在数分钟内完成一套完整的从仪器连接、数据采集到分析、显示和存储的自动化测试测量系统。 它被广泛地应用于汽车、通信、航空、半导体、电子设计生产、过程控制和生物医学等各个领域。 LabVIEW可以做什么?
LabVIEW不仅可以用来快速搭建小型自动化测试测量系统,还可以被用来开发大型的分布式数据采集与控制系统。LabVIEW不仅可以用来快速搭建小型自动化测试测量系统,还可以被用来开发大型的分布式数据采集与控制系统。 在美国Lawrence Livermore国家实验室,一个花费2000万美金的极为复杂的飞秒激光切割系统就是基于LabVIEW开发的。 在北京正负电子对撞机二期工程北京谱仪慢控制系统中,大约有30种物理量共7000多点的现场数据点需要实时采集控制和分析记录等。
助力各个工程领域的LabVIEW工具包 控制设计工具包 数据库连接工具包 报表生成工具包 频谱分析工具包 声音与振动工具包 调制解调工具包 高级信号处理工具包 系统辨识工具包
LabVIEW的发展历程 LabVIEW 2010 自优化技术 Web拓展 LabVIEW 2.5 Sun, Windows LabVIEW 6i 联网 LabVIEW 8.20 简体中文版 LabVIEW8.6 多核,FPGA, 无线 LabVIEW 嵌入式和 DSP LabVIEW 1.0 Macintosh LabVIEW 4.0 专业化开发 LabVIEW2011 1990 2005 2009 1993 1998 2003 2007 1992 1986 1997 2000 2004 2006 2008 2010 LabVIEW 8 分布式智能 LabVIEW 5.0 实时 LabVIEW 2.0 编译语言程序 LabVIEW 2009 虚拟化技术 无线传感器网络 LabVIEW 8.5 多核处理器 状态图模块 LabVIEW 3.0 多平台 LabVIEW 7 Express PDA 和 FPGA
使用LabVIEW开发平台编制的程序称为虚拟仪器(Virtual Instruments)程序,简称为VI。扩展名默认为.vi。 它包括前面板(Front Panel)、框图程序(Block Diagram)以及图标/连接端口(Icon/Connector)三部分。
框图窗口 图标 前面板窗口
1. 前面板 前面板:即图形化用户界面,用于设置输入数值和观察输出量,模拟真实仪表的前面板。
1. 前面板 前面板构成:控制(Control)、指示(Indicator)和修饰(Decoration)构成。控制:用户设置和修改VI输入量的接口;指示:显示VI输出数据或图形;修饰:对前面板进行美化、装饰。控制和指示统称为对象或控件。
利用输入控件可以输入相应的数据,例如数字、布尔量、字符串和文件路径等。利用输入控件可以输入相应的数据,例如数字、布尔量、字符串和文件路径等。 输入控件(Controls)和显示控件(Indicator)
显示控件用来显示数据。显示控件有数字、温度计、LED指示灯、文本、波形图等 。 • 前面板中的一些控件既可以作为输入控件也可以做作为显示控件。右击控件,选择Change to Indicator或Change to Control可以进行输入控件与显示控件之间的切换。
前面板中的每个控件都有自己的属性,如控件的颜色、最大最小值、显示精度和方式等。许多属性都可以根据不同的需要进行编辑。前面板中的每个控件都有自己的属性,如控件的颜色、最大最小值、显示精度和方式等。许多属性都可以根据不同的需要进行编辑。 右击前面板任何一个控件选择Properties选项就可以弹出该控件的属性配置窗口。
2. 框图程序 每一个程序前面板都对应着一段框图程序。框图程序用LabVIEW图形编程语言编写,可以把它理解成传统程序的源代码。 框图程序构成:节点(Node)、端子、图框和连线(Wire)构成。 节点:带有输入和输出连接线的对象,类似文本编程 语言中的语句、运算符、函数和子程序,包括 功能函数、结构、代码接口节点和子VI;端子:可视为入口和出口,或者源和目的地;图框:实现结构化程序控制命令; 连线:端子、节点间的数据通道,定义了框图内 的数据流动方向。
程序框图中的控件对象实际上是前面板相应控件的接线端程序框图中的控件对象实际上是前面板相应控件的接线端 前面板控件 程序框图中对应的接线端
LabVIEW中的程序框图节点是指带有输入和输出接线端的对象,类似文本编程语言中的语句、运算符、函数和子程序。LabVIEW中的节点主要包括函数、结构、Express VI、子VI等。 程序框图节点
整 形 浮点数逻辑量字符串文件路径 下面是一些常用数据类型所对应的线型和颜色: