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

发布者:CreativeDreamer最新更新时间:2013-09-06 来源: 21ic关键字:LabVIEW  开发者  调试技巧 手机看文章 扫描二维码
随时随地手机看文章

成为LabVIEW漏洞修复高手

如果您经常使用NI LabVIEW软件,当软件不能按照预期的情况运行时,您可能会有一个自己的调试技巧和技术工具箱。 这些技巧和技术有些是常用的,而剩下的可能是您自己摸索出来的。

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

图1.巧妙的调试方法能够清除漏洞。 (Brian Searle摄)

我们与JKI的LabVIEW程序架构师 ( Certified LabVIEW Architects, CLA ) 以及LabVIEW社区的朋友进行了交流,向他们学习一些快速识别、隔离和修复漏洞的“绝密”技巧。我们了解到以下几个巧妙的调试技巧。

利用探针

探针是LabVIEW调试的第一个也是最简单的工具,但它们却是非常强大的工具。您可极其轻松地将探针置于线路上,在查找问题过程中不断获取信息。 以下是探针的几个功能:

保存连线值功能

LabVIEW开发环境中的保存连线值功能经常会被忽略。 当您启用某个VI的连线值保存功能时,LabVIEW将自动存储该VI框图上每根连线的最后一个值。 然后,将光标悬停在任一连线上,即使该VI未运行,探针工具也将出现提示信,显示该连线最后一个值。

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

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

自定义探针,无需编写任何代码

运用LabVIEW自定义探针,您无需编写任何代码就可创建强大、复杂的调试工具。 例如,您可在“自定义探针”>>“控件”>> “波形图”中创建显示任意数字连线的先前值的“历史探针”。 这可帮助您发现您正在探究的数据的模式或趋势,而无需编写特殊的探针代码。

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

图3. 使用波形图探针显示简单数字连线的历史值。[page]

从LabVIEW工具网络获取自定义探针

借用他人创建的探针来扩展您的工具箱。 SAPHIR在LabVIEW工具网络上提供了一系列免费的自定义LabVIEW探针。 您只需下载安装VI软件包管理器 (VIPM)社区版(也是免费的)、搜索ViBox,再通过几次单击就可安装探针。

如果您正在使用LabVIEW 2011,您还可通过单击LabVIEW入门指南窗口的“查找LabVIEW附加工具...”从LabVIEW工具网络上获取ViBox。

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

图4.使用VIPM安装SAPHIR自定义探针。

调用时挂起

许多LabVIEW程序架构师甚至不知道LabVIEW具备该项功能。“调用时挂起”功能可将执行挂起,使您可以进行以下任一或所有操作:

1. 在VI运行之前随意更改VI的控件值。

2. VI返回调用程序时随意更改显示件的值。

3. 重复运行VI,而无需将执行返回至调用程序。

4. 完全跳过VI执行,返回至调用VI。

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

图 5. 在子VI节点设置窗口中,选择“调用时挂起”功能。

对于调用时挂起功能,NI做了简要说明,见此处。 然而,熟悉该功能的最佳方法还是亲自动手实践。

未连线的前面板控件和显示件

为FIRST(崇尚发扬科学技术)机器人竞赛团队推荐了一项技术,这项技术对于专业的LabVIEW开发人员也非常有用

Ben建议在VI中添加前面板控件或显示控件,但并不与连线板连接。 这些控件和显示件与“调试”输入或输出工作方式类似,您可在测试时对其进行手动控制。 这可使您更容易在应用中生成偶然或极端事件,而无需繁多的支持或仿真代码的写入。

您还可以在已建应用程序中使用这些调试控件和显示件,前提是LabVIEW应用程序生成器包含了VI前面板。

参阅LVMastery.com上的介绍,进一步了解Ben建议的调试子VI。

执行跟踪

如果其他方法都失败的情况下,有时您所能做的只有逐步跟踪代码。 遇到此类问题时,您可通过几种方法在LabVIEW内进行执行跟踪。

最明显的方法是使用LabVIEW中内置的“高亮显示执行”功能,也称为“灯泡”。 如果说探针是LabVIEW调试的首要工具,灯泡则位列第二。 但是,如果碰到复杂或是时间相关的漏洞,您则可选择其他更有效的工具。

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

图6. 执行跟踪功能比灯泡功能更多。[page]

跟踪磁盘或内存

