LabVIEW快速入门与工程实例(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-17 04:45:51

点击下载

作者:曹丽英

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

LabVIEW快速入门与工程实例

LabVIEW快速入门与工程实例试读:

前言

虚拟仪器实际上是一个按照仪器需求组织起来的数据采集系统。虚拟仪器研究涉及的基础理论主要是计算机数据采集和数字信号处理,目前,在这一领域内使用较为广泛的计算机软件是美国NI公司的LabVIEW。

虚拟仪器的起源可以追溯到20世纪70年代,当时计算机测控系统在国防、航天等领域已经有了相当好的发展。PC的出现使仪器的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW 2.0以前的早期版本。

对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得NI公司成为业界公认的权威。LabVIEW是图形化开发环境语言,又称G语言,结合了图形化编程方式的高性能与灵活性,以及专为测试、测量与自动化控制应用设计的高性能模块及其配置功能,能为数据采集、仪器控制、测量分析与数据显示等各种应用提供必要的开发工具。

本书在编写过程中详细介绍了学习LabVIEW所要注意的问题,使读者更加深刻地理解各种函数与VI。本书通过“知识点—实例—知识点—实例”的形式介绍全书内容,以理论构建主干,以实例填补枝蔓,内容丰富全面,充满实战性,有利于读者全面掌握本书所介绍的内容,锻炼实际操作能力。

本书主要面向LabVIEW的初中级用户,可作为高等院校相关专业的教材和参考书,也可供有关工程技术人员和软件工程师参考。

本书由内蒙古科技大学机械工程学院曹丽英担任主编,秦波、杨斌担任副主编,内蒙古科技大学范丽荣、刘文婧、孟智慧、朱文艳、许少峰,以及内蒙古建筑职业技术学院王栓巧参编。

各章节具体分工如下:第1、4章由刘文婧编写,第2章、第3章(3.2~3.4节)、第10章由范丽荣编写,第5章、第8章和第12章(12.1~12.3节)由孟智慧编写,第6章、第12章(12.4节)由曹丽英编写,第7章和附录C由朱文艳编写,第9章和第12章(12.5节)由许少峰编写,第11章由王栓巧编写,第3章(3.1节)、第13章(13.1节、13.3节)和附录A、B由秦波编写,第13章(13.2、13.4、13.5节)由杨斌编写。全书由曹丽英编写大纲,并负责统稿和定稿。

本书由内蒙古科技大学汪建新教授主审。研究生史兴华、杨左文和张弘玉在资料收集、整理方面做了大量工作,特表示感谢!

本书得到了2015年度内蒙古科技大学教材建设项目的支持,特表示感谢!

由于编者水平有限,书中难免存在疏漏和不足,欢迎广大读者批评指正,编者将不胜感激。主编2017年2月第1章LabVIEW入门知识1.1 LabVIEW 2013概述1.1.1 LabVIEW的基本概念

LabVIEW是实验室虚拟仪器集成环境( Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(National Instruments,NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件开发集成环境,又称G语言。与Visual C++、Delphi、Perl等基于文本型程序代码的编程语言不同,LabVIEW采用图形模式的结构框图构建程序代码,因而,在使用这种语言编程时,基本上不写程序代码,取而代之的是用图标、连线构成的流程图。它尽可能地利用了开发人员、科学家、工程师所熟悉的术语、图标和概念。因此,LabVIEW是一个面向最终用户的工具,它可以增强用户构建科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。

作为虚拟仪器的领头羊,美国国家仪器公司有涵盖几乎各个行业测试测量应用的产品线,其中的软件代表产品就是LabVIEW和LabWindows/CVI,而LabVIEW的最新版本已经升级到LabVIEW 2014,开发系统适用于Windows、Mac OS和Linux操作系统,NI公司虚拟仪器软件开发产品包括四大类:基本版、完整版、专业版和NI开发者套件。● 基本版:适于高效的数据采集和仪器控制的图形化开发。● 完整版:为测试、信号处理和自动化增加了内容丰富的分析功能。● 专业版:适于高级开发者或开发团队的解决方案。● NI开发者套件:包括LabVIEW专业版,附加工具包和季度更新。

在全球工业领域,例如汽车、通信、航空、半导体、电子设计生产、过程控制和生物医学等领域,LabVIEW都能为工程解决实际问题,提高应用程序的开发效率,从目前应用情况来看,LabVIEW已经涵盖了从研发、测试、生产到服务的产品开发的各个阶段。1.1.2 LabVIEW的功能特点

LabVIEW的主要特点可概括如下。● 图形化的仪器编程环境,它使用“所见即所得”的可视化技术建立人机界面,使用大多数工程师所熟悉的数据流程图式的语言编写程序,被誉为“工程师和科学家的语言”。● 内置的程序编译器,使运行速度加快。● 灵活的程序调试手段,可以在源代码中设置断点,单步运行,在数据流上设置探针,加亮执行。其中最具特色的是

“加亮执行”和“设置探针”,前者用于跟踪程序运行过程中的数据流,后者用于在程序运行过程中在线显示数据。● LabVIEW提供了从底层VXI、GPIB、串口及数据采集板的控制子程序到大量的仪器驱动程序,从基本的功能函数到高级分析库,几乎涵盖了仪器设计所需要的所有函数。● 支持多种系统平台,平台之间的程序可以直接进行移植。● 提供CLF(Call Library Function)功能和CIN(Code Interface Node)功能,可以直接调用其他软件平台编译的模块。● 支持TCP/IP、DDE等功能。

此外,LabVIEW带有附加的软件包,如磁盘管理、自动测试、控制与仿真、信号处理、图形获得与处理、数值分析工具等。1.1.3 LabVIEW的发展历程

LabVIEW从1986年发明至今,已推出了数个不同版本,可以支持多个目前流行的操作系统,LabVIEW的主要发展历程如下所述。● 1983年4月,LabVIEW开发系统在美国德克萨斯州奥斯汀研制成功,主要是为仪器系统的开发者提供一套快捷建立、检测和修改仪器系统的图形软件系统。● 1986年5月,NI公司推出了LabVIEW Beta测试版。● 1986年10月,NI公司正式发布了LabVIEW 1.0 for Macintosh版本,该版本是解释型和单色的,一问世便引起了仪器工业的变革。● 1990年1月,LabVIEW 2.0版本问世,LabVIEW 2.0是编译型的版本,增加了彩色的性能,它提供了图形编译功能,使得LabVIEW中的VI(虚拟仪器)运行速度可以与编译C语言的运行速度相媲美。● 1992年8月,支持Sun Solaris工作站和PC的LabVIEW版本面世。● 1993年1月,LabVIEW 3.0版本开发完成,同时给用户提供了一个应用系统生成器,使得LabVIEW的VI变成一个可以独立运行的程序。● 1998年2月,LabVIEW 5.0版本面世,该版本是LabVIEW历史上的又一个里程碑,为多核设备预先设置了多线程功能,还进行了包括可编程设计的控制面板、用户定义控制、应用程序发行等重大改进。● 2003年,LabVIEW 7 Express和LabVIEW 7系列开始推向市场,在LabVIEW 7系列中,引入了新的数据类型——动态数据类型(Dynamic Data Type),并增加了LabVIEW PDA和LabVIEW FPGA等各种不同的功能模块。● 2005年,LabVIEW 8版本面世,该版本具有分布式、智能化的优异特性。● 2006年,20周年纪念版LabVIEW 8.20面世。LabVIEW 8.2.1是中文版,也是LabVIEW诸多版本中唯一的中文版。● 2007年8月,LabVIEW 8.5版本面世。● 2008年8月,LabVIEW 8.6版本发布,它提供了支持多核处理器、现场可编辑门阵列(FPGAs)编程等最新技术。● 2010年8月,LabVIEW 2010版本发布。● 2011年8月,LabVIEW 2011版本发布,这版包含了新的多核NI CompactRIO控制器及性能强大的射频向量信号分析器之一的NI PXIe-5665。LabVIEW 2011还支持内置在最新的Microsoft.NET框架的组件,并且基于用户的反馈新增了多项新特性。● 2012年8月,LabVIEW 2012版本发布。● 2013年8月,LabVIEW 2013版本发布。● 2014年8月,LabVIEW 2014版本发布。● 2015年8月,LabVIEW 2015版本发布。● 2016年8月,LabVIEW 2016版本发布。

从NI的LabVIEW版本号可以看出:(1)系列号5、6、7、8表示新的系列,软件结构或功能可能有重大改进(付费升级)。(2)版本号5.x、6.x、7.x、8.x表示软件有新的内容或比较大的改进(付费升级)。(3)版本号5.x.x、6.x.x、7.x.x、8.x.x表示软件较上个版本进行了修补(免费升级)。1.1.4 LabVIEW的工程应用

由于LabVIEW可以用来创建通用的应用程序,因此被称为一种通用的编辑语言。但是它在测试、测量和自动化等领域具有更大的优势,因为LabVIEW提供了大量的工具与函数用于数据采集、分析、显示和存储,同时还提供了大量常用于自动化测试测量领域的图形控件,这使得用户可以在数分钟内完成一套完整的从仪器连接、数据采集到分析、显示和存储的自动化测试测量系统。因此它被广泛地应用于汽车、通信、航空、半导体、电子设计生产、过程控制和生物医学等各个领域,涵盖了从研发、测试、生产到服务的产品开发所有阶段。NI网站有上千个应用案例供读者参考:http://www.ni.com/solutions/。今天欧美的许多高校非计算机专业的学生选修G语言并用它开发应用软件的人数已经超过C语言等文本语言。近年来我国高校G语言教学实践正在迅速展开。

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

在美国Lawrence Livermore国家实验室,一个花费2000万美金的极为复杂的飞秒激光切割系统就是基于LabVIEW开发的。该系统中,4台Windows NT工作站用网络连接起来,LabVIEW用来给激光提供测量、控制和自动定序,同时作为半熟练操作者的高层用户界面。几乎安装了所有类型的I/O硬件:DAQ、GPIB、串行、远程控制SCXI、VME/VXI以及IMAQ成像。由于这个项目的极端重要性,项目采取了正式的软件质量保证过程。软件开发总共用了4年,创建了约600个VI。

在北京正负电子对撞机二期工程北京谱仪慢控制系统中,大约有30种物理量共7000多点的现场数据点需要实时采集控制和分析记录,该系统由8台计算机与2台服务器组成,8台计算机不间断地采集来自于十几种硬件设备的数据,并将其分析、汇总和本地显示。2台服务器实现数据的存储和网络发布,供科学家们随时随地获得或控制探测器的状态。该大型分布式监控系统的上层软件完全基于LabVIEW及其DSC模块实现,共创建了约300个VI。

基于LabVIEW实现的最大的系统是Honeywell-Measurex公司由Dirk Demol领导的小组开发的MxProline。它是一流的分布式过程控制系统,95%的代码都是用LabVIEW编写的。该系统使用了5000个以上的VI,可以处理超过10万个变量(包括物理I/O和计算值)。1.2 LabVIEW的安装1.2.1 安装环境

LabVIEW可以安装在Mac Os、Linux、Windows 2000/XP/Vista等不同的操作系统或同一操作系统的不同版本上。针对不同的操作系统,在安装LabVIEW 2013时对系统的配置要求也不同,用户在安装LabVIEW 2013前需对计算机系统的软硬件环境配置有一定的了解。1.2.2 安装过程

LabVIEW的安装十分简单,只需运行安装光盘中的setup程序,按照屏幕提示,一步步地选择必要的安装选项即可完成。整个系统安装时间取决于硬件平台和选择的安装选项。LabVIEW所有文件约占900MB的硬盘空间。LabVIEW 13.0的安装程序界面如图1.1所示。图1.1 LabVIEW 13.0安装程序界面

为了控制VXI、GPIB和DAQ设备,在LabVIEW 2013系统安装完成后,如果需要,还必须安装专门的仪器驱动和VISA库函数,它们一般不随LabVIEW 2013系统光盘,例如DAQ卡的驱动程序,对应于LabVIEW 2013的DAQmx为NIDAQ921-1,需从NI网站免费下载或从购买DAQ采集卡时NI公司提供的数张驱动程序光盘中获取,需单独安装。1.3 LabVIEW的使用

LabVIEW作为目前国际上优秀的编译型图形化编程语言,把复杂、烦琐和费时的语言编程简化成用菜单或图标提示的方法选择功能(图形),使用通过线条把各种功能连接起来的简单图形编程方式。LabVIEW中编写的框图程序很接近程序流程图,因此,只要把程序流程图画好,程序也就基本编好了。

LabVIEW中的程序查错不需要先编译,若存在语法错误,LabVIEW会马上告诉用户。只要用鼠标单击两三下,用户就可以快速查到错误的类型、原因以及错误的准确位置,这个特性在程序较大的情况下使用特别方便。

LabVIEW中的程序调试方法同样令人称道,程序测试的数据探针工具最具典型性。用户可以在程序调试运行的时候,在程序的任意位置插入任意多的数据探针,检查任意一个中间结果。增加或取消一个数据探针,只需要单击两下鼠标就行了。

同传统的编程语言相比,采用LabVIEW图形编程方式可以节省大约60%的程序开发时间,并且其运行速度几乎不受影响。

除了具备其他语言所提供的常规函数功能外,LabVIEW中还集成了大量的生成图形界面的模板、丰富实用的数值分析、数字信号处理功能以及多种硬件设备驱动功能(包括RS232、GPIB、VXI、数据采集板卡和网络等)。另外,免费提供的几十家仪器厂商的数百种源码仪器级驱动程序,可为用户开发仪器控制系统节省大量的编程时间。第2章LabVIEW的用户界面2.1 前面板

在LabVIEW中开发的程序都被称为VI(虚拟仪器),其扩展名为.vi。所有的VI都包括前面板(Front Panel)、程序框图(Block Diagram)如图2.1所示以及图标(Icon)3部分。图2.1 LabVIEW前面板和程序框图

前面板是VI的交互式用户界面,外观和功能都类似于传统仪器面板,用户的输入数据通过前面板传给框图,计算和分析结果也在前面板上以数字、图形、表格等各种不同方式显示出来。

前面板上的各种控件根据输入、输出功能可分为输入控件(Control)和显示控件(Indicator)两类,前者一般用于接受用户输入,包括编辑框、按钮、开关、旋钮等,后者则一般用于显示输出结果,包括图形、指示灯、指示框等,如图2.2所示。

前面板的设计不单单是将选中的控件放到仪器中就结束的,前面板的设计不仅是将选中的控件放到仪器中。在内,需要设置控件属性;在外,需要将控件排列美观。

前面板中的控件本身也不是杂乱无章的,是有一定规律的,控件根据功能需要按照类型进行选择。图2.2 控件2.1.1 数值、布尔、字符串与路径

数值、布尔、字符串与路径均包括输入、输出控件,如图2.3所示,在控件选板中选择的控件显示如图2.4所示。图2.3 数值、布尔、字符串与路径控件图2.4 控件显示

1. 数值型控件

数值型控件的数值对象用于输入和显示数值。

1)数值控件

数值控件是输入和显示数值的最简单方式。这些前面板对象可以在水平方向上调整大小,以显示更多位数。使用下列方法可以改变数值控件的值。● 用操作工具或标签工具单击数字显示框,然后通过键盘输入数字。● 用操作工具单击数值控件的递增或递减箭头。● 使用操作工具或标签工具将光标放置于需要改变的数字右边,然后在键盘上按向上或向下箭头键。● 在默认状态下,LabVIEW的数字显示和存储与计算器类似。数值控件一般最多显示6位数字,超过6位数字则自动转换为科学计数法表示。右键单击数值对象并从快捷菜单中选择格式与精度,打开数值属性对话框的格式与精度选项卡,从中配置LabVIEW在切换到科学计数法之前所显示的数字位数。

2)滑动杆控件

滑动杆控件是带有可读的数值对象。滑动杆控件包括垂直和水平滑动杆、液罐和温度计,可使用下列方法改变滑动杆控件的值。● 使用操作工具单击或拖曳滑块至新的位置。● 与数值控件中的操作类似,在数字显示框中输入新数据。

滑动杆控件可以显示多个值。右键单击该对象,在快捷菜单中选择添加滑块,可添加更多滑块。带有多个滑块控件的数据类型为包含各个数值的簇。

3)滚动条控件

