引言 LabVIEW是一种简单易学、形象直观的图形化编程语言,也称为G语言,具有丰富的同传统仪器外观类似的控件库(如旋钮、仪表盘、温度计、波形图表等),可以构建漂亮专业的用户界面,同时,内部提供了庞大的函数库(如数据采集、GPIB、串口控制、数据处理、数据显示及数据存储等),可以满足各行业各领域的开发需求。另外,由于它并非一种封闭的语言,而是具有强大的外部接口能力,可以实现与C/C++、Basic、Matlab等编程语言互通的能力,现在,LabVIEW不仅仅局限于虚拟仪器软件类的开发,而是已经发展成为了一种通用的、完善的、开放的高级编程语言。 目的 在LabVIEW中创建一个子VI程序同创建普通VI程序相似,唯一的区别在于,子VI程序功能实现后还需要定义图标/连接口。定义图标的目的是,当在主VI中调用该子VI时,程序框图上会显示该子VI的图标,让使用者看到该图标就可以马上知道你这个子VI的功能。定义连接口的目的是,规定调用者调用该子VI时需要传递的各个参数,类似C语言中子程序的各个参数的数据类型定义。 下面通过一个例子演示在LabVIEW编程环境中,创建及调用子VI程序的方法,这个例子的功能是产生一个a-b之间的随机数。 前面板设计 新建一个VI程序,在前面板上放置2个输入型数值控件和1个输出型显示控件,其数据类型都使用默认的double型,控件名字分别改为a、b和c,对应了该子程序需要的2个输入参数a、b和1个输出参数c,保存名字为"MyRandom.vi",前面板如下图所示: 程序框图代码设计 在框图程序代码实现中,需借助于LabVIEW中内置的函数"随机数(0-1)",该函数均匀产生一个0-1之间的双精度浮点数,其函数原型如下图所示: 设该函数输出的值为r,则要产生一个a-b之间的随机数,基公式是:(b-a) * r + a,设计完成后的程序框图如下所示: 图标/连接口设计 功能通过程序框图代码实现后,下一步需要定义图标/连接口。 对于图标的定义,其原则是能做到主让人望文生义,看到图标能让人联想到该子程序主要实现的功能即可。鼠标左键双击前面板右上角图标区域,打开图标编辑器,设计完成后的图标如下图所示: 对于连接口的定义,主要目的是定义该函数的输入输出参数。该子VI程序包括2个输入1个输出,所以首先鼠标右键单击前面板右上角连接口区域,在右键菜单中改变接线端的模式,选择左2右1的形式,如下图所示: 接线端的模式更改完成后,将鼠标移动到连接口区域,鼠标形状会变为待连线形式,先选择单击左上角端口,再单击前面板上的控件b,则定义了连接口左上角的参数为b,然后依次定义连接口的左下角参数为参数a,右边参数为输出参数c。 按"Ctrl+S"快捷键,保存程序。到此为止,就完成了子VI程序的功能实现及图标/连接口的定义,其图标/连接口如下所示: 为便于使用,也可以对该子程序进行说明,在菜单中选择"文件"——>"VI属性",打开当前VI属性配置窗口,切换到"说明信息"页,在VI说明中输入该子程序的功能,如下图所示: 保存程序后,将鼠标移动到前面板右上角的图标/连接口区域,显示该程序的快捷提示窗口(若没显示,按"Ctrl+H"快捷键可调出)如下图所示,完整提示了该子VI的参数定义及功能说明信息: 子程序调用测试 新建一个主程序VI,保存名称为"Main.vi"。在程序中调用上面的子VI,使用For循环产生10个50-90之间的随机数,将结果输出到数组x中。程序框图代码如下图所示: 程序运行结果如下图所示,在前面板上输出了10个50-90之间的随机数组: 结论 上面通过一个例子完整演示了LabVIEW编程环境中子程序的创建及调用方法,相对于其它编程语言,还是比较简单直观的。