LabVIEW宝典,,, 字,比如图1-15左上角第一个图标显示的文字是上边缘。结合它的图标很容易看出,它是以对象 的上边缘为基准,沿垂直方向均匀分布的。 需要注意的是,图1-15最右边上下两个图标分别是垂直压缩和水平压缩。选择这两个选项,可 以使所有选择的对象沿垂直方向或水平紧密排列。紧密排列功能在程序框图设计中使用得非常广泛。 这里以程序框图为例,简单地说明一下对齐和分布的使用方法。首先选择要对齐的对象集合, 用矩形框选方式,选择“对齐对象”中的“左边缘”。然后选择“分布对象”中的“垂直压缩”, 这样输入控件对象的排列就完成了,具体操作如图1-16所示。 来●名》指作银制, 图图 塑飞 围 品成罔网网 图1-15分布对象 图1-16左边缘对齐,垂直压缩分布 对于前面板中的对象采用同样方法,进行对齐和垂直压缩后,极大地节省了前面板和程序框 图的空间,同时使连线变得更加简单整洁。对齐、分布是LabVIEW程序员必须掌握的基本技能, 整理后的效果如图1-17所示。 图1-17左边缘对齐,垂直压缩分布效果图 3.调整大小 创建一个对象后,经常需要修改其大小,尤其是前面板对,出如输入控件显示熔件和装怖等 移动光标到某个控件上,如果光标指针是常见的箭头方式,表示目前的工具是定位/调整大小选择状 态。如果控件的大小允许调整,对象的四周和中间会出现方框标记,表示这个方向可以调整大小 移动光标到方框标记上,光标箭头变成缩放状后,按住鼠标左键沿某一方向拖动,就可以更改对 象的大小了。这里的对象不仅仅指控件对象,也包括标签、标题等其他元素。但是采用鼠标拖动 的方法,无法精确控制对象的大小尺寸。在开启网格对济的情况下,鼠标定位的最小单位是一个 网格。一个网格到底是多少呢?首先我们需要确定的是网格大小的基本单位是什么,无论是前面 板还是程序框图,或者前面板和程序框图中的对象,都是以像素点作为基本单位的
444第章打开LabVIEW编程之门 学习笔记LabVIEW中对象的大小是以像素点作为基准单位的。 LabVIEW前面板和程序框图中的网格大小是可以设置的。默认情况下,前面板的每个网格为 12个像素点,程序框图网格为16个像素点。对于新创建的M,可以在菜单栏中选择“工具”→ “选项”",打开“选项”对话框,如图1-18所示。在这里,可以查看和设置网格大小。 数mm 图1-18“选项”对话框 在这个对话框中,我们不但可以设置网格的大小,还可以设置网格相对于背景的对比度。当 我们新创建一个对象时,新对象是有默认大小的。而这个默认大小可能不是网格对齐的,开启“缩 放新对象以匹配网格大小”功能,可以强制新创建的对象调整大小尺寸,自动适应网格大小。另 外,有的对象无法在水平和垂直两个方向同时对齐,这时LabVIEW会自动选择一个合适的方向单 方向对齐。 学习笔记前面板默认网格为12个像素,程序框图默认网格为16个像素。 LabVIEW的前面板和程序框图并没有直接显示每个对象的大小,不过可以通过以下方法查看 控件对象的大小。 ◆在快捷菜单上,选择“属性”,然后在打开的“属性”对话框中查看当前控件对象的大小。 ◆单击工具栏中的“调整对象大小“按钮,弹出“调整对象大小”对话框,如图119所示。 行调参时童大本 文■ 图119“调整对象大小”工具按钮和“调整对象大小”对话框 444415
LabVIEW宝典,,,, 在上述对话框中不仅可以查看到控件对象的大小,更重要的是可以按照像素点修改控件对象 的大小,其中有的对象只允许单方向调整。图119所示的例子就只允许调整对象的宽度。 “调整对象大小“对话框是个较常用的对话框,在其中不仅可以查看和调整单个对象的大小, 更还可以同时调整对象集合,使对象集合中的对象具有同样的宽度或者高度。 “调整大小”工具栏中其他几个按钮非常容易理解,都是作用于所选取的对象集合的,其功 能分别为设置最大宽度、最小宽度、最大高度、最小高度。 4.重新排序 工具栏中有关对象布局的最后一项是重新排序,它包括3项基本功能。 (1)组合 功能相关的对象可以组合成一个组,作为一个单独的对象,统一进行复制、移动、删除等编 辑操作,组中包含的对象的相对位置保持不变。 在一个包含大量对象的界面中,采用对象组合是非常必要的。对于已经对齐、大小调整好的 对象,难免会出现误操作,比如移动了不应该移动的控件,而后续又执行很多的操作。这时如果 想恢复到移动前的状态,不得不执行编辑菜单中的撤销操作,而撤销操作是一步步进行的,这样 出现错误后所有有用的编辑操作都被撤销了。 在一个复杂的界面中重新分布对象也是非常困难的,因此非常有必要在一些对象元素完成编 辑后,将它们组合成一个组。通过组合成组的方式,可以非常方便地实现GU!界面模块化。 图120中,四个方向键分别控制上、下、左、右四个方向。这几个控件对象的大小相同,功 能相似,它们组合在一起后,可以统一地移动,而相对位置保持不变。 图1-20对象组合 (2)锁定 锁定与组合不同,组合是针对对象集合的,一个单一的对象是不可能组合的,而锁定功能既 可以针对单一对象,也可以作用于整个对象组合。 锁定后,不允许对被锁定对象进行任何编辑操作,包括移动、删除、克隆等,甚至无法调用 属性对话框修改属性。如果要编辑对象,必须通过“解锁”操作解除锁定,然后才能自由编辑锁 定的对象。 学习笔记对象编辑完成后,组合和锁定对象或者对象集合,可以有效防止误操作。 (3)重新排序 LabVIEW并没有像某些软件一样在窗口显示对象的坐标,原因在于前面板的坐标原点是相对 的、可移动的,并不能真正体现对象相对于前面板窗口的绝对位置。 16
4第章打开LabVIEW编程之门 仔细观察LabVIEW的前面板,有两条网格线比较特殊,它们是加深显示的,并且显示一个交 叉黑点。这个交叉点就是前面板窗口客户区的坐标原点。之所以强调前面板窗口客户区,是因为 前面板也是一个窗口。它也具有宽度和长度属性,它本身的位置属性也是由一个点的坐标簇构成 的,不过这个坐标是相对于计算机桌面的。 LabVIEW的对象对于垂直于屏幕的方向是有次序的,它按照对象的创建次序自动分配。越往 后创建的对象相对于操作者“越近”,或者说它的次序越高。如果发生对象重叠的情况,次序高 的对象将全部覆盖或者部分覆盖次序低的对象】 LabVIEW可以通过工具栏中的"“重新排序”按钮来调整相对于操作者的对象的显示次序,效 果如图1-21所示。 对象组合 改变次序 图1-21对象组合、锁定及改变次序 1.3V1及其属性对话框 在C语言中,函数是程序的基本单元,一个函数包括输入参数、输出参数和返回值。LabVIEW 中M的概念和函数非常相似,它的输入参数就是输入控件,它的输出参数就是显示控件,C语言 的函数只能有 一个返回值,而LabVIEW的M可以有多个返回值,LabVIEW的数据流有点类似于 C语言的值传递过程。 1.3.1V1的层次结构 M是Virtual Instruments的缩写,它类似于C语言中的函数。在C语言中函数可以完成独立 的、特殊的功能。函数可以被上一级的函数调用,被调用的函数称子函数。LabVIEW也,是类似的, 如果一个M被上一级M调用,被调用的M称为子M,这是基本的模块式编程方法。LabVIEW的 “查看”菜单中提供了一个非常有用的功能—M层次结构。 M层次结构有自顶向下和自左至右两种不同的显示方式。图1-22所示的是典型的树型结构, 根部称做应用程序实例,与之紧密连接的是顶层M。这是显示给用户的交互GU1,顶层Ⅵ调用了 6个子M,双击任何一个M图标,可以直接打开子M。 顶层M类似于C语言的main函数,这是应用程序的入口点。从M名称上看,顶层M和 般的M命名无任何区别。这是一个不同于其他编程语言的一个显著特点。也,就是说,任何一个 M,既可以作为顶层M,又可以作为子M。 前面已经知道M是由前面板和程序框图组成的,而且可以单独运行。但是如果把它作为子 M,则仅有前面板和程序框图是不够的,因为一般上一级函数都需要向子函数传递参数,然后由 子函数返回处理结果,这种传递参数与返回结果的功能在M中是通过连线板来实现的。 44417
LabVIEW宝典 日 图1-221的层次结构 还有一个重要的组成部分 图标。在上一级的程序框图中,子M是以图标的方式显示的。 在图1-22中,Test0、Test1、Test2、Test3就是图标代表的M。 学习笔记完整的1由前面板、程序框图、连接板和图标组成。 下面通过建一个计算一次函数的子1,来介绍建立八的完整过程 已知二次函数Y=AX?+BX+C,其中Y作为计算结果应该是输出,而A、B、C、X是作为参 数输入的。因此建立的M应该包括X、A、B、C四个输入控件,一个显示结果Y的显示控件。前 面板与程序框图,如图1-23所示。 。田 图1-23二次函数子1 创建前面板和程序框图后,右击前面板中右上角的图标,在快捷菜单中选择“显示连线板” 项。利用工具选板中的连线工具,单击连线板中的端子和前面板中的控件。这样就确立了前面板 控件与连线板的 对应关系,相当于C语言中建立形式参数的过程。 双击图标,即可启动图标编辑器。在图标编辑器中,修改Ⅵ图标。图标编辑器与常规的图标 编辑方式基本相同,也可以直接选择外部图标文件。 我们曾经创建过计算Y=X+B的M,严格地说它还不能算是子M,原因是我们并没有分配 连接板端子和制作相应的图标。而图1-23已经是一个完整的子了,它包括了前面板、程序框 图、连接板和图标四个要素。 LabVIEW的子M可以单独测试,它与常规编程语言相比,具有极大的优势。常规语言的函 数测试是非常麻烦的,需要专门做一个显示界面来显示测试结果,或者用打印语句输出中间运行 结果和运行过程。而LabVIEW的M是一个非常强大的模块式结构,每个M模块都可以单独运行, 模块之间不需要紧密的数据连接,非常有利于数据结构的封装。 V是通过连线板实现参数的输入和输出的。连线板位于前面板和程序框图的右上角。根据 18