LabVIEW宝典(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-16 16:43:11

点击下载

作者:陈树学,刘萱

出版社:电子工业出版社

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

LabVIEW宝典

LabVIEW宝典试读:

前言

计算机的出现,彻底改变了人们的工作和生活方式。如今计算机已经无处不在,进入了每个人的生活之中。在工程技术人员看来,计算机不仅仅是人们常见的PC,也包括各种微处理器。从这个角度看,我们无时无刻不在使用计算机,例如,电视、洗衣机、自动提款机等都依赖计算机来实现各种便捷的功能。

相同的计算机可以完成不同的工作,在于它们使用不同的程序,而程序是由计算机编程语言创建的。短短几十年中,出现了众多的编程语言,这些编程语言的共同特点是采用文本方式创建程序。文本方式编程对编程人员要求很高,这使得计算机编程只能是少数人才可以从事的职业。

美国国家仪器公司(National Instruments,简称NI)的创新软件产品LabVIEW,允许用图形方式编程,摒弃了晦涩难懂的文本代码,使得计算机编程不再是少数人的专利。LabVIEW的最早版本诞生于1986年,几乎和Windows的最早版本同步,这注定了LabVIEW是多平台的编程语言,适合于不同的操作系统。

20世纪80年代初,NI公司是GPIB总线设备的主要供货商,丰富的硬件经验和强大的软件开发需求,促使NI公司的工程师们决心寻找一种代替传统编程语言的开发工具,这导致了1986年LabVIEW的横空出世。LabVIEW是由测试工程师开发的专用编程语言,因此,LabVIEW具有鲜明的行业特点,最早主要用于测试测量领域。NI公司独创了虚拟仪器的理念,提出了“软件就是仪器”的理念,并逐步成为业界的标准。

随着LabVIEW的不断发展,几乎每隔一两年,都要推出新的版本。LabVIEW的应用范围已经覆盖了工业自动化、测试测量、嵌入式应用、运动控制、图像处理、计算机仿真、FPGA等众多领域。以LabVIEW为核心,采用不同的专用工具包,统一的图形编程方式,可以实现不同技术领域的需求。

本书要点

本书作者多年使用LabVIEW作为主要的编程语言,因此特别关注LabVIEW在工业领域的具体运用以及LabVIEW的实用编程技术。本书共17章,分为入门篇、高级篇、工程应用篇。

第1~5章为入门篇,介绍了LabVIEW的基本概念、基本函数的用法和常用的运行结构,详尽地分析了LabVIEW的基本数据结构和文件存储方式。

第6~11章为高级篇,介绍了应用程序、VI和控件的引用、属性和方法,以及各类高级控件的运用方法。第8章介绍了LabVIEW的文本编程方式以及DLL、C语言接口,第9章详细介绍了基于Matlab语法的MathScript编程技术,第10章介绍了LabVIEW基于组件的编程方法。

第12~17章为工程应用篇,具体而细致地讲解在做实际工程开发时所用到的LabVIEW编程技术。本篇结合LabVIEW的常用工具包,具体分析了计算机串口、并口、网络通信方面的内容,以及数据记录和监控工具包、数据库连接工具包、报表生成工具包、状态图工具包、FPGA工具包等等。第13、第14章详细介绍了数据采集的基本原理和常用编程方法,其中重点介绍了LabVIEW在实时系统下的运用。第15章讲解LabVIEW实时系统的开发案例。第16章讲解了LabVIEW数据采集系统开发案例。第17章讲解了FPGA的开发案例,利用LabVIEW图形编程方式,提高开发效率。

本书读者

本书可作为高等院校通信、测量技术、自动控制等相关课程的教材和教学参考书,也可作为相关工程技术人员设计开发仪器或自动测试系统的技术手册。

本书特色

本书内容非常丰富,在每个章节都采用了大量的实例,针对具体编程实践中遇到的问题,提出了多种解决方法。在兼顾基础知识介绍的前提下,深入讨论了LabVIEW的高级编程方法和编程技巧。

本书的宗旨是作为实用工具书,侧重于来自工程实践的一线案例。笔者在写作过程中,与众多的LabVIEW爱好者进行了充分的沟通与交流,总结编程过程中经常遇到的问题,并作为本书的重要内容。

本书使用了大量篇幅,重点讲解NI公司各种专用工具包的运用,具有一定的深度和实用价值,特别适合于具有一定基础的编程人员使用。在基础篇中,虽然也介绍了许多LabVIEW的基础知识,但还是侧重于具体应用,其中大量的例程可以直接在具体项目中使用。

在高级篇中,重点介绍了LabVIEW常用的编程模式,以及状态图工具包的运用,同时介绍了新增的面向对象的编程方法。

补遗说明

本书写作时主要使用8.6版本,但是书中介绍的具体内容并不限于特定的版本,因此无版本限制。本书案例文件和相关课件在网址www.broadview.com.cn中提供下载,这样方便读者更好地提高学习效率,也方便教师教学。此外,对于比较重要的内容,为了让读者印象深刻,我们以“学习笔记”的体例呈现出来。

致谢与分工

本书由陈树学、刘萱两位工程师编写,我们有大量LabVIEW的实际开发经验,经历了多年的浓缩和总结才成此书。在编写本书过程中获得张国强老师的大力支持,他为我们提供了开发硬件,使得写作能在真实的开发环境中进行,应该说没有他的热心帮忙完成本书是难以想象的事情。此外,参与本书部分编写工作的人员还有:李伟、朱诚、陈洪军、黄北军、路锦正、谢昀、张洪亮、赵会春、王晓、余松、周俊杰、陈军等。因为本书作者为工程技术人员,对于写作并不擅长,书中错漏之处在所难免,敬请批评指正。能够为LabVIEW在国内的推广使用,做一点力所能及的贡献,能对广大的LabVIEW爱好者有所帮助,是我们最大的愿望。如果有任何意见或者建议欢迎联系:sharepub@126.com。第1部分入门篇第1章打开LabVIEW编程之门

LabVIEW在国内流行的时间并不长,只有短短的几年时间,但实际上它已经诞生20多年了,在国外被广泛用于教学、科研、测试和工业自动化领域。从LabVIEW 6.1版本后,LabVIEW开始流传开来,越来越多的编程人员开始使用LabVIEW并把它作为首选的编程语言。LabVIEW与常规编程语言有很大的不同,可以说它是专门为工程师开发设计的语言,专业性很强。对于从事工程应用的工程师们来说,LabVIEW是必须掌握的编程语言。

由于LabVIEW的特殊性,这里对于开始学习LabVIEW的朋友们,提出如下建议:

◆ 要学会“背叛”。LabVIEW有自己独特的编程方式,要学会

LabVIEW的思维逻辑。

◆ 不要相信两三个小时就能学会LabVIEW之类的话,即便是一年

也只是入门而已。

◆ 任何时候要牢记“数据流”的概念,这是LabVIEW编程的核心。

◆ LabVIEW直接面向工程应用,因此“标准”是最重要的。

◆ LabVIEW是工程师的语言,编程者首先必须使自己成为一位优

秀的工程师。

◆ 学习LabVIEW最好的资料就是LabVIEW的例子程序。1.1 从VI开始

LabVIEW同其他编程语言和软件一样,安装程序界面友好、容易使用。将安装光盘插入到光驱后,自动启动LabVIEW安装。只要输入正确的序列号,所有的安装过程都能自动完成。安装结束后,重新启动计算机,然后用鼠标双击LabVIEW的快捷方式图标,即可启动LabVIEW。

常规编程语言,如VB、VC的IDE开发环境,都是从新建一个具体的项目开始的,而LabVIEW的第一项是新建VI,显然VI对LabVIEW来说是非常基本和重要的概念。LabVIEW启动窗口如图1-1所示。图1-1 LabVIEW启动窗口

新建一个VI后,呈现在我们面前的是两个常见的Windows窗口,分别为前面板窗口与程序框图窗口,如图1-2所示。我们在后面的讲述中将这两个窗口简称为前面板和程序框图。

学习笔记 VI由前面板和程序框图组成。

一般常规编程语言创建的程序,由一个图形界面窗口(一般称为GUI)和文本编辑窗口组成。LabVIEW中的VI,前面板相当于GUI,程序框图则相当于文本编辑器。

显然,前面板是需要放置各种控件的,而程序框图是用来编写代码的。LabVIEW最大的特点是图形式编程语言,也就是说它的代码是完全图形化的,和常规的文本式编程语言截然不同。

通过菜单栏的“工具”菜单,可以调出控件选板和函数选板,如图1-3所示。其中控件选板用于在前面板放置控件,函数选板用于在程序框图中放置函数(即代码)。图1-2 前面板窗口和程序框图窗口图1-3 控件选板和函数选板

LabVIEW给人的第一感觉,是控件的数量和种类远胜于其他编程语言。例如,在VC中要找到一个不同于Windows标准的控件是很困难的,有时候不得不采用“自画”的方式实现。另外一个明显的不同是,LabVIEW的控件分成输入控件和输出控件两部分,输出控件又称为显示控件。

控件选板和函数选板的使用非常频繁,而使用菜单来调用它们非常不方便。最简单的调用方法是:右击前面板,弹出控件选板;右击程序框图,弹出函数选板;然后按快捷键Ctrl+E,即可快速在前面板和程序框图之间切换。1.1.1 创建VI

常规语言的入门程序一般是经典的“Hello World! ”,即在显示窗口放置一个显示控件,一般是文本框,然后给这个文本框赋值。这里,我们也从“Hello World”VI的创建开始。要输出字符串“Hello World”,首先需要在前面板放置字符串显示控件。通过控件选板,选择字符串显示控件。此时出现一个带虚框的控件,将其移动到前面板合适的位置。单击前面板,字符串显示控件就会自动放置在前面板中。

在前面板放置显示控件后,在对应的程序框图中自动出现对应的接线端子,如图1-4所示。接线端子是LabVIEW特有的概念,它与前面板控件一一对应。

学习笔记 双击前面板中的控件或者程序框图中的接线端子,可以自动定位到对应的接线端子或控件。在快捷菜单中,通过查找控件或者接线端子,也可以实现同样目的。

现在遇到的问题是如何给这个显示控件赋值。记住,数据流是LabVIEW编程的核心。作为字符串显示控件,它是数据要流动到达的目标。因此,必须有一个数据流出的源。我们自然想到,字符串输入控件就是数据源。用同样的方法,在前面板放置一个字符串输入控件。接下来我们需要考虑如何在输入控件和输出控件之间建立联系。

在LabVIEW中创建程序框图的过程就相当于用常规语言编写代码的过程;输入控件接线端子和显示控件接线端子之间连线的过程,就相当于用常规语言编写语句的过程。

前面板和程序框图的操作都离不开工具选板,所以在连线之前首先要熟悉一下工具选板,如图1-5所示,如果工具选板未显示,通过菜单栏中的“工具”菜单可以调出工具选板。

在工具选板中,当鼠标箭头移动到工具按钮上时,会出现工具条提示。工具选板上各个按钮的名称和详细功能,如表1-1所示。图1-4 放置字符串显示控件图1-5 工具选板表1-1 工具条提示

通过连线工具创建的“Hello World”VI,如图1-6所示。

LabVIEW中的VI类似一个函数,但是与C语言中的函数有明显区别。用常规编程语言编写的程序都有一个明显的入口点,比如main()函数。VI则不同,任何一个VI都是可以单独运行的,不存在明显的入口点。用常规编程语言编写代码后,需要明显的编译、连接过程,VI则不存在明显的编译过程,在我们对VI程序框图连线时,编译过程在后台自动发生,编译过程是动态的。

单击工具栏中的“运行”按钮,运行VI,输入字符串控件当前的值将自动显示到字符串输出控件中。

学习笔记 输出控件经过连线,把它的值传递给显示控件。

工具栏中还提供了“连续运行”和“中止”按钮,如图1-6所示。这里要介绍一下“运行”和“连续运行”的区别:“运行”是程序运行一次就结束了,而“连续运行”是指VI连续不断循环运行。“连续运行”可以修改输入控件的值,而且显示控件能显示出动态修改的结果,当VI连续运行时只能通过单击工具栏的第3个按钮“终止运行”来结束。

下面在图1-6所示VI的基础上,创建计算一次函数y=kx+b的VI, y作为计算结果输出,k、x、b作为参数输入。图1-6 “Hello World”VI

如图1-7所示,数值控件使用的是双精度数据类型,它的连线颜色与字符串明显不同。从连线的颜色和线型,可以明显区分数据类型,这是LabVIEW图形编程方式的突出特点。图1-7 一次函数

学习笔记 不同颜色、不同的线型表示不同的数据类型。

当程序框图中出现未连线或连线错误时,工具条上的“运行”按钮就变成“错误”按钮。单击它会自动弹出错误列表对话框,提示出现的错误,而常规编程语言在编译的过程中提示错误,这说明LabVIEW的编译过程是在后台自动完成的。

学习笔记LabVIEW程序的编译是在连线的过程中自动进行的。

LabVIEW称做“G”语言。G指的是Graphical Programming Language,即图形化编程语言。对照其他文本方式的编程语言,G语言中键盘的作用似乎不重要了,因为在程序框图中既看不到变量,也看不出任何语句的存在。我们完全可以理解前面板中控件的含义,这和其他编程语言一样。GUI是由各种各样的控件集合成的,但是它的控件有独特之处:一是数量多,二是明确区分输入控件和输出控件。“数据流”是LabVIEW的核心,也是G语言的核心了。输入控件和显示控件中间的连线就表明了数据是由输入控件流动到显示控件。输入控件就是数据的“来源”,显示控件就是数据要流动到的“目的地”,而这个流动的过程是通过连线完成的。与日常的物理现象中的“流动”不同的是,流动后,输入控件的数据并没有“损耗”,依然存在,而显示控件的数据被“冲掉”了,变成了新的数据。

既然是数据流,那么一点的数据应该可以流向多点,多点的数据也应该可以汇集成一点。实际上,上面的程序已经实现多点汇集到一点了,一次函数 y=kx+b, k、x、b 都是输入控件,是数据源,而目的地是y,这本身就是多个输入控件的数据汇集到一个显示控件。1.1.2 控件属性设置与快捷菜单

通过前面的学习,我们初步了解了LabVIEW程序是由VI组成的,而VI又是由输入控件、显示控件和数据连线组成。因此,深入了解和探讨控件是非常必要的。LabVIEW的控件种类繁多,即使是同一类型控件,在一些细节上也有很大差别。

VB、VC也提供了大量的控件,如命令按钮、文本框、列表框和组合框等。LabVIEW提供的控件与众不同。首先,控件分成输入控件和显示控件,另外,控件的分组也很有特点。控件由数值控件、布尔控件、字符串和路径组、数组矩阵组、列表与表格组、图形组等组成。这不像普通的控件分组,更像是变量的数据类型分组。1.控件的基本属性

一般的控件具有属性、方法和事件,LabVIEW的控件与常规控件类似,它也具有属性、方法和事件。一般的控件都包括“值”的属性,表示控件当前代表的数值或字符串等,也就是说控件是数据的容器,而数据的值只是控件属性之一。

LabVIEW中不存在常规语言中变量的说法,任何数据都是依附于控件的。控件是数据的容器,数据不能离开控件而独立存在(移位寄存器和常量是例外)。

LabVIEW的控件中包含数据,但是数据是有类型区别的,比如数字可以是整型,而整型又可以分成有符号和无符号、8位、16位、32位等。选定数据类型后,控件与数据类型就存在了对应的关系,不允许动态更改。

控件作为对象,由多个组成要素构成,比如标签、标题、颜色、字体等。对于一个具体的控件,通过快捷菜单或属性对话框,可以修改其属性。不同种类的控件专用属性可能不同,但是其常规属性基本相同。这里以字符串控件的属性对话框为例,介绍常见的基本属性。在控件的快捷菜单中选择“属性”,弹出属性对话框,字符串属性对话框如图1-8所示。图1-8 字符串属性对话框

字符串属性对话框采用典型的选项卡方式,其中包括“外观”、“说明信息”、“数据绑定”、“快捷键”和“安全”5个类别。按照常规的表示方法,位于上方的属性一般是通用属性,而位于下方的往往是控件的专用属性。(1)“外观”选项卡上的属性用于控制控件显示的有关特征,控件的通用外观属性包括以下几点。

◆ 标签和标题:标签代表的是控件的名称,它在运行过程中属于

只读属性,不能在运行过程中更改,相当于常规语言中的变量名。

标题是控件显示给用户的信息,属于可读写属性,在运行过程中

可以随时更改,一般多语言环境的软件都是采用类似的方法。

◆ 大小:包括高度和宽度,表示的控件大小信息。通过高度和宽

度,可以精确控制控件的大小。

◆ 启用状态:包括“启用”、“禁用”和“禁用并变灰”三个单选

按钮。它们用于表示控件的状态信息,处于禁用状态的控件不接

受键盘和鼠标操作。

学习笔记 控件的标签是内部名称,用于区别控件,而标题是用于人机交互的。(2)属性对话框的第二个选项卡页面为“说明信息”,由说明和提示框两部分组成。说明和提示框输入的是文本信息。

◆ 提示框内输入的内容就是通常所说的“工具条提示”,当移动

鼠标箭头到控件上时,不执行任何操作,几秒后即出现“提示

框”里的说明文字。

◆ “说明”是控件的详细信息,可以对控件做详细解释。程序运

行时,用鼠标选择控件,然后在右键快捷菜单中选择“说明”,

就会弹出一个对话框,显示的就是我们输入的“说明”信息。

学习笔记 在LabVIEW中文本输入的手动换行是通过快捷键Shift+Enter实现的。(3)其他选项卡,比如数据绑定、安全等,将在后续章节介绍。2.输入控件和显示控件的区别

LabVIEW控件明显分成了输入控件和显示控件两大类别。LabVIEW作为一种用于工程的编程语言,是与测试测量和自动化控制密切相关的。从硬件的角度看,控件分成这两大类非常合适。以自动化控制为例,它的输入和输出是有明显区别的。比如继电器是输出类型的,而检测开关则是输入类型的。广泛使用的数据采集卡也分成模拟量输入和模拟量输出、数字量输入和数字量输出。

从LabVIEW本身的编程特点来说,数据流是LabVIEW的核心概念,任何数据必须是有“源”的,这个“源”就是输入控件或者常量,常量可以理解成特殊的输入控件,而数据最终流向地就是显示控件。

从控件本身的角度来看, LabVIEW其实只是推荐了控件的使用方法,并没有绝对地区分控件必须是输入控件还是显示控件。比如数值控件中有“旋钮”和“量表”。旋钮是输入控件,而量表是显示控件。这与现实情况是非常符合的。对于收音机的音量控制,确实有个物理的旋钮存在,而对音量,比较高级的收音机也确实有个简单的电子仪表来显示。

LabVIEW的输入控件和显示控件是可以自由转换的。在控件的快捷菜单中就可以实现将输入控件转换成显示控件,或者将显示控件转换成输入控件。但这只是在程序编辑情况下才可以,在程序运行情况下是不允许转换的。如果允许的话,数据流的流向就会发生变化,这将导致数据流无法实现。3.控件快捷菜单

LabVIEW对控件的许多操作都是通过快捷菜单实现的,所以有必要深入研究一下快捷菜单。对于不同的控件,快捷菜单既有相同的部分,也有不同的部分。相同的部分适合所有的控件,而不同的部分对应着控件的特殊属性。以一个旋钮控件为例看一下控件的快捷菜单,如图1-9所示。

显示项中包括标签和标题,这是控件的通用基本属性。通过这个菜单可以选择控件标签以及标题是否可见,前面我们通过属性对话框同样可以设置这两个属性。如果只想设置控件的部分属性,直接用快捷菜单比较方便。图1-9 旋钮控件的快捷菜单

显示项中还有单位标签、数字显示和梯度三个选择项,图1-10演示了它的不同效果。图1-10 旋钮控件的不同显示效果

通过上面的效果图我们可以看到,一个LabVIEW控件由不同的可显示部件组成,比如上面的旋钮,就是由旋钮、单位标签、数字显示和梯度等几个部件组合而成,而其中每一个独立的部件都可以分别设置它的属性,比如颜色、字体等。1.1.3 创建控件、常量、局部变量、引用、属性节点和方法节点

创建控件、常量、局部变量、引用、属性节点和方法节点,是LabVIEW中极为常见的操作,使用得非常频繁。创建方法很多,分类介绍如下。1.创建控件

LabVIEW的控件数量庞大,种类繁多,这极大地方便了GUI设计。控件从基本显示风格来区分,可分成“新式”、“古典式”和“系统”三大类。

◆ 新式控件是三维显示风格,LabVIEW推荐使用此类控件。

◆ 古典控件是平面显示风格,早期LabVIEW使用此类控件。

◆ 系统显示风格,适用于编写Windows风格的应用程序。

任何一种编程语言都具备处理复杂数据类型的能力,LabVIEW作为成熟的编程语言,自然也不例外。在各种编程语言中最常见的复杂数据类型为数组和记录(VB)或结构(C语言), LabVIEW中类似记录或结构的数据类型,称为“簇”。这只是一个称谓的区别,本质并无区别。

在控件选板中包含数组和簇控件,但它们是作为控件形式出现的因此,它们的创建方式与数值控件相同。在控件选板选择数组和簇之后,前面板会出现数组和簇的容器,之后我们需要在数组或者簇中添加元素。

对于数组,数组中的元素具有相同的属性,因此只需要选择需要的元素控件类型。建立数组容器后,右击容器内空白处,弹出控件选板,选择合适的控件。也可以在前面板放置控件,然后拖动到数组容器中,簇的建立方法类似,不过需要选择多种控件。

控件隶属于特定的前面板,前面板往往包括多种不同类型的控件,创建控件有多种方法。

◆ 在控件选板中选择相应的控件,然后拖动到前面板,程序框图

中就会出现相应的接线端子。

◆ 在程序框图函数接线端子上打开快捷菜单,选择“创建”→“输入控件”或“创建”→“显示控件”项。

◆ 通过剪切板,复制一个或者多个控件。同常规的Windows程序

一样,LabVIEW提供了剪切板功能,可以通过“编辑”菜单来完

成,不过更方便的方法是使用快捷键。使用快捷键Ctrl+C,可以

复制控件或控件集合。使用快捷键Ctrl+X,可以剪切控件或控件

集合。使用快捷键Ctrl+V,可以粘贴控件或控件集合。

◆ 用鼠标左键选择控件或控件集合,按下Ctrl键后拖动鼠标,可

以直接生成新的控件或控件集合,这种方法称为克隆。

◆ 在程序框图中,选择接线端子或者接线端子组,然后按下Ctrl

键后拖动鼠标,可以直接在前面板上创建新的控件。

◆ 从已经打开的别的VI前面板上,直接拖动控件或者控件集合到

前面板。

◆ 从已经打开的别的VI的程序框图中,直接拖动接线端子或者接

线端子组,可以包括连线,这样可以直接复制程序,并自动创建

相应控件。2.创建常量

常量隶属于程序框图,在程序框图创建常量有以下几种方法。

◆ 在函数面板上找到相应的函数,比如数值、字符串、文件路径、

数组或簇,其中都包括常量。

◆ 在接线端子的右键快捷菜单中,选择“创建”→“创建常量”

项。

◆ 拖动前面板上的控件或控件集合到程序框图,直接创建与控件

类型对应的常量。

◆ 在类似的常量存在的情况下,通过剪切板复制、剪切和粘贴来

创建常量。

◆ 在类似的常量存在的情况下,按下Ctrl键后用鼠标拖动该常量,

通过克隆原来的常量来创建新的常量。

◆ 在已经打开的其他VI中,直接拖动控件或者常量到程序框图。

◆ 在局部变量的右键快捷菜单中,选择“创建”→“创建常量”

项。

◆ 在属性节点的右键快捷菜单中,选择“创建”→“创建常量”

项。

其中有些常量(比如数值常量)可以通过快捷菜单进一步选择相应的数据类型(比如U8、I16、DBL等)。3.创建局部变量

局部变量的具体含义将在后续章节介绍,创建局部变量的几种方法如下。

◆ 最基本的方法是在控件或者接线端子的右键快捷菜单上,选择“创建”→“局部变量”项。

◆ 对于已经存在的局部变量,通过剪切板复制局部变量是不可行

的,需要特别注意。LabVIEW虽然支持局部变量的复制、剪切和

粘贴操作,但是粘贴后会创建一个新的控件及其局部变量。

◆ 对于已经存在的局部变量,可以按下Ctrl键后用鼠标拖动局部

变量来克隆。4.创建属性节点

属性节点具体内容将在后续章节介绍。创建属性节点有如下方法。

◆ 最基本的方法是使用前面板控件或程序框图中的接线端子的右

键快捷菜单,选择“创建”→“属性节点”项。

◆ 对于已经存在的属性节点,通过剪切板复制、粘贴的并非原来

控件的属性节点,而是和原来数据类型对应的通用属性节点,暂

时未指向任何控件。

◆ 最简单的方法是按下Ctrl键后拖动用鼠标属性节点,创建一个

新的属性节点。

学习笔记 选择现有的属性节点,通过复制粘贴可以创建严格类型的通用属性节点。按下Ctrl键后用鼠标拖动该节点即可对其克隆,克隆操作不产生新的控件。5.创建控件的引用

创建控件的引用有如下方法。

◆ 最基本的方法是在控件或者接线端子的右键快捷菜单上,选择“创建”→“引用”项。

◆ 对于已经存在的控件的引用,按下Ctrl键的同时用鼠标拖动控

件引用来克隆。

◆ 对于已经存在的引用,通过剪切板复制、粘贴的并非原来控件

的引用,而是和原来控件类型一致的新的控件和控件的引用。6.创建控件的方法(中文版的帮助文件中称做调用节点,早期文档中译为“方法”)

LabVIEW的控件与其他编程语言的控件一样具有属性和方法。创建控件的方法有以下几种方式。

◆ 最基本的方法是在控件或者接线端子的右键快捷菜单中,选择“创建”→“方法”项。

◆ 对于已经存在的控件方法,按下Ctrl键后拖动该方法来克隆。

◆ 对于已经存在的控件方法,通过剪切板复制、粘贴的并非原来

控件的方法,而是和原来控件类型一致的新的通用控件方法。

学习笔记 选择现有的方法,通过复制、粘贴可以创建严格类型的通用方法。

以上介绍了控件、常量、局部变量、属性节点、引用和方法的创建方法,其中都包括了按下Ctrl键拖动鼠标的方法。这种方式称做“克隆”,克隆与Windows的复制、粘贴是不同的。Windows里的复制和粘贴往往创建新的控件,而克隆操作往往创建的是同一控件的局部变量或者属性节点等。

控件和常量可以通过子VI的接线端子的快捷菜单,选择“创建”,然后选择“输入控件”、“显示控件”或者“常量”,来创建所需的输入控件、显示控件。利用这种方法,可以保证控件和子VI端子需要的类型一致,这是非常重要的功能。

学习笔记 选择子VI的端子,通过快捷菜单选择“创建”项,来创建控件和常量。1.1.4 创建自定义控件

在选择控件之后,可以通过快捷菜单中的“表示法”项或者属性对话框来选择控件所代表的数据类型,一般都是一类相近的数据类型。比如数值类型中,U8、I8、U16和I16都是相近的数据类型。这样,在设计过程中想更改数据类型是很容易的。如果设计的数据类型和实际需要的数据类型有很大区别,这时可以直接选择快捷菜单中的“替换”项,把原来的控件替换成想要的新形式。

在构造一个比较复杂的程序时,通常要定义一个复杂的数据结构来描述外部现象,而这个复杂的数据结构有可能贯穿整个程序的始终。一旦这个数据结构发生变化,将导致程序多处发生变化,这会给程序设计者造成极大困难,甚至导致整个程序设计的失败。

最好的方法是定义一个统一的复杂数据类型(通常是用构造簇的方法来实现,让簇作为一种统一的数据类型,贯穿程序设计的始终)。通过这种方法,对数据结构的修改就能在程序中所有引用簇的地方自动更新。LabVIEW是通过把簇控件作为自定义控件来实现这个要求的。在控件的快捷菜单中,选择“高级”→“自定义”项,可以自定义任何控件。

一个控件包括外观、数据类型、控件默认值等内容,可以自定义的是控件的哪些部分呢?如果自定义的仅仅是控件的外观,那意义不大,无非是为控件新增了特殊的显示效果。LabVIEW在这方面做得已经足够多了,很容易找到所需的控件。

选择一个控件,打开快捷菜单并选择“自定义”项,弹出自定义控件编辑器,看看到底能自定义哪些部分。如图1-11所示,这是一个普通的数值控件自定义前面板,它与普通的前面板是有区别的。一般VI的前面板对应一个程序框图,而自定义控件面板没有对应程序框图,不允许编程。

此外还可以看出,一个控件是由一些基本对象元素组合而成的,每一个元素都可以独立修改,如颜色、大小等。重新定义这些基本元素,就可以构造出新的符合自己特殊要求的控件。

自定义控件有三种形式:输入控件、自定义类型和严格自定义类型,如图1-11所示。自定义控件的三种不同形式存在重要区别。图1-12分别调用了创建后的输入控件、自定义类型、严格自定义类型的属性对话框,我们可以发现,其属性对话框存在明显区别。图1-11 自定义控件编辑器图1-12 输入控件、自定义、严格自定义属性对话框

输入控件、自定义类型、严格自定义类型的区别如下所述。

◆ 输入控件保存在一个单独文件中,对于保存为输入控件方式的

自定义控件,一旦在一个VI中调用它,则这个新生成的控件与原

来的控件没有任何关系,可以自由地修改这个新控件的属性,如

图1-12中左侧图所示。

◆ 自定义类型和严格自定义类型的自定义控件则与输入控件型不

同,在一个VI中调用这两类自定义控件后,新生成的控件保持和

文件中存储的自定义控件的链接关系。任何对文件中存储的自定

义控件进行修改后,所有调用这个自定义控件的VI都会更新。这

样就保证了一个精心设计的复杂数据类型在所有调用VI中保持同

步更新。

◆ 自定义数据类型和严格自定义数据类型的区别在于控件数据类

型保持一致的程度。对于严格定义的数据类型,在调用它的VI中,

除了可以修改是否可见、是否启用之外,无法对控件进行任何其

他修改,完全保证和存储在文件中的自定义控件的高度一致,如

外观、代表的数据类型、数据类型的精度、数据类型的输入范围

等。而自定义数据类型除了外观和代表的数据类型保持一致外,

其他属性可以自由设置。图1-12中,中间的图为自定义数据类型,

右侧的图为严格自定义类型。

学习笔记 可以使用自定义类型或者严格自定义类型构造通用或者复杂的数据类型。1.2 编辑前面板和程序框图

LabVIEW的前面板从基本用途上可以分为两类:GUI人机交互界面和程序员交互界面(GPI)。GUI是直接显示给操作者使用的,对编程者来说最为重要。GUI针对不同领域的具体要求,有不同的设计标准。

GPI和GUI则完全不同,GPI是展现给程序员看的。对于多个程序员互相协作的项目,程序员交互界面也是非常重要的,也要遵循一定的标准。不过与GUI的标准不同,GUI需要满足的是行业的标准规范,而GPI是LabVIEW程序员的“潜规则”,并不是必需的。因此也是仁者见仁,智者见智,不同的人有不同的理解。但是无论如何,清晰、整洁是最基本的要求。

同VC、VB等流行的常规编程语言一样,LabVIEW也提供了有关控件布局方面的功能。由于LabVIEW是图形式编程语言,这方面的功能更加强大。1.2.1 选择、移动和删除对象

前面板、前面板上的控件、程序框图上的接线端子、函数、图标、连线等统称为对象。所谓编辑前面板和程序框图,就是编辑这些具体的对象。

我们从前面板上的控件对象开始介绍,首先需要了解的是如何选取和移动对象,前面板控件的选择和移动的方法对程序框图同样适用。选择对象有多种方法,简单分类如下。1.选择单个对象

通过工具选板的“定位/调整大小”工具按钮选择。单击某个对象,则该对象被选中。对象被选中时,周围出现虚框。在任何情况下,采用矩形框选方式,可以直接选中对象。2.选择多个对象

通过选取工具选板的“定位/调整大小”按钮选择。单击选中某个对象,然后按住Shift键,选择其他对象,形成对象集合。在任何情况下,采用矩形框选方式,可以直接选中多个对象。3.筛选对象

筛选对象是在选择多个对象的基础上,在按下Shift键的同时,单击对象,将对象添入或剔出对象选择集。如果原来对象是选中的,则剔除该对象,如果原来对象处于未选中状态,则添加到选择集中。通过虚框很容易判断对象是否被选中。4.选择全部对象

选择全部对象,当然也可以采用矩形框选的方法,不过利用快捷键Ctrl+A更简单。

学习笔记 使用快捷键Ctrl+A,可以选择前面板或程序框图中的全部对象。5.移动对象

移动对象属于常用的编辑操作。在单选或多选对象后,直接拖动其中任何一个对象,则出现一个新的虚框,随鼠标的运动而移动,虚框的位置表明当前位置。将虚框移动到合适位置释放鼠标后,原来位置上的对象将消失,而被移动到鼠标指定位置。

如果移动之前按住Shift键,则可以保证移动沿水平方向或者垂直方向进行,方向取决于最开始的移动方向。采用键盘的方向键也可以移动选中的对象,而按住Shift键,则可以快速移动对象。6.取消移动操作

克隆对象和移动对象都涉及中间取消的问题,取消克隆和移动操作有以下几种方法。

◆ 执行完毕后,在“编辑”菜单中选择“取消”项,快捷键是

Ctrl+Z。

◆ 克隆和移动过程中,按下Esc键,取消操作。

◆ 直接拖动到前面板窗口或者程序窗口外,取消操作。

学习笔记 在克隆和移动对象的过程中,按下Esc键可以取消操作。按下Shift键,可以沿水平或者垂直方向移动对象或者对象集合。7.精确移动对象

移动对象时既可以用鼠标拖动,也可以用键盘操作。利用键盘方向键可以做比较精确的调整,按下Shift键可以快速移动对象或者对象集合。选择和移动对象,如图1-13所示。图1-13 选择和移动对象

学习笔记 通过键盘移动对象时,按下Shift键可以快速移动。8.删除对象

除了对象的创建、选择、移动、复制等操作,对象的删除也是经常用到的操作。选择要删除的对象或者对象集合,然后通过以下几种方法来删除。

◆ 在菜单栏的“编辑”菜单中,选择“从项目中删除”。

◆ 利用Windows的剪切命令,快捷键为Ctrl+X。

◆ 选择对象或者对象集合后,按下Del、Delete、Backspace三者

中的任何一个。

◆ 对象中包含的子元素(如控件的标签、标题等),是不能单独

删除的,只能选择“显示”或者“隐藏”。1.2.2 使用布局工具

前面板和程序框图有关布局的工具条是相同的,共有三个分类:对齐对象、分布对象和重新排序。其中每个分类中又有很多不同的子分类,下面我们分别介绍一下。1.对齐对象

顾名思义,对齐对象是指将一组被选择的对象按照一定要求对齐排列,分成上边缘、下边缘、左边缘、右边缘、垂直中心和水平居中几种方式,如图1-14所示。图1-14 对齐对象

一般的控件对象默认都是显示标签的,各种对齐方式也是包括标签的对齐。标签默认位于对象的上方,如果我们移动了某个控件标签的位置,而对齐对象有可能是以标签为基准的,此时要特别注意。不过,标签是可以单独选择的,首先要对齐控件本身,然后再对齐标签或者标题。

前面板和程序框图都具有网格对齐功能。默认情况下,前面板是显示网格线的,而程序框图不显示网格线,可以通过“编辑”菜单或者快捷键Ctrl+#切换是否网格对齐。在创建控件时,一般采用网格对齐方式。

学习笔记 在对齐时,先对齐对象,后对齐标签或者标题。快捷键Ctrl+#用于在前面板或程序框图中切换是否网格对齐。2.分布对象

各种分布对象的工具如图1-15所示。当我们将鼠标定位到某一个图标时,上方会出现说明文字,比如图1-15左上角第一个图标显示的文字是上边缘。结合它的图标很容易看出,它是以对象的上边缘为基准,沿垂直方向均匀分布的。图1-15 分布对象

需要注意的是,图1-15最右边上下两个图标分别是垂直压缩和水平压缩。选择这两个选项,可以使所有选择的对象沿垂直方向或水平紧密排列。紧密排列功能在程序框图设计中使用得非常广泛。

这里以程序框图为例,简单地说明一下对齐和分布的使用方法。首先选择要对齐的对象集合,用矩形框选方式,选择“对齐对象”中的“左边缘”。然后选择“分布对象”中的“垂直压缩”,这样输入控件对象的排列就完成了,具体操作如图1-16所示。图1-16 左边缘对齐,垂直压缩分布

对于前面板中的对象采用同样方法,进行对齐和垂直压缩后,极大地节省了前面板和程序框图的空间,同时使连线变得更加简单整洁。对齐、分布是LabVIEW程序员必须掌握的基本技能,整理后的效果如图1-17所示。图1-17 左边缘对齐,垂直压缩分布效果图3.调整大小

创建一个对象后,经常需要修改其大小,尤其是前面板对象,比如输入控件、显示控件和装饰等。移动光标到某个控件上,如果光标指针是常见的箭头方式,表示目前的工具是定位/调整大小/选择状态。如果控件的大小允许调整,对象的四周和中间会出现方框标记,表示这个方向可以调整大小。移动光标到方框标记上,光标箭头变成缩放状后,按住鼠标左键沿某一方向拖动,就可以更改对象的大小了。这里的对象不仅仅指控件对象,也包括标签、标题等其他元素。但是采用鼠标拖动的方法,无法精确控制对象的大小尺寸。在开启网格对齐的情况下,鼠标定位的最小单位是一个网格。一个网格到底是多少呢?首先我们需要确定的是网格大小的基本单位是什么,无论是前面板还是程序框图,或者前面板和程序框图中的对象,都是以像素点作为基本单位的。

学习笔记LabVIEW中对象的大小是以像素点作为基准单位的。

LabVIEW前面板和程序框图中的网格大小是可以设置的。默认情况下,前面板的每个网格为12个像素点,程序框图网格为16个像素点。对于新创建的VI,可以在菜单栏中选择“工具”→“选项”, 打开“选项”对话框,如图1-18所示。在这里,可以查看和设置网格大小。图1-18 “选项”对话框

在这个对话框中,我们不但可以设置网格的大小,还可以设置网格相对于背景的对比度。当我们新创建一个对象时,新对象是有默认大小的。而这个默认大小可能不是网格对齐的,开启“缩放新对象以匹配网格大小”功能,可以强制新创建的对象调整大小尺寸,自动适应网格大小。另外,有的对象无法在水平和垂直两个方向同时对齐,这时LabVIEW会自动选择一个合适的方向单方向对齐。

学习笔记 前面板默认网格为12个像素,程序框图默认网格为16个像素。

LabVIEW的前面板和程序框图并没有直接显示每个对象的大小,不过可以通过以下方法查看控件对象的大小。

◆ 在快捷菜单上,选择“属性”,然后在打开的“属性”对话框

中查看当前控件对象的大小。

◆ 单击工具栏中的“调整对象大小”按钮,弹出“调整对象大

小”对话框,如图1-19所示。图1-19 “调整对象大小”工具按钮和“调整对象大小”对话框

在上述对话框中不仅可以查看到控件对象的大小,更重要的是可以按照像素点修改控件对象的大小,其中有的对象只允许单方向调整。图1-19所示的例子就只允许调整对象的宽度。“调整对象大小”对话框是个较常用的对话框,在其中不仅可以查看和调整单个对象的大小,更还可以同时调整对象集合,使对象集合中的对象具有同样的宽度或者高度。“调整大小”工具栏中其他几个按钮非常容易理解,都是作用于所选取的对象集合的,其功能分别为设置最大宽度、最小宽度、最大高度、最小高度。4.重新排序

工具栏中有关对象布局的最后一项是重新排序,它包括3项基本功能。(1)组合

功能相关的对象可以组合成一个组,作为一个单独的对象,统一进行复制、移动、删除等编辑操作,组中包含的对象的相对位置保持不变。

在一个包含大量对象的界面中,采用对象组合是非常必要的。对于已经对齐、大小调整好的对象,难免会出现误操作,比如移动了不应该移动的控件,而后续又执行很多的操作。这时如果想恢复到移动前的状态,不得不执行编辑菜单中的撤销操作,而撤销操作是一步步进行的,这样出现错误后所有有用的编辑操作都被撤销了。

在一个复杂的界面中重新分布对象也是非常困难的,因此非常有必要在一些对象元素完成编辑后,将它们组合成一个组。通过组合成组的方式,可以非常方便地实现GUI界面模块化。

图1-20中,四个方向键分别控制上、下、左、右四个方向。这几个控件对象的大小相同,功能相似,它们组合在一起后,可以统一地移动,而相对位置保持不变。图1-20 对象组合(2)锁定

锁定与组合不同,组合是针对对象集合的,一个单一的对象是不可能组合的,而锁定功能既可以针对单一对象,也可以作用于整个对象组合。

锁定后,不允许对被锁定对象进行任何编辑操作,包括移动、删除、克隆等,甚至无法调用属性对话框修改属性。如果要编辑对象,必须通过“解锁”操作解除锁定,然后才能自由编辑锁定的对象。

学习笔记 对象编辑完成后,组合和锁定对象或者对象集合,可以有效防止误操作。(3)重新排序

LabVIEW并没有像某些软件一样在窗口显示对象的坐标,原因在于前面板的坐标原点是相对的、可移动的,并不能真正体现对象相对于前面板窗口的绝对位置。

仔细观察LabVIEW的前面板,有两条网格线比较特殊,它们是加深显示的,并且显示一个交叉黑点。这个交叉点就是前面板窗口客户区的坐标原点。之所以强调前面板窗口客户区,是因为前面板也是一个窗口。它也具有宽度和长度属性,它本身的位置属性也是由一个点的坐标簇构成的,不过这个坐标是相对于计算机桌面的。

LabVIEW的对象对于垂直于屏幕的方向是有次序的,它按照对象的创建次序自动分配。越往后创建的对象相对于操作者“越近”,或者说它的次序越高。如果发生对象重叠的情况,次序高的对象将全部覆盖或者部分覆盖次序低的对象。

LabVIEW可以通过工具栏中的“重新排序”按钮来调整相对于操作者的对象的显示次序,效果如图1-21所示。图1-21 对象组合、锁定及改变次序1.3 VI及其属性对话框

在C语言中,函数是程序的基本单元,一个函数包括输入参数、输出参数和返回值。LabVIEW中VI的概念和函数非常相似,它的输入参数就是输入控件,它的输出参数就是显示控件,C语言的函数只能有一个返回值,而LabVIEW的VI可以有多个返回值,LabVIEW的数据流有点类似于C语言的值传递过程。1.3.1 VI的层次结构

VI是Virtual Instruments的缩写,它类似于C语言中的函数。在C语言中函数可以完成独立的、特殊的功能。函数可以被上一级的函数调用,被调用的函数称子函数。LabVIEW也是类似的,如果一个VI被上一级VI调用,被调用的VI称为子VI,这是基本的模块式编程方法。LabVIEW的“查看”菜单中提供了一个非常有用的功能——VI层次结构。

VI层次结构有自顶向下和自左至右两种不同的显示方式。图1-22所示的是典型的树型结构。根部称做应用程序实例,与之紧密连接的是顶层VI。这是显示给用户的交互GUI,顶层VI调用了6个子VI,双击任何一个VI图标,可以直接打开子VI。

顶层VI类似于C语言的main函数,这是应用程序的入口点。从VI名称上看,顶层VI和一般的VI命名无任何区别。这是一个不同于其他编程语言的一个显著特点。也就是说,任何一个VI,既可以作为顶层VI,又可以作为子VI。

前面已经知道VI是由前面板和程序框图组成的,而且可以单独运行。但是如果把它作为子VI,则仅有前面板和程序框图是不够的,因为一般上一级函数都需要向子函数传递参数,然后由子函数返回处理结果,这种传递参数与返回结果的功能在VI中是通过连线板来实现的。图1-22 VI的层次结构

VI还有一个重要的组成部分——图标。在上一级的程序框图中,子VI是以图标的方式显示的。在图1-22中,Test0、Test1、Test2、Test3就是图标代表的VI。

学习笔记 完整的VI由前面板、程序框图、连接板和图标组成。

下面通过创建一个计算二次函数的子VI,来介绍建立VI的完整过程。

已知二次函数Y=AX2+BX+C,其中Y作为计算结果应该是输出,而A、B、C、X是作为参数输入的。因此建立的VI应该包括X、A、B、C四个输入控件,一个显示结果Y的显示控件。前面板与程序框图,如图1-23所示。图1-23 二次函数子VI

创建前面板和程序框图后,右击前面板中右上角的图标,在快捷菜单中选择“显示连线板”项。利用工具选板中的连线工具,单击连线板中的端子和前面板中的控件。这样就确立了前面板控件与连线板的一一对应关系,相当于C语言中建立形式参数的过程。

双击图标,即可启动图标编辑器。在图标编辑器中,修改VI图标。图标编辑器与常规的图标编辑方式基本相同,也可以直接选择外部图标文件。

我们曾经创建过计算Y=KX+B的VI,严格地说它还不能算是子VI,原因是我们并没有分配连接板端子和制作相应的图标。而图1-23已经是一个完整的子VI了,它包括了前面板、程序框图、连接板和图标四个要素。

LabVIEW的子VI可以单独测试,它与常规编程语言相比,具有极大的优势。常规语言的函数测试是非常麻烦的,需要专门做一个显示界面来显示测试结果,或者用打印语句输出中间运行结果和运行过程。而LabVIEW的VI是一个非常强大的模块式结构,每个VI模块都可以单独运行,模块之间不需要紧密的数据连接,非常有利于数据结构的封装。

VI是通过连线板实现参数的输入和输出的。连线板位于前面板和程序框图的右上角。根据LabVIEW数据流动的特点,左侧作为输入,右侧作为输出,有利于连线。连线板和VI图标可以通过快捷菜单相互切换,显示连线板后,通过连线工具,分别单击连线板中的端子和控件,就建立了控件和连线板的一一对应关系。

VI图标的制作比较烦琐,在图标中直接用文字来说明则相对简单。另外,也可以直接拖动一个外部图标到VI图标窗口,将它作为模板并做简单的修改,以满足自己特殊的需要。

编辑完VI,保存,文件的扩展名自动命名为VI。1.3.2 调用子VI

在上一节中,我们创建了一个完整的子VI。它包括前面板、程序框图、连接板和图标四个组成要素,可以完成一个二次函数的计算功能。

LabVIEW程序具有典型的层次结构,VI之间的相互调用形成一个完整的程序。在一个VI中调用另一个VI,有如下几种方法。

◆ 在函数选板中选择“VI”选项,弹出VI选择对话框。它类似于

通用文件对话框,用于选择合适的VI。

◆ 找到相应的VI文件,直接拖动到程序框图窗口。

◆ 如果需要调用的VI处于打开状态,直接将子VI在前面板或程序

框图的图标拖动到程序框图,如图1-24所示。图1-24 直接拖动打开的子VI的前面板或程序框图图标

◆ 如果建立了项目文件,直接拖动项目文件中的VI,如图1-25所

示。图1-25 拖动项目文件中子VI的文件图标到程序框图1.3.3 VI的属性设置

对象是个虚拟的综合的概念。前面板和程序框图本身就可以称为前面板对象和程序框图对象,输入控件、显示控件和装饰控件也是对象,包括接线端子和连线板也都可以称做对象。

对于输入控件和显示控件可以通过快捷菜单弹出属性对话框,然后在对话框上设置控件对象的各种属性。VI也是对象,同样具有各种属性,在菜单栏中,选择“文件”→“VI属性”,或者使用快捷键Ctrl+I,可以弹出“VI属性”对话框,如图1-26所示。

学习笔记 使用快捷键Ctrl+I可以打开“VI属性”对话框,设置VI的各种属性。“VI属性”对话框中包含VI的大量信息。有些属于查询信息,处于只读状态,不能更改。有些属于可设置的属性,比如VI的外观、位置等。如图1-26所示,VI属性包括以下几个分页。图1-26 “VI属性”对话框1.常规“常规”页面提供了几个重要的信息,包括VI文件名、文件存储的实际位置、当前修订版本号和VI图标信息。在“常规”页面中,还可以更改VI图标。当然如果VI已经打开,则可以在其中直接修改。“常规”页面中一个重要的功能是设置版本修改信息。每次对VI进行重大修改,都可以添加说明信息,比如修改原因、增加的功能等。单击“重置”按钮,可以将版本号重置为0。

学习笔记 通过“VI属性”对话框可以查看VI的实际存储位置。2.内存使用

程序的优劣在很大程度上取决于内存的使用情况,在“VI属性”对话框的“内存使用”页面上,可以查看VI当前占用内存的情况和VI占用硬盘空间的大小。

VI占用的内存空间分为前面板对象、程序框图对象、代码空间、数据空间四部分。

学习笔记 在“VI属性”对话框上,可以查看内存使用情况和VI占用的硬盘空间大小。3.说明信息

类似于控件对象的说明。其他VI调用这个VI时,在即时帮助窗口显示该说明。说明信息既可以存储于VI本身,也可以存储于帮助文件中。4.修订历史

设置提示输入修订信息的触发条件,包括每次保存VI时添加注释、关闭VI时提示添加注释、保存VI时提示输入注释、记录由LabVIEW生成的注释。5.编辑器选项

这个页面上可以设置VI的前面板和程序框图的网格线的大小。在菜单栏,选择“工具”→“选项”,在打开的对话框上也有网格线的设置选项。不同的是这个对话框中设置的是LabVIEW的基本工作环境,对所有后来创建的VI都起作用,而在“编辑器选项”中的修改只是对该VI起作用。“编辑器选项”页面中还可以设置自动创建控件时控件的样式,比如通过函数接线端子自动创建。控件样式可以选择新式、经典、系统三种样式。6.保护

控件对象可以通过工具栏锁定,防止用户非法编辑控件对象。“保护”页面中也可以设置锁定选项,以防止未经授权而更改VI,不过此时锁定的是整个前面板和隐藏的程序框图。如果想查看程序框图或者更改前面板,必须通过“保护”属性页解除锁定。

更严格的锁定方式是用密码锁定。我们可以设置密码,没有密码的用户是无法打开VI程序框图的。这样既实现了前面板的锁定,又保护了源代码。不过需要注意的是必须精心设计密码,一旦自己忘记了密码,是没有任何方法解锁的。

学习笔记 设置VI密码,可以防止其他人员查看程序框图或者修改前面板。7.窗口外观

在这里可以选择VI的几种外观方式。当然通过属性节点也可以设置外观方式。窗口外观有顶层VI、对话框、默认、自定义四种方式,它们的区别在于是否显示主菜单,是否显示工具栏,以及是否显示窗口最大、最小、关闭按钮等。8.窗口大小“窗口大小”页面用来设置前面板的最小尺寸,包括宽度和高度,单位是像素点。VI的前面板中没有直接显示出面板的大小尺寸,可以通过“窗口大小”属性页间接查看前面板的尺寸。

当单击“设置为当前前面板大小”按钮后,“宽度”框和“高度”框显示当前前面板的宽度和高度,并把当前宽度和高度作为最小宽度和高度。设置最小宽度和高度后,如果缩小前面板,最小只能达到设定的最小尺寸,扩大则不受影响。

另外,也可以直接通过输入宽度和高度数值的方法,直接定义VI前面板的最小尺寸。如果当前面板的尺寸小于设定尺寸,LabVIEW将自动调整前面板到设定的最小尺寸。利用这个方法可以精确设置前面板的尺寸,如图1-27所示。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载