石鑫华视觉论坛

 找回密码
 注册会员
查看: 4130|回复: 3

[共享] 在NI LabVIEW中处理错误

[复制链接]
  • TA的每日心情
    开心
    2014-5-10 11:19
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]400FPS

    发表于 2014-4-21 16:24:22 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

    x
          无论您对自己所创建的VI多么有信心,您也很难预见到用户可能遇到的每一个错误。 若没有检查错误的机制,用户只能知道VI没有正常工作。 而错误检查可以告诉您为什么出错和在哪里产生了错误。
    自动错误处理

         每一个错误都有一个数字码和相应的错误信息。
         默认状态下,VI运行时LabVIEW会通过中断执行、高亮显示产生错误的子VI或函数,并显示错误对话框来自动处理每一个错误。
         选择文件嘀I属性,并从类别下拉菜单中选择执行可禁用当前VI的自动处理错误功能。 选择工具选项,并在类别列表中选择程序框图,可以禁用任何新创建的空白VI的自动错误处理。 如需禁用一个VI中的子VI或函数的自动处理错误功能,可将其错误输出参数与另一个子VI或函数的错误输入参数连接,或连接到一个错误输出显示控件。
    手动错误处理

         可以选择其它的错误处理方法。 例如,若程序框图上有一个I/O VI超时,但您并不希望整个应用程序都停止运行,同时也不希望错误对话框出现, 您可能想要VI重新再试一段时间。 在LabVIEW中,您就可以在VI的程序框图上进行这些错误处理设置。
         位于对话框与用户界面选板上的LabVIEW错误处理VI和函数,以及大多数VI和函数的错误输入和错误输出参数可管理错误。 如LabVIEW遇到了错误,可在不同类型的对话框中显示错误信息。 将错误处理和调试工具结合起来使用可以发现和管理错误。
         当进行任何形式的输入输出操作时,都要考虑产生错误的可能性。 几乎所有的I/O函数都返回错误信息。 在VI中包含错误检查,尤其是对于I/O操作(如文件、串行、仪器测量、数据采集和通讯),可以提供正确处理错误的机制。
         LabVIEW错误处理VI(error handling VIs),函数和参数可用于管理错误。 例如,如果LabVIEW遇到了错误,可以在对话框中显示错误信息。 或者可通过编程修改错误,然后通过连接子VI或函数的错误输出和清除错误VI的错误输入,删除错误。 将错误处理和调试工具结合起来使用可以发现和管理错误。
    错误簇

         LabVIEW中的错误处理遵循数据流模式。 错误信息就像数据值一样流经VI。 将错误信息从VI的开始一直连接到结尾。 在VI的结尾处包含一个错误处理VI,例如简易错误处理器,以确定VI的运行是否未出差错。 在所使用或创建的每一个VI中使用错误输入和错误输出簇将错误信息在VI中传递。
         当VI运行时,LabVIEW会在每个执行节点检测错误。 如果LabVIEW没有发现任何错误,该节点将正常执行。 如果LabVIEW检测到错误,该节点会将错误传递到下一个节点而不执行那一部分代码。 下面的节点也同样如此处理,直到最后一个节点。 在执行流结束时,LabVIEW报告错误。
    使用错误簇输入控件和显示控件创建子VI中的错误输入和输出。
         错误输入(error in)和错误输出(error out)簇包括以下这些组成信息:
    • 状态是一个布尔值,当错误产生时报告TRUE。
    • 错误码是一个32位有符号整数,它以数字方式识别错误。 一个非零错误代码和FALSE状态相结合可表示警告但不是错误。
    • 源是用于识别错误发生位置的字符串。
    解释错误

         错误发生时,在簇边界内右键单击鼠标,从快捷菜单中选择解释错误,可打开解释错误对话框。 解释错误对话框包含错误的相关信息。 如果VI有警告,但没有错误,快捷菜单将包括解释警告选项。
         通过帮助解释错误菜单也可以访问解释错误对话框。
    使用While循环(While Loops)处理错误

         可将错误簇连接到While循环或For循环的条件接线端以停止循环的运行。 如将错误簇连接到条件接线端,只有错误簇状态参数的TRUE或FALSE值会传递到接线端。 当错误发生时,循环即停止执行。 对于具有条件接线端的For循环,还必须为总数接线端连接一个值或对一个输入数组进行自动索引以设置循环的最大次数。 当发生一个错误或设置的循环次数完成后,For循环即停止运行。
         将一个错误簇连接到条件接线端上时,快捷菜单项Stop if True和Continue if True将变为错误时停止和错误时继续。
    如图1所示,错误簇和停止按钮可以决定何时停止循环。 推荐使用这个方法停止大部分循环,因为无论是要求停止循环或是错误出现时(产生错误时),循环就会停止。
    lv_error_1.gif
    图1.停止While循环

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-8-9 12:52
  • 签到天数: 307 天

    连续签到: 1 天

    [LV.8]800PFS

    发表于 2015-6-4 06:04:21 | 显示全部楼层 来自:甘肃省天水市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-11-5 15:40
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]200FPS

    发表于 2016-1-24 11:49:54 | 显示全部楼层 来自:广东省东莞市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-1-8 16:14
  • 签到天数: 34 天

    连续签到: 1 天

    [LV.5]500FPS

    发表于 2016-3-14 12:02:42 | 显示全部楼层 来自:广东省云浮市 电信
    机器视觉,专业的石鑫华视觉http://shixinhua.com,专业的东莞华视自动化科技有限公司http://visionbbs.com
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    LabVIEW HALCON图像处理入门教程(24.09)
    石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
    《LabVIEW Vision函数实例详解2020-2024》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-12-22 11:55

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表