LabVIEW编程中的错误处理与调试技巧

合集下载

NI LabVIEW调试工具

NI LabVIEW调试工具

NI LabVIEW调试工具本节内容包含▪修正断开的VI▪查找VI断开的原因▪VI断开的常见原因▪修正错误的行为▪程序框图工具栏▪探针工具LabVIEW提供功能强大的调试工具,帮助用户定位问题代码以作出恰当的更改。

常见软件问题有两类:程序无法运行或发生错误结果和行为。

本节内容主要讲述如何辨别和解决上述两类错误。

如VI无法运行,LabVIEW中的运行箭头显示为断开,同时错误列表窗口会列出VI断开的详细原因。

对于较难追踪原因的第二类软件问题,LabVIEW提供数种观察代码执行的工具,帮助您排查代码错误。

修正断开的VI如一个VI无法执行,则表示该VI是断开的或不可执行的。

如果正在创建或编辑的VI包含错误,运行按钮将显示为断开。

这种情况通常说明某个必须连接的输入端未连接,或存在断开的连线。

请单击断开的“运行”按钮,打开错误列表窗口。

错误列表中列出了所有错误并描述了错误的原因。

双击错误可直接跳转至出现错误的节点。

查找VI断开的原因警告并不阻碍VI的运行,而旨在帮助用户避免VI中的潜在问题。

错误则会使VI断开,因此运行VI前必须排除所有错误。

单击断开的运行按钮或选择查看»错误列表可查看VI断开的原因。

错误列表窗口列出了所有的错误。

其中,“错误项”一栏列出包含错误的对象。

如出错的项目同名,则显示出错的具体应用程序实例。

“错误和警告”部分列出了“错误项”中所选VI的错误和警告信息。

“详细信息”部分给出了错误的详细信息以及纠正错误的建议。

单击“帮助”按钮可打开“LabVIEW帮助”中详细描述该错误的主题,查看纠正错误的说明步骤。

单击显示错误按钮或双击错误描述,可高亮显示程序框图或前面板中包含错误的区域。

图1. 错误列表对话框示例VI断开的常见原因下列为VI编辑时常见的断开原因:▪接线端数据类型不匹配或未连接,导致程序框图中有断线。

关于纠正断线的详细信息,请参阅LabVIEW 帮助中的纠正断线主题。

▪程序框图上必要的接线端未连线。

LABVIEW学习中常遇到的50个问题及解答

LABVIEW学习中常遇到的50个问题及解答

Labview初学者常见问题以及解答1、Labview如何实现由一个事件引发其他三个事件的顺序发生,且这三次事件间的时间间隔为50ms?回答:可以引用状态机来设计程序,将触发事件作为状态机的状态控制参数,后面发生的三个事件依次作为状态机的三个顺序状态,设置状态切换时间间隔为500ms.2、labview在主程序通过局部变量不能实时看子vi的参数回答:通过局部变量只能得到子vi运行完之后的结果。

可以用control reference 方式,在子vi加一个属性节点引出一个reference。

主程序里把需要显示的控件创建一个reference连到子vi的reference输入端口。

另外也可以用vi server方式实现。

3、如何在一个graph或chart显示多个Y轴刻度,并且使每个通道对应每个刻度?回答:在前面板上,右键点击刻度,然后选择duplicate scales,就会创建一个新的刻度。

然后再点击右键,选择swap sides,就可以让刻度显示在图的左边或右边。

然后右键右上角的plot legend上的曲线plot,选择Y scales然后就可以选择与该曲线相应的Y轴SCALES。

多条曲线对应多条Y轴的刻度时,是同样的方法。

4、如何从labview中打开一个pdf文件?回答:最简单的方法:用system exec.vi实现,在system exec.vi的command line 端口创建一个常量,输入adobe reader 的路径,再加上文件名等几个参数就可以实现上述要求。

举例如下:如果要拉开位于c盘的1234.pdf文件可以这样写“C:\Program files\Acrobt 7.0\Acrobat\Acrobat.exe”/t“C:\1234.pdf” “username”其中C:\Program files\Adobe\Acrobt7.0\Acrobat\Acrobat.exe是Adobe Reader 的安装路径,/t是命令参数,C:\1234.pdf则是要打开的文件名,最后的username是用户的名字5、采集数据在graph如何显示系统时间,并且随着采集点数时间不断刷新。

labview程序错误策略

labview程序错误策略

labview程序错误策略step 1:检查连线是否已经连接到适当的端口。

在某一条连线删三击鼠标,则选中了与此连线相接的所有连线,这样可以比较清楚的发现连线上是否存在问题。