启动执行跟踪的一个简单方法是在其中一个子VI中记录一个连线值。 您可编写一个简单的VI,将该值记录到文件中,或甚至可创建一个自定义探针来显示连线的历史值。 通常通过这样一个简单的跟踪您就可收集足够的信息来帮助您找到漏洞的原因。

NI LabVIEW桌面执行跟踪工具包

如果要调试一个大型的高度并行应用程序,则包含NI开发者套件 2011的LabVIEW桌面执行跟踪工具包就是您进行LabVIEW代码分析的“利器”。 它可提供关于正在运行的应用程序的各种信息,包括详细的内存分配和再分配、事件生成、由代码定义的自定义信息。 Austin LabVIEW程序架构师论坛的创建人之一Fabiola De la Cueva指出该工具包可用于调试已崩溃的应用程序,因为它是独立于LabVIEW之外运行的。

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

图7. 手动执行追踪具有风险(图片采自Oliver Widder)

专业的LabVIEW开发人员很庆幸,因为LabVIEW桌面执行跟踪工具包已包含在NI开发者套件2011之中,不会产生额外的费用。

单元测试

测试驱动开发(TDD) 是一种软件工程技术,可帮助您从头创建更好的代码,同时它也是帮助您调试现有代码的一个有效工具。

在TDD中,当您发现应用程序存在漏洞时,调试流程的第一个步骤就是创建一个可重现漏洞并导致测试失败的单元测试。只有到那时候,您才确实可以开始尝试修复问题。 如果单元测试通过,则表明您已清除了该漏洞。

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

图8. 你在哪里测试代码?

这种漏洞修复方法需要费点时间,但是相比其他较不精确的方法,它具有以下几个优点:

1. 单元测试具有可追溯性,可完整显示漏洞的发生过程以及您如何将漏洞隔离

2. 您或其他开发者可随时轻松验证或重新验证您的修复,而无需记住激活漏洞的详细信息。

3. 单元测试可在您的项目中与其他测试一起自动执行,因此漏洞如果再次出现,您可以立即知晓。

针对单元测试有两个主要的LabVIEW附加工具,TDD方法可以与另一个一同使用。 查看JKI的免费VI测试仪LabVIEW附加工具或参阅Eli Kerry的LabVIEW软件工程指南,进一步解LabVIEW单元测试框架工具包,它已包含在NI开发者套件之内。

关键字:LabVIEW  开发者  调试技巧 引用地址:适用于每个LabVIEW开发者的巧妙调试技巧

上一篇:LabVIEW新手5大错误
下一篇:NI将软件设计的仪器用于电子测试

推荐阅读最新更新时间:2024-03-30 22:39

【iSeed】ifanr 访谈:Windows Phone 7 第三方中文输入法开发者 TinyTian
    在入手 LG Quantum 之前我就听说过 I’m Chinese 和 TinyTian 的名字。这款软件基本上解决了 Windows Phone 7 的短信,邮件,待办事项等中文输入问题。而且它作为一个输入模块,还提供给其他 App 开发者使用,例如 WP7 的新浪微博客户端 T-Sina 就使用了这个模块。 TinyTian 是 ifanr 的活跃读者,也是一位具有亲和力的开发者,我们聊了很多关于玩机和开发的事情,赶紧看看吧。 ifanr:能简单介绍一下自己吗?说说本职工作和业余爱好,以及开发 I’m Chinese 的初衷。 TinyTian: 哈,最不擅长的就是自我介绍了,是这样的,我本