与滑动控件相似,滚动条控件用于滚动数据的数值对象。滚动条控件有水平和垂直两种滚动条。使用操作工具单击或拖曳滑块至一个新的位置,单击递增和递减箭头,或单击滑块和箭头之间的空间都可以改变滚动条的值。

4)旋转型控件

旋转型控件包括旋钮、转盘、量表和仪表。旋转型对象的操作与滑动杆控件相似,都是带有刻度的数值对象。可使用下列方法改变旋转型控件的值。● 用操作工具单击或拖曳指针至一个新的位置。● 与数值控件中的操作类似,在数字显示框中输入新数据。

旋转型控件可显示多个值。右键单击该对象,选择添加指针,可添加新指针。带有多个指针的控件的数据类型为包含各个数值的簇。

5)时间标识控件

时间标识控件用于向程序框图发送或从程序框图获取时间和日期值,如图2.5所示。图2.5 时间标识控件

可用下列方法改变时间标识控件的值。● 单击“时间/日期浏览”按钮,显示“设置时间和日期”对话框,如图2.6所示。● 图2.6 “设置时间和日期”对话框● 右键单击该控件并从快捷菜单中选择“数据操作—设置时间和日期”,显示“设置时间和日期”对话框。● 右键单击该控件,从快捷菜单中选择“数据操作—设置为当前时间”。