step 2:使用菜单help/show context help来激活上下文帮助窗口,窗口内动态显示鼠标指向的函数或子程序的用法介绍和各端口的定义。

这样可以对照当前的连接,检查连线是否正确。

step 3:检查某些函数或子程序端口的默认值,尤其但函数或子程序的端口类型是可选型的,在使用时如果不连接则使用默认值作为参数进行传递。

比如布尔类型的输入端口默认值定为TRUE,程序当中没有进行连线,并按该端口的默认值为FALSE进行程序设计,这样就产生了错误的结果。

step 4:使用菜单Browse-Show VIHierarchy,通过查看程序的层次结构来发现是否有未连线的子程序。

未连线的函数会使运行按钮变为“裂开的箭头”,因而很容易找到问题。

但由于子程序不同,一般LabVIEW允许框图窗口中存在未连线的子程序并以并行处理机制来运行该子程序,除非子程序的某一输入端口被设置为必须连接的类型。

step 5:使用高亮运行方式,单步执行方式和断点等手段来检查程序是否按设计要求来运行。

step 6:使用探针工具来获取连线上的及时数,以此来检查函数或子程序的输出是否存在错误,尤其是那些执行 I/O操作的函数。

step 7:检查从一个函数或子程序输出的数据是否为有意义的数据,在LabVIEW中有两种数据是没有意义的,一种是NaN(not a number),表示非数字,一般是由于无效的数据运算得到的,比如对一个负数进行开放运算就会产生NaN;另一种是Inf(infinity),表示无穷大,是由运算产生的浮点数,比如一个数被零除。

step 8:如果程序的运行速度比预期的要慢得多,需要检查某些子程序是否处于高亮运行状态,同时关闭子程序的前面板和框图窗口以调高系统的执行速度。

LabVIEW第7章LabVIEW开发环境9-调试程序 LN

LabVIEW第7章LabVIEW开发环境9-调试程序 LN
第5步:单击完成程序框图(单步步出)按钮继 续运行程序。程序运行值第二个断点—“平方根”函 数节点处暂停,如图7.9.10。
第6步,单击完成程序框图按钮继续运行程序, 程序运行至第三个断点—“除”函数节点处暂停,如 图7.9.11。继续运行程序直至程序结束,结束是的提 示和单步执行结束是的提示相同:窗口会变黑然后闪 烁。
结束(没有下一个断点时)。
7.9.3 调试VI实例—调试mean.vi
(1)结合使用高亮显示执行过程工具和单步执行工 具来了解程序执行过程.在前面板输入x和y为2和4
第1步:单击高亮显示执行过程按钮,然后单击 单步执行按钮。结果为高亮显示运行的程序部分,显 示在单步执行过程中数据流的流动过程和数据流暂停 点;程序暂停节点黑白闪烁,如图7.9.1所示,图中 小圆点(除交叉点外)为数据流暂停点,黑色区域为 程序暂停处的节点。
单击程序框图工具栏中的高亮显示执行过程按钮 可以查看程序框图的动态执行过程。使用高亮显示执 行过程,结合单步执行,可以查看VI中的数据从一个 节点移动到另一个节点的全过程。 2. 保存连续值
单击程序框图工具栏中的保存连线值按钮 , 可以在程序运行时保存流过连线的数据流的值。
7.9.2 调试VI
3.单步执行 单步执行可以查看VI运行时程序框图上的每个
第5步:继续单击单步执行按钮,算数平均值计 算完成,程序执行完毕,程序框图显示如图7.9.5。 程序执行完,窗口会变黑然后闪烁。
7.9.3 调试VI实例—调试mean.vi
如图7.9.1
7.9.3 调试VI实例—调试mean.vi
如图7.9.2
7.9.3 调试VI实例—调试mean.vi
如图7.9.3
第3步:可以在不同的连线上分别设置探针,如 图7.9.14,不过同一连线上只能设置一个探针。

LabVIEW编程技巧提高效率的方法

LabVIEW编程技巧提高效率的方法

LabVIEW编程技巧提高效率的方法LabVIEW是一种图形化编程语言,广泛应用于测量、控制和数据采集等领域。

在进行LabVIEW编程时,如何提高效率是每个程序员都关心的问题。

本文将介绍几种常用的LabVIEW编程技巧,帮助您提高编程效率。

一、使用SubVISubVI是LabVIEW中的一个重要概念,即可重用的子虚拟仪器。

通过将一段常用的代码封装成SubVI,可以提高代码的重用性和可维护性。

当我们在程序中需要多次使用同一段代码时,可以将其封装成SubVI,在需要的地方直接调用即可,避免重复编写相同的代码,提高编程效率。

二、合理使用循环结构和条件结构循环结构和条件结构是LabVIEW编程中的两个基本结构,合理使用它们可以极大地提高编程效率。

在需要重复执行一段代码时,可以使用循环结构,如For循环或While循环。

而在需要根据条件来选择执行不同的代码时,可以使用条件结构,如If条件结构或Case结构。

通过合理运用这些结构,可以简化程序逻辑,提高编程效率。

三、利用数据流控制来减少冗余代码数据流控制是LabVIEW编程的一个重要特点。

在LabVIEW中,数据流是以数据线的形式流动的,每个节点的执行都依赖于其前面节点的数据。

利用这一特点,我们可以在程序中避免冗余代码的出现。

通过合理设计数据流,将重复的代码放到相同的分支中,可以避免重复编写相同的代码,提高编程效率。

四、使用合适的数据结构LabVIEW中提供了多种数据结构,如数组、矩阵、队列等。

选择合适的数据结构可以简化程序逻辑,提高编程效率。

例如,当需要处理多个数据时,可以使用数组或矩阵来存储和处理。

而当需要对数据进行先进先出的操作时,可以使用队列来实现。

选择合适的数据结构可以使程序更加简洁、高效。

五、使用合适的LabVIEW工具和函数LabVIEW提供了丰富的工具和函数库,使用这些工具和函数可以加快编程速度。

例如,当需要进行数据分析和处理时,可以使用LabVIEW中提供的信号处理函数库。

一种适用于每个LabVIEW开发者的巧妙调试技巧

一种适用于每个LabVIEW开发者的巧妙调试技巧

一种适用于每个LabVIEW开发者的巧妙调试技巧
如果您经常使用NI LabVIEW软件,当软件不能按照预期的情况运行时,您可能会有一个自己的调试技巧和技术工具箱。

这些技巧和技术有些是常用的,而剩下的可能是您自己摸索出来的。

 适用于每个LabVIEW开发者的巧妙调试技巧
 图1.巧妙的调试方法能够清除漏洞
 我们与JKI的LabVIEW程序架构师( Certified LabVIEW Architects, CLA ) 以及LabVIEW社区的朋友进行了交流,向他们学习一些快速识别、隔离和
修复漏洞的“绝密”技巧。

我们了解到以下几个巧妙的调试技巧。

 利用探针
 探针是LabVIEW调试的第一个也是最简单的工具,但它们却是非常强大
的工具。

您可极其轻松地将探针置于线路上,在查找问题过程中不断获取信息。

以下是探针的几个功能:
 保存连线值功能
 LabVIEW开发环境中的保存连线值功能经常会被忽略。

当您启用某个VI 的连线值保存功能时,LabVIEW将自动存储该VI框图上每根连线的最后一个值。

然后,将光标悬停在任一连线上,即使该VI未运行,探针工具也将出现提示信,显示该连线最后一个值。

 图2.保存连线值按钮就在“灯泡”图标旁边。

 自定义探针,无需编写任何代码
 运用LabVIEW自定义探针,您无需编写任何代码就可创建强大、复杂的
调试工具。

例如,您可在“自定义探针”>>“控件”>> “波形图”中创建显示任意数字连线的先前值的“历史探针”。

这可帮助您发现您正在探究的数据的模。

LabVIEW的高级编程技巧

LabVIEW的编程技巧本章介绍局部变量、全局变量、属性节点和其他一些有助于提高编程技巧的问题,恰当地运用这些技巧可以提高程序的质量。

8.1局部变量严格的语法尽管可以保证程序语言的严密性,但有时它也会带来一些使用上的不便。

在LabVIEW这样的数据流式的语言中,将变量严格地分为控制器(Control)和指示器(Indicator),前者只能向外流出数据,后者只能接受流入的数据,反过来不行。

在一般的代码式语言中,情况不是这样的。

例如我们有变量a、b和c,只要需要我们可以将a的值赋给b,将b的值赋给c等等。

前面所介绍的LabVIEW内容中,只有移位积存器即可输入又可输出。

另外,一个变量在程序中可能要在多处用到,在图形语言中势必带来过多连线,这也是一件烦人的事。

还有其他需要,因此LabVIEW引入了局部变量。

8.1.1局部变量的创建我们在框图上设置三个变量,两个控制器分别为Numeric和Numeric 2,现在增加局部变量。

选择Function→Structures→Local Variable 然后将其拖到框图上,就可得到一个代“?”的图标,下一步将其与框图中已有的变量建立关联,有鼠标右键单击图标,进入Select Item 选择“input1” ,最后框图就变成了图7-1右边的样子。

