欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    LabVIEW程序调试与异常处理.ppt

    • 资源ID:5436942       资源大小:1.68MB        全文页数:69页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    LabVIEW程序调试与异常处理.ppt

    LabVIEW程序调试与异常处理,Intelligent Electronics InstituteHuazhong University of Science&Technology,2,目录,概述LabVIEW错误信息内置异常处理工具LabVIEW异常处理过程LabVIEW程序调试技术,概述,3,4,概述,对程序开发人员来说,异常处理和程序调试都是非常重要的编程技术。异常处理是针对程序代码在运行时可能出现的错误,进行预定义处理过程的技术。异常处理技术可以在系统发生错误的情况下,保证系统的正常退出和释放系统资源而不会引起整个系统崩溃的发生。程序调试是用于查找和纠正程序代码在编写或运行时出现的错误的技术。,5,概述,程序调试程序开发人员借助调试工具,针对程序执行中发生的某个特定错误,进行原因查找、错误分析、修改程序并最终解决错误的过程。,产生错误的原因很多要求熟悉代码充分利用调试工具,6,概述,异常处理处理程序在执行过程中不期望发生的事件。,例如:整型变量x被整型变量y除的结果作为另一个计算的输入。有时y 可能会被设为0。,错误捕获错误处理,LabVIEW错误信息,7,8,LabVIEW错误信息,在系统中对错误进行分类、定义错误标识和信息存储数据格式等,是实现异常处理过程的基础。,LabVIEW中错误的分类I/O错误由程序试图对外部仪器、文件或其它应用程序进行操作所致。逻辑错误由程序代码的缺陷所致。,9,LabVIEW错误信息,错误簇,错误簇(Error Cluster)为程序员提供了一个探测机制。这个簇包含状态(Status)、代码(Code)和源(Source)三个控件,分别反映一些错误信息。,10,LabVIEW错误信息,错误簇,状态是一个布尔量,有错误时返回“真”;代码是一个32位单精度整型数据,用于区分不同的错误;源是一个字符串,提供了错误源信息。,11,LabVIEW错误信息,错误簇一个错误簇输入输出的例子,该例中,使用“错误输入”和“错误输出”簇就可以实现错误探测,捕获仪器发送和接收数据过程中出现的错误信息。,12,LabVIEW错误信息,错误簇运用错误簇调整VI执行顺序,第二个驱动等到来自第一个驱动的错误信息后才会执行。因此调整错误簇信息的流向,就可以强制调整VIs的执行顺序。,13,LabVIEW错误信息,错误簇错误检查,在本例中,仪器返回“ok”则程序正常执行,否则程序输出自定义错误;从而有效的检测出仪器的正常工作与否。,14,LabVIEW错误信息,错误簇添加额外信息,将时间和调用链信息加到用户自定义错误信息中,就可以找到错误发生的时间和位置。同样,还可以将其它信息加到错误簇中去,为程序员提供更多的信息。,15,LabVIEW错误信息,错误代码,错误代码(Code)可以是正数或负数,由发生的错误类型决定。没有错误发生时为零。“警告”时,代码为非零值,但状态为“假”。本书附录B列出了代码的错误描述。,16,LabVIEW错误信息,错误代码,上图列出了相应错误的代码,以及错误的解释。,17,LabVIEW错误信息,I/O错误,对仪器或通信通道不正确的初始化或配置。对仪器或应用程序发送错误的命令或数据。在仪器或应用程序的使用中出现错误。缺少硬件或软件选项也会导致I/O错误。,18,LabVIEW错误信息,I/O错误简单的处理,首先对仪器进行初始化,然后配置测量参数,接着进行数据采集,最后关闭仪器连接。整个过程中可能发生的I/O错误通过错误簇传递,弹出错误对话框。,19,LabVIEW错误信息,逻辑错误由程序代码自身缺陷所致,没有把While循环跳出循环的条件设置正确导致的逻辑错误。在从事实际项目开发中可能会遇到一些更加隐蔽的问题,而这类问题又很难被发现,也无法借助调试工具来解决。,20,LabVIEW错误信息,逻辑错误循环中容易遇到的逻辑错误,当“键”数组为空时,循环不会执行,引用句柄不会传递到“close”端,从而导致文件关闭发生错误。解决办法:采用移位寄存器传递引用句柄。,21,LabVIEW错误信息,逻辑错误一些逻辑错误的解决办法,对输入的数据进行有效性验证。更详细内容请参考本书节。,22,LabVIEW错误信息,自定义错误用通用处理器进行自定义错误代码,把相似错误的错误代码归在同一组,以便发生错误时决定采用何种方法进行处理。,23,LabVIEW错误信息,内置异常处理工具,简易异常处理器 当有错误发生时,它会弹出一个对话窗,显示错误代码、简单的错误描述和错误发生的位置。通用异常处理器通用错误处理VI提供给程序员的可选项要多一些,因此可满足更多的需求。简易异常处理器是由通用错误处理器封装后构成的,减少了灵活性并增加了不必要的处理开销。因此,推荐使用通用错误处理器。,LabVIEW异常处理过程,24,25,LabVIEW异常处理过程,异常处理时机,在程序开发的过程中,需要考虑操作过程中可能出现的情况以及相应的结果。异常处理作为系统管理级的功能一般被放在程序的顶层进行。顶层程序控制着应用程序的流程,而异常处理可能会改变程序正常的执行流程,因为当有错误发生时,程序可能会根据不同的错误作相应的动作。,26,LabVIEW异常处理过程,一般处理模式依错误代码范围进行处理,最简单的错误处理方法可以用通用错误处理VI弹出一个对话框提示用户有错误发生。,27,LabVIEW异常处理过程,一般处理模式特定错误代码处理技术,在错误代码数组中查找错误代码;条件结构根据索引值执行相应的错误处理和提示。数组中没有查找到该错误代码,则提示“错误代码没有定义!”。,28,LabVIEW异常处理过程,循环处理模式while循环结构,错误通过移位寄存器来传递,在错误发生时,跳出循环。右图将错误簇直接连接到while循环结构的条件选择端,简化了编程。,29,LabVIEW异常处理过程,循环处理模式for循环结构,启用索引的for循环输出为数组,对于错误来说体积过于庞大,因此,使用移位寄存器来捕获错误,再在for循环的外部对捕获的错误进行处理。决不应该启用索引。,30,LabVIEW异常处理过程,条件结构处理模式,将错误簇直接连接到条件结构的分支选择器。绿色框为无错误分支,红色框为错误分支。,31,LabVIEW异常处理过程,状态机处理模式,异常处理代码放在同一地方,这样代码更容易修正;异常处理管理也可维持在主程序层或测试执行层。具体例子将在节中给出,32,LabVIEW异常处理过程,错误日志,错误日志用来记录程序执行过程序中遇到的错误,它将错误代码、源、简单的错误描述和错误发生的时间写入日志文件。这样有助于开发更具鲁棒性的应用程序。,我们可以将错误保存在文件或者数据库中,特别对无人值守的程序来说,以供之后管理人员查询并分析错误原因。,33,LabVIEW异常处理过程,错误退出,程序执行中出现致命的或不可恢复的错误时,应当合理地退出程序而不是继续执行,因为不正常地终止程序可能会导致一些意想不到的后果。终止程序前,先关闭所有的仪器I/O句柄、文件和通信通道,可最大化减少可能导致的问题。,34,LabVIEW异常处理过程,外部错误管理,通过动态加载外部处理程序来管理和处理错误。可以应用到应用程序中所有有同样需要的地方。可以被其它的应用程序调用。,35,LabVIEW异常处理过程,外部错误管理调用外部处理程序的过程,根据外部处理程序的路径打开该VI的引用;将错误簇信息通过“调用节点”传递给外部处理程序;运行外部处理程序;关闭调用。,36,LabVIEW异常处理过程,错误优先顺序,LabVIEW 中的功能和 VI 可以按照不同的风险来分类,帮助理解它们生成的错误类型并且评价关于给定应用程序的处理策略。不同类型的操作产生不同风险等级的错误,并在程序中表现出不同的行为。将函数选板上的节点分为三个风险等级,低、中和高,并由此把错误捕获区分优先次序。,37,LabVIEW异常处理过程,错误优先顺序低风险函数,在使用数学功能的VI时,LabVIEW 得体的处理了所有可能引起的问题,发生错误几乎是不可能的。他们属于低风险函数。,38,LabVIEW异常处理过程,错误优先顺序低风险函数,简单的数学功能不需要错误处理。同样,其它函数选板上不包含错误端的所有功能都不生成错误。这包括许多功能,可从结构、数组、簇和变量、布尔、字符串、比较和时间选板中调用。这是风险等级最低的一类函数。,39,LabVIEW异常处理过程,错误优先顺序高风险函数,这些节点依赖于外部的驱动程序或资源,而这些程序和资源可能出于各种不可预知的状态。包括以下I/O 操作选板的所有节点:文件 I/O、测量 I/O、仪器 I/O 和数据通信。,40,LabVIEW异常处理过程,错误优先顺序中等风险函数,具有错误端但不调用 LabVIEW 环境以外的资源。这些包括和前面板相关的属性节点、同步函数选板中的所有功能、控制本地 LabVIEW 程序的时的 VI 服务、大多数的快速 VI(除快速输入输出子选板中的 VI 以外)、扫描字符串和格式化写入字符串、以及数学 VI。,41,LabVIEW异常处理过程,错误优先顺序,低风险函数没有错误输出端,不需要进行任何的错误处理。高风险函数失败的 I/O 操作更可能引起调用应用程序发生错误。中等风险函数大多数中等风险 VI 生成的错误都有良好的表现,而不会引起很长的等待时间或崩溃。,42,LabVIEW异常处理过程,错误处理技巧,输入输出隧道对齐,错误输入输出端子放置在最下端正确识别警告和错误捕获到错误时忽略自身代码,快速的将错误传递下去错误发生后关闭已经打开的资源,43,LabVIEW异常处理过程,实例状态机模式进行错误处理,状态:open state,error state,close state事件:错误发生响应:在error state中处理错误,44,LabVIEW异常处理过程,实例状态机模式进行错误处理,Next State:判断下一个执行状态,同时也进行错误判断。Error Log:将错误写入错误日志。Error State:通过错误代码,判断是否退出程序。,45,LabVIEW异常处理过程,实例状态机模式进行错误处理,程序会判断是否为用户自定义的错误代码,如是则会执行相应的分支,否则会执行0选择分支。,46,LabVIEW异常处理过程,实例状态机模式进行错误处理,1选择分支执行后,将对应状态从状态序列中移除。这样程序会继续执行但不会执行删除了的状态。,47,LabVIEW异常处理过程,实例状态机模式进行错误处理,状态机的Close状态在程序正常结束或异常终止时都会执行,它的作用是关闭所有资源,是程序安全退出的通道。,48,LabVIEW异常处理过程,实例状态机模式进行错误处理,异常处理是在主程序层进行的,这样进行程序进程控制时不需要进入到底层VI。将错误处理代码和其它程序代码分开,避免了与其它程序代码相混淆,提高了程序的可读性。用状态机模式将异常处理代码集中在一起,提高了程序的可维护性和可调试性。,LabVIEW程序调试技术,49,50,LabVIEW程序调试技术,在LabVIEW中,程序调试工具可分为执行追踪、数据流追踪和特殊模式执行等。执行追踪通过对程序代码执行过程的控制,可以帮助程序开发人员逐步跟踪程序的执行情况,从而确定程序是否完全按照设计意图执行。数据流追踪通过显示程序执行过程中数据传递以及处理的情况,帮助程序开发人员沿着数据连线的方向跟踪数据变化,从而确定数据是否完全按照设计意图被处理。特殊模式执行包括悬挂执行、禁用部分程序框图等。,51,LabVIEW程序调试技术,错误列表,当运行按钮断开时,单击它,会弹出错误列表窗口。错误列表显示了当前程序框图中存在的数据流语法错误,如程序中存在坏的连线或“必需”接线端没有连接。,52,LabVIEW程序调试技术,错误列表,需要注意的错误项显示警告详细信息显示错误,53,LabVIEW程序调试技术,高亮执行,有利于程序员在程序执行过程中跟踪到程序中的一些Bug。数据通过连线上移动的数据流显示在程序框图上。便于观看数据的流向及实时数据。查看VI中的数据流动的全过程。,54,LabVIEW程序调试技术,单步执行,按照程序框图中程序节点的逻辑关系,沿连线逐个节点执行程序。单步步入工具按单步步入方式执行VI,每单击一次,程序执行一步,遇到循环结构或子VI时,跳入循环或子VI内部继续单步执行。单步步过工具按单步跳出方式执行VI,每单击一次,程序执行一步,遇到循环结构或子VI时,把循环或子VI视为一个节点来执行,不跳入内部。单步步出工具跳出单步执行VI状态,且跳出后暂停程序。,55,LabVIEW程序调试技术,探针工具,在程序调试中,使用探针工具,既可以探测个别节点的数据,又不减缓程序的执行过程。探针工具在工具选板上选择,也可以在程序框图中连线上右击,从弹出的快捷菜单中选择。,56,LabVIEW程序调试技术,探针工具通用探针,通用探针可显示查看流经连线的数据,但无法对数据做出响应。右击连线并选择“自定义探针通用探针”获取。默认添加的探针都为通用探针。,57,LabVIEW程序调试技术,探针工具内置探针,内置探针是显示连线中传输数据的综合信息的VI。内置探针可根据流经连线的数据做出响应。右击连线并选择“自定义探针带条件错误探针”获取。,58,LabVIEW程序调试技术,探针工具自定义探针,为更好地探测流经连线数据,可创建一个自定义探针。右击连线并选择“自定义探针新建”,打开“创建新探针”向导,选择“创建新探针”或“从现有探针创建新探针”创建自定义探针并保存。自定义探针可像VI一样进行调试,但不能探测其自身的程序框图,也不能探测其子VI的程序框图。,59,LabVIEW程序调试技术,探针工具显示控件,LabVIEW也可以把显示控件作为探针。通过“自定义探针控件新式图形波形图表”选择波形图表控件。,60,LabVIEW程序调试技术,探针工具制作自定义探针,对错误簇控件自定义一个探针。向导法自动生成“错误输入(无错误)”和“布尔”这两个控件,不能删除。,61,LabVIEW程序调试技术,保存连线值工具,保存连线上最近一次通过的数据。直接使用探针就可以查看该数据。,62,LabVIEW程序调试技术,断点工具,在程序框图上的VI、节点或连线上放置一个断点,程序运行到该处时自动暂停执行。,程序执行到一个断点时,因VI将暂停执行,即可采取以下操作:用单步执行按钮单步执行程序。在连线上添加探针查看中间数据。改变前面板控件的值。单击暂停按钮可继续运行到下一个断点处或直到VI运行结束。,63,LabVIEW程序调试技术,挂起执行,如果一个子VI被设置为挂起执行,那么被调用时会弹出它的前面板。,设置VI为挂起执行:在子VI菜单栏选择“操作调用时挂起”;在程序框图右击子VI的图标,选择“设置子VI节点调用时挂起”;在VI属性的“执行“选项页中勾选“调用时挂起”。,64,LabVIEW程序调试技术,使能部分程序框图,控制程序中某些部分框图能否被执行。程序框图禁用结构条件禁用结构,65,LabVIEW程序调试技术,使能部分程序框图程序框图禁用结构,程序注释禁用代码“禁用”和“启用”状态,66,LabVIEW程序调试技术,使能部分程序框图条件禁用结构,应用程序能够通过改变环境变量来控制某段程序是否执行或采用何种算法。定义了整个项目的环境变量后,该项目下的所有VI都共享这些环境变量。条件禁用结构的具体创建方法,请参照本书节实例。,67,提示与建议,在开发过程中考虑可能发生的错误,并适当地设置一些错误处理代码,以便探测和处理一些不可预料的错误熟悉常用的调试工具,掌握一些必要的调试技巧,以减少程序调试时间。,68,习题,1.简述一下错误处理和程序调试的重要性。2.简述一下错误处理和程序调试的联系和区别。3.LabVIEW中发生的错误主要分为哪两类,有何不同?4.简述一下错误处的作用和用法,怎么样进行用户自定义错误。5.错误处理的时机,有哪几种错误处理模式?并学会灵活运用。6.比较程序框图禁用结构和条件禁用结构。并参考习题中第五章目录下的ConditionalDisableStructure.lvproj学习条件禁用结构的用法。7.回忆一下本章主要讲述了哪几种调试工具及调试技巧,并学会灵活运用。8.除了本章中讲到的错误处理方法和调试技巧外,你自己还有没有更好的方法。,

    注意事项

    本文(LabVIEW程序调试与异常处理.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开