2. 布尔型控件

布尔型控件可用于创建按钮、开关和指示灯。

布尔输入控件有6种机械动作。自定义布尔对象,可创建运行方式与现实仪器类似的前面板,快捷菜单可用于自定义布尔对象的外观,以及模拟单击这些对象时它们的运行方式。

单选按钮控件向用户提供一个列表,每次只能从中选择一项。如允许不选任何项,右键单击该控件,然后在快捷菜单中选择允许不选,该菜单项旁边将出现一个勾选标志。单选按钮控件为枚举类型,所以可用单选按钮控件选择条件结构中的条件分支。

3. 字符串与路径控件

1)字符串控件

操作工具或标签工具可用于输入或编辑前面板上字符串控件中的文本。在默认状态下,新文本或经改动的文本在编辑操作结束之前不会被传至程序框图。运行时,单击面板的其他位置,切换到另一窗口,单击工具栏上的“确定”按钮,或按键,都可以结束编辑状态。在主键区按键将输入回车符。右键单击字符串控件为其文本选择显示类型,如以密码形式显示或十六进制数显示。

2)组合框控件

组合框控件可用于创建一个字符串列表,在前面板上可循环浏览该列表。组合框控件类似于文本型或菜单型下拉列表控件,但是,组合框控件是字符串型数据,而下拉列表控件是数值型数据。

