LabVIEW调试技巧 点击:133 | 回复:0



fjczd

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:552帖 | 36回
  • 年度积分:703
  • 历史总积分:1294
  • 注册:2008年8月14日
发表于:2022-08-18 21:45:41
楼主
LabVIEW调试技巧
错误簇
大多数内置VI和函数有错误输入和错误输出参数。这些参数能找到程序框图上每个节点产生的错误,并显示是否有错误产生和错误的位置。也可将这些参数用于用户创建的VI中。
高亮显示执行过程
单击高亮显示执行过程按钮可查看程序框图的动态执行过程。
高亮显示执行过程通过沿连线移动的圆点显示数据在程序框图上从一个节点移动到另一个节点的过程。使用高亮显示执行的同时,结合单步执行,可查看VI中的数据从一个节点移动到另一个节点的全过程。
单步执行
单步执行VI时可查看运行时程序框图上的每个执行步骤。单步执行按钮仅在单步执行模式下影响VI或子VI的运行。
单击程序框图工具栏上的单步步入或单步步过按钮可进入单步执行模式。将鼠标移动到单步步入、单步步过或单步步出按钮时,可看到一个提示框,该提示框描述了单击该按钮后的下一步执行情况。单步执行一个VI时,该VI的各个子VI既可单步执行,也可正常运行。
在单步执行VI时,如某些节点发生闪烁,表示这些节点已准备就绪,可以执行。如单步执行VI同时高亮显示执行过程,则执行符号将出现在当前运行的子VI的图标上。
探针工具
探针工具用于检查VI运行时连线上的值。
如程序框图较复杂且包含一系列每步执行都可能返回错误值的操作,可使用探针工具。利用探针并结合高亮显示执行过程、单步执行和断点,可确认数据是否有误并找出错误数据。如有流经数据,高亮显示执行过程、单步调试或在断点位置暂停时,探针监视窗口会立即更新和显示数据。当执行过程由于单步执行或断点而在某一节点处暂停,可用探针探测刚才执行的连线,查看流经该连线的数值。
探针类型
VI运行时,可用通用探针、控件选板上的显示控件,以及内置探针、自定义内置探针或创建一个新探针来查看连线上的值。
通用
通用探针可查看流经连线的数据。右键单击连线,从快捷菜单中选择自定义探针»通用探针可使用通用探针。
通用探针可显示数据。但无法配置通用探针,使其对数据作出响应。
除非已为数据类型指定了一个自定义的或内置的探针,否则右键单击连线并选择探针时LabVIEW将显示通用探针。
自定义探针可像VI一样进行调试。但自定义探针不能探测自身的程序框图,也不能探测其子VI的程序框图。调试探针时应使用通用探针。
使用显示控件查看数据
使用显示控件也可查看流经连线的数据。查看数值数据时,可在探针中使用一张图表来查看数据。右键单击连线,从快捷菜单中选择自定义探针»控件,从中选择显示控件。也可单击控件选板上的选择控件图标,从计算机或服务器的共享目录中选择任何已保存的自定义控件或自定义类型。使用自定义类型查看被探测数据时,LabVIEW将自定义类型视作自定义控件。
如所选显示控件的数据类型与右键单击选中的连线的数据类型不匹配,LabVIEW将不把显示控件放置在连线上。
内置
内置探针是显示连线中传输数据的综合信息的VI。例如,VI引用句柄探针可返回VI名、VI路径和引用的十六进制值等信息。内置探针可根据流经连线的数据作出响应。例如,错误簇中的错误探针可接收状态、代码、错误源和错误描述,并指定在出错或报警时是否需要设置一个条件断点。
内置探针位于自定义探针快捷菜单的最上方。右键单击连线,从快捷菜单中选择自定义探针可选择内置探针。只有与右键单击的连线的数据类型相匹配的探针才会出现在快捷菜单上。
自定义
创建新探针对话框用于创建一个基于已有探针的探针或创建一个新探针。右键单击连线,从快捷菜单中选择自定义探针»新建,打开自定义探针对话框。如需更好地控制LabVIEW对流经连线数据的探测方式,可创建一个探针。新建探针的数据类型与右键单击的连线的数据类型相匹配。如需编辑已创建的探针,须先从保存探针的目录打开探针。
从自定义探针快捷菜单中选择一个探针,用控件选板中的选择控件选项找到VI作为探针,或通过创建新探针对话框创建一个新探针。该探针将变为该数据类型的默认探针,用右键单击连线并从快捷菜单中选择探针时,LabVIEW会加载该探针。LabVIEW只加载与右键单击的连线的数据类型完全匹配的探针。即一个双精度浮点数探针不能探测一个32位无符号整数的连线,即使LabVIEW可转换该数据。
如需使自定义探针成为某一特定数据类型的默认探针,则应将该探针保存到user.lib\_probes\default目录中。不要将探针保存到vi.lib\_probes目录,因为在升级或重新安装LabVIEW时,LabVIEW会覆盖这些文件。
采样探针
FPGA模块在主控VI或FPGAVI中使用采样探针,查看VI运行时连线上的即时值和查看信号数据随时间的变化。例如,需要在单周期定时循环内调试信号。
在主控VI中使用采样探针时,必须使用用于探针的采样源。采样源是LabVIEW读取、采样相关探针数据时的判定信号。可使用While循环、For循环或FPGA仿真时间作为采样源,具体取决在主控VI或FPGA VI中使用采样探针。
断点
断点工具可在程序框图上的VI、节点或连线上放置一个断点,程序运行到该处时暂停执行。
在连线上设置断点后,数据流经该连线且暂停按钮为红色时程序将暂停执行。在程序框图上放置一个断点,使程序框图在所有节点执行后暂停执行。此时程序框图边框变为红色,断点不断闪烁以提示断点所在位置。
VI在某个断点处暂停时,LabVIEW将把程序框图置于顶层显示,同时一个选取框将高亮显示含有断点的节点、连线或脚本。光标移动到断点上时,“断点”工具光标的黑色区域变为白色。
程序执行到一个断点时,VI将暂停执行,同时暂停按钮显示为红色。VI的背景和边框开始闪烁。可进行下列操作:
用单步执行按钮单步执行程序。
查看连线上在VI运行前事先放置的探针的实时值。
如启用了保存连线值选项,则可在VI运行结束后,查看连线上探针的实时值。
改变前面板控件的值。
检查调用列表下拉菜单,查看停止在断点处调用该VI的VI列表。
单击暂停按钮可继续运行到下一个断点处或直到VI运行结束。
LabVIEW将断点与VI一起保存,但断点只在VI运行时有效。与其反复移除和创建断点,不如保存断点以反复使用。运行VI时,可能不需所有断点均处于活动状态。禁用断点后,运行VI时执行就不会在断点处停止。也可使用断点管理器窗口禁用、启用、清楚或定位现有断点。右键单击程序框图上的对象,从快捷菜单中选择断点»断点管理器,或直接选择断点»断点管理器,打开断点管理器。
可逐个或在VI层次结构中删除断点。
LabVIEW高亮显示断点的原理
LabVIEW高亮显示断点的方式和停止执行的条件根据断点放置位置的不同而有所差异。断点可放置在结构、节点和连线上。
结构断点
下图显示了带有断点的For循环。整个For循环结束执行前,VI就暂停运行。程序框图周围的红色边框高亮显示断点。如程序框图在结构内,则结构包括红色边框。程序框图上的所有节点结束运行时,才发生执行暂停。如断点在循环结构内,每次循环结束后才发生暂停。

