在LabVIEW中处理错误

本节内容包含

无论对自己所创建的VI多么有信心,也很难预见用户可能遇到的每一个错误。如果没有错误检查机制,用户只知道VI没有正常工作,而错误检查却可以告诉用户错误的原因和出处。

自动错误处理

每个错误都有一个数字编号和相应的错误信息。

默认情况下,VI运行时如发生错误,LabVIEW会自动中断执行、高亮显示产生错误的子VI或函数,并弹出错误对话框。

如要禁用自动错误处理功能,请选择文件»VI属性,从类别下拉菜单中选择执行进行修改。如要对所有新建空白VI禁用自动错误处理,请选择工具»选项,在类别列表中选择程序框图进行修改。如要禁用VI中某个子VI/函数的自动错误处理功能,请将其错误输出端连接至其他子VI/函数的错误输入端,或连接至一个错误输出显示控件。

手动错误处理

除自动错误处理外,您也可以选择手动处理错误。举例来说,如果程序框图的一个I/O VI超时,您可能并不希望整个应用程序都停止运行并弹出错误对话框,而只是希望VI过一段时间再自动重试。此时您可以在LabVIEW的程序框图上实现这种错误处理机制。

位于对话框与用户界面选板上的LabVIEW错误处理VI和函数,以及大多数VI和函数的错误输入错误输出参数可用于管理错误。举例来说,如LabVIEW遇到了错误,您可使用不同类型的对话框显示该错误信息。将错误处理工具配合调试工具使用,即可实现程序的错误发现与管理。

程序包含任何形式的输入和输出(I/O)时都要考虑出现错误的可能性。几乎所有I/O函数都可返回错误信息。您应在VI中包含检查错误和恰当处理错误的机制,对于涉及I/O操作(如文件、串行、仪器测量、数据采集和通讯)的VI尤其如此。

LabVIEW错误处理VI、函数和参数可用于管理错误,例如在LabVIEW遇到错误时,在对话框中显示错误信息;或者通过编程修正错误,然后将该子VI/函数的错误输出端连接至“清除错误”VI的错误输入端,移除该错误。将错误处理工具配合调试工具使用,即可实现程序的错误发现与管理。

错误簇

LabVIEW中的错误处理遵循数据流模式,错误信息像数据值一样流经VI。您可将VI中的错误信息从头到尾连接起来,然后在结尾连接一个错误处理VI(如,简易错误处理器),来确定VI运行中是否产生了错误。VI中的错误通过错误输入和错误输出簇来传递。

VI运行时,LabVIEW在每个执行节点均进行错误检查。如没有检查到任何错误,则该节点正常执行。如检查到错误,LabVIEW将错误信息传递到下一个节点,同时停止执行错误节点的代码。之后的节点均依此处理。直到数据流结束,LabVIEW报告该错误。

要创建子VI的错误输入和错误输出,请使用错误簇输入控件和显示控件。

错误输入簇和错误输出簇包含下列信息组件:

  • 状态,是一个布尔值,发生错误时报告TRUE。
  • 错误码,是一个32位带符号整数,报告错误的数字代码。如错误代码非0,且状态为FALSE,则表示是一个警告而非错误。
  • ,是一个字符串,报告错误发生的位置。

解释错误

发生错误后,在簇边界内右键单击鼠标,从快捷菜单中选择“解释错误”,可打开解释错误对话框。解释错误对话框包含错误的相关信息。如果VI有警告,但没有错误,则快捷菜单中出现“解释警告”选项。

此外,通过帮助»解释错误菜单也可以访问解释错误对话框。

使用While循环处理错误

将错误簇连接到While循环或For循环的条件接线端可以停止循环。如将错误簇连接到条件接线端,则只有错误簇“状态”参数的TRUE/FALSE值会传递到接线端。一旦有错误发生,循环即停止执行。对于具有条件接线端的For循环,还必须连接一个数值至总数接线端,或者对输入数组启用自动索引,以确定循环的最大次数。如发生错误,或完成了设置的循环次数后,For循环即停止运行。

将错误簇连接到循环条件接线端上时,快捷菜单项“真(T)时停止”和“真(T)时继续”变为“错误时停止”和“错误时继续”。

图1所示,何时停止循环由错误簇和停止按钮决定。推荐使用这个方法停止大部分循环,因为此时无论主动要求或是遇到错误都能立即停止循环。

图1. 停止While循环

交互式LabVIEW入门课程

体验全新交互式LabVIEW入门课程,掌握LabVIEW基础概念。

继续学习

上一篇执行结构
查找LabVIEW范例下一篇