[手机便携]
labview之如何获取数据类型的取值范围
Labview支持的数据类型种类繁多,其中整型数是种类最多的,包括U8、I8、U16、I32等等。   对于每一种特定的整型数,都对应这特定的取值范围,比如U8的最大值为255,最小值为0,所以U8的取值范围是0-255。   今天我们要讨论的是如何获取整数数据类型的取值范围的方法:   一、计算法   我们知道U8是由一个字节(8位)构成的,U16是由2个字节(16位)构成的,以此类推,U64由8个字节构成(64位)。因此对于整型无符号数的取值范围很容易计算出来,无符号整数的最小值均为0,最大值可以通过计算得到。   对于有符号数,因为有符号数的最高位表示数值的符号,所以对于N位整型数,它能表示的最大正数
[测试测量]
<font color='red'>labview</font>之如何获取数据类型的取值范围
运用LabView控制DS3900串口通信模块
本篇应用笔记讨论了DS3900串口通信模块和LabView的使用问题,LabView是适用于嵌入式应用的图形化界面开发平台。本文可作为面向DS3900的LabView界面用户指南。 LabView作为嵌入式应用的图形化界面开发平台得到了广泛应用。DS3900串口通信模块是一款通用接口板,借助该接口板,用户可使用PC串口与具有I2C接口的器件通信。DS3900的指令集允许应用软件与I2C器件直接通信。 本应用笔记是面向DS3900的LabView界面的用户指南。首先,用户需要安装LabView。为用户提供了标准VI,以加载并运行程序。可以下载与本应用笔记相关的LabView代码(ZIP,321K)。 使用LabView软件 加
[测试测量]
运用<font color='red'>LabView</font>控制DS3900串口通信模块
开发者大会看三星未来IoT智能生态布局
从第一部手机的诞生到语音助手的出现,历史上的发明无一不挑战着人们对科技上限的幻想。随着时代的发展,一体化的生活体验模式再度让人们看到了科技发展的无限可能性。而作为科技界的巨头,三星自然不会缺席智能物联时代的发展进程,在今年11月的三星开发者大会上,三星再一次为人们带来了惊喜。三星凭借其在智能居家和人工智能领域的多年积累沉淀,打造智能的开放式IoT生态系统,在家居、移动、办公等场景齐头并进打造无缝互联的全新体验。 作为一家致力于为用户提供最佳生活体验的企业,三星除了在科技创新领域不断突破、为大众提供最尖端技术,更是不断寻求与第三方品牌、开发团队在技术方面的深度合作。不同于其他品牌构建的智能家居系统,三星希望打破品牌的局限,
[物联网]
从<font color='red'>开发者</font>大会看三星未来IoT智能生态布局
LabVIEW并行化技术来提高测试的吞吐量
概览   二十世纪一位很有影响力的建筑设计师Frank Floyd Wright曾经说过:“每个伟大的建筑设计师都是他所处时代的伟大解读者 。”这句话同样适用于测试系统设计师们。在他们设计、开发和实现系统的时候,他们必须理解不断进步的技术,如多核处理器、现场可编程门阵列(FPGA)和高速数据总线,如PCI Express等等。通过将这些技术与NI LabVIEW并行化编程软件及NI TestStand编程管理软件结合在一起,测试工程师们可以创建出高性能的测试系统,用于并行化处理、并行化测量,甚至于在生产阶段进行完全并行化的测试。借助于基于PC机的并行化技术,用户可以将测试速度提高到传统仪器的10倍以上。   并行化处理   
[测试测量]
<font color='red'>LabVIEW</font>并行化技术来提高测试的吞吐量
基于NI LabVIEW快速开发医疗电子设备
针对医疗设备行业的投资最近几年一直处于上升阶段,在过去两年,针对医疗设备的风险投资几乎翻倍,2007年更是达到了40亿美元。无论从全球角度还是在中国市场,小型的、未上市的医疗设备制造商在具备产品、市场和创新的元素下,正逐步成为投资新宠。对于这些小型公司来说,如何从激烈的市场竞争中站稳脚跟并脱颖而出是非常困难的事情。他们的核心技术人员也许是生物医学领域的专家,掌握了一定的专利或研究成果,但如何在团队人员非常有限的情况下,快速的将专利或研究成果转化成产品、并保证产品的可靠性和稳定性是很大的难点。通过NI所提供的图形化开发环境LabVIEW和商业化嵌入式原型平台,领域专家或研发人员可以无缝集成硬件I/O与算法,在有限的团队人数下快
[工业控制]
基于NI <font color='red'>LabVIEW</font>快速开发医疗电子设备
基于LabVIEW的自适应滤波器系统辨识的设计
  1 引言   LabVIEW (Laboratory Virtual Instrument Engineering Workbench) 是美国NI公司的创新软件产品,也是目前应用最广泛、发展最快、功能最强的图形化软件开发环境。LabVIEW DSP模块,它包含了用于设计、实现和分析DSP算法的系统工具。它将LabVIEW图形化开发环境扩展至嵌入式信号处理应用程序设计,提供了一个易于使用的、现成的方法来学习信号处理技术,使得DSP开发者拥有了一个图形化和系统级的设计开发选择。随着我们的设备在性能和复杂度方面的提升,图形化和系统级的设计和开发工具的作用起到越来越重要的作用。   本文以TMS320C6713EVM开发板为硬件
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved