电子测量仪器第9章 虚拟仪器技术.ppt
1,第9章 虚拟仪器技术,第9章 虚拟仪器技术 9.1 虚拟仪器的基本知识 9.1.1 虚拟仪器的一般概念 9.1.2 虚拟仪器的组成 9.1.3 虚拟仪器的特点 9.2 图形化软件编程平台-LabVIEW 9.2.1 LabVIEW简介 9.2.2 LabVIEW编程环境 9.2.3 基本VI简介 9.3 LabVIEW模板 9.3.1 工具模板(Tools Palette)9.3.2 控制模板(Controls Palette)9.3.3 功能模板(Functions Palette)9.4 LabVIEW数据类型 9.5 LabVIEW程序结构 9.5.1 For循环 9.5.2 While循环 9.5.3 选择结构,2,第9章 虚拟仪器技术,9.6 LabVIEW 图形显示功能 9.6.1 事后记录波形图控件(Waveform Graph)9.6.2 实时趋势图控件(Waveform Chart)9.6.3 XY 波形记录控件(XY Graph)9.7 LabVIEW编程入门 9.7.1 虚拟正弦波仿真信号发生器的功能描述 9.7.2 创建一个新的VI 9.7.3 设计VI前面板 9.7.4 设计框图程序 9.7.5 运行和调试VI程序 9.7.6 创建VI图标和保存VI 9.7.7 编辑VI 9.8 本章小结 9.9 本章实训:编制一个函数信号产生程序 习题,3,第9章 虚拟仪器技术,本章重点1虚拟仪器基本知识2图形化软件编程平台LabVIEW介绍3LabVIEW模板(工具模板、控制模板、功能模板)4LabVIEW的数据类型5LabVIEW的程序结构6LabVIEW的显示功能7LabVIEW编程入门本章难点LabVIEW的程序结构控制和显示功能。,4,第9章 虚拟仪器技术,9.1 虚拟仪器的基本知识9.1.1 虚拟仪器的一般概念所谓虚拟仪器(Virtual Instrument,简称VI),是在计算机硬件平台上,配以I/O接口设备,由用户自行设计虚拟控制面板和测试功能的一种计算机仪器系统。虚拟仪器是利用计算机显示器的显示功能模拟传统仪器的控制面板,以多种形式表达输出检测结果,利用计算机强大的软件功能实现信号数据的运算、分析、处理,由I/O接口设备完成信号的采集、测量与调理,从而完成各种测试功能的一种计算机仪器系统。,5,第9章 虚拟仪器技术,20多年前,美国国家仪器公司NI(NationalInstruments)提出了虚拟仪器(VI)概念,由此引发了传统仪器领域的一场重大变革,从而开创了“软件即是仪器”的先河。虚拟仪器通过软件将计算机硬件资源与仪器硬件有机的融合为一体,从而把计算机强大的计算处理能力和仪器硬件的测量、控制能力结合在一起,大大缩小了仪器硬件的成本和体积,并通过软件实现对数据的显示、存储以及分析处理。电子测量仪器经历了由模拟仪器、智能仪器到虚拟仪器,在高速度、高带宽和专业测试领域,独立仪器具有无可替代的优势。在中低档测试领域,虚拟仪器可取代一部分独立仪器的工作,但完成复杂环境下的自动化测试是虚拟仪器的拿手好戏,是传统的独立仪器难以胜任的。,6,第9章 虚拟仪器技术,9.1.2 虚拟仪器的组成虚拟仪器由硬件和软件组成构成虚拟仪器的硬件平台包括两部分:1计算机:一般为一台PC机或者工作站,它是硬件平台的核心。2I/O接口设备:主要完成被测输入信号的采集、放大、模/数转换。可根据实际情况采用不同的I/O接口硬件设备,如数据采集卡/板(DAQ)、GPIB总线仪器、VXI总线仪器模块、串口仪器等。虚拟仪器的构成方式主要有五种类型,如图9.1所示。,7,第9章 虚拟仪器技术,(1)PCDAQ系统:是以数据采集板、信号调理电路和计算机为仪器硬件平台组成的插卡式虚拟仪器系统。(2)GPIB系统:GPIB标准总线仪器与计算机为仪器硬件平台组成的虚拟仪器测试系统。(3)VXI系统:以VXI标准总线仪器模块与计算机为仪器硬件平台组成的虚拟仪器测试系统。(4)PXI系统:以PXI标准总线仪器模块与计算机为仪器硬件平台组成的虚拟仪器测试系统。(5)串口系统:以Serial标准总线仪器与计算机为仪器硬件平台组成的虚拟仪器测试系统。,8,第9章 虚拟仪器技术,图9.1 虚拟仪器组成,9,第9章 虚拟仪器技术,虚拟仪器软件由两大部分构成。1应用程序。它包含两个方面的程序:(1)实现虚拟面板功能的前面板软件程序。(2)定义测试功能的流程图软件程序。2I/O接口仪器驱动程序。这类程序用来完成特定外部硬件设备的扩展、驱动与通信。开发虚拟仪器,必须有合适的软件工具。目前已有多种虚拟仪器的软件开发工具。(1)文本式编程语言:如C、Visual C、Visual Basic、Labwindows/CVI等。(2)图形化编程语言:如LabVIEW、HPVEE等。这些软件开发工具为用户设计虚拟仪器应用软件提供了最大限度的方便条件与良好的开发环境。本书要介绍的是LabVIEW图形化编程语言。,10,第9章 虚拟仪器技术,9.1.3 虚拟仪器的特点虚拟仪器与传统仪器有着很大差别,传统仪器主要由硬件组成,需要操作者操作面板上的开关旋钮完成测量工作。其测试功能是由具体的电子电路来实现的。而在虚拟仪器中,其测试功能主要有软件完成,其操作面板变成了与实物控件对应的图标。所以,虚拟仪器具有以下特点:,11,第9章 虚拟仪器技术,1虚拟仪器的面板是虚拟的。虚拟仪器面板上的各种“控件”与传统仪器面板上的各种“器件”所完成的功能是相同的,它的外形是与实物相像的“图标”。对虚拟仪器的操作只需用鼠标点击相应图标即可,设计虚拟面板的过程就是在前面板窗口中选取、摆放所需的图形控件的过程。所以,虚拟仪器具有良好的人机交互界面,使用LabVIEW图形化编程语言,可在短时间内轻松完成一个美观而又实用的“虚拟仪器前面板”的设计,使整个设计过程变得轻松而有趣。,12,第9章 虚拟仪器技术,2虚拟仪器测量功能是由软件编程实现的 在以PC计算机为核心组成的硬件平台支持下,通过软件编程设计来实现仪器的测试功能,而且可以通过不同测试功能的软件模块的组合来实现多种测试功能,因此,虚拟仪器具有很强的扩展功能和数据处理能力。3开发研制周期短,技术更新速度快。传统仪器的技术更新周期大约是5至10年,而虚拟仪器的更新周期是1至2年。4软件、硬件具有开放性、模块化、可重复使用的特点。5通过使用标准接口总线和网卡,极易实现测量自动化、智能化和网络化。,13,第9章 虚拟仪器技术,9.2 图形化软件编程平台LabVIEW,9.2.1 LabVIEW简介LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器工程平台)是美国国家仪器公司(National Instrument Company,NI公司)开发的一种基于G语言(Graphics Language,图形化编程语言)的虚拟仪器软件开发工具。,14,第9章 虚拟仪器技术,LabVIEW是一种用图标代码来代替编程语言创建应用程序的开发工具。它以数据流编程的方法描述程序的执行。LabVIEW用图形语言(图标和连线)代替文本的形式编写程序,它所具有的扩展函数库包括数据采集、GPIB和串口仪器控制、数据显示、分析与存储等内容。为了便于程序的开发调试,LabVIEW还带有传统的开发调试工具,可设置断点、单步执行,也可以激活程序的执行过程,以动画的形式查看数据流的运行情况。,15,第9章 虚拟仪器技术,LabVIEW为虚拟仪器设计者提供了一个便捷、轻松的设计环境,利用它,设计者可以像搭积木一样,轻松组建一个测量系统和构造自己的仪器面板,而无需进行任何繁琐的计算机代码的编写。LabVIEW还带有专门的函数库和数学分析程序包,可以满足复杂的工程计算和分析要求。在LabVIEW环境下开发的程序称为虚拟仪器VI(Virtual Instruments).开发成功的虚拟仪器可脱离LabVIEW环境,用户最终使用的是和实际的硬件仪器相似的操作面板。,16,第9章 虚拟仪器技术,综上所述,LabVIEW具有如下特点:(1)图形化的编程方式,设计者无需写任何文本格式的代码,是真正的工程师的语言。(2)提供了丰富的数据采集、分析及存储的库函数。(3)既提供了传统的程序调试手段,如设置断点、单步运行,同时提供有独到的高亮执行工具,使程序动画式运行,利于设计者观察程序运行的细节,使程序的调试和开发更为便捷。(4)提供大量与外部代码或软件进行连接的机制,诸如DLLs(动态连接库)、DDE(共享库)、ActiveX等。(5)强大的Internet功能,支持常用网络协议,方便网络、远程测控仪器的开发。,17,第9章 虚拟仪器技术,9.2.2 LabVIEW编程环境以LabVIEW 7 Express为例,介绍LabVIEW系统安装、基本组成、编程环境。1LabVIEW系统安装将LabVIEW 7 Express光盘插入CD驱动器后,只需运行安装光盘中的Setup程序,按照屏幕提示,选择必要的安装选项即可完成。为了控制DAQ、VXI、GPIB等硬件设备,在LabVIEW系统安装完成后,还必须安装NI公司提供的仪器驱动程序。,18,第9章 虚拟仪器技术,2LabVIEW启动双击LabVIEW快捷方式图标即可启动LabVIEW。启动后的界面如图9.2所示。界面右侧有4个按钮,每个按钮都包含按钮主体和下拉菜单。单击按钮主体则弹出相应的对话框,单击右侧下拉按钮则弹出下拉菜单。当用户单击New VI 按钮右侧下拉按钮,并在下拉菜单中选择Blank VI,LabVIEW会生成一个空VI,空VI包括两个窗口,一个是前面板窗口,用于设计和编辑前面板对象,另一个是框图程序窗口,用于设计和编辑框图程序。,19,第9章 虚拟仪器技术,图9.2 LabVIEW 7 Express启动界面,20,第9章 虚拟仪器技术,3窗口工具条在前面板和框图程序窗口,设有编辑对象用的工具条,工具条各图标的功能如表9.2.1所示。,执行按钮,单击此按钮运行VI,中断按钮,当执行按钮变为此形状时,表明VI有错误,不能编译运行,单击该按钮,可弹出Error List对话框,提示VI中的错误。,连续运行按钮,单击此按钮可重复运行I。,21,第9章 虚拟仪器技术,停止运行按钮,单击此按钮可停止运行VI。,暂停按钮,单击此按钮可暂停VI执行,再次单击此按钮,VI又续执行。,指示灯按钮,单击此按钮,可动态显示VI执行时数据流动动画。,单步(入)按钮,单击此按钮,按节点顺序单步执行程序,每单击一次,程序执行一步。,单步(跳)按钮,单击此按钮,按节点顺序单步执行程序(不进入循环、SubVI内部),,单步(出)按钮,单击此按钮,退出单步,进入暂停状态。,22,第9章 虚拟仪器技术,对齐列表框,单击此按钮,可选择图标的对齐方式。,分布列表框,单击此按钮,可选择图标的分布方式。,重新排序列表框,为选定对象重新设定在窗口中的前后顺序。,23,第9章 虚拟仪器技术,(1)File(文件)子菜单。在进入LabVIEW窗口后,如果想进行新建(New)、打开(Open)、保存(Save)、打印(Print)、关闭(Close)等操作,可点击File中的相应选项。(2)Edit(编辑)子菜单。将文本式编程语言中常用的Cut(剪切)、Copy(复制)、Paste(粘贴)、Delete(删除)功能用于LabVIEW中的图标及控件的操作。,4窗口主菜单 主菜单栏共有七个子菜单如图9.3所示。,图9.3 窗口主菜单,24,第9章 虚拟仪器技术,(3)Operate(操作)子菜单。该子菜单主要选项有Run(运行)、Stop(停止)、Suspend When Called(当VI被调用时暂停执行)、Print at Completion(运行完后打印前面板)等,用于调试或运行LabVIEW程序。(4)Tools(工具)子菜单。该菜单主要用于仪器及数据采集板通信、比较VI、编译程序、允许访问Web服务器及其它选项。(5)Browse(浏览)子菜单。该菜单主要用于定位VI的各个层次。(6)Windows(窗口)子菜单。该菜单主要用于弹出Diagram(流程图)编辑窗口、Frone Panel(前面板)设计窗口、Tools Palette(工具模板)、Functions Palette(功能)模板和Controls Palette(控制)模板等操作。(7)Help(帮助)子菜单。该菜单主要用于获取帮助信息。,25,第9章 虚拟仪器技术,图9.4 正弦信号产生器前面板,9.2.3 基本VI简介图9.4、9.5是一个正弦信号产生器VI的前面板和框图程序,前面板有一个波形显示控件,在框图程序中,有与之对应的图标端口和模拟信号产生VI。,26,第9章 虚拟仪器技术,图9.5 正弦信号产生器框图程序,27,第9章 虚拟仪器技术,VI由程序前面板(front panel)、框图程序(block diagram)、图标/连接端口(icon/connector)3部分组成。1.前面板前面板是用于设置输入数值和观察输出结果的图形化用户界面,前面板中的输入量被称为控制(controls),用来设置和修改VI的输入量。输出量被称为指示(indicators),用来指示VI程序输出的数据。控制和指示包括各种旋钮、按钮、开关、表头、图标和图形等。为使前面板便于操作和美观,还有一类控件称为装饰(decoration),其作用是对前面板图标进行编辑和修饰。,28,第9章 虚拟仪器技术,2框图程序框图程序由节点(node)、端口(terminal)和数据连线(wire)组成。(1)节点是程序的执行元素,相当于文本语言中的语句、函数或子程序。LabVIEW有4种节点类型:功能函数(functions)、结构控制(strctures)、代码端口(CIN)和子VI节点。功能函数是执行各种数学运算、文件输入输出等基本操作的节点,是LabVIEW编译好的机器代码,以图标的形式出现,供用户使用。节点代码不能修改。结构控制节点被用来实现结构化程序控制命令,如循环控制、条件分支控制和顺序控制等。代码端口节点是框图程序与用户提供的C语言文本程序的接口。,29,第9章 虚拟仪器技术,子VI节点是为编程方便而专门设计的一段子程序,将其封装成功能函数节点的形式供用户调用。与功能函是节点的区别是用户可以修改其节点代码。(2)端口是数据在框图程序和前面板之间、节点和节点之间传输而经过的端口。端口有2种类型:控制和指示端口:用于前面板对象和框图程序交换数据。节点端口:每个节点都有一个或数个数据端口,用以输入和输出数据。(3)数据连线代表程序执行过程中的数据流,定义了框图内的数据流动方向。在LabVIEW中用不同的线形和颜色区分不同的数据类型,表9.2.2列出不同数据类型的线形和颜色。,30,第9章 虚拟仪器技术,表 9.2.2,31,第9章 虚拟仪器技术,9.3 LabVIEW模板,9.3.1工具模板(Tools Palette),工具模板提供了用于创建、编辑和修改前面板和流程图上对象的各种工具。如果想选用某操作工具,只需用鼠标点击该工具图标即可。工具模板的调用方法:,执行“WindowsShow Tools Palette”操作。工具模板如图9.6所示。各图标对应的功能如表9.2.3所示。,图9.6 工具模板,32,第9章 虚拟仪器技术,表9.2.3LabVIEW工具模板的图标及功能,33,第9章 虚拟仪器技术,34,第9章 虚拟仪器技术,9.3.2控制模板(Controls Palette)控制模板是LabVIEW为用户设计虚拟面板而提供的,因此它只会在前面板编辑窗口中出现。控制模板的调用方法:(1)执行“WindowsShow Controls Palette”操作。(2)使用Object Shortcut Menu工具,左击前面板设计窗口中的空白位置。(3)用鼠标右键点击窗口的任一空白区域,。控制模板如图9.7所示。各图标对应的功能如表9.2.4所示。,35,第9章 虚拟仪器技术,图9.7控制模板,36,第9章 虚拟仪器技术,表9.2.4 LabVIEW控制模板的图标及功能,37,第9章 虚拟仪器技术,38,第9章 虚拟仪器技术,9.3.3功能模板(Functions Palette)LabVIEW将传统仪器上的各种测试功能做成可供直接调用的库函数。并将各个库函数做成图标的形式存放在相应功能的子模板上。由于功能模板是LabVIEW为用户设计流程图而提供的,因此它只会在流程图编辑窗口中出现。功能模板的调用方法:(1)执行“WindowsShow Functions”操作。(2)用工具模板上的Object Popup工具,左击流程图编辑窗口的空白位置。(3)用鼠标右键点击窗口空白区域。控制模板如图9.8所示。各图标对应的功能如表9.2.5所示。,39,第9章 虚拟仪器技术,图9.8功能模板,40,表9.2.5 LabVIEW功能模板的图标及功能,第2章 半导体三极管,提供程序控制结构命令,例如循环控制(For结构、While结构),以及全局变量和局部变量。,1,2,3,4,5,提供各种字符串操作函数、数值与字符串之间的转换函数以及字符(串)常数等。,提供数组运算函数、数组转换函数以及常数数组等。,41,第2章 半导体三极管,提供簇的处理函数以及簇常数等。,6,7,8,9,10,提供处理文件输入/输出的程序和函数,主要用于创建和打开数据文件,并进行数据的读写。,提供各种与数据采集相关的VI,需要单独安装。,42,第9章 虚拟仪器技术,43,第9章 虚拟仪器技术,44,第9章 虚拟仪器技术,9.4 LabVIEW数据类型,LabVIEW的数据类型按其特征可分为数字量类型和非数字量类型,并用不同的图标来代表不同的数据类型。1.数字量数据类型数字量数据类型可分为浮点数、整数和复数(实部和虚部都是浮点数)3种基本形式。所有数字量数据类型如表3.2.6所示。,45,第9章 虚拟仪器技术,表3.2.6 数字量数据类型:,46,第9章 虚拟仪器技术,47,第9章 虚拟仪器技术,2非数字量数据类型部分非数字量数据类型如表3.2.7所示。表3.2.7 非数字量数据类型:,48,第9章 虚拟仪器技术,图9.9 结构子模板,9.5 LabVIEW程序结构,LabVIEW采用结构化数据流图编程,能处理循环、顺序、选择、事件等程序控制的结构框架。结构子模板如图9.9所示,下面主要介绍For Loop、While Loop、Case三种程序结构。,49,第9章 虚拟仪器技术,9.5.1 For循环1创建For循环框架功能模板:FunctionsStructures For Loop,基本For循环由循环框架、重复端口、计数端口组成,如图9.10所示。,图9.10 基本For循环组成,50,第9章 虚拟仪器技术,2For循环的工作流程在开始For循环之前,从计数端口读入循环次数,重复端口输出0值,接下来执行For 循环框内框图代码程序,没执行一次重复端口i值自动加1,循环次数达到设定值后,退出循环。3For循环的数据通道与自动索引循环框外面的数据可通过数据通道进入循环框内,同样,循环框内的数据也可通过数据通道传送到循环框外。用连线工具连接循环框内外的数据端口时,在框架上会自动形成方形通道图标,空心图标表明具有自动索引功能,实心图标不能索引,For循环默认为能自动索引,在循环通道弹出菜单中选择Disable Indexing,则变为不能索引。,51,第9章 虚拟仪器技术,自动索引是指将循环框外面的数组成员逐个依次进入循环体内,或将循环框内的的数据累加成一个数组输出到循环框外面。使用自动索引功能时,从循环框外面连接到输入通道的一维数组将索引成单个成员,反之,在循环的输出边框,单个元素依次累加成一维数组。4For循环的移位寄存器功能用鼠标右击For Loop图标的边框,会弹出For Loop对话框,选择Add Shift Register选项,就添加了一个移位寄存器。它通常以成对的两个小方框出现在结构体的左右边框,右侧小方框将本次循环的执行结果暂存起来,左侧小方框取得上次循环的结果,供本次循环使用。,52,第9章 虚拟仪器技术,图9.11 N!前面板和框图程序,5For循环的使用图9.11为计算 N!的前面板和框图程序。,53,第9章 虚拟仪器技术,9.5.2 While循环1创建While循环框架功能模板:FunctionsStructures While Loop,基本While循环由循环框架、重复端口、条件端口组成,如图9.12所示。,图9.12基本While循环的组成,54,第9章 虚拟仪器技术,2While循环的工作流程While循环执行循环框中的程序时,其循环次数是不固定的,用条件端口控制循环的停止与否。条件端口有两种状态,当使用状态为Stop if True时,若输入值为True,则停止循环;若输入值为False,则继续执行下一次循环。当使用状态为Continue if True时,若输入值为True,则继续执行下一次循环;若输入值为False,则停止循环。While循环的自动索引、移位寄存器和重复端口的用法与For循环相同,只是While循环的边框通道默认为不能索引。,55,第9章 虚拟仪器技术,9.5.3 选择结构1创建Case Structure框架功能模板:FunctionsStructures Case Structure,基本Case Structure由选择框架、选择端口、选择器标签,以及递增/递减按钮组成,如图9.13所示。,图9.13选择结构的组成,56,第9章 虚拟仪器技术,2Case Structure的工作流程用选择结构编程时,将外部控制条件连接至选择端口上,程序运行时选择端口会判断送来的控制条件,引导选择结构执行相应框架中的内容。输入到选择端口的控制条件的数据类型有三种:布尔型、数字型和字符串型,当控制条件为布尔型时,有True和False两种选择框架。当控制条件为数字型时,选择器标签值为整数0、1、2.,选择框架的个数可根据实际需要确定。当控制条件为字符串型时,选择器标签的值为双引号括起来的字符串,选择框架的个数也可根据实际需要确定。,57,第9章 虚拟仪器技术,9.6 LabVIEW 图形显示功能,LabVIEW的图形子模板提供了完成各种图形显示功能的控件。这里简单介绍图形子模板中前三种常用图形控件事后记录波形图控件(Waveform Graph)、实时趋势图控件(Waveform Chart)和XY 波形图控件(Waveform Graph)的功能。,9.6.1事后记录波形图控件(Waveform Graph),1主要功能 Waveform Graph可以显示单个信号波形,也可以同时显示多个信号波形。它的数据输入基本形式是数组或簇,输入数据中包含了所有需要显示的格式化测量数据。该控件显示时是以一次刷新的方式进行的,也就是说将构成数组的全部测量数据一次显示出来。图9.14显示了Waveform Graph的所有组件。,58,第9章 虚拟仪器技术,图9.14 Waveform Graph的组件,59,第9章 虚拟仪器技术,各组件的功能如下:标签(Lable):可通过文本编辑工具给控件命名。坐标设置工具(Scale Legend):将横轴定义为X轴,代表数组中数据的序号,纵轴定义为Y轴,表示要显示测量数据点的数值大小。在默认条件下,X轴初值为0,步长为1,最大刻度范围根据数组长度自动调整,而Y 轴刻度则根据数组中最大与最小值范围自动设定。通过Scale Legend可设置X、Y轴名称、自动量程选择、数据格式、精度、网格线、坐标类型等参数。波形设置工具(Plot Legend):通过该控件的弹出菜单,可以设定波形曲线的各种属性,如波形的名称、线型和颜色等。图形控制工具(Graph Palette):此控件由光标选择工具、图形缩放工具和图形移动工具组成,通过图形控制工具,可以在程序运行中放大、缩小、移动所显示波形。,60,第9章 虚拟仪器技术,光标控制工具(Cursor Legned):此控件可以移动光标、设置光标名称、颜色、形状、线型等属性,还可以显示光标所在位置的坐标。2Waveform Graph控件的使用设计一个程序,测量一个随机信号的电压值并进行滤波处理(以前5点的平均值作为滤波方法),要求共测量50点,同时显示滤波前后信号波形。根据要求,只要将两组数据组成一个二维数组,再把这个二维数组送入波形显示控件即可。显示结果及框图程序如图9.15所示。,61,第9章 虚拟仪器技术,图9.15随机信号滤波程序,62,第9章 虚拟仪器技术,9.6.2实时趋势图控件(Waveform Chart),1主要功能实时趋势图控件(Waveform Chart)可以完成信号的动态显示。即每接收到一个数据,就立即显示一个数据,新数据不断淘汰掉旧数据,从而得到连续的波形。因此,这种显示方式非常适用于描述数据动态变化的规律,适用于实时数据的动态观察。图9.16显示了Waveform Chart的所有组件。其中标签(Lable)、坐标设置工具(Scale Legend)、波形设置工具(Plot Legend)、图形控制工具(Graph Palette)与Waveform Graph控件是相同的。不同的是,Waveform Chart的输入是一个双精度浮点数,而Waveform Graph的输入是一个双精度浮点数组。这是由于两者的波形刷新方式和数据组织方法不同造成的。Waveform Graph控件通常把要显示的数据先收集到一个数组,然后再把这组数据一次性送入控件中进行显示,而Waveform Chart控件是把新的数据连续添加到已有数据的后面,波形是连续向前推进显示的。,63,第9章 虚拟仪器技术,Waveform Chart控件一次可接收一个点的数据,也可接收一组数据,不过这组数据与Waveform Graph中的数据组是不同的,Waveform Chart的数据组只不过代表一个波形上的几个点,而Waveform Graph的数据组代表的则是整条曲线。,图9.16 Waveform Chart的组件,64,第9章 虚拟仪器技术,2Waveform Chart的设置(1)数据存储长度设置Waveform Chart显示数据的方式是周期性的刷新显示区,并将数据存储在一块缓存区中,这个缓存区的大小默认值是1024。如果需要改变这个值,需要在Chart上弹出菜单并选择 Chart History Length,在弹出对话框中修改波形存储长度。当Chart的横坐标值小于Chart History Length值时,使用滚动条可以显示缓存区中窗口以外的数据。当选择横坐标为自动比例时,滚动条消失,说明数据已被全部显示。,(2)刷新模式设置Waveform Chart有三种刷新模式,条幅式Strip Chart、示波器式Scope Chart和扫描式Sweet Chart。缺省的刷新模式是条幅式。在Chart弹出菜单中依次选择Advanced Update Mode,可在下级弹出模板中更换刷新模式。,65,第9章 虚拟仪器技术,条幅式类似于纸带记录仪的滚动显示模式,每接收到一个新的数据,就显示在图线的右边缘,原有的值依次左移。示波器式显示模式时每接收到一个新的数据,就把他描绘在上一个数据的右侧,当图线画至右边界时,就擦除这段图线,然后再从左边开始描绘新一条线图。扫描式与示波器式类似,不同的是数据到达右边界时,不将显示区清空,而是在描绘下一条曲线的同时,清除上一条曲线的一个数据点,并用一条移动的垂直线界定新数据的起点,此线随新数据的到达在显示区内横移。(3)多波形显示方式在一个Chart中显示多条曲线时,可以使用同一个波形描绘区,叫做层叠描绘Overlay Plots;或使用不同的描绘区,叫做堆积描绘Stack Plots。在Chart弹出菜单中选择Overlay Plots或Stack Plots可以进行两种布置方式的转换。,66,第9章 虚拟仪器技术,9.6.3 XY 波形记录控件(XY Graph),Waveform Graph和Waveform Chart的横坐标都是单调均匀的,它们不能描绘出非均匀采样的数据和某些平面曲线,因此LabVIEW提供了XY Graph波形记录控件。XY Graph及其端口如图9.17所示。与Waveform Graph相同,XY Graph也是一次性完成波形显示刷新,不同的是XY Graph的输入数据类型是由两组数据打包构成的簇,簇的每一对数据都对应一个显示数据点的X、Y坐标。,67,第9章 虚拟仪器技术,图9.17 XY Graph及其端口,68,第9章 虚拟仪器技术,9.7 LabVIEW编程入门,本节以虚拟正弦信号产生器为例介绍LabVIEW编程的基本过程,9.7.1 虚拟正弦波仿真信号生成器功能描述该正弦波仿真信号发生器可产生正弦信号,指标如下:频率范围:1 Hz10 kHz,可调。初始相位:0180,可调。幅值:0.15.0 V,可调。生成波形的总点数:N=8512,可选。,69,第9章 虚拟仪器技术,9.7.2 创建一个新的VI在LabVIEW主窗口中选择New VI,或在已打开的VI的主菜单File中选择New。会出现图9.18所示的VI窗口。前面是VI的前面板窗口,后面是VI的框图程序窗口,在两个窗口的右上角是默认的VI图标/连接端口。9.7.3 设计VI前面板根据要求,前面板应设计五个输入型数字控件。由使用者键入生成正弦波的频率fx、初始相位、幅值、总采样点数N与采样频率fs。一个输出显示型图形控件。该控件的横轴为时间轴。应考虑到生成的信号频率跨度大,在1 Hz10 kHz范围内;其周期跨度也大,在1s0.1 ms范围内。纵轴为电压轴,生成信号幅值的范围应充满整个显示画面,故选用Waveform Graph波形显示控件。,70,第9章 虚拟仪器技术,在控制模板上按下列操作依次进入各子菜单可找到相应的控件。Controls All Controls Classic Controls Classic Numeric Numeric Controls(5)Controls All Controls Classic Controls Classic Boolean Horizontal Switch(1)Round Stop Button(1)Controls All Controls Classic ControlsClassic Graph Waveform Graph(1),71,第9章 虚拟仪器技术,图9.18 New VI 窗口,72,第9章 虚拟仪器技术,放置好控件的前面板如图9.19所示,在框图程序中相应的图标端口如图9.20所示。,图9.19 前面板设置,73,第9章 虚拟仪器技术,图9.20 框图程序中的图标端口,74,第9章 虚拟仪器技术,根据控件的实际功能,用工具模板中的文字工具重新修改控件标签。修改后的前面板如图9.21所示。,图9.21 修改后的前面板,75,第9章 虚拟仪器技术,图9.22 正弦信号产生器节点和端口,9.7.4 设计框图程序图9.20中的端口是LabVIEW 7 Express版本开始使用的一种图标式端口外观,为了在框图程序中节省空间,本例仍使用传统图标端口,在端口的右键弹出菜单中点击View As Icon前面的“”号,可切换为传统图标外观。如图9.22所示。,76,第9章 虚拟仪器技术,在功能模板上按下列操作依次进入各子菜单可找到相应的节点。FunctionsAll FunctionsAnalyzeSignal ProcassingSignal Generation Sine Wave.vi(正弦波节点)FunctionsAll FunctionsClusterBundle(打包节点)NumericDivide(除法节点)Reciprocal(倒数节点)FunctionsAll FunctionsTime&DialogWait(ms)(延时节点)FunctionsAll FunctionsStructures Wile Loop(Wile循环结构),77,第9章 虚拟仪器技术,(2)编程原理本VI基本功能是生成正弦波,在LabVIEW中,有多种方法可以产生正弦波,如Sine Wave.vi、Sine Pattern.vi、Simulate Signal.vi等。本例采用Sine Wave.vi。图标连接端口如图9.23所示。,图9.23 Sine Wave.vi 图标连接端口,78,第9章 虚拟仪器技术,图标左侧一列为输入端口,即该函数调用前的参数设置端口,其各自的含义是:samples:生成波形的总点数N(默认值为128)。amplitude:生成波形的幅值(默认值为1.0)。f:生成信号的数字频率(默认值为1.0/128.0)。phase in:生成波形的初始相位,单位为度(默认值为0.0)。reset phase:默认值为True。当为True时,函数以phase in的值作为初始相位。如果该值为False,函数以上一次调用后的phase out输出值为此次波形的初始相位,显然,此时产生的信号波形是连续光滑的。函数图标的右侧一列为输出端口(即函数调用后的输出参数),其各自的含义是:Sine Wave:数组名。该数组内存放所生成的波形数据。phase out:当reset phase为True时,该参数无效;当reset phase为False时,该参数作为下一次生成正弦波的初始相位。,79,第9章 虚拟仪器技术,error:错误代码。若有错误,则输出错误代码。根据错误代码,查找LabVIEW帮助文件,可以找到与错误代码对应的错误含义。此VI输入频率参数为数字频率,数字频率(f)=模拟频率(fx)/采样频率(fs),为此,用一个除法器完成fx/fs的运算。波形VI的输出加到打包节点的一个输入端,打包节点的另外两个输入一个是时间起点,另一个是采样间隔,采样间隔由倒数节点对采样频率取倒数得到。打包节点输出的正弦波序列已包含时间起点和采样间隔信息。此信号序列送到Waveform Graph显示信号波形。将上述节点置于Wile Loop框架内,可以形成连续的正弦波形。Wait是一个以毫秒为单位的延时节点,适当的延迟可以放慢信号的刷新速度。通过 Stop按钮可退出循环,停止运行程序。,80,第9章 虚拟仪器技术,图9.24 正弦信号产生器框图程序,(3)连线按上述原理,用连线工具对各端口和节点正确连线,编制好的框图程序如图9.24所示。,81,第9章 虚拟仪器技术,9.7.5 运行和调试VI程序1运行与停止在前面板窗口或框图程序窗口的工具条中单击Run按钮,,,可使VI运行一次。VI运行时,Run按钮变为,状态。对于运行状态的VI,单击Abort Execution按钮,,可强行终止VI运行。若单击Pause按钮,,可暂停VI运行,再次单击该按钮,可继续VI的运行。若单击工具条中的Run Continuously按钮,,可使VI连续运行。VI连续运行时,Run Continuously按钮会变为,(Running Continuously)状态。单击Running Continuously按钮可停止VI连续运行。,82,第9章 虚拟仪器技术,2单步执行VI单步执行VI是在框图程序中,按照节点之间的逻辑关系,沿数据连线逐个节点地执行VI。在LabVIEW中有两种单步执行VI的方式。单步(入)执行:单击工具条上的单步(入)按钮,就可进入单步(入)执行VI状态。此时,程序按节点顺序单步执行,遇到循环或SabVI时,跳入循环或SabVI内部继续逐步运行程序。每单击一次该按钮,程序执行一步。,单步(跳)执行:单击工具条上的单步跳(Step over)按钮,,就可进入单步(跳)执行VI状态。此时,程序按节点顺序单步执行,