您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > labview第5章-创建子VI
第5章创建子VILabVIEW中的子VI(SubVI)类似于文本编程语言中的函数。一般来说,如果在LabVIEW中不使用子VI如同在编程语言中不使用函数一样,是不可能构建大的程序的。通过构建和使用子VI能方便的实现LabVIEW的层次化和模块化编程,把复杂的编程问题划分为多个简单的任务,使程序结构变得更加清晰、层次更加分明、程序更加易读、调试更加方便。用户将常用的功能模块创建成子VI,不仅有效提高代码的使用效率,避免进行频繁的重复操作,也大大节省了编程时间。需要说明的是,一个子VI相当于一个子程序,子VI节点相当于子程序的调用语句,而不是子VI本身。子VI的控件和函数从调用该VI的程序框图中接收数据,并将数据返回至该程序框图。程序员用LabVIEW语言开发程序时,可以和C语言一样采用从顶向下的设计方法,用户每创建一个VI程序,都可以将其作为上一级VI的子VI节点来调用,实现其模块化编程,这是使用G语言编程的分层特性。一个子VI内可以调用多个子VI。本章将主要介绍VI的两种创建方法以及VI的调用、添加至用户库的方法。5.1图标的创建和编辑在调用VI的程序框图中,用图标来代表子VI。另外,子VI必须有一个正确连接端子的连接器来实现和它上层VI的数据交换。LabVIEW为每个程序创建默认的图标,显示在前面板和程序框图窗口的右上角。对默认图标的编辑可通过图标编辑器来完成。图5-1默认图标图5-2图标编辑窗口图5-3编辑后的图标5.2连接器端口的设置连接器作为一个编程接口,为子VI定义输入、输出端口数和这些端口的接线端类型。这些输入输出端口相当于编程语言中的形式参数和结果返回语句。当调用VI节点时,子VI输入端子接收从外部控件或其他对象传输到各端子的数据,经子VI内部处理后又从子VI输出端子输出结果,传送给子VI外部显示控件,或作为输入数据传送给后面的程序。从图标到连接器的切换方式如图5-4所示。图5-4从图标窗口到连接器的切换一般情况下,VI只有设置了连接器端口才能作为子VI使用,如果不对其进行设置,则调用的只是一个独立的VI程序,不能改变其输入参数也不能显示或传输其运行结果。如果需要对子VI节点进行输入输出,那么就需要在连接器面板中有相应的连线端子。用户可以通过选择VI的端子数并为每个端子指定对应的前面板控件或指示器来定义连接器。连接器的设置分两个步骤:(1)创建连接器端口,包括定义端口的数目和排列形式;(2)定义连接器端口和控件及指示器的关联关系,包括建立连接和定义接线端类型。如图5-5所示,快捷菜单的模式选项板提供了36种预定义的连接端口布局模式。用户可以选择所需的端口布局模式。图5-5选择连接器的模式定义端口如果定义的端口数超过所需端口数,用户可以不删除这些多余的端口。用户可以按需要选择端口和相应的控件或指示器建立关联,而对其他端口则不进行关联操作来使用多余的端口闲置。图5-6建立连接器关联关系图5-7设置端口连接类型5.3子VI的两种创建方法LabVIEW中子VI的创建有两种方法:一种方法是用现有VI创建子VI,另一种方法是选定内容创建成子VI。前一种方法把整个框图所示的程序创建成子VI是层次化编程的基础,后一种方法选定程序的一部分创建成子VI,相对前一种方法比较灵活机动。选定部分被子VI节点所取代实现程序的模块化编程并增加程序可读性。5.3.1现有VI创建成子VI将VI创建成子VI,关键是连接器的定义。下面就编写一个求两数较大值的程序,并将此VI创建成子VI。(1)创建一个如图5-8所示的VI,此VI用来求两个数中的较大值。图5-8创建VI求两数较大值(2)在程序框图的空白处单击鼠标右键,打开函数选板,从“比较”子选板中找到“大于等于?”函数和“选择”函数,完成如图5-8所示连接。(3)打开图标编辑器,为了显示此VI的功能,用户可以编辑如图5-8所示的图标。(4)切换到前面板,按前一节所示的方法选择连接器端口。图5-9选接器的设置(5)在前面板的文件菜单项中单击保存选项或另存为选项保存此VI。5.3.2选定内容创建成子VI当在设计程序的过程中需要模块化某段程序以使程序结构清晰或方便以后调用,用户可以使用选定内容创建成子VI的方法。下面就在LabVIEW中NI范例的基础上修改一个程序,并选定此VI的部分内容创建成子VI。步骤如下:(1)打开位于启动菜单右下角的“查找范例”选项,在弹出的“NI范例查找器”中双击BasicAmplitudeMeasurements.vi。(2)对如图5-10所示程序进行修改,修改后如图5-11所示。图5-10正弦信号的测量(3)要完成此子VI,首先要选定程序框图中的相应部分将其创建子VI,然后再对此子VI的图标和连接器进行修改。(4)对默认图标进行编辑,首先用截图软件截取幅值和电平测量节点图案,保存为BMP图片格式。图5-11框定要创建成子VI的程序内容图5-12框选的程序被子VI图标取代(5)在图标窗口单击鼠标右键,在快捷菜单选择显示连线板选项,此时子VI默认的连线端类型为如图5-14所示状态。(6)对子VI重命名并保存此子VI。图5-13对图标进行编辑替换图5-14对连接器默认值进行修改5.4添加子VI至用户库如果创建的子VI被使用的频率较高,为方便调用,用户可以把子VI添加进函数选板的用户库中。调用时只需从函数选板的用户库中找到所需要的子VI,拖动此子VI至程序框图即可完成调用。图5-15在用户库中插入子VI图5-16用户库面板子VI图标5.5子VI的调用除了把子VI创建到用户库,从用户库调用子VI用拖动到程序框图的方法外,用户还可以在主VI程序框图中通过“函数”选板上的“选择VI”子选板来打开子VI,实现调用。选择“函数”选板中的“选择VI”子选板后会弹出一个对话框,在对话框中选择需要调用的子VI,如图5-17所示。图5-17选择需要调用的子VI5.6VI的层次结构在编写复杂的程序时,不应把所有功能都放在一个框图中。用户应养成习惯,在框图中编写代码前先进行规划,预先确定结构层次以简化框图节省编程时间,并有利于调试代码。通常用户用自顶向下的编程方法,这样的程序结构很像倒立的树。图5-18VI层次结构窗口图标名称功能说明重做布局重新安排层次结构节点的位置,使连线交叉情况减少,连线缩短。使层次结构更加清晰垂直布局使层次结构窗口中的节点从上到下排列,根节点置于顶部,各子节点位于上一级节点下方位置水平布局使层次结构窗口中的节点从左到右排列,根节点置于左边,各子节点位于上一级节点右边位置包括VI库在层次结构窗口中显示/隐藏被VI使用的VI库中的程序包括全局变量在层次结构窗口中显示/隐藏被VI使用的全局变量包括自定义类型在层次结构窗口中显示/隐藏被VI使用的自定义类型表5-1VI层次窗口工具条功能说明所有有子VI的节点都有一个小的箭头,用于显示或隐藏其下属的子VI。在VI层次结构窗口中打开编辑菜单的查找选项,并在查找对话框中输入要搜索的词,用户就可以搜索指定节点,与输入字符相匹配的节点会在搜索结果框中显示,如图5-19所示。图5-19搜索层次在VI层次结构窗口直接从键盘输入搜索名也可以找到所需节点,但前提是这些节点在VI层次结构窗口内都是可见的。本章小结本章主要介绍了如何构建子VI。子VI类似于其他文本编程语言中的子程序,它是LabVIEW程序设计的基础。充分利用好子VI,能够使程序框图更加简化,并且程序也易于调试和维护。掌握如何建立和使用子VI是成功构建LabVIEW程序的关键之一。本章首先介绍了如何编辑VI的图标和如何进行连接器端口的设置,为了区别不同的子VI所实现的不同功能,有时需要为不同的子VI创建不同的图标以便于理解;然后详细介绍了两种创建子VI的方法(现有VI创建成子VI和选定内容创建成子VI)并结合具体实例进行说明。最后介绍了如何将一个子VI添加至用户库,如何调用子VI以及VI的层次结构。
本文标题:labview第5章-创建子VI
链接地址:https://www.777doc.com/doc-4682135 .html