版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,编著 张重雄,电子工业出版社,虚拟仪器技术分析与设计,欢迎使用,电子教案,第1章 绪论 第2章 虚拟仪器总线接口技术 第3章 虚拟仪器软件标准 第4章 虚拟仪器软件开发平台LabVIEW 第5章 虚拟仪器设计基础 第6章 虚拟仪器数据采集与信号处理 第7章 虚拟仪器通信技术 第8章 虚拟仪器工程设计实例,主要内容,课程介绍,“虚拟仪器技术分析与设计”三大任务 任务之一:了解虚拟仪器基本概念 任务之二:学会使用LabVIEW8.2 任务之三:掌握虚拟仪器设计方法,教学参考书,虚拟仪器技术分析与设计 张重雄 编著 电子工业出版社,电子信息与电气学科规划教材,第 1 章,绪 论,第1章 绪论,教学
2、重点 虚拟仪器的基本概念 虚拟仪器的组成 虚拟仪器的特点与应用 虚拟仪器技术发展趋势,1.1 虚拟仪器的基本概念,Virtual Instrument,VI 什么是虚拟仪器? 虚拟仪器是指在以通用计算机为核心的硬件平台上,由用户自己设计定义,具有虚拟的操作面板,测试功能由测试软件来实现的一种计算机仪器系统。,虚拟的含义,虚拟的仪器面板 传统仪器面板上的器件都是实物,而虚拟仪器面板控件是外形与实物相像的图标,其操作对应着相应的软件程序,使用鼠标式键盘操作虚拟面板的控件。 虚拟仪器的测控功能 传统的仪器特别是早期的仪器,它的功能是通过硬件来实现的,而虚拟仪器是通过软件编程来实现的,仪器的发展历史,
3、第一代仪器:模拟仪器 第二代仪器:数字化仪器 第三代仪器:智能仪器 第四代仪器:虚拟仪器,虚拟仪器的出现,计算机技术和仪器技术结合 充分利用计算机丰富的软硬件资源,可以较大突破传统仪器在数据处理、表达、传递、存储等方面的限制,达到传统仪器无法比拟的效果。还可以把仪器的三大功能全部放在计算机上实现。 构成虚拟仪器 在计算机中插入数据采集卡,然后,用软件在屏幕上生成仪器面板,用软件来进行信号处理分析,实现传统仪器的功能,这就是虚拟仪器。,仪器概念的转变,传统仪器 厂商定义功能,虚拟仪器 用户定义功能,1.2 虚拟仪器的组成,虚拟仪器的组成包括硬件和软件两个基本要素。,虚拟仪器的硬件结构,虚拟仪器构
4、成形式,基于数据采集卡的虚拟仪器 基于GPIB方式的虚拟仪器 基于VXI总线方式的虚拟仪器 基于PXI总线方式的虚拟仪器 基于LXI总线方式的虚拟仪器,在以PC 机为基础的虚拟仪器中,插入式数据采集卡DAQ (Data Acquisition)是虚拟仪器中最常用的接口形式之一。其功能是将现场数据采集到计算机,或将计算机数据输出给受控对象。,基于数据采集卡的虚拟仪器,基于GPIB方式的虚拟仪器,GPIB Interface,DMM,GPIB 电缆,GPIB (General Purpose Interface Bus)是由HP公司于1978年制定的总线标准,是传统测试仪器在数字接口方面的延伸和扩
5、展,基于VXI总线方式的虚拟仪器,虚拟仪器技术中最引人注目的应用是基于VXI总线(VMEbus Extension for Instrumentation)平台技术的自动测试仪器系统。由于VXI总线具有标准开放、结构紧凑、数据吞吐能力强、定时和同步指确、模块可重复利用、众多厂家支持等优点得到广泛应用。,基于PXI总线方式的虚拟仪器,PXI( PCI eXtensions for Instrumentation)总线是N I公司在1997年9月1日推出的全新的开放性、模块化仪器总线规范。它以CompactPCI为基础,是PCI总线面向仪器领域的扩展。,基于LXI总线方式的虚拟仪器,2004年9月
6、,VXI 科技公司和安捷伦公司共同推出一种适用于自动测试系统的新一代基于局域网(LAN)的模块化测量仪器接口标准LXI(LAN-based eXtensions for Instrumentation),即LAN的仪器扩展。,软件就是仪器,“软件就是仪器”,当虚拟仪器的硬件平台建立起来之后,设计、开发、研究虚拟仪器的主要任务就是编制应用程序。 在虚拟仪器系统中,硬件仅仅是为了解决信号的输入输出,软件才是整个仪表的关键。操作者可以通过修改软件的方法,方便地改变、增减仪器系统的功能与规模。使计算机直接参与测试信号的产生和测量特征的解析,完成数据的输入、存储、综合分析和输出等功能。,虚拟仪器软件层次
7、结构,输入/输出(I/O)接口软件 I/O接口软件存在于仪器与仪器驱动程序之间,是一个完成对仪器内部寄存单元进行直接存取数据操作,为仪器驱动程序提供信息传递的低层软件,是实现开放的、统一的虚拟仪器系统的基础和核心。 仪器驱动程序 仪器驱动程序是连接上层应用软件和低层I/O软件的纽带和桥梁。仪器生产厂家在提供仪器模块的同时提供仪器驱动程序 应用软件 上层应用软件主要包括仪器面板控制软件和数据分析处理软件。一般是在仪器硬件厂商提供的I/O接口软件仪器驱动程序基础上进行应用软件开发。,虚拟仪器软件开发平台,基于文本式编程语言开发工具 VC+,VB,C+Build,LabWindows/CVI,Del
8、phi等 基于图形化编程语言开发工具 LabVIEW(NI 公司) HP VEE (HP 公司),Graphical Programming,虚拟仪器前面图,虚拟仪器程序框图,虚拟仪器系统,以PC-DAQ接口的虚拟仪器为例,虚拟仪器的整体结构如图,Hardware ViString buffer; ViUint32 retCnt; ViStatus status; status=viOpenDefaultRM( ,3.3 虚拟仪器驱动程序,仪器驱动程序是完成对某一特定仪器的控制与通信的软件程序。是连接仪器与用户界面的桥梁。 每个仪器模块均有自己的仪器驱动程序。仪器驱动程序的实质是为用户提供了用
9、于仪器操作的较抽象的操作函数集。对于应用程序来说,它对仪器的操作是通过仪器驱动程序来实现的。对于应用程序设计人员来说,一旦有了仪器驱动程序,在不是十分了解仪器内部操作过程的情况下,也可以进行虚拟仪器系统的设计工作。仪器驱动程序是连接上层应用软件与底层输入/输出软件的纽带和桥梁,是虚拟仪器软件的核心,是系统设计的关键。,VPP与IVI,VXI即插即用(VXI plug Visual Basic联编的初始化函数原型为: Declare Function PREFIX_init Lib PREFIX.dll ( ByVal rsrcName As string,ByVal id_query As I
10、nteger,ByVail reset_instr As Integer,vi As Long ) As Long,初始化函数的参数与返回值表,复位函数,复位函数用于将仪器置于默认状态。 ANSI C联编的复位函数原型为: ViStatus_VI_FUNC PREFIX_reset ( ViSession vi ); Visual Basic联编的复位函数原型为: Declare Function PREFIX_reset Lib PREFIX.dll ( ByVal vi As Long ) As Long 复位函数的参数与返回值表:,自检函数,自检函数实现仪器的自检并返回自检结果。 ANS
11、I C联编的自检函数原型为: ViStatus_VI_FUNC PREFIX_self_ test (ViSession Vi,ViPInt16 test_result,ViChar_VI_FAR test_message); Visual Basic联编的自检函数原型为: Declare Function PREFIX_self_test Lib PREFIX.dll (ByVal vi As Long,test_result Long,ByVal test_merrage As String ) As Long,自检函数的参数与返回值表,错误查询函数,错误查询函数对仪器进行查询并返回与仪器
12、相关 的错误信息。 ANSI C联编的错误查询函数原型为: ViStatus_VI_FUNC PREFIX_error_query (ViSession vi,ViPInt32 error_code,ViChar_VI_FAR error_message); Visual Basic联编的错误查询函数原型为: Declare Function PREFIX_error_query Lib PREFIX.dll (ByVal vi As Long, error_code As Long, ByVal error_merrage As String ) As Long,错误查询函数的参数与返回值表
13、,错误消息函数,错误消息函数将仪器驱动程序函数返回的错误代 码转换为用户可读的字符串。 ANSI C联编的错误消息函数原型为: ViStatus_VI_FUNC PREFIX_error_message (ViSession vi, ViStatus status_code, ViChar_VI_FAR message); Visual Basic联编的错误消息函数原型为: Declare Function PREFIX_error_message Lib PREFIX.dll (ByVal vi As Long, ByVal status_code As Long, ByVal merrag
14、e As String ) As Long,错误消息函数的参数与返回值表,版本查询函数,版本查询函数返回仪器驱动程序和仪器固件的版本号。如 果仪器不支持固件版本查询,版本查询函数将在输出参数 instr_rev中返回字符串“Not Available”,并返回警告代码 VI_WARN_NSUP_REV_QUE。 ANSI C联编的版本查询函数原型为: ViStatus_VI_FUNC PREFIX_revision_query (ViSession vi,ViChar_VI_FAR dyiver_rev, ViChar_VI_FAR instr_rev); Visual Basic联编的版本查
15、询函数原型为: Declare Function PREFIX_revision_query Lib PREFIX.dll (ByVal vi As Long,ByVal driver_rev As String, ByVal instr_rev As String ) As Long,版本查询函数的参数与返回值表, 关闭函数,关闭函数终止与仪器的软件连接,并释放与该仪 器相关的系统资源。 ANSI C联编的关闭函数原型为: ViStatus_VI_FUNC PREFIX_close(ViSession vi); Visual Basic联编的版本查询函数原型为: Declare Functi
16、on PREFIX_close Lib PREFIX.dll (ByVal vi As Long) As Long 关闭函数的参数与返回值表:,5. VPP仪器驱动程序的设计方法,(1)应确定需要研制的仪器模块的类型,确定其属于VXI仪器、GPIB仪器还是串行接口仪器。 (2)应确定仪器模块的应用目标及功能指标。 (3)在基本清楚了设计目标之后,应选择虚拟仪器系统的系统框架,确定模块设计的软、硬件环境。 (4)应选择一个可作参考的现有的VPP仪器驱动程序,尽量在现有的仪器驱动程序基础上进行设计,不必要从头开始进行重复劳动。 (5)在对应参考模块的研究基础上,确定仪器驱动程序应包括的功能函数,也
17、即仪器驱动程序的内部设计模型。 (6)将所定义的所有功能函数用C语言实现。 (7)在图形化平台上运行与调试仪器驱动程序。 (8)编写仪器驱动程序相关文件。,3.3.2 IVI仪器驱动器,1998年美国NI公司最先提出了一种新的基于状态管理的仪器驱动器体系结构,即可互换虚拟仪器驱动器(Interchangeable Virtual Instruments,IVI)模型和规范,并开发了基于虚拟仪器软件平台的IVI驱动程序库。 IVI是在VPP技术上发展而来的一项新技术,主要研究仪器驱动器的互换性,测试性能,开发灵活性及测试品质保证,其特有的状态管理结构,可以不重新优化设计硬件系统,在现有测试系统的
18、基础上,从测试系统软件结构出发,消除测试冗余,提高测试速度。,1. IVI的技术特点,1)通过仪器的可互换性,节省测试系统的开发费用 2)通过状态缓冲,改善测试性能 在IVI属性模型中,驱动器能够自动地对仪器的当前状态进行缓冲。 3)通过仿真,使测试开发更容易、更经济 利用IVI仪器驱动器的仿真功能,用户可以在仪器还不能用的条件下,输入所需参数来仿真特定的环境,就像仪器已被连接好一样,处理所有输入参数,进行越界检查和越界处理,返回仿真数据。,IVI仪器驱动器分类,仪器测试界在1998年9月成立了IVI(Interchangeable Virtnal Instrument)基金会。目前,IVI基
19、金会已经制订了8类仪器规范: 示波器 (IVISCope) 数字多用表(IVIDmm) 信号发生器(IVIFGen) 开关矩阵/多路复用器 (IVISwitch) 电源(IVIPower) 功率表(IVIPwrmeter) 频谱分析仪(IVISpecan) 射频信号发生器(IVIRfsiggen),2. IVI规范及体系结构,从图中可以看出,IVI驱动程序比VPP联盟制订的VISA规范更高一层。它扩展了VPP仪器驱动程序的标准,并加上了仪器的可互换性、仿真和状态缓存等特点,使得仪器厂商可以继续使用它们的仪器特征和新增功能。因此IVI基金会是对VPP系统联盟的一个很好的补充。,3. 仪器互换性的
20、实现,测试程序,IVI数字万用表(DMM)类驱动器 (IviDmm_Configure),HP34401 特定仪器驱动器 (hp34401_Configure),FLUKE45 特定仪器驱动器 (fl45_Configure),类驱动器需将测试程序中对它的函数调用映射到具体的特定仪器驱动器中相应的函数上,而具体的特定仪器是根据需要可随时更改的,即类驱动器中不能出现具体的特定仪器前缀,为实现互换性,类驱动器只能采用动态链接库的显示调用方式来实现。,本章结束,Thank You !,第 4 章,虚拟仪器软件开发平台LabVIEW,主要教学内容,LabVIEW概述 LabVIEW8.2编程环境 创建
21、虚拟仪器,4.1 LabVIEW概述,构造一个虚拟仪器系统,基本硬件确定以后,就可以通过不同的软件实现不同的功能。软件是虚拟仪器系统的关键。 目前流行的虚拟仪器软件开发工具有两类 文本式编程语言有C、C+、VB、VC、Labwindows/CVI等; 图形化编程语言有LabVIEW、AgilentVEE等。,4.1.1 LabVIEW的含义,LabVIEW (Laboratory Virtual Instrument Engineering Workbench, 实验室虚拟仪器工程平台 ) 是美国 NI 公司推出的一种基于 G 语言 ( Graphics Language, 图形化编程语言 )
22、 的虚拟仪器软件开发工具。 目的:简化程序的开发工作,以使用户能快速、简便地完成自己的工作。,LabVIEW的工作机理,使用LabVIEW开发平台编制的程序称为虚拟仪器程序,简称VI。 VI包括三个部分: 前面板: 交互式的用户界面 框图程序:是程序源代码,用模块代替 普通函数 图标和连线板 :用以识别VI的接口,以 便在创建VI时调用另一个VI,4.1.2 LabVIEW的特点,(1)编程简单,不需要记忆编程语言,只要通过交互式图形前面板进行系统控制和结果显示,再通过后面板进行常用的符号和功能模块的组合操作来指定各种功能,即可完成软件编程。 (2)开发周期短,只需通过交互式图形前面板进行系统
23、控制和结果显示,可省去硬件面板的制作。 (3)功能性强,可省去硬件面板的制作。具有多达20多类的功能模块。,LabVIEW具有的特点(续),(4)高效性,这主要是以软件做保证。以功能强大的LabVIEW作为软件开发平台,诸如数据采集、数组、文件处理、波形处理、数学运算等,都能轻而易举地解决。 (5)开放性,可根据实际情况进行更新扩展,发展迅速。 (6)自定义性,工程师们可以在非常广泛的测量和控制应用中自定义芯片级硬件功能。 (7)性价比高,能一机多用。,4.1.3 LabVIEW8.2,2006年8月,美国国家仪器有限公司正式推出LabVIEW 8.20版本。这是专用于控制、测试和嵌入式系统开
24、发的LabVIEW图形化系统设计平台的20周年纪念版。 2006年10月,NI首次推出简体中文版LabVIEW 8.2。简体中文版的LabVIEW发布极大地降低中国工程师使用这一工具的门槛,为他们带来更高的效率。,4.2 LabVIEW8.2编程环境,LabVIEW8.2程序开发环境采用图形化的编程方式,无需编写任何代码,它不仅包含有丰富的数据采集、分析及存储的库函数,还提供了PCI,GPIB,PXI,VXI,RS-232,USB等通讯总线标准的功能函数,可以驱动不同总线接口的设备和仪器。LabVIEW8.2具有强大的网络功能,支持常用的网络协议,可以方便地设计开发网络测控仪器,并有多种程序调
25、试手段,如断点设置、单步调试等。,4.2.1 LabVIEW8.2的基本开发平台,使用LabVIEW开发平台编制的程序称为虚拟仪器,简称VI。VI由以下3部分构成: 前面板: 即用户界面; 程序框图:包含用于定义VI功能的图形 化源代码; 图标和连线板:用以识别VI的接口,以便在创建 VI时调用另一个VI。当一个VI应用 在其他VI中,则称为子VI。子VI相当 于文本编程语言中的子程序。,1.前面板,前面板是VI的用户界面。创建VI时,通常应先设计前面板,然后设计程序框图执行在前面板上创建的输入、输出任务。前面板示例如图,2. 程序框图,程序框图是图形化源代码的集合,图形化源代码又称G代码或程
26、序框图代码。含有接线端、函数和连线等的程序框图示例如图 。,程序框图对象,程序框图由接线端、节点、连线和结构等构成 接线端:用来表示输入控件和显示控件的数据类型。 节点:是程序框图上的对象,具有输入、输出端口,在VI运行时进行运算。 连线:程序框图中对象的数据传输通过连线实现。每根连线都只有一个数据源,但可以与多个读取该数据的VI和函数连接。 结构:是文本编程语言中的循环和条件语句的图形化表示。,3. 图标和连线板,创建VI的前面板和程序框图后,可创建图标和连线板,以便将该VI作为子VI调用。 图标和连线板图形:,图标是VI的图形化表示,可包含文字、图形或图文组合。,连线板用于显示VI中所有输
27、入控件和显示控件的接线端,类似于文本编程语言中调用函数时使用的参数列表。,4.2.2 LabVIEW8.2的操作选板,LabVIEW8.2包含3个操作选板 工具选板 控件选板 函数选板,1. 工具选板,当从工具选板中选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。,2. 控件选板,控件选板包括创建前面板所需的输入控件和显示控件。,经典控件子选板,3. 函数选板,函数选板中包含创建程序框图所需的VI和函数。,编程子选板的图标、名称及功能,4.2.3 LabVIEW8.2的菜单和工具栏,VI窗口顶部的菜单为通用菜单。LabVIEW8.2菜单包括文件、编辑、查看、项目、操作、工具、窗口、帮助八
28、大项。 LabVIEW8.2的工具栏,4.2.4 LabVIEW8.2中的数据类型,LabVIEW8.2中的数据类型与传统编程语言中的数据类型基本类似,除了支持数值型、布尔型、数组型、字符串型等一般的数据类型之外,还有一些独特的数据类型,如波形数据类型等。,4.3 创建虚拟仪器,1.创建一个虚拟仪器的一般步骤 (1)前面板设计 (2)程序框图 (3)数据流编程 (4)功能检验 (5)保存文件,创建一个虚拟仪器,两数相加与两数相减VI,2.调试虚拟仪器,虚拟仪器的一般调试步骤 (1)运行VI (2)清除语法错误 (3)高亮显示执行过程 (4)单步执行 (5)探针工具 (6)断点,3. 创建和调用
29、子VI,构造一个子VI的主要工作就是需先为子VI创建连线板和图标,调用子VI示例,前面板 框图程序,4. 虚拟仪器创建举例虚拟温度计,测温范围:0100oC 测温传感器:LM35,灵敏度:10mv/oc 前面板 框图程序,本章结束,Thank You !,第 5 章,虚拟仪器设计基础,第5章 虚拟仪器设计基础,主要教学内容 程序结构 字符串、数组和簇 局部变量和全局变量 文件操作 图形显示,5.1 程序结构,LabVIEW中的结构是其他基于文本的语言中的循环、判断等结构的图形化体现。 什么是结构? 结构是控制 G程序数据流程的元素,G语言包含的结构有: While loop结构 For Loo
30、p结构 条件结构 顺序结构 公式节点 事件结构,5.1.1 循环结构,LabVIEW中的循环结构主要有 While循环 For循环 这两种循环结构功能基本相同,但使用上有一些差别。For循环必须指定循环的次数,循环一定的次数后自动退出循环;而While循环则不用指定循环的次数,只需要指定循环退出的条件。,1. For循环,For循环(For Loop)是将某程序段重复执行预先设定的次数. For(i =0;iN;i+) 循环体; ,包含两个端口: 计数端口N 重复端口i,移位寄存器,在LabVIEW的循环结构中创建移位寄存器的方法是在循环框图的左边或右边单击鼠标右键,在弹出的快捷菜单中选择【添
31、加移位寄存器】,可创建一个移位寄存器 移位积存器的功能是将第i-1, i-2, i-3次循环的计算结果保存在For循环的缓冲区内,并在第i次循环时将这些数据从循环况架左侧的移位寄存器中送出,供循环框架内的节点使用,其中,i=0,1,2,3 。,FOR循环应用举例,例5.1 求,前面板和程序框图,FOR循环应用举例,例5.2 求一组随机数的最大值和最小值。,前面板和程序框图,2. While循环,当循环次数不能预先确定时,就需用到While循环( While Loop )。While循环也是LabVIEW最基本的结构之一,相当于C语言中的While循环和do循环。 While(条件) do 循环
32、体; 循环体; While(条件),Whlie循环结构,Whlie循环包含两个端口:条件端口和重复端口i 条件端口输入的是布尔变量,它用于判断循环在什么条件下停止执行。它有两种使用状态:Stop if True和Continue if True 重复端口i为当前循环的次数。,While循环应用示例,例5.3 求N!,void main() int a ,i, n; a=1;i=0; scanf (“ %d ”, printf (“n! =%d”,a ); ,前面板和程序框图,5.1.2 条件结构,条件结构类似于文本编程语言中的switch语句或if.then.else语句。,选择端口相当于C语
33、言的Switch语句中的“表达式”,框图表示符相当于“表达式n”。编程时,将外部控制条件连接至选择端口上,程序运行时选择端口会判断送来的控制条件,引导选择结构执行相应框架中的内容。,选择端口的外部控制条件的数据类型有整型、布尔型、字符串型和枚举型。,条件结构应注意的问题,在使用选择结构时,控制条件的数据类型必须与图框标识符中的数据类型一致。二者若不匹配,LabVIEW 会报错,图框标识符中字体的颜色将变为红色。 在 LabVIEW 中,对于数值型条件必须包含处理超出范围值的默认分支,对于其它类型的条件可设或不设,但必须明确地列出每一个可能的输入值。,条件结构的数据输入和输出通道,当由外部节点向
34、结构框架连线时,在结构边框就创建了输入通道,而当由框内内节点与边框连线时,在结构边框就建立了输出通道。 对所有条件分支来说对于输入通道的数据可以使用,也可以不使用。 只要有一个分支提供输出数据,所有分支条件都必须与输出通道连接 。,条件结构应用举例,例5.4 求一个数的平方根,若该数 0,计算该值平方根并将计算结果输出;若该数 0 时,输出错误代码“-999.00”。,框图程序,运行结果,条件结构应用举例,例5.5 利用条件结构编写温度采集报警程序,当采集温度高于设定值时产生报警。,前面板和程序框图,5.1.3 顺序结构,LabVIEW顺序结构的功能是强制程序按一定的顺序执行。顺序结构包含一个
35、或多个按顺序执行的子程序框图或帧。 LabVIEW提供了两种顺序结构: 平铺式顺序结构 层叠式顺序结构,顺序结构应用举例,例5.6 计算生成等于某个给定值的随机数据所用时间。,层叠式顺序结构VI的程序框图,5.1.4 事件结构,事件是对活动发生的异步通知。事件可以来自于用户界面、外部I/O或程序的其他部分。用户界面事件包括鼠标点击、键盘按键等动作。 LabVIEW应用程序在没有事件发生时处于休息状态,直到前面板窗口中有一个事件发生为止。,1. 事件结构的组成,事件结构包含超时端口和事件端口,事件选择器标签表明由哪些事件引起了当前分支的执行。,事件超时接线端用于设置事件结构在等待指定事件发生时的
36、超时时间,事件数据节点用于输出事件的参数,端口数目和数据类型根据事件的不同而不同。,2. 事件结构的使用,用户界面事件有两种类型:通知事件 过滤事件,通知事件表明某个用户操作已经发生,比如用户改变了控件的值。,过滤事件将通知用户LabVIEW在处理事件之前已由用户执行了某个操作,以便用户就程序如何与用户界面的交互作出响应进行自定义。,编辑事件对话框,通过编辑事件对话框,可以设定某个事件结构分支响应的事件。,事件结构应用举例,例5.7 利用事件结构演示用鼠标单击前面板窗口时,发生鼠标按下事件并处理鼠标按下事件。,询问对话框,事件结构VI的程序框图,5.1.5 公式节点,公式节点:一种专用于处理数
37、学公式编程的特殊结构形式。在公式节点框架内。LabVIEW允许用户像书写数学公式或方程一样,直接编写数学处理节点,形式与标准C语言类似。 公式节点的创建通常按以下步骤进行,第一步创建公式节点,第二步添加输入、输出端口,第三步输入程序代码,公式节点的应用,例5.8 输入三角形的三边长,求三角形面积。,基本公式节点框架中出现的所有变量,必须有一个相对应的输入端口或输出端口,否则,LabVIEW会报错。,前面板和程序框图,5.2 字符串、数组和簇,字符串、数组和簇是LabVIEW中的三种数据类型。 字符串是ASCII码集合 数组与其他编程语言中的数组概念是相同的 簇相当于C语言中的结构数据类型。,5
38、.2.1 字符串,字符串是可显示的或不可显示的ASCII字符序列。 在前面板上,字符串以表格、文本输入框和标签的形式出现。LabVIEW提供了用于对字符串进行操作的内置VI和函数,可对字符串进行格式化、解析字符串等编辑操作。,1. 字符串显示类型,字符串有4种显示类型,2. 字符串函数,LabVIEW8.2的字符串子选板中有多个字符串处理函数,3. 字符串应用举例,例5.9 将一些字符串和数值转换成一个新的输出字符串。,VI的功能是将浮点型数据12.3转换为 “12.300”,单位为“V”,结果显示“Voltage=12.300V”的组合字符串。,前面板和程序框图,5.2.2 数组,数组是相同
39、类型数据元素的有序集合。 一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。可以通过数组索引访问其中的每个元素。 索引的范围是0到n 1,其中n是数组中元素的个数。,1. 数组的创建,有2种方法: 前面板上创建数组 程序框图上创建数组 一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。,(1)前面板上创建数组,方法是:在前面板上放置一个数组框架,然后将一个数据对象或元素拖曳到该数组框架中。数据对象或元素可以是数值、布尔、字符串、路径、引用句柄、簇输入控件或显示控件。,数组初始化,利用操作工具,对元素赋值。,
40、(2)程序框图上创建数组,首先在数组函数子选板上选择“数组常量”,在程序框图上创建一个数组外壳,然后可以在数组外壳里选择放入数值型常量、字符串型常量、布尔型常量以及枚举等。,2. 数组函数,LabVIEW8.2在数组函数子选板中给出了大量的数组处理函数,数组函数子选板如图,3. 数组应用举例,例5.10 求一个一维数组和一个二维数组的长度,前面板和程序框图,数组函数应用,例5.11 利用创建数组函数组建数组。,前面板和程序框图,数组函数应用,例5.12 从一个二维数组中取出一部分元素。,前面板和程序框图,5.2.3 簇,什么是簇? 簇是由不同类型的数据元素组成的一种数据类型。 簇是LabVIE
41、W中一个比较特别的数据类型。,1. 簇的创建,(1)前面板上创建簇 在前面板上放置一个簇框架,再将一个数据对象或元素拖曳到簇框架中。,簇输入控件 簇显示控件,(2)程序框图上创建簇,从函数选板中选择一个簇常量,将该簇框架放置于程序框图上,再将字符串常量、数值常量、布尔常量放置到该簇框架中。,簇控制件与簇指示件,a) 混合簇控制件 (b) 混合簇指示器 (c)数值型簇控制件,在一个簇对象中,簇元素只能同为控制件或指示件,不能同时包含两种。 一个簇是控制簇还是指示簇,取决于放进簇中的第一个元素。,2. 簇函数,用户在使用一个簇时,主要是访问簇中的各个元素,或将不同类型但相关的数组组成一个簇。这些功
42、能由各个函数来实现。,3. 簇应用举例,例5.13 将几个不同的数据类型组成一个簇。,打包簇VI的前面板和程序框图,解除捆绑函数的使用,例5.14 将一个簇中的各个元素值分别取出。,解包簇VI的前面板和程序框图,5.3 局部变量和全局变量,局部变量和全局变量是LabVIEW用来传递数据的工具。LabVIEW编程是一种数据流编程,它是通过连线来传递数据的。但是如果一个程序太复杂的话,有时连线会很困难甚至无法连线,这时就需要用到局部变量。另外,需要在两个程序之间交换数据时,靠连线的方式是无法实现的,在这种情况下,就需要使用全局变量。,5.3.1 局部变量,局部变量:只能在同一个VI中使用的变量 创
43、建局部变量的方法有两种: (1)直接为前面板对象创建局部变量 (2)通过函数选板创建局部变量,创建局部变量方式一 创建局部变量方式二,注意:局部变量具有读、写两种属性,局部变量的应用举例,例5.15 要求使用局部变量向与它联系的前面板上的电压表控件写数据,也可以从电压表控件读取数据。,局部变量创建VI的前面板和程序框图,局部变量的特点,(1)局部变量只能在同一个VI中使用,其生存期与它所在的VI模块密切相关,VI停止运行,在此VI内定义的局部变量自动消失。 (2)局部变量必须依附在一个前面板对象上。一个前面板对象可以建立多个局部变量,但一个局部变量只能有一个端点与其对应。 (3)局部变量就是其
44、相应前面板对象的一个数据拷贝,要占用一定的内存。,5.3.2 全局变量,全局变量:可在不同 VI 之间进行数据传递 全局变量是内置的LabVIEW对象。创建全局变量时,LabVIEW将自动创建一个前面板但无程序框图的特殊全局VI。向该全局VI的前面板添加输入控件和显示控件可定义其中所含全局变量的数据类型。,1. 创建全局变量,(1)新建一个VI,从函数选板的结构子选板中选择一个全局变量,将其放置在程序框图中 (2)使用操作工具双击全局变量节点,会自动打开全局变量VI的前面板,然后在前面板上放置所需的控制或显示对象 (3)保存全局变量文件。方法是在主菜单中选择【文件】【保存】。然后关闭全局变量的
45、前面板窗口。 (4)使用操作工具单击第一步所创建的全局变量图标,或在其右击弹出快捷菜单中选择【选择项】,弹出的子菜单列出了全局变量所包含的所有对象的名称,根据需要选择相应的对象。,2. 全局变量的应用举例,调用方法 : (1)在VI 的功能模板上选择【选择VI】,在弹出的【选择需打开的VI】对话框中,选择所需的全局变量声明文件,单击确定按钮,在程序框图中放置这个全局变量; (2)右击全局变量节点,在弹出的快捷菜单上选取【选择项】,在列出的所有变量对象中选择所需对象; (3)若在一个VI中需要使用多个全局变量,可使用拷贝和粘贴全局变量的方法实现全局变量的复制。,全局变量的使用,例5.16 利用全
46、局变量在不同VI中传递数据。,第二个VI的前面板和程序框图,第一个VI测量温度,送至全局变量中,第二个VI显示温度,第一个VI 程序框图,3. 全局变量的特点,(1)LabVIEW中的全局变量相对于传统编程语言中的全局变量更加灵活。传统编程语言中的全局变量只能是一个变量,一种数据类型。而 LabVIEW中的全局变量以独立文件的形式存在,并且在一个全局变量中可以包含多个对象,拥有多种数据类型。 (2)全局变量与子VI的不同之处在于它不是一个真正的VIs,不能进行编程,只能用于简单的数据存储与数据传递。 (3)全局变量不能用于两个VI之间的实时数据传递。因为,通常情况下两个VI对全局变量的读写速度
47、不能保证严格一致。,5.4 文件操作,文件操作三个基本步骤 : 打开现存文件或创建一个新文件 写入或读取文件 关闭文件,5.4.1 LabVIEW支持的文件类型,LabVIEW可读写的文件格式有 文本文件 二进制文件 数据记录文件,5.4.2 文件操作函数,5.4.3 文件操作举例,1. 电子表格文件的输入、输出 在LabVIEW8.2中,提供了两个专门用于电子表格文件的输入和输出操作VI,它们是 Write To Spreadsheet File .vi Read From Spreadsheet File .vi,(1)电子表格文件的输入,例5.17 使用Write To Spreadsh
48、eet File .vi,将用正弦函数产生的100点正弦波幅值和循环序号组成的数组,存储到一个电子表格文件“D:Wave_Sine.xls”中。,写电子表格文件VI的程序框图,(2)电子表格文件的输出,例5.18 使用Read From Spreadsheet File .vi读取例5.17所创建的电子表格文件“D: Wave_Sine .xls”。,读电子表格文件VI的前面板和程序框图,2. 文本文件的输入、输出,文本文件是一种以ASCII形式存储数据的文件格式,它存储数据的数据类型为字符串。 在LabVIEW8.2中,对文本文件的存储是通过写入文本文件函数和读取文本文件函数来完成的。,(1
49、)文本文件的输入,例5.19 使用写入文本文件函数写文本文件,写文本文件VI的前面板和程序框图,(2)文本文件的输出,例5.20 使用读取文本文件函数读文本文件,读文本文件VI的前面板和程序框图,3. 二进制文件的输入、输出,(1)二进制文件的输入 例5.21 使用写入二进制文件函数写二进制文件。,写二进制文件VI的程序框图,(2)二进制文件的输出,例5.22 使用读取二进制文件函数读二进制文件,读二进制文件VI的前面板和程序框图,4. 数据记录文件的输入、输出,写数据记录文件VI的前面板和程序框图,例5.23 写数据记录文件,(1)数据记录文件的输入,(2)数据记录文件的输出,例5.24 读
50、数据记录文件,读数据记录文件VI的前面板和程序框图,5.5 图形显示,在LabVIEW8.2的图形显示功能中,按照处理测量数据的方式和显示过程的不同,图形显示控件主要分成两大类: 图形:图形的VI通常先将数据采集到数组中,再将数据绘制到图形中。 图表:图表将新的数据点追加到已显示的数据点上以形成历史记录。,经典图形,LabVIEW包含以下类型的图形和图表: (1)波形图和图表,显示采样率恒定的数据。 (2)XY图,显示采样率非均匀的数据及多值函数的数据。 (3)强度图和图表,在二维图上以颜色显示第三个维度的值,从而在二维图上显示三维数据。 (4)数字波形图,以脉冲或成组的数字线的形式显示数据。
51、 (5)Windows 三维图形,在前面板ActiveX对象的三维图上显示三维数据。,5.5.1 波形图和图表,例5.25 用波形图显示用随机函数产生的50个随机数据。,波形图显示数据VI的前面板和程序框图,波形图,例5.26 设计一个VI,显示一个正弦波电压测量结果。电压采样从0开始,每隔2ms采样一个点,共采样50个点。要求程序的显示能够反映出实际的采样时间及电压值。,电压测量VI的前面板和程序框图,波形图,例5.27 设计一个程序,进行2组数据采集,但在相同的时间内,一个采集了30点的数据,另一个采集了50点的数据。用波形图显示测量结果。,显示两组数据VI的前面板和程序框图,波形图表,例
52、5.28 用波形图表来实时显示现场温度值,当温度超过设定的临界值时,点亮报警灯。,温度值显示VI的程序框图和显示结果,波形图表,例5.29 用波形图表显示两组测量结果的数据。,波形图表显示两路波形VI的前面板和程序框图,5.5.2 XY图,例5.30 应用XY 图描绘同心圆。,描绘同心圆VI的前面板和程序框图,5.5.3 强度图和图表,1强度图 强度图提供了一种在二维平面上表现三维数据的方法。,强度图,例5.31 强度图应用,强度图应用VI的程序框图及显示结果,2. 强度图表,例5.32 强度图表应用,强度图表应用VI的前面板和程序框图,5.5.4 数字波形图,数字波形图用于显示数字数据,尤其
53、适于用到定时框图或逻辑分析器时使用。,数字波形图,例5.33 数字波形图应用,数字波形图应用VI的前面板和程序框图,5.5.5 三维图形,LabVIEW中包含以下三维图形: 三维曲面图,在三维空间绘制一个曲面 三维参数图,在三维空间绘制一个参数曲面 三维曲线图,在三维空间绘制一条曲线,1三维曲面图,例5.34 用三维曲面图显示曲面z=sin,0,2,X、Y坐标的步长为/50,三维曲面图应用VI的前面板和程序框图,2. 三维参数图,例5.35 三维参数图应用,三维参数图应用VI的前面板和程序框图,3. 三维曲线图,例5.36 要求绘制一条螺旋线,螺旋线的坐标由下面的公式给出。 x=cos y=s
54、in z= 其中0,6,步长为/50。,绘制螺旋线VI的前面板和程序框图,本章结束,Thank You !,第 6 章,虚拟仪器数据采集与信号处理,第6章 虚拟仪器数据采集与信号处理,教学重点 数据采集 信号产生 信号的时域分析 信号的频域分析 数字滤波器 曲线拟合,6.1 数据采集,组建一个基于LabVIEW的虚拟仪器系统,传感器、信号调理和数据采集模块是最基本的硬件。其中,传感器是将被测试的物理量转换为电量的基本环节,数据采集则将模拟信号转换成数据信号供计算机进行分析处理,信号调理是两者之间的桥梁,负责将传感器的输出信号和数据采集模块可以接受的信号类型联系起来。,6.1.1 数据采集系统结
55、构,数据采集(Data Acquisition,DAQ),就是将被测对象的各种参量(物理量、化学量、生物量等)通过各种传感器作适当转换后,再经信号调理、采样、量化、编码、传输等步骤送到控制器进行数据处理或记录的过程。,一个典型的数据采集卡的功能有模拟输入、模拟输出、数字I/O、计数器/计时器等,这些功能分别由相应的电路来实现。,数据采集卡,模拟输入/输出,数字输入/输出,时钟输入/输出,ADC,cntr/ timer,digital,DAQ Board,选用数据采集卡的基本原则,(1)数据分辨率和精度 (2)最高采样速度 (3)通道数 (4)数据总线接口类型 (5)是否有隔离 (6)支持的软件
56、驱动程序及其软件平台,采集卡类型,NI的数据采集卡,PCI总线的通用数据采集卡,6.1.2 LabVIEW中的数据采集VI及应用,数据采集系统结构,基于NI的USB-6009数据采集卡的数据采集,USB-6009的主要特性: 8模拟通道(14位、48KS/s采样速度) 2路14位模拟输出通道 12个I/O通道 1个32位计数器/定时器,USB-6009的外型,NI USB-6009的接线端子分配,模拟输入:AI0AI7 模拟输出:AO0,AO1 数字I/O:P0.0P0.7,P1.0P1.3 定时/计数器:PFI0,NI数据采集卡的应用,例6.1 利用USB-6009数据采集卡实现单通道数据采
57、集 分析:利用LabVIEW8.2 的DAQmx-Data Acquisition子选板中的数据采集函数构建一个单通道的数据采集系统。 硬件-选用NI USB-6009采集卡 软件- 选用DAQmx-Data Acquisition子选板中的数据采集函数实现,单通道数据采集VI设计,前面板,程序框图,构建多通道数据采集,例6.2 多通道数据采集 分析:利用LabVIEW8.2 的DAQmx-Data Acquisition子选板中的数据采集函数构建一个多通道的数据采集系统。 硬件-选用NI USB-6009采集卡 软件-选用DAQmx-Data Acquisition子选板中的数据采集函数实现
58、,多通道数据采集系统的前面板,多通道数据采集系统的程序框图,6.1.3 通用数据采集卡的LabVIEW控制实现,1数据采集卡驱动程序的开发方式 直接端口读写方式(I/O方式) 调用C语言源代码的方式(CIN方式) 调用动态连接库的方式(CLF方式),(1)直接端口读写方式(I/O方式),I/O端口子选板,In Port.vi,Out Port.vi,(2)调用C语言源代码的方式,LabVIEW8.2函数选板的【互连接口】【库可执行程序】子选板中有一个Code Interface Node节点,用来在LabVIEW程序框图中直接调用其他编程语言(如VC)写的代码。这样就可以通过使用CIN图标来调用由C语言编写的采集卡驱动程序方法实现虚拟仪器的数据采集。,(3)调用动态连接库的方式,动态链接库通常由数据采集卡生产厂商提供,通过LabVIEW的Call
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白帽SEO服务商排名2026:纯白帽技术体系与算法抗风险能力深度测评
- 3G环境下我国移动通信产业价值链整合与协同办公应用的深度剖析
- 330KA预焙铝电解槽低压综合节能生产:技术创新与实践探索
- 2T-EFlash器件隧穿氧化层界面态特性与可靠性的深度剖析与研究
- 20世纪80年代以来全球土地利用-覆盖变化对平均气温变化的影响探究
- 智能汽车电子及视觉系统产业中心建设项目可行性研究报告模板-立项拿地
- 钢筋加工自动化工艺
- 露天矿山班组安全活动制度
- 堆场扬尘治理施工工艺及施工方法
- 2026年金融消费者权益保护考试题与答案
- 2026广东广州市海珠区科学技术协会招聘雇员1人考试备考题库及答案详解
- 2025年邢台市水务发展集团有限公司招聘真题
- 2026年科技局事业单位招聘考试试题及答案
- 林带养护施工方案(3篇)
- 2026年《中华人民共和国保守秘密法》培训课件
- 中国宗法制度论
- 血透室消毒隔离制度
- 2025年综合类-水利水电工程-第八章征地移民历年真题摘选带答案(5卷套题【单选100题】)
- 常见手术麻醉配合要点
- 钢结构施工工艺流程与现场施工管理
- 包装组管理制度
评论
0/150
提交评论