错误处理
- 更新时间2025-08-27
- 阅读时长4分钟
即使在非常可靠的VI也可能生成错误。如没有建立错误检查机制,仅能确定VI不能正常工作。通过错误检查可判定VI中错误发生的原因和错误出现的位置。
例如,执行任意类型的输入和输出(I/O)为生成错误的一个常见场景。几乎所有的I/O函数都会返回错误信息。应在VI中包括错误检查,尤其对于文件、串口、仪器测量、数据采集和通讯等I/O操作更应如此,并提供一个恰当的错误处理机制。
自动错误处理
默认状态下,LabVIEW将通过挂起执行、高亮显示出错的子VI或函数并显示错误对话框的方式,自动处理每个错误。
禁用自动错误处理
如需使用其他错误处理方法,可禁用自动错误处理。例如,如程序框图上的I/O VI已超时,用户可能需要该VI继续等待指定的时间,而不是通过自动错误处理中止应用并显示错误对话框。可在VI的程序框图上使用自定义错误处理。
关于禁用不同类型VI的自动错误处理的详细信息,见下表。
| VI类型 | 禁用自动错误处理 |
|---|---|
| 当前VI | 选择文件»VI属性。在类别下拉菜单中选择执行,取消勾选启用自动错误处理复选框。 |
| 新建空白VI | 选择工具»选项。在类别下拉菜单中选择程序框图,取消勾选在新VI中启用自动错误处理复选框。 |
| VI内部的子VI或函数 | 在子VI中创建错误输出显示控件,或连线子VI的错误输出参数至另一子VI或函数的错误输入输入端。 |
其他错误处理方法
LabVIEW中的错误处理遵循数据流模式,与数据值在VI中的数据流类似。错误信息从VI的起点一直连接到终点。错误处理VI与一个VI连接后可确定该VI的运行是否未出差错。错误输入和错误输出簇用于在VI中传递错误信息。错误簇通常提供相同的标准错误输入和标准错误输出功能。错误簇为数据流向参数。
例如,下图为带有标准错误簇的VI。
VI运行时,LabVIEW会在每个执行节点检测错误。如LabVIEW没有发现任何错误,则该节点将正常执行。如LabVIEW检测到错误,则该节点会将错误传递到下一个节点且不执行那一部分代码。后面的节点也照此处理,直到最后一个节点。执行流结束时,LabVIEW报告错误。
关于错误输入和错误输出簇的元素信息,见下表。
| 簇元素名称 | 簇元素说明 |
|---|---|
| 状态 | 布尔值,产生错误时布尔值为TRUE |
| 代码 | 标识错误的32位有符号整数。一个非零错误代码和FALSE状态相结合可表示警告但不是错误 |
| 源 | 标识错误发生位置的字符串 |
在LabVIEW中开发和实现自定义错误处理。位于对话框与用户界面选板上的LabVIEW错误处理VI和函数,以及大多数VI和函数的错误输入和错误输出参数可管理错误。如LabVIEW遇到了错误,可在不同类型的对话框中显示错误信息。
LabVIEW中的VI和函数以两种方式之一返回错误 - 数值错误代码或错误簇。通常,函数以数值错误代码返回错误,而VI以错误簇,即误输入和错误输出来返回错误。
将错误处理和调试工具配合使用可发现并处理错误。
参照下表了解使用错误簇的常见方法范例。
| 方法 | 说明 |
|---|---|
| 停止带有错误簇的循环 | 连接错误簇至While循环的条件接线端或带有条件接线端的For循环,以停止循环的运行。连线错误簇至条件接线端时,仅错误簇的状态参数的TRUE和FALSE值被传递至接线端。当错误发生时,循环即停止执行。并且True时停止和True时继续快捷菜单选项也相应地分别变为错误时停止和错误时继续。对于具有条件接线端的For循环,还必须为总数接线端连接一个值或对一个输入数组进行自动索引以设置循环的最大次数。当发生一个错误或设置的循环次数完成后,For循环即停止运行。 |
| 根据错误状态执行代码 | 连线错误簇至条件结构的选择器接线端时,条件选择器标签具有两个分支:错误和无错误。如有错误发生,条件结构将执行错误分支。子VI和错误处理模板VI相结合可创建带有错误处理条件结构的VI。条件结构边框颜色也发生更改。红色为错误条件分支,绿色为无错误条件分支。 |