图7-1局部变量的创建局部变量只是原变量的一个数据拷贝,但是它的属性可以修改,并且这种改变不会影响原变量。

例如上图中的这个局部变量可以利用快捷菜单中的Change To Read 变成一个指示器。

这样的一对变量的组合,就使它既可读又可写了。

局部变量有三种基本的用途:控制初始化、协调控制功能、临时保存数据和传递数据。

下面我们通过练习来说明。

8.1.2 应用举例练习8-1 用一个开关控制两个循环]该练习中有两个While 循环,现在我们用一个开关同时控制它们的运行。

面板与框图如上所示。

在左边的一个循环中设定了一个开关。

右边的循环中做了这个开关的局部变量。

LabVIEW图形化编程-基础与测控扩展课件第6章


LabVIEW图形化编程:基础与测控扩展
6.2 常用程序设计模式
状态机工具:
• 使用LabVIEW的状态图工具箱,可以以另一种独特的方式实现状态机编程。
• 安装状态图模块(LabVIEW 2018 Statechart Module)(安装完后,将可以多种方式创 建状态图及其状态机程序)。
• 相对于LabVIEW 8.6版本的状态图工具,LabVIEW 2018版状态图的开发方法有较大变化。
• LabVIEW开放给用户自定义的代码取值范围为5000~9999和-8999~-8000之间的整数。
LabVIEW图形化编程:基础与测控扩展
6.1 程序的错误处理
错误信息处理:
• 默认情况下,错误簇数据传递到末端,即程序中某个函数或子VI的错误簇输出端口没有 与其他模块连接时,当错误簇数据有错误信息,系统将自动弹出一个错误信息提示对话 框。
选择 属性
LabVIEW图形化编程:基础与测控扩展
6.1 程序的错误处理
错误信息处理:
• 必须考虑多个错误簇数流的合并处理。
• LabVIEW提供了一个“合并错误”VI( 一个含有错误信息的错误簇数据。
),其返回的是所有输入错误簇数据中的第
LabVIEW图形化编程:基础与测控扩展
6.2 常用程序设计模式
在生产者/消费者设计模式(事件) 中,生产者是采用事件结构,实现了 一种不定期数据产生方式。而消费者 结构采用的是包含元素出队列的 While循环+条件结构(实现错误处 理)。
生产者/消费者设计模式(事件)
LabVIEW图形化编程:基础与测控扩展
6.2 常用程序设计模式
LabVIEW基本设计模式:
6.2 常用程序设计模式

虚拟仪器-虚拟仪器-第10章LabVIEW常用编程技巧


(4) 右键单击树目录“程序生成规范”,在弹出的快捷菜单中选择“新 建” »“应用程序(EXE)”。
点击“保存”
应用程序属性设置对话框
在“源文件”选项中,选择要生成应用程序的VI文件和一些关联的文件
应用程序执行时的最初 入口,一般也是调用其 他子VI的最顶层VI
指定即使不被启用VI引 用,也始终包括在应用 程序中的动态VI和支持 文件中
修订历史属性页
用于设置当前VI的修订历史选项
编辑器选项属性页
用于设置当前VI对齐网格的大小,以及改变控件的样式。
保护属性页
允许任何用户查看并编辑VI 的前面板和程锁序定框VI图,用户必须在该页
解锁,才能编辑前面板和 程序框图
设置VI保护密码。选中后弹出输入密码 对话框提示输入新密码,以对VI进行保 护,设定后保存并关闭LabVIEW。当再 次打该VI,用户只能运行此VI,无法编 辑VI或查看程序框图。
2. 用户自定义对话框
用户还能通过子VI的方式实现用户自定义的对话框。在调用子 VI的程序框图中右击子VI图标,选择“子VI节点设置”选项。
选择“调用时显示前面 板”,表示调用子VI时 会弹出子VI的前面板。
调用图2-X.vi子函数时 弹出的子VI的前面板
【实训练习】
1. 创建一个VI,设计一个用户登录界面,并要输入用户名与密码。 2. 用事件结构实现动态窗口。要求在创建的主程序VI上放置相关按
(1)信息对话框
显示包含消息和显单示个一个包含一条消显息示包含消息和三 按钮的对话框 和两个按钮的对话框个按钮的对话框
三按钮对话框示例
(2)对话框Express VI
显示对话框Express VI:创建含有警告或用户消息的标准对话框。 其操作与单按钮对话框与双按钮对话框的操作类似。

虚拟仪器-虚拟仪器-第10章LabVIEW常用编程技巧

