LabVIEW编程技巧:如何处理VI程序中错误信息

       

目录

一、错误处理示例说明

二、错误处理方法

三、总结


        当我们在LabVIEW平台中写完程序交给用户使用时,一般情况下程序能够很好的运行,但在某些特殊情况下,用户进行某个操作时,会经常弹出错误提示框,报告你的程序出错误了,并导致整个程序的退出。如下面一个典型的错误提示信息下图所示:

             

                             

        这个时候会大大影响用户的使用体验,总是招来用户的各种抱怨。那么,这个时候我们就会思考,为什么程序员自己测试时一般不会出现或者很难发现这种错误,而到了用户手中就会经常出现各种莫名其妙的错误呢?

        答案很简单,程序员自己写代码时,已经形成了固定的思维,你会不自觉的按照固定的流程思路去操作你的软件,而对于用户来讲,他的操作可能是随心所欲的,未必按照你想当然认为的流程去操作,这个时候就需要我们在自己的程序中要具备完善的错误处理机制。

        下面通过一个例子来说一下LabVIEW程序中错误处理的简单方法。

一、错误处理示例说明

        做一个最简单的例子,其功能是获取某个文件的大小信息并在前面板上进行显示。

        其前面板及程序框图如下图所示:

 

        正常情况下,如在路径中选择或者输入文件名称“D:\data.txt”,程序正确的获得了该文件的大小并进行了显示。

        但如果你在路径控件中输入一个不存在的文件或者文件名称的格式不正确时,则会弹出本文开头时所示的错误提示框,并导致整个程序的退出。

二、错误处理方法

        上例中使用了“获取文件大小”函数,该函数的输入输出参数信息如下图所示:

                      

 

        该函数中,有一个“错误输出”参数,其是一个簇(相当于C语言中的结构体)类型,包含了三个成员变量,分别为“status”、“code”和“source”,指示了该函数在程序运行过程中是否有错误,当有错误的时候,布尔类型的“status”为真,并给出该错误的代码值和出错的源信息。

        因此,在VI程序中可根据簇中“status”的值来决定是否进行下一步的处理,将代码修改为如下:

                 

        上面代码中根据“错误输出”参数“status”的值进行处理,其值为假(不出错)时显示文件大小,其值为真(出错)时给用户弹出一个友好的提示框,提示文件路径输入错误,可重新输入。注意这种情况下与LabVIEW本身弹出的错误框提示是不同的,此时整个程序不会导致退出,可作下一步的处理。

        当然,也可以直接将“错误输出”参数连接到选择结构中,LabVIEW会自动处理,这样更简单一些,如下图所示:

              

         如果你想偷懒的话,你也可以直接将“错误输出”参数连接到一个显示控件上,当出错的时候也可以避免弹出错误提示框。只是,一般情况下这个显示控件是不会直接显示给用户看的(隐藏或放到显示区域外),所以此时用户不知道你的程序是否出错,只是程序没有反应而已,所以,这不是一种好的处理方法。

三、总结

        我们使用LabVIEW编写大型项目程序时,为了程序的健壮性、可靠性等,我们要尽量在程序中提供完善的错误处理机制,包括写自己的子函数时,也应该设计这种处理机制。

LabVIEW错误簇是一种数据类型,用于在程序传递错误信息。它由一个32位整数和一个错误信息组成。错误簇的32位整数被分为三个部分:错误簇号、错误代码和错误源。错误簇号用于标识错误簇的类型,错误代码用于标识错误的具体类型,错误源用于标识错误的来源。 在LabVIEW,当一个VI或函数执行时,它可能会产生一个错误簇。如果错误簇不被处理,它将被传递到调用该VI或函数的上一级。如果错误簇一直未被处理,它将一直传递到最上层的VI或函数,此时程序将停止执行。 以下是使用LabVIEW错误簇的示例: 1. 创建一个错误簇 在LabVIEW,可以使用“Error Cluster”函数创建一个错误簇。将其拖放到VI的Block Diagram,然后将其与其他VI或函数连接起来。当连接的VI或函数产生错误时,错误簇将传递到下一个VI或函数。 2. 处理错误簇 可以使用“Error Handler”函数来处理错误簇。将其拖放到VI的Block Diagram,并将其与错误簇连接起来。当错误簇被传递到错误处理器时,可以使用“Error Code”和“Error Source”函数来获取错误代码和错误源。然后可以根据错误代码和错误源来采取适当的措施。 3. 抛出错误簇 可以使用“Error In”和“Error Out”函数来抛出错误簇。将“Error In”函数拖放到VI的Block Diagram,并将其与其他VI或函数连接起来。当连接的VI或函数产生错误时,错误簇将被传递到“Error In”函数。然后,可以使用“Error Out”函数将错误簇传递到调用该VI或函数的上一级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值