3)路径控件

路径控件用于输入或返回文件或目录的地址(Windows和Mac OS系统)。如允许运行时拖放,则可以从Windows浏览器中拖曳一个路径、文件夹或文件放置在路径控件中。

路径控件与字符串控件的工作原理类似,但LabVIEW会根据用户使用操作平台的标准句法将路径按一定格式处理。2.1.2 数组

在程序设计语言中,数组是一种常用的数据结构,是相同数据类型数据的集合,是一种存储和组织相同类型数据的方式。与其他程序设计语言一样,LabVIEW中的数组是数值型、布尔型、字符串型等多种数据类型中的同类数据的集合,在前面板的数组对象往往由一个盛放数据的容器和数据本身构成。

数组是由同一类型数据元素组成的大小可变的集合。当有一串数据需要处理时,它们可能是一个数组,当需要频繁地对一批数据进行绘图时,使用数组将会事半功倍,数组作为组织绘图数据的一种机制是十分有用的,如解答线性方程。在VI中使用数组能够压缩框图代码,并且由于具有大量的内部数组函数和VI,使得代码开发更加容易。

可以通过以下两步来实现数组输入控件或数组显示控件的创建。(1)从控件选板中选取数组、矩阵控件,将其中的数组拖入前面板中,如图2.7所示。(2)将需要的有效数据对象拖入数组框,切记此要点,如果不分配数据类型,该数据将显示为带空括号的黑框。