调显试示V用I时户相自同定的义窗的口窗样口式模式。选中该 选项并单击“自定义按钮”,弹出自 定义窗口外观对话框,通过对窗口具 体动作选项的勾选可以自定义符合用 户需求的窗口外观
窗口大小属性页
该页用于对VI自定义窗口的大小
窗口运行时位置对话框
该页用于自定义运行时前面板窗口的位置和大小
执行属性页
该页用于在LabVIEW中设置VI的优先级别和为多系统结构的VI选择首
常规属性页
显示当前程序的所有 注释和历史
内存使用属性页
用于显示VI使用的磁盘 和系统内存 。 内存数据仅显示了VI使 用的内存,而不反映子 VI使用的内存。
说明信息属性页
在“VI说明”文本框输VI的描述 信息后,当鼠标移至VI图标后描 述信息会显示在即时帮助窗口中。
本页用于创建VI说明,以及将VI链接至HTML文件或已编译的帮助文件, 使用户可以在即时帮助中看到说明信息和帮助文件的超链接,以增进用户 对VI的理解。
LabVIEW会通过内置的错误处理节点,以对话框提示用户关于仪器和 文件操作的一些错误。
错误处理节点VI也位于“函数”»“编程”»“对话框与用户界面”子选 板上。
1. 简单错误处理器 用于错误通报,当发生错误时,显示有错误发生。 2. 通用错误处理器
用于判断程序是否发生错误,当发生错误时,显示有错误发生。
修订历史属性页
用于设置当前VI的修订历史选项
编辑器选项属性页
用于设置当前VI对齐网格的大小,以及改变控件的样式。
保护属性页
允许任何用户查看并编辑VI 的前面板和程锁序定框VI图,用户必须在该页
解锁,才能编辑前面板和 程序框图
设置VI保护密码。选中后弹出输入密码 对话框提示输入新密码,以对VI进行保 护,设定后保存并关闭LabVIEW。当再 次打该VI,用户只能运行此VI,无法编 辑VI或查看程序框图。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LabVIEW编程中的错误处理与调试技巧在LabVIEW编程中,错误处理和调试是非常重要的步骤。

合理的错误处理和高效的调试技巧能够提高程序的稳定性和可靠性。

本文将介绍一些常用的错误处理和调试技巧,帮助您更好地应对编程中的错误和问题。

一、错误处理技巧
1. 使用错误处理结构
在LabVIEW中,使用错误处理结构能够帮助我们捕捉和处理程序中的错误。

可以将代码块放入错误处理结构中,并设置错误输入和输出,以便在程序执行过程中及时检测到错误并进行相应的处理。

2. 抛出自定义错误
除了LabVIEW内置的错误类型,我们还可以根据具体情况自定义错误。

通过抛出自定义错误,我们可以更准确地定位问题所在,并提供更有针对性的处理方式。

3. 使用错误代码和错误描述
在处理错误时,为了更好地描述问题,我们可以使用错误代码和错误描述。

错误代码可以用来标识不同类型的错误,错误描述则能够向用户解释错误的具体原因和解决方法。

4. 错误日志记录
错误日志记录是一种常用的错误处理技巧,它可以将程序运行过程中的错误信息记录下来,以便后续分析和问题排查。

可以将错误日志保存为文本文件或者数据库,方便查找和统计错误信息。

二、调试技巧
1.使用数据调试工具
LabVIEW提供了强大的数据调试工具,如Probe和Property Node 等。

通过使用这些工具,可以实时监测程序中的数据流动和变量值的变化,帮助我们找出程序中的问题。

2. 断点调试
在调试过程中,我们可以使用断点来暂停程序的执行,以便逐步跟踪和检查程序的执行过程。

可以在关键的代码块中设置断点,当程序运行到该处时会自动停下来,方便我们检查变量的值和程序的状态。

3. 快速查看数据
如果在程序中需要查看某个数据的具体内容,我们可以使用Quick Drop(快速检索)功能。

通过在LabVIEW界面上按下Ctrl+Space,然后输入“?”,即可快速查看某个数据的值。

4. 使用“Highlight Execution”工具
Highlight Execution是LabVIEW中的一款调试工具,可以帮助我们清晰地显示程序的执行路径。

通过启用Highlight Execution,我们可以更容易地追踪程序的执行情况,并准确定位程序中的问题。

结语
LabVIEW编程中的错误处理和调试技巧对于提高程序的质量和效率有着重要的意义。

通过合理的错误处理和高效的调试技巧,我们可以更好地定位和解决问题,提高程序的稳定性和可靠性。

希望本文介绍的错误处理和调试技巧能够对您在LabVIEW编程中遇到的困难有所帮助。

相关文档
最新文档