添加图片注释,不超过 140 字(可选)


节点断点
下图显示了“加1”节点上的一个断点。“加1”函数运行之前,VI将暂停。连线上也可有断点。“乘”函数执行完毕后,VI再次暂停。节点周围的红色边框高亮显示断点。节点执行前,发生执行暂停。可在所有节点内的输入信号上使用探针工具。

添加图片注释,不超过 140 字(可选)


连线断点
下图显示了连线上的断点及探针。如选择了保留连线值,然后将游标放在连线上,将会出现如图所示的提示框,提示框中显示的是连线中的数据。数据通过连线传递至探针,探针显示当前循环的数据后,才发生运行暂停。连线中间的红色圆圈高亮显示断点。如将探针放置在连线上,探针周围也将出现红色边框。

添加图片注释,不超过 140 字(可选)


禁用断点
下图显示了For循环、“加1”节点、连线,以及(MathScript RT模块)MathScript节点代码行上的断点。所有断点均被禁用。VI不在任何断点处暂停。程序框图对象周围的红色边框较细,表示断点已被禁用。如启用断点,红色边框会便粗,如上个图例所示。

添加图片注释,不超过 140 字(可选)


执行挂起
中断子VI的执行多发生于需编辑输入控件和显示控件的值、控制子VI在返回调用程序之前运行的次数,以及返回到子VI执行起点的情况。既可挂起子VI的所有调用,也可挂起子VI的某个特定调用。
如需中断子VI的所有调用,打开子VI并选择操作»调用时挂起。当另一个VI调用该子VI时,子VI会自动挂起。单步运行时,子VI不会立即中断。只有在子VI被调用时才会挂起。
如需中断子VI的一个特定调用,右键单击程序框图中该子VI的节点,并从快捷菜单中选择子VI节点设置。选中调用时挂起复选框,则仅在该子VI的实例中中断执行。
选择查看»VI层次结构可显示VI层次结构窗口,该窗口表明是否有一个VI被暂停或中断。箭头符号表示该VI正在正常运行或单步执行。
暂停符号表示该VI被暂停或中断。
绿色暂停符号或黑白的中空符号表示该VI被调用时会暂停。红色暂停符号或黑白的实心符号表示该VI当前暂停。感叹点符号表示子VI已被中断。如下图所示。

添加图片注释,不超过 140 字(可选)

VI可同时被中断和暂停。
确定子VI的当前实例
子VI暂停时,工具栏上的调用列表下拉菜单将列出从顶层VI到子VI的一个调用链。调用列表与选择浏览»本VI的调用方时所见到的列表不同,后者列出了所有调用方VI,无论这些VI是否为运行中的VI。如程序框图包含的实例多于一个,则通过调用列表菜单可确认子VI的当前实例。选中调用列表菜单中的某个VI时,LabVIEW将打开该VI的程序框图并高亮显示子VI的当前实例。
也可使用调用链函数查看当前VI至订层VI的调用链。
调试部分程序框图
VI可在程序框图的某些部分被禁用的情况下继续运行,禁用部分程序框图类似于文本编程语言中对代码添加注释。禁用部分程序框图可确定在没有该部分程序代码的情况下VI执行是否更佳。要禁用的那部分程序代码应放置在框图禁用结构中。
调试部分代码可隔离产生问题的原因,便于更快找到和解决问题。要调试部分代码,将要调试的代码放置在条件禁用结构中。上文中提到的例子和资料,均在word中的附件里,可点击下载。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目问题,可联系我们。




楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师