如图2.8所示,数组1为未分配数据类型的数组,数组2为分配了数据类型的数组,所以此时边框显示为橙黄色。图2.7 创建数组的第一步图2.8 创建数组的第二步

在数组框图的左端或左上角为数组的索引值,显示在数组左边方框中的索引值对应数组中第一个可显示的元素,通过索引值的组合可以访问数组中的每一个元素。LabVIEW中的数组与其他编程语言相比更灵活,任何一种数据类型的数据(数组本身除外)都可以组成数组。其他的编程语言如C语言,在使用一个数组时,必须首先定义数组的长度,但LabVIEW却不必如此,它会自动确定数组的长度。在内存允许的情况下,数组中每一维的元素最多可以达到231-1个。数组中元素的数据类型必须完全相同,如都是无符号16位整数,或全为布尔型等。当数组中有n个元素时,元素的索引号从0开始,到n-1结束。2.1.3 簇

簇是LabVIEW中的一个比较特别的数据类型,它可以将几种不同的数据类型集中到一个单元中形成一个整体,类似于C语言中的结构。

簇通常用于将出现在框图上的有关数据元素分组管理。因为簇在框图中仅用唯一的连线表示,所以可以减少连线混乱和子VI需要的连接器端子个数。使用簇有积极的效果,可以将簇看作一捆连线,其中每条连线表示簇不同的元素。在框图上,只有当簇具有相同元素类型、相同元素数量和相同元素顺序时,才可以将簇的端子连接。

簇和数组的异同:簇可以包含不同类型的数据,而数组仅可以包含相同的数据类型,簇和数组中的元素都是有序排列的,但访问簇中元素最好是通过释放方法同时访问其中的部分或全部元素,而不是通过索引一次访问一个元素,簇和数组的另一差别是簇具有固定的大小。簇和数组的相似之处是二者都是由输入控件或输出控件组成的,不能同时包含输入控件和输出控件。

簇的创建类似于数组的创建。首先在控制选板的“数组、矩阵与簇”子选板中创建簇的框架,如图2.9所示。

然后向簇框架中添加所需要的元素,并且可以根据需要更改簇和簇中各元素的名称,如图2.10所示。

一个簇变为输入控件簇或显示控件簇取决于放进簇的第一个元素,若放进簇框架中的第一个元素是布尔控件,那么后来给簇添加的任何元素都将变成输入对象,簇变成了输入控件簇,并且当从任何簇元素的快捷菜单中选择转换为输入控件或显示控件时,簇中的所有元素都将发生变化。图2.9 创建簇的第一步图2.10 创建簇的第二步

在簇框架上单击右键弹出快捷菜单,在菜单的“自动调整大小”中的3个选项可以用来调整框架的大小以及簇元素的布局,选择匹配大小选项调整簇框架的大小,以适合所包含的所有元素;水平排列选项水平压缩排列所有元素;垂直排列选项垂直压缩排列所有元素。

簇的元素有一定的排列顺序,簇元素按照其放入簇中的先后排序,而不是按照簇框架内的物理顺序排序,簇框架中的第一个对象标记为0,第2个标记为1,依次排列。在簇中删除元素时,剩余元素的顺序将自动调整,在簇的解除捆绑和捆绑函数中,簇顺序决定了元素的显示顺序。如果要访问簇中的单个元素,必须记住簇的顺序,因为簇中的单个元素都是按顺序访问的。

