2.5 LabVIEW的初步操作
具备了有关LabVIEW的上述基础知识后,就可以开始编写简单的VI了。
2.5.1 创建第一个VI
【例2.2】 输入两个参数A和B,求其平均数(简单起见,仅以求两个数的平均数为例),并将求得的结果显示在输出控件Result中。
解:按照下面的步骤,建立一个求平均数的VI。
(1)在装有LabVIEW编程语言的计算机(台式机、工控机、笔记本电脑、平板电脑)屏幕上,双击LabVIEW的图标,选择“文件”→“新建VI”,就会弹出两层界面,一个是前面板,另一个就是程序框图面板即后面板。如此,就已进入了LabVIEW的编程环境。
(2)首先进行前面板的设计,为此,将鼠标放到前面板上,选择“控件”选板→“新式”→“数值”→“数值输入控件”,选中“数值输入控件”,将其拖曳到前面板上,再将鼠标放到该控件图标的标签处,选中标签,将其改写为“A”。
(3)重复第2步,创建第二个“数值输入控件”,并将其标签改写为“B”。
(4)选择“控件”选板→“新式”→“数值”→“数值显示控件”,选中“数值显示控件”,将其拖曳到前面板上,再将鼠标放到该控件图标的标签处,选中标签,将其改写为“Result”。
(5)经过上述操作,前面板就已设计好了,接下来设计程序框图。将鼠标放到程序框图面板即后面板上,选择“函数”选板→“编程”→“数值”→“加函数”,选中“加函数”图标,并将其拖曳到框图面板上。
(6)重复第5步,在“函数”选板,经过“编程”→“数值”途径,找到“除函数”,并将其图标拖曳到程序框图面板上。
(7)经“函数”选板→“编程”→“数值”途径,找到“数值常量”(注意选择橙色的浮点数类型的“数值常量”),将其图标拖曳到程序框图面板上。
(8)用连线将各功能函数的图标连接起来。在程序框图面板上,将鼠标放到控件A的输出端处,当鼠标自动变成连线轴的形状时,单击,拉出一根线,一直连到“加函数”图标的一个输入端口上,然后释放鼠标左键,如此,就用一根连线实现了两个节点之间的数据传输。
(9)同第8步的操作方法,按图2.11所示,连接好其他所有的连线。
(10)连接好所有连线后,VI即程序就已编写好,就可以运行这个VI了。返回到前面板,单击工具条中的运行按钮即可,如图2.12所示。在前面板,可以改变控件A和B中的数值,再运行该VI,观察并验证Result输出的运算结果是否正确。
图2.11 求平均数VI的程序框图
图2.12 求平均数VI的前面板
(11)保存该VI,并将其命名为“求平均数”。
在这个VI中,A和B是输入控件,用于输入参数;Result是显示控件,用于输出结果;除数2是数值常量。
常见问题3:如何创建一个空白VI?
首先要双击LabVIEW的图标,来到如图2.13所示的初始界面。有两个途径可以创建新的VI。一个途径是选择“文件”→“新建VI”,随后会弹出两层界面,一个是前面板,另一个是程序框图面板,这样就创建了一个空白VI;另外一个途径是,在图2.13所示的初始界面中,单击“创建项目”,来到图2.14所示的界面,选择“VI”模板,单击完成,随后也会弹出两层界面,如此,也可以创建一个空白VI。
图2.13 LabVIEW初始进入界面1
图2.14 LabVIEW初始进入界面2
2.5.2 建立并调用子VI
在LabVIEW中,建立子VI有两个步骤:修改图标和建立连接器。下面以“求平均数”为例(即将“求平均数”作为某个VI中的一个子VI),介绍如何建立子VI。
1)修改默认的VI图标
双击前面板或程序框图面板右上角的默认图标,在弹出的界面中,利用选择工具选中默认的图标将其删掉,然后在“图标文本”中输入“平均数”,即对求平均数这个VI赋予专有的名称。如图2.15所示,单击“确定”按钮,退出该界面。
2)建立连接器
右击前面板右上角的连接器,从快捷菜单选择合适的模式。此处,可根据VI的输入输出参数个数来选择合适的逻辑连接模式,例如,对“求平均数”这个子VI,就应选择有3个端口的逻辑连接模式,如图2.16(a)所示;然后,选中连接器的各个端子,让其与前面板上的控件依次建立连接。具体方法是:单击连接器的某个端子,此时鼠标变成连线轴状态,再将鼠标在前面板的某个控件上单击一下,就完成了两者的连接,如图2.16(b)所示。按照上述方法将前面板上的其他控件与连接器的端子关联起来,最后完成情况如图2.16(c)所示。
完成上述步骤,一个子VI就建立好了。随后在新构建的VI中,就可以调用这个之前编写好的“求平均数”的子VI了。
图2.15 修改图标
图2.16 建立连接器
那么,如何在一个新的VI中调用子VI呢?方法很简单,在新建VI的程序框图面板中,打开“函数”选板→“选择VI…”,这时,LabVIEW会弹出对话框,找到保存在计算机中的“求平均数”VI,单击“确定”按钮后,就可实现在新建VI中调用“求平均数”这个子VI了。
如图2.17所示,将鼠标移至“求平均数”子VI的输入端子A处,当鼠标自动变成连线轴的形状时,右击,在弹出的快捷菜单中选择“创建”→“输入控件”,如此,LabVIEW就会自动生成一个名称为A的数值输入控件,并且已经将连线接好了。注意,这是一个非常实用的方法,其一个好处是快捷,而另一个好处是当你对所连接的端子到底能接受哪种类型的数据没有把握时,可通过这种方式先生成输入控件或显示控件,然后,再由所生成的输入控件或显示控件来确定端子的数据类型。
图2.17 为子VI生成输入控件和显示控件
按照相同的操作生成输入控件B和显示控件Result。调用子VI后的情况如图2.18所示。另外,当VI规模逐渐变大后,有时为了让VI的图形化程序代码在程序框图面板上显示得更加紧凑,可选择将某控件的图标显示为外形尺寸更小的简化形式的图标。仍以“求平均数”VI为例,如图2.19(a)所示,选中控件A,右击,弹出快捷菜单,将菜单中的“显示为图标”取消勾选,对控件B和Result也执行相同的操作。该VI的程序框图显示效果如图2.19(b)所示。
图2.18 调用子VI
图2.19 “显示为图标”取消勾选
2.5.3 生成应用程序
下面介绍如何将建立好的VI生成应用程序。具体实现步骤如下:
(1)双击LabVIEW的图标,在如图2.13所示的界面中单击创建项目,进入如图2.14所示的界面,选择项目,单击“完成”按钮。
(2)进入到如图2.20所示的界面,选中“我的电脑”,右击,在弹出的快捷菜单中选择“添加”→“文件”。
图2.20 新建项目
(3)在图2.21所示的界面中,选择刚才建好的VI,例如“求平均数”VI,这样,就将建好的“求平均数”VI添加到新建的项目中了,如图2.22所示。
图2.21 文件选择对话框
(4)在图2.22中,选中“程序生成规范”,右击,在弹出的快捷菜单中选择“新建”→“应用程序”。
图2.22 新建应用程序
(5)在如图2.23所示的界面中,在目标文件名下设置生成的应用程序名称。
图2.23 应用程序信息
(6)选中图2.24所示界面中左侧的“源文件”,选中“例2.2求平均数.vi”,将其添加进启动VI中。
(7)单击“生成”按钮,就会在项目保存的目录中生成相应的应用程序。
图2.24 应用程序源文件
(8)双击应用程序,弹出的运行界面如图2.25所示。
图2.25 生成的应用程序界面
2.5.4 程序调试技术
有过编程经历的人,一定体会过查错的感受。当所编写的程序规模越来越大时,如何找到出错的原因,有时是非常令人苦恼的。下面,将以上述建好的“求平均数”VI为例,简单介绍在LabVIEW中如何进行程序即VI的调试。
如图2.26所示,将“2”与除法函数端子之间的连线删掉,随后便可以看到,程序框图面板上方工具条中的运行按钮会变成断裂的形状。当自认为已编好程序后,如果发现运行按钮处在断裂的状态,就说明程序中仍存在语法错误。这时,可以双击运行按钮(此时呈断裂状态),随即会弹出错误列表界面,如图2.27所示。可以看出,程序中有一处错误,选中此错误,下面会提供有关该错误的详细说明,可有助于对程序进行修改。例如现存的错误就是除法函数的一个输入端子未连上。另外,双击此处错误,LabVIEW会自动地对此错误进行定位,这个功能在调试规模大的程序时尤其有用。
图2.26 有错误的VI
图2.27 错误列表界面
上面提到的错误,属于程序语法错误。还有一类错误,是程序已经通过了编译,可以运行,但运行的结果并不是所期望的,也就是说,所编写VI的算法存在问题。对这类编程错误又该如何查找呢?就此,程序调试工具可提供帮助,即可以利用在2.3节中介绍的程序调试工具进行查找。
程序调试工具之一,是位于程序框图面板工具条中的“高亮显示”按钮,其外表像个灯泡;“高亮显示”按钮的默认状态为灯灭。单击“高亮显示”按钮,灯泡会变成点亮状态,此条件下,再单击运行按钮,程序的运行会变慢,并且会显示出程序运行时实际发生的数据流过程,如此,可以帮助查找存在的问题,如图2.28所示。
图2.28 “高亮显示”执行过程
“高亮显示”通常可以与探针工具配合使用。如图2.29所示,将鼠标放置在需要观察的连线上,右击,在弹出的快捷菜单中选择探针,生成的探针如图2.30所示。如此,可以观察加法函数的输出结果,也就实现了对程序中某段算法结果的监测,可帮助找到出错的地方。
图2.29 在程序框图中创建探针
另外,可以将“断点”和“探针”工具配合使用(此时,可将“高亮显示”关掉,使灯泡处在熄灭的状态)。如图2.31所示,在所关注的连线处右击,在弹出的快捷菜单中选择“断点”→“设置断点”,生成的断点如图2.32所示;然后再创建“探针”,如图2.33所示。随后,单击程序框图面板上的运行按钮,程序会在断点处暂停,探针中会显示当前连线中变量的数值,如图2.34所示,然后,可以利用程序框图面板工具条中的“单步执行”工具使程序继续运行。
图2.30 在程序框图中生成的探针
图2.31 在程序框图中创建断点
图2.32 在程序框图中生成的断点
程序调试完成后,可以清除断点,程序就会跳出调试模式,回到正常的运行状态。清除断点的方式如图2.35所示,将鼠标放置在断点处,右击,在弹出的菜单中选择“断点”→“清除断点”,即可将断点清除掉。也可以在工具选板中,如图2.36所示,将鼠标的状态变为“断点”的状态,然后在有断点的连线处单击一下鼠标,即可将断点清除掉。
图2.33 在断点处创建探针
图2.34 运行程序情况
图2.35 清除断点
图2.36 设置/清除断点