在前面板上,从簇边框上右键单击,在弹出的快捷菜单中选择“重新排序簇中控件”选项,可以检查和改变簇内元素的顺序,此时图中的工具编程了一组新按钮,簇的背景也有变化,连光标也改变为簇排序光标,选择“重新排序簇中控件”后,簇中每一个元素右下角都出现了并排的框、白框和黑框。白框指出该元素在簇顺序中的当前位置,黑框指出在用户改变顺序的新位置,在此顺序改变前,白框和黑框中的数字是一样的,用簇排序光标单击某个元素,该元素在簇顺序中的位置就会变成顶部工具条显示的数字,单击“×”按钮后可恢复到以前的排列顺序。

应该注意簇顺序的重要性,使用簇时应当遵循的原则是:在一个高度交互的面板中,不要把一个簇既作为输入又作为输出。2.1.4 图形

LabVIEW强大的显示功能增强了用户界面的表达能力,除了数据的显示,图形化波形显示是LabVIEW在虚拟仪器设计中的特点。

波形显示不单单是几条曲线的显示,根据不同的功能数据输出,可以将波形分为多种,如图2.11所示。

下面主要介绍波形图、波形图表、XY图、强度图和强度图表。

1. 波形图

波形图用于将测量值显示为一条或者多条曲线。波形图仅绘制单值函数,即在y=f(x)中,各点沿x轴均匀分布。波形图可显示包含任意个数据点的曲线。波形图接收多种数据类型,从而最大限度地降低了数据在显示为图形前进行类型转换的工作量。波形图显示波形是以成批数据一次刷新方式进行的,数据输入基本形式是数据数组(一维或二维数组)、簇或波形数据。图2.11 图形显示

波形图是一次性完成显示图形刷新出来的,所以其输入数据必须是完成一次显示所需要的所有数据数组,而不能把测量结果逐次输入,因此不能把随机数函数的输出节点直接与波形图的端口相连。

波形图显示的每条波形的数据都必须是一个一维数组,这是波形图的特点,所以要显示n条波形就必须有n组数据。这些数据数组如何组织,用户可以根据不同需要来确定。

应当注意的是,如果不同曲线间的数据量或数据的大小差距太大,则不适合用一个波形图来进行显示。因为波形图总是要在一个显示屏的范围内把一个数组的数据完全显示出来。如果一维数组与另一组数据的数据量相差太大,长度长的波形将被压缩,影响显示效果。

除了数组和簇,波形图还可以显示波形数据。波形数据是LabVIEW的一种数据类型,本质上还是簇。

2. 波形图表

波形图表是一种特殊的指示器,在图形子选板中找到,选中后拖入前面板即可。

波形图表在交互式数据显示中有3种刷新模式:示波器图表、带状图表和扫描图,用户可以在右键菜单的高级中选择刷新模式即可。

示波器图表、带状图表和扫描图在处理数据时略有不同。带状图表有一个滚动显示屏,当新的数据到达时,整个曲线会向左移动,最原始的数据点将移出视野,而最新的数据将会添加到曲线的最右端,这一过程与实验中常见的纸带记录仪的运行方式非常相似。

示波器图表、扫描图表和示波器的工作方式十分相似。当数据点多到足以使曲线到达示波器图表绘图区域的右边界时,将清除整个曲线,并从绘图区的左侧开始重新绘制,扫描图表和示波器图表非常类似,不同之处在于当曲线到达绘图区域的右边界时,不是将旧曲线消除,而是用一条移动的红线标记新曲线的开始,并随着数据的不断增加在绘图区中逐渐移动。示波器图表和扫描图表比带状图表运行速度快。

波形图表和波形图的不同之处在于:波形图表保存了旧的数据,所保存旧数据的长度可以自行指定。新传给波形图表的数据被接续在旧数据的后面,这样就可以在保持一部分旧数据显示的同时显示新的数据。也可以把波形图表的这种工作方式想象为先进先出的队列,新数据到来之后,会把同样长度的旧数据从队列中挤出去。

3. XY图

波形图和波形图表只能用于显示一维数组中的数据或是一系列单点数据,对于需要显示横、纵坐标的数据,它们就无能为力了。前面讲述的波形图的Y值对应实际的测量数据,X值对应测量点的序号,适合显示等间隔数据序列的变化。例如,按照一定采样时间采集数据的变化,但是它不适合描述Y值随X值变化的曲线,也不适合绘制两个相互依赖的变量(如Y/X)。对于这种曲线,LabVIEW专门设计了XY图。

与波形图相同,XY波形图也是一次性完成波形显示刷新,不同的是XY图的输入数据类型是由两组数据打包构成的簇,簇的每一对数据都对应一个显示数据点的X、Y坐标。

4. 强度图

强度图是LabVIEW提供的另一种波形显示,它用一个二维强度图表示一个三维的数据类型,一个典型的强度图如图2.12所示。图2.12 强度图

从图中可以看出强度图与前面介绍过的曲线显示工具在外形上的最大区别是,强度图拥有的标签为幅值的颜色控制组件,如果把标签为时间和频率的坐标轴分别理解为X轴和Y轴,则幅值组件相当于Z轴的刻度。

在使用强度图前先介绍一下颜色梯度,颜色梯度在控制选板的“经典—经典数值”子选板中,当把这个控件放在前面板时,默认建立一个指示器,如图2.13所示。

可以看到颜色梯度指示器的左边有一个颜色条,颜色条上有数字刻度,当指示器得到数据输入时,输入值作为刻度在颜色条上对应的颜色显示在控件右侧的颜色框中。若输入值不在颜色条边上的刻度值范围内,当超过100时,显示颜色条上方小矩形内的颜色,默认为白色;当超过下界时,显示颜色条下方小矩形内的颜色,默认为红色。当输入为100和-1时,分别显示为白色和红色。在编辑和运行程序时,用户可单击上下两个小矩形,这时会弹出颜色拾取器,在里面可定义超界颜色,如图2.14所示。图2.13 颜色梯度图2.14 定义超界颜色

实际上,颜色梯度只包含5个颜色值:0对应黑色,50对应蓝色,100对应白色。0~50之间和50~100之间的颜色都是插值的结果。在颜色条上弹出的快捷菜单中选择添加刻度可以增加新的刻度,如图2.15所示。添加刻度之后,可以改变新刻度对应的颜色,这样就为刻度梯度增加了一个数值颜色对。图2.15 添加刻度

在使用强度图时,要注意其排列顺序,如图2.16所示。原数组的第0行在强度图中对应于最左边的一列,而且元素对应色块按从下到上排列。值为100时,对应的白色在左上方,值为0时,对应的黑色在底端的中间。

5. 强度图表

与强度图一样,强度图表也是用一个二维的显示结构来表达一个三维的数据类型,它们之间的主要区别在于图像的刷新方式不同:当强度图接收到新的数据时,会自动清除旧数据的显示;而强度图表会把新数据的显示接续到旧数据的后面,这就是波形图和波形图表的区别。图2.16 原数组在强度图中的排序

强度图的数据格式为一个二维的数组,它可以一次性地把这些数据显示出来。虽然强度图表也是接收和显示一个二维的数组数据,但是它显示的方式不一样。它可以一次性显示一列或几列图像,它在屏幕及缓冲区保存一部分旧的图像和数据,每次接收到新的数据时,新的图像紧接着在原有图像的后面显示。当下一列图像将超出显示区域时,会有一列或几列旧图像移出屏幕。数据缓冲区同波形图表一样,也是先进先出,大小可以自己定义,但结构与波形图表(二维)不一样,而强度图表的缓冲区结构是一维的。这个缓冲区的大小是可以设定的,默认为128个数据点,若想要改变缓冲区的大小,可以在强度图表上单击右键,从弹出的快捷菜单中选择图表历史长度,即可改变缓冲区的大小,如图2.17所示。图2.17 设置图表历史长度2.1.5 三维图形

在很多情况下,把数据绘制在三维空间会更形象和更有表现力。大量实际应用中的数据(例如某个平面的温度分布、联合时频分析、飞机的运动等),都需要在三维空间中可视化显示数据。三维图形可令三维数据可视化,修改三维图形属性可改变数据的显示方式。

LabVIEW中包含以下三维图形,如图2.18所示。图2.18 三维图形● 散点图:显示两组数据的统计趋势和关系。● 杆图:显示冲激响应并按分布组织数据。● 彗星图:创建数据点周围有圆圈环绕的动画图。● 曲面图:在相互连接的曲面上绘制数据。● 等高线图:绘制等高线图。● 网格图:绘制有开放空间的网格曲面。● 瀑布图:绘制数据曲面和y轴上低于数据点的区域。● 箭头图:生成速度曲线。● 带状图:生成平行线组成的带状图。● 条形图:生成垂直条带组成的条形图。● 饼图:生成饼状图。● 三维曲面图:在三维空间中绘制一个曲面图。● 三维参数图:在三维空间中绘制一个参数图。● 三维线条图:在三维空间中绘制线条图。● ActiveX三维曲面图:使用ActiveX技术,在三维空间中绘制一个曲面图。● ActiveX三维参数图:使用ActiveX技术,在三维空间中绘制一个参数图。● ActiveX三维曲线图:使用ActiveX技术,在三维空间中绘制一个曲线图。

前14项位于“控件”选板下的“新式—图形—三维图形”子选板中,即图2.18(a)所示;后三项位于“经典—经典图形”子选板下,即图2.18(b)第4行所示。

ActiveX三维图形控件仅在Windows平台的LabVIEW完整版和专业版开发系统上可用。与其他LabVIEW控件不同,这三个三维图形模块不是独立的,实际上它们都是包含了ActiveX控件的ActiveX容器与某个三维绘图函数的组合。

1. 三维曲面图

三维曲面图用于显示三维空间的一个曲面。在前面板放置一个三维曲面图时,程序框图将出现两个图标,如图2.19所示。图2.19 经典选板中的ActiveX三维曲面图和新式选板中的三维曲面图

从图(a)中可以看出,三维曲面图相应的程序框图由两部分组成:3D Surface和三维曲面,其中3D Surface只负责图形显示,作图则由三维曲面来完成。

三维曲面的图标和端口如图2.20所示。三维图形输入端口是ActiveX控件输入端,该端口的下面是两个一维数组输入端,用于输入X、Y坐标值。Z矩阵端口的数据类型为二维数组,用于输入Z坐标。三维曲面在作图时采用的是描点法,即根据输入的X、Y、Z坐标在三维空间中确定一系列数据点,然后通过插值得到曲面。在作图时,三维曲面根据X和Y的坐标数组在XY平面上确定一个矩形网格,每个网格节点都对应三维曲线上的一个点在XY坐标平面上的投影。Z矩阵数组给出了每个网格节点所对应的曲面点的Z坐标,三维曲面根据这些信息就能够完成作图。三维曲面不能显示三维空间的封闭图形,要显示封闭图形应使用三维参数曲面。图2.20 三维曲面的图标和端口

对于前面板的三维曲面图,按鼠标左键并移动鼠标可以改变视点位置,三维曲面图发生了旋转,松开鼠标后将显示新视点的观察图形。

在LabVIEW中可以更改三维曲面图形的显示方式,方法是在三维曲面图上单击右键,从弹出的快捷菜单中选择“CWGraph3D”菜单,从下一级菜单中选择“属性”菜单,如图2.21所示。图2.21 三维曲面图属性的选择

系统弹出属性设置的对话框,同时会出现一个小的CWGraph3D控件面板,如图2.22所示。图2.22 CWGraph3D控件的属性设置对话框

属性对话框中共有7个选项卡,包括Graph、Plots、Axes、Value Pairs、Format、Cursors和About。下面对常用的几项进行介绍,其他各项属性的设置方法相似。

Graph选项卡中包含4部分:General、3D、Light和Grid Planes,以及常规属性设置、三维显示设置、灯光设置和网格平面设置。

General常规属性设置用来设置CWGraph3D控件的标题,其中,Font用于设置标题的字体。Graph frame Visible用于设置图像边框的可见性。Enable dithering用于设置是否开启抖动,开启抖动可以使颜色过渡更为平滑。Use 3D acceleration用于设置是否使用3D加速。Caption color用于设置标题颜色。Background color用于设置标题的背景颜色。Track mode用于设置跟踪的时间类型。

3D三维显示设置中的Projection用于设置投影类型,有正交投影(Orthographic)和透视(Perspective)。Fast Draw for Pan/Zoom/Rotate用于设置是否开启快速画法,此项开启时,在进行移动、缩放、旋转时只用数据点来代替曲面,以提高作图速度,默认为选中状态。Clip Data to Axes Ranges用于设置是否剪切数据,当选中此项时只显示坐标轴范围内的数据,默认为选中状态。View Direction用来设置视角。User Defined View Direction用于设置用户视角,共有三个参数:纬度(Latitude)、经度(Longitude)、视点距离(Distance),如图2.23所示。图2.23 三维显示设置对话框

在Light灯光选项卡中处理默认的光照,CWGraph3D控件还提供了4个可控制的灯。Enable Lighting用于设置是否开启辅助灯光照明。Ambient Color用于设置环境光的颜色。

Enable Light用于设置具体每盏灯的属性,包括纬度(Latitude)、经度(Longitude)、视点距离(Distance)和衰减(Attenuation),如图2.24所示。图2.24 灯光设置对话框

在Grid Plane网格平面设置中,Show Grid Plane用于设定显示网格的平面,Smooth grid lines用来选中该项以平滑网格线。Grid frame color用于设置网格边框颜色,如图2.25所示。图2.25 网格平面设置对话框

在CWGraph3D的Plots选项卡中,可以更改图形的显示风格。Plots选项卡对话框如图2.26所示。图2.26 Plot选项卡对话框

若要改变显示风格,可单击Plot Style按钮,将显示9种风格,如图2.27所示。图2.27 图形的显示风格

在三维曲面图中,经常会用到光标,用户可以在CWGraph3D的Cursors选项卡中选择。添加方法是单击Add按钮,设置需要的坐标即可,如图2.28所示。添加了光标的三维曲面图如图2.29所示。图2.28 光标添加对话框

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载