电子发烧友网 > 测量仪表 > 虚拟仪器 > 正文

labview怎么调试?基于labview的USB调试教程案例分析

2018年01月16日 09:40 次阅读

众筹首发|龙哥手把手教你从零入门LabVIEW机器视觉

  labview怎么调试是我们在使用NI LabVIEW软件时候经常会碰到的问题,当软件不能按照预期的情况运行时,我们可能会需要有一个自己的调试技巧和技术工具箱。 这些技巧和技术有些是常用的,而剩下的可能是您自己摸索出来的一些技巧。

  

  图1.巧妙的调试方法能够清除漏洞。

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

  利用探针

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

  保存连线值功能

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

  

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

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

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

  

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

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

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

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

  

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

  调用时挂起

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

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

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

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

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

  

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

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

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

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

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

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

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

  执行跟踪

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

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

  

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

  跟踪磁盘或内存

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

  NI LabVIEW桌面执行跟踪工具包

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

  

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

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

  单元测试

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

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

  

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

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

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

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

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

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

  基于labview的USB调试小助手

  这里给大家分享一个为了查看收发数据而编写的基于labview的USB调试小助手,极其简单的程序案例。

  一、前期准备

  首先介绍一下USB设备(STM32 USB),设备通过一个接口2个端点与主机通信,两个端点分别为端点1输入和端点1输出。两个端点均为中断端点。

  好,下面来正式介绍一下基于labview的USB调试小助手。

  USB口的HID类能轻易的被windows系统识别,因为它内置了USB HID驱动。但是这个驱动是不被labview承认的。要想被labview承认,需要安装VISA生成的USB驱动。(个人感觉这个是labview比较不好的地方)具体的操作方法是:

  打开NI-VISA driver wizard

  labview怎么调试?基于labview的USB调试教程案例分析

  选择USB,点NEXT

  labview怎么调试?基于labview的USB调试教程案例分析

  因为我的USB设备一直在电脑上插着,所以VISA安装向导识别了它,我们直接选中这个设备。这个时候你会发现,都自动填装好了,不用我们自己再填写。 包括Vendor ID、Product ID、Descriptor InformaTIon(可以查看各种描述符),Model Name(设备管理器要显示的名字)我们点击NEXT,进行下一步(点完后可能会跳出小窗口,我们一路点Yes,通过)

  labview怎么调试?基于labview的USB调试教程案例分析

  下一步是Output Files GeneraTIon,我们可以不做任何修改直接next

  labview怎么调试?基于labview的USB调试教程案例分析

  最后一步是InstallaTIon Option,我们选第一项安装,然后点Finish。

  labview怎么调试?基于labview的USB调试教程案例分析

  然后系统就开始安装驱动啦。我遇到的情况是安装完成,它弹出一个小窗口说安装不成功,我们不用管它直接close就好。然后这个时候我们再去设备管理器中看,已经产生可以被labview识别的驱动了。

  labview怎么调试?基于labview的USB调试教程案例分析

  那么如何查看我们的USB能被labview识别了呢。我们打开NI-MAX,在设备和接口处如果能看到我们的USB设备,说明已经被识别了。(我一般是看0x0413::0x5724来识别我的USB口,因为这两个参数是我自己设的。。)

  labview怎么调试?基于labview的USB调试教程案例分析

  我们选打开VISA测试面板,可以看到一些USB状态,这也证明USB设备的一些信息,继续往下走。

  labview怎么调试?基于labview的USB调试教程案例分析

  上面我们已经验证了NI可以识别USB口,我们开始编写小助手程序吧。

  二、程序编写

  新建VI文件。

  因为使用VISA通信,所以我们想到的肯定是去VISA里找驱动。先把几个常用的拖出来。(它们的都在仪器I/O—》VISA里,具体哪个在什么位置我就不说了)VISA打开、VISA写入、VISA读取、VISA关闭。于是我们连接了这样的结构

  labview怎么调试?基于labview的USB调试教程案例分析

  结果,我打开VISA资源口发现是COM4,懵逼了呀,上面才说的USB口识别了呀。

  labview怎么调试?基于labview的USB调试教程案例分析

  研究一番(实际上是忘记了从哪里查的了)问题出在VISA资源名称,这个控件上,我们需要设备它识别的VISA类为USB。具体设置方式是在控件上右键—》选择VISA—》I/O session--》USB Raw

  labview怎么调试?基于labview的USB调试教程案例分析

  Ok设置完成我们就能找到USB设备啦!我们运行一下看看效果,结果出来这个鬼东西。

  labview怎么调试?基于labview的USB调试教程案例分析

  电子发烧友网上有大神已经针对这个问题给出了解决办法:大家可以参考借鉴

  http://bbs.elecfans.com/jishu_515959_1_1.html

  我大概说一下大概就是,就是HID类只支持仅支持控制传输和中断传输。需要主机发送命令后,USB设备返回信息,这样才能完成读取。所以我们需要使用中断方式进行数据读取。按照上面给出的解决办法(非常详细)我们做出修改。于是程序又变成了这个样子。

  labview怎么调试?基于labview的USB调试教程案例分析

  然后再运行程序,完成啦。配合上一博文写的USBHID通讯的历程,我们通过上位机把字符5通过主机发给设备,然后设备,把收到的字符发给主机,我们也确实读到了字符5!!!到此简单的USB通讯已经可以了但是,我们是要做通讯小助手的人呀,不能就此止步呀。

  我们继续往下修改,上面的网址中文章提到过”要注意必须在visa写入之后才可以读取usb中断返回的数据。不写入或是写入的数据错误导致无返回值,就会产生超时错误 VISA: (Hex 0xBFFF0015) 完成操作前超时已过期。”

  经过实测,确实是这样样子。于是我们通过一个条件结构来解决,当需要发送数据时,点发送按键,条件为真,labview将发送写入缓冲区的数据,当不需要发送时,条件为假,系统送0字节

  labview怎么调试?基于labview的USB调试教程案例分析

  说系统完成操作前超时,问题出在VISA等待事件,这是为什么呢?原来我们设置启用中断传输时间,结果这个中断传输一直没发生,没有数据通过中断传输读取过来。所以系统报错了。但是仔细想想,USB设备想发数据就发数据,没有要发送的数据,你偏要它发点有效数据,也是无理的要求呀(USB设备内心:你自己报错,怪我咯)怎么办呢?既然我们理解了超时的原因,他对于我们USB通信也无大碍,那我们就忽略它好了!具体的操作方式是:

  获取错报代码(0xbfff0015)然后当发现是超时报错时我们不处理它,不用弹出报错窗口

  labview怎么调试?基于labview的USB调试教程案例分析

  这个时候程序已经可以正常运行了,主体部分完成,下面再介绍几个细枝末节的部分

  1、 使用移位寄存器实现读取缓冲区的的不覆盖显示。

  2、 使用条件结构控制USB口的打开与关闭

  3、 调用发送缓冲区与接收缓冲区的显示样式的属性节点控制属性

  最后的最后程序是这样的

  labview怎么调试?基于labview的USB调试教程案例分析

  前面板是这样的

  labview怎么调试?基于labview的USB调试教程案例分析

  至此USB通信小助手完成!

  LabVIEW程序的调试方式

  在实际的应用中,程序员通常将上述多种调试工具综合起来使用。根据多种提示和辅助信息可以快速地定位错误源,并观察部分代码执行的详细过程,最终排除错误,达到调试程序的目的。下面给大家再分享一下LabVIEW程序的调试方式。

  调试工具是任何一种程序开发环境都必须提供的功能,它们可以显著地提高程序员的开发效率。LabVIEW作为一种图形化程序设计语言的IDE工具(同时也是一门独特的语言),自然需要考虑为工程师提供适合于图形化语言调试的工具。

  事实上,LabVIEW并没有规定哪些工具被划分为调试工具,哪些工具被划分为其它的工具。这种界限和定义是比较模糊的,在实际使用中,我们可以把辅助程序员更准确、快捷地定位代码执行和Bug的工具统称为“调试工具”。

  LabVIEW主要的调试工具位于工具栏,如图 1所示。从左至右依次是:

  Run:运行,单击它会直接运行当前的VI,快捷键Ctrl + R。

  Run Continuously:连续运行。

  Abort Execution:中止运行,单击它会停止当前运行的VI。

  Pause:暂停运行。

  Highlight Execution:高亮执行工具,单击它程序会变慢,反映整个数据流运行的过程。

  Retain Wire Values:单击它会保留当前连接线上的值(这一点在后面描述)。

  Start Single Stepping:单步执行,此时程序往前运行一个节点。

  Step Over:跳过当前的节点。

  Step Out:跳出单步执行。

  Step Into:进入到某一个子VI中执行。

  其中(1)~(4)是常用的工具,用来控制VI的运行、暂停和停止;而(7)~(10)是其它的程序设计语言的IDE环境均具备的,用法也没有其它的区别。因此,本文将着重介绍LabVIEW中特有的程序调试工具或者方法。

  LabVIEW程序的调试方式 - statemice - Change

  图 1 LabVIEW的工具栏

  1.1错误列表(Error List)

  LabVIEW作为一种图形化的编译型语言,其编译的过程是在后台自动完成的(无需程序员手动编译),编译后的目标代码也存储在vi文件中。因此LabVIEW会“实时地”判断代码是否能够正常运行。当无法正常运行时,将弹出Error List对话框,列出当前VI继承中所有的错误,如图 2所示。

  对话框分为3个部分,分别表示发生错误的VIs、发生错误的节点和错误简单表述、错误的详细描述。双击某一个VI可以直接打开该VI,双击某个错误节点可以直接定位到该节点节点。

  LabVIEW程序的调试方式 - statemice - Change

  图 2 Error List对话框

  通常使用该方式可以快速地定位发生错误的VI或节点,并根据错误描述进行修改。有时候会出现LabVIEW的“运行”箭头是断开,而Error List对话框中却没有显示任何错误的情况。这是由于LabVIEW在内存中的已编译代码无法执行,只需要把当前的VI重新强制编译即可,方法是在单击“运行”箭头的同时按住Ctrl键(LabVIEW 8.6.1之前的版本可能是Ctrl + Shift键)。

  1.2VI继承和调用(VI Hierarchy)

  LabVIEW允许并且鼓励子VI的调用,因此VI之间存在着调用与被调用关系,LabVIEW将这种关系以图形的方式表示出来,称之为“VI继承”(动态调用的VI将不会显示其调用与被调用的关系)。选择View》》VI Hierarchy菜单项,弹出VI之间的关系图,如图 3所示。

  LabVIEW程序的调试方式 - statemice - Change

  图 3 VI Hierarchy

  从该图中可以迅速地看出当前VI的子VI以及被调用的VI之间的关系,双击某个VI的图标可以快速地打开该VI前面板。

  【小技巧】

  双击某个VI图标的同时按住Ctrl键能够直接打开VI的后面板。

  当LabVIEW暂停在某个VI中时,会在背面板工具栏中显示当前VI被调用的VIs列表,如图 4所示。从图中可以看出,当前的VI正被1.vi调用,单击该选项,可以看出整个被调用关系的列表VIs。当从列表中选择某一个VI时,LabVIEW会自动定位到该VI。

  LabVIEW程序的调试方式 - statemice - Change

  图 4 VI Caller Chain

  1.3断点工具(Breakpoint)

  LabVIEW运行对背面板中的任何一个节点和连线都可以设置断点,程序运行到断点位置时会暂停运行。

  在需要放置断点的位置上右击,选择弹出菜单中的Breakpoint菜单项,使用Set Breakpoint指令可以在当前位置放置一个断点,如图 5所示。

  LabVIEW程序的调试方式 - statemice - Change

  图 5 Breakpoint快捷菜单

  当在已经存在断点的位置上右击鼠标时,会弹出图 6所示的快捷菜单。使用Clear Breakpoint菜单项可以清除当前的断点,而Disable Breakpoint可以禁止当前的断点,此时断点将不再暂停程序的执行。

  LabVIEW程序的调试方式 - statemice - Change

  图 6 Breakpoint快捷菜单

  在大型的程序调试中,断点往往是使用的最为频繁的工具,它使得程序员能够迅速地专注于所关心的VI,而对于其它的VI执行过程则正常运行。通常,程序员为了找到某个Bug出现的原因,会在背面板中设置若干个断点,而一旦清除掉Bug后又需要将这些断点一一地清除,这难免会重复和繁琐。LabVIEW 8.6提供了一个断点管理的工具,可以选择图 5或图 6中的Breakpoint Manager菜单项,启动如所示的断点管理对话框(或者直接使用View》》Breakpoint Manager菜单项)。该对话框中列出了当前内存中所有VI中包含的断点,程序员可以选择任意地断点批量地将它们清除或者禁设置为禁止状态。

  键字: LabVIEW程序 调试方式

  LabVIEW程序的调试方式 - statemice - Change

  图 7 Breakpoint Manager对话框

  1.4高亮工具(Highlight)

  高亮工具是LabVIEW相对于传统的文本式语言的IDE环境所独有的调试工具,也是数据流程序设计思想的一种体现。打开工具栏中的Highlight工具(如图 8所示)并单击“Run”按钮,程序开始在Highlight模式下运行。此时根据数据流的运行顺序,LabVIEW将在各个节点的输入和输出的端子上显示当前端子上的数据,并且以小圆点的方式显示数据流的执行方式。程序员可以比较清楚地观察到数据流的走向以及源代码的执行情况,这极大地方便了LabVIEW开发者对某部分代码的详细调试。

  LabVIEW程序的调试方式 - statemice - Change

  图 8 Highlight工具

  对初学者而言,这种调试方式无疑是直观和清楚的。但是同时对一些VI也会带来一些影响,如某些对时间有着严格控制的VI。由于在Highlight模式中,LabVIEW会减慢程序执行的速度,因此有些与时间有关的事件或者Bug会被掩盖和忽略。这也是为什么有时候程序在Highlight模式下运行正常,而回到普通模式时却无法返回正确的结果。此时,就需要使用Breakpoint和Probe工具(下一小节介绍)联合调试,找到程序出现问题的原因。

  1.5探针工具(Probe)

  探针并不是LabVIEW所特有的调试工具,在很多的文本式语言的IDE中都存在着Watch窗口用来实时监视某些变量的值,LabVIEW中的探针与此类似,也是用来实时监测程序背面板中任一连接线(不是任一节点)上的值。

  右击源代码中任一连线处,选择Probe菜单项将弹出当前位置的探针,如图 9所示。LabVIEW会自动判断当前位置的数据类型从而调用不同的探针以显示当前位置的数据。当VI的背面板关闭时,那么该VI中所有的探针窗口也会自动关闭。运行VI,当运行到探针的位置时将在探针窗口中立即显示当前的值。

  LabVIEW程序的调试方式 - statemice - Change

  图 9 Probe工具

  为了定位到错误源或者找到某一时刻的运行结果,往往程序员需要配合断点和探针工具,在适当的位置增加断点,而适当的位置加入探针。或者直接设置探针工具,让探针捕获到某一特定的条件是程序暂停运行。如在图 9中,选择Custom Probe》》Conditional String Probe菜单项将弹出图 10所示的探针窗口。在Condition页中,可以设置程序暂停的条件。当满足该条件时,程序将立即在当前探针位置暂停。

  LabVIEW程序的调试方式 - statemice - Change

  图 10 Conditional String Probe

  从图 9和图 10可以看出,探针的主要功能就是将当前连线上的数据以控件(Indicator)的形式表示出来。由于在LabVIEW中,数据的显示方式是可以自定义的,如使用Type Def.控件修改某些控件的外观或者将String控件以****的密码方式显示,因此LabVIEW提供了自定义探针技术允许程序员根据实际情况使用任意预定义的探针。

  在图 9的快捷菜单中选择Custom Probe》》New…菜单项,将弹出图 11所示的自定义探针向导。程序员可以选择从现有的探针文件(从后面可以看出,事实上也是一个vi文件)新建探针或者直接新建一个空的探针。选择“Create a new probe”项。

  LabVIEW程序的调试方式 - statemice - Change

  图 11 Create New Probe_1

  单击Next按钮进入图 12所示的界面。Filename表示探针文件的名字;Window title and shortcut menu name表示探针VI的标题栏名字同时也是使用探针时出现在快捷菜单中的名字;Directory to save the probe表示探针的存储位置。

  LabVIEW程序的调试方式 - statemice - Change

  图 12 Create New Probe_2

  单击Save按钮,LabVIEW会自动生成图 13所示的探针VI。不要删除界面上的任何控件:

  String型控件表示探针位置当前的数值;

  Boolean型控件表示条件断点,当该值被设置为TRUE时,程序将在当前的断点处暂停。

  实际上,程序员可以任意修改这两个控件的外观,如设置为自定义类型、修改控件的Label或Caption,甚至可以在当前VI中加入新的控件。但是最好不要修改控件的类型和Connection(输入输出连接端子)定义方式,因为LabVIEW会根据控件的类型选择在不同的位置调用不同的探针VI。

  LabVIEW程序的调试方式 - statemice - Change

  图 13 String Probe_Custom.vi

  本例将修改String Probe_Custom.vi(下载)使得程序以不同的方式显示String的值,并且设置为当值为“Hello”时暂停程序运行。如图 14所示,加入适当的代码,并调整Probe的前面板窗口大小(这也是最终探针的显示大小)。

  LabVIEW程序的调试方式 - statemice - Change

  图 14 修改后的String Probe_Custom.vi

  新建一个VI,并加入一个String控件,此时在右键快捷菜单中选择Custom Probe》》 My First String Probe菜单项,如图 15所示。

  LabVIEW程序的调试方式 - statemice - Change

  图 15 调用String Probe_Custom探针

  此时,LabVIEW会自动调用String Probe_Custom.vi,并以探针窗口的样式显示,如图 16所示。在运行VI前修改Display Style中的值并运行VI,那么String显示框将自动以相应的方式显示数值。

  LabVIEW程序的调试方式 - statemice - Change

  图 16 String Probe_Custom探针窗口

  从上面的调用过程可以看出,LabVIEW中的探针实际上是对VI的调用。因此,在编辑探针VI时需要遵循以下的原则:

  不要在探针VI中加入任何等待或长时间执行的代码,如循环、事件、队列等,否则LabVIEW在运行时会自动挂起。

  不要修改探针VI的默认属性,如设置为Modal等。但是可以修改它的标题栏和大小。

  只有当程序运行到探针位置时,探针窗口才显示当前运行值,并且这些值在连线中不会保存。也就是说如果需要探测某个位置的值必须要在运行之前在该位置加入探针,否则如果是在程序运行之后再次加入探针,那么这些新加入的探针将无法显示程序之前的运行值。

  LabVIEW提供了一种工具允许程序中的连接线保留上一次的运行值。单击图 17中的“Retain Wire Values”按钮打开该工具,此时LabVIEW将保留当前VI上一次的运行值。当VI运行完成后,再次添加探针,则探针会自动立即显示该位置上一次的运行值。当然,这也会影响程序运行的效率,因此当VI退出内存时,LabVIEW会自动关闭该工具。

  LabVIEW程序的调试方式 - statemice - Change

  图 17 Retain Wire Values工具

  1.6VI窗口管理(VI Windows)

  在调试过程中,为了追踪子VI的运行状态,经常需要打开很多的VI窗口。往往在关闭这些窗口时反复地按下“Ctrl + W”键,LabVIEW提供了同时关闭这些VI的方法。单击Windows》》All Windows…(快捷点是Ctrl + Shift + W)菜单项,将弹出图 18所示的VI窗口管理对话框。选择需要关闭的窗口(可以使用Ctrl键或Shift键多选),单击“Close Windows”按钮就可以关闭选择的窗口。

  LabVIEW程序的调试方式 - statemice - Change

  图 18 VI窗口管理

  【小技巧】

  在LabVIEW中,按下Ctrl + Tab键能够在不同的LabVIEW窗口之间切换(Windows的Alt + Tab键是在所有的窗口之间切换)。





下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

LabVIEW状态图编程菜鸟到达人,就差这一步

主题简介及亮点:本次直播针对零基础入门学员,手把手教你入门Labview状态图编程,对于运动控制编程中遇到的痛点,本次直

发烧友学院 发表于 2019-03-14 00:00 0次阅读
LabVIEW状态图编程菜鸟到达人,就差这一步

应用程序和开发环境下退出报错!异常:Access violation (0xC0000005)位于EIP=0x03792E7C

发表于 2019-03-25 11:20 26次阅读
应用程序和开发环境下退出报错!异常:Access violation (0xC0000005)位于EIP=0x03792E7C

Labview父类属性找不到子VI的解决方法

发表于 2019-03-25 11:08 7次阅读
Labview父类属性找不到子VI的解决方法

基于labview的电子测试仪器数据采集及分析系统设计

发表于 2019-03-25 10:57 29次阅读
基于labview的电子测试仪器数据采集及分析系统设计

请问如何用labview读取另外一个软件的数据

发表于 2019-03-25 10:46 47次阅读
请问如何用labview读取另外一个软件的数据

怎么将HP Agilent 6033A实施到Labview编程

发表于 2019-03-25 10:33 9次阅读
怎么将HP Agilent 6033A实施到Labview编程

LabVIEW无法检测终结符图表

发表于 2019-03-25 10:09 6次阅读
LabVIEW无法检测终结符图表

为什么我的labview只能开机才能启动?

发表于 2019-03-25 09:58 61次阅读
为什么我的labview只能开机才能启动?

labview如何输出如图所示的方波

发表于 2019-03-25 09:32 58次阅读
labview如何输出如图所示的方波

请问labview怎么将二维数组存为txt文件

发表于 2019-03-24 22:07 44次阅读
请问labview怎么将二维数组存为txt文件

请问如何用labview上传到ftp

发表于 2019-03-24 21:48 29次阅读
请问如何用labview上传到ftp

LabVIEW的优势体现在以下几个方面

LabVIEW提供了无比强大的分析、处理VI库及许多专业的工具包,例如:高级信号处理工具包、数字滤波...

发表于 2019-03-20 10:04 200次阅读
LabVIEW的优势体现在以下几个方面

LabVIEW软件中最常用的快捷键情况

LabVIEW是专为测试、测量和控制应用而设计的系统工程软件,可快速访问硬件和各种数据信息。如果你以...

发表于 2019-03-12 10:32 234次阅读
LabVIEW软件中最常用的快捷键情况

看NI与CGM工程如何攻克鸟巢和水立方的健康监测...

北京国家体育场作为2008年北京奥运会的主体育场,可容纳8万名观众。整个体育场结构部件相互支撑,形成...

发表于 2019-03-09 11:03 622次阅读
看NI与CGM工程如何攻克鸟巢和水立方的健康监测...

12款年度新品正是对NI“引领创新”的最好诠释

在5G领域,NI的软件一直跟随3GPP规范的步伐进行演变。NI推出一款Sub-6GHz 5G测试参考...

发表于 2019-01-29 14:53 920次阅读
12款年度新品正是对NI“引领创新”的最好诠释

采用CLF技术实现LABVIEW采集处理系统的设...

采集卡软件是基于PC的数据采集系统重要组成部分,它与硬件形成一个完整的数据采集、分析和显示系统,软件...

发表于 2019-01-09 08:03 260次阅读
采用CLF技术实现LABVIEW采集处理系统的设...

基于LabVIEW FPGA模块程序设计特点的F...

为了解决基于LabVIEWFPGA模块的DMAFIFO深度设定不当带来的数据不连续问题,结合LabV...

发表于 2019-01-04 14:25 252次阅读
基于LabVIEW FPGA模块程序设计特点的F...

多待测设备测试架构的介绍

近几年来发展最为迅猛的一项技术是无线局域网(WLAN)技术。尽管这项技术最初由于笔记本电脑、智能手机...

发表于 2019-01-04 10:37 244次阅读
多待测设备测试架构的介绍

单结晶体管伏安特性的测试解决方案

Multisim 10的元器件库提供数千种电路元器件供实验选用,虚拟测试仪器仪表种类齐全,有一般实验...

发表于 2019-01-04 09:18 234次阅读
单结晶体管伏安特性的测试解决方案

采用LabVIEW实现虚拟仪器特性测试的设计

将 LabVIEW 应用在电液伺服阀计算机辅助测试(CAT)中,简化测试系统、提高测试系统的开发效率...

发表于 2018-12-31 08:34 404次阅读
采用LabVIEW实现虚拟仪器特性测试的设计

基于PCI-6143数据采集卡与LabVIEW的...

开关磁阻电机(SRM)的结构和工作原理比较简单,容错性能好,且在低速时只需较小电流便可获取较大转矩,...

发表于 2018-12-14 07:59 2796次阅读
基于PCI-6143数据采集卡与LabVIEW的...

基于PXI总线与LabVIEW的汽车自动化测试系...

发动机管理模块作为汽车传动力控制的核心部件,其生产质量检测是保证整个产品生产过程完整的重要步骤。为了...

发表于 2018-12-11 08:16 1038次阅读
基于PXI总线与LabVIEW的汽车自动化测试系...

NI近日宣布推出LabVIEW NXG最新版本

LabVIEW NXG Web模块—包括动态Web应用程序的活动和属性,支持将JavaScript库...

发表于 2018-12-06 15:10 1259次阅读
NI近日宣布推出LabVIEW NXG最新版本

LabVIEW与单片机串口的特性及在数据采集与信...

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境...

发表于 2018-12-06 09:35 299次阅读
LabVIEW与单片机串口的特性及在数据采集与信...

利用LabVIEW开发虚拟温度测试系统

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境...

发表于 2018-11-30 07:58 418次阅读
利用LabVIEW开发虚拟温度测试系统

基于PXI总线和LabVIEW技术的无源干扰设备...

随着多种新型电子器件的应用,无源干扰设备的发展已进入了以总线技术为主的第三阶段,使得其功能越来越强,...

发表于 2018-11-30 07:53 310次阅读
基于PXI总线和LabVIEW技术的无源干扰设备...

在LabVIEW平台上进行气动人工肌肉运动位移测...

气动人工肌肉也称气动人工肌肉驱动器(Pneumatic Musecle Actuator,PMA),...

发表于 2018-11-29 09:36 455次阅读
在LabVIEW平台上进行气动人工肌肉运动位移测...

基于LabVIEW FPGA的3D测量提高精度

在本次演示中,NI的LabVIEW FPGA用于创建自定义视觉算法,使用3D非接触式测量提高精度。 ...

发表于 2018-11-22 06:09 598次阅读
基于LabVIEW FPGA的3D测量提高精度

在LabVIEW开发平台上构建J1939协议CA...

LabVIEW是美国国家仪器推出的一种程序开发环境,图形化语言使其与其他的代码类型语言相比之下更为方...

发表于 2018-11-16 11:25 573次阅读
在LabVIEW开发平台上构建J1939协议CA...

以LabVIEW为平台和HKG-07B红外脉搏传...

系统采用红外传感器HKG-07B采集心率信号,经放大滤波及A/D转换后通过MCU进行数据计算并用LE...

发表于 2018-11-15 08:04 901次阅读
以LabVIEW为平台和HKG-07B红外脉搏传...

用LabVIEW实现控制三极管的老化测试系统设计

针对一些功率器件(功率三极管、VDMOS,IGBT等),通过有规律给元器件通电和断电,循环施加电应力...

发表于 2018-11-15 08:00 360次阅读
用LabVIEW实现控制三极管的老化测试系统设计

labview如何调用子vi

labview如何调用子vi?这种技巧经常用在多个参数顺序测量时,实现波形实时切换,显示当前测试参数...

发表于 2018-11-14 16:10 2754次阅读
labview如何调用子vi

通过LabVIEW平台进行多参数心电监护测试系统...

目前心电监护的仪器设备已被广泛地应用到临床各科。而心电监护又是最有价值的诊断技术之一,对于临床诊断、...

发表于 2018-11-08 08:22 489次阅读
通过LabVIEW平台进行多参数心电监护测试系统...

详解LabVIEW机器人模块软件的机器人算法和A...

既是在目前严峻的经济形势下,仍有面向各个新应用领域的机器人不断涌现出来。在制造业方面,尽管增长速度受...

发表于 2018-11-04 09:14 822次阅读
详解LabVIEW机器人模块软件的机器人算法和A...

可实时监测光伏发电系统的电路设计

设计了一套基于LabVIEW数据采集和RS485通信的光伏发电监测系统,可实时监测光伏发电系统运行电...

发表于 2018-10-30 09:03 645次阅读
可实时监测光伏发电系统的电路设计

借助CompactRIO控制器和LabVIEW进...

苍蝇能够高速追逐,并精确地降落在盘子的边缘,这其中的机动性令人非常感兴趣。我们可以利用苍蝇作为模型系...

发表于 2018-10-29 08:10 437次阅读
借助CompactRIO控制器和LabVIEW进...

基于实时采集医电信号的医疗电子系统的设计

 如何将创新的思想转化为研究成果或专利?如何快速地设计出满足市场需求的产品?如何在有限的时间内完成产...

发表于 2018-10-15 08:16 1181次阅读
基于实时采集医电信号的医疗电子系统的设计

通过Multisim仿真软件和LabVIEW软件...

应变式称重传感器主要由弹性体.电阻应变片和测量电路组成.其工作原理是:弹性体在外力作用下产生弹性形变...

发表于 2018-10-12 09:15 2304次阅读
通过Multisim仿真软件和LabVIEW软件...

采用LabVIEW软件设计的地面伽玛能谱仪校准软...

地面伽玛能谱测量是利用便携式伽玛能谱仪直接在现场测定土壤、岩石中钾、铀、钍含量的一种核地球物理方法。...

发表于 2018-10-09 08:35 533次阅读
采用LabVIEW软件设计的地面伽玛能谱仪校准软...

如何采用LabVIEW软件实现继电器测试数据查询...

继电器作为一种自动控制系统常用的元件,测试继电器的数量和种类都很大,而运用人工记录这些数据查询起来会...

发表于 2018-10-09 08:27 750次阅读
如何采用LabVIEW软件实现继电器测试数据查询...

使用LabVIEW实现数字滤波器的设计

FIR 滤波器设计实质是确定能满足要求的转移序列或脉冲响应的常数,设计方法主要有窗函数法、频率采样法...

发表于 2018-10-07 10:40 2306次阅读
使用LabVIEW实现数字滤波器的设计

如何使用LabVIEW NXG解决四个工程设计组...

回想您过去作为工程师的一年:您的角色发生了何种变化? 过去五年又发生了哪些变化? 随着技术变革的步伐...

发表于 2018-09-30 08:21 2472次阅读
如何使用LabVIEW NXG解决四个工程设计组...

LabVIEW软件在空调测试行业的应用

过去的空调测试大多都是针对单个台位的几个功能进行测试,如水冷冷水测试、风机盘管测试、焓差测试、换热测...

发表于 2018-09-19 10:12 1046次阅读
LabVIEW软件在空调测试行业的应用

基于labVIEW与单片机的上位机与下位机通信

首先利用单片机STC89C54通过串口发送“你好,LabVIEW”,LabVIEW将单片机发送到数据...

发表于 2018-09-17 08:25 2962次阅读
基于labVIEW与单片机的上位机与下位机通信

Lebview编程中虚拟仪器人机界面的整体模式设...

基于虚拟信号发生器的设计对Labview编程中常用的三种人机界面模式:整体界面模式、弹出式界面模式、...

发表于 2018-09-04 09:28 1942次阅读
Lebview编程中虚拟仪器人机界面的整体模式设...

Labview控制FPGA实现SOPC数据采集系...

0 引言 传统数据采集卡多采用PCI或ISA总线接口,这种方式安装麻烦、价格昂贵,且受计算机插槽数量...

发表于 2018-08-30 09:21 1600次阅读
Labview控制FPGA实现SOPC数据采集系...

满足跨界融合创新趋势,NI平台化方法引领智能汽车...

NI的硬件在环仿真系统(HIL)受到了全球众多厂商的青睐,贾青超分享了NI的成功经验:“NI 基于平...

发表于 2018-07-30 17:25 3042次阅读
满足跨界融合创新趋势,NI平台化方法引领智能汽车...

NI CompactRIO和LabVIEW,现实...

cRIO系统上的各种可用模块为传感器的选择提供了灵活性。控制器的网络功能为远程赛车监测提供了无线遥测...

发表于 2018-07-30 11:00 285次阅读
NI CompactRIO和LabVIEW,现实...

嵌入式系统设计NI LabVIEW软件的十大特点

借助面向嵌入式系统设计的NI LabVIEW软件,用户无需编写连续多行文本,而是通过拖放式图标开发控...

发表于 2018-07-30 10:11 953次阅读
嵌入式系统设计NI LabVIEW软件的十大特点

NI LabVIEW图形化开发环境与NI硬件平台...

使用NI LabVIEW图形化开发环境与NI硬件平台对智能车进行快速开发、测试以及原型,从而赢得挑战...

发表于 2018-07-19 11:22 276次阅读
NI LabVIEW图形化开发环境与NI硬件平台...

探讨科技对我们生活的影响及谈论NI未来的技术革新

观看Eric Starkloff探讨科技是如何改变我们的生活。 当今世界人们通过无线连接彼此。 ...

发表于 2018-06-25 06:20 978次阅读
探讨科技对我们生活的影响及谈论NI未来的技术革新

嵌入式与监控的探讨与多核CompactRIO的介...

观看来自Intel的Michelle Tinsley和Ben Black探讨嵌入式控制和监测。 未...

发表于 2018-06-25 00:26 779次阅读
嵌入式与监控的探讨与多核CompactRIO的介...

NREL与NI合作开发了模块化电力电子学的理念

观看美国国家可再生能源实验室(NREL)的LBill Kramer谈论智能电网所取得的进步。 NR...

发表于 2018-06-25 00:20 847次阅读
NREL与NI合作开发了模块化电力电子学的理念

智能电网与增长的能源需求及应用

观看Brian MacCleery谈论智能电网与增长的能源需求。 智能电网科技能够监测问题并将电...

发表于 2018-06-25 00:20 908次阅读
智能电网与增长的能源需求及应用

操作 iPhone 控制小轿车

技术细节介绍

发表于 2018-06-25 00:02 1049次阅读
操作 iPhone 控制小轿车

讲解怎样在VSS中使用LabVIEW RF To...

观看来自AWR的Sherry Hess和Josh Moore谈论RF和Microwave Desig...

发表于 2018-06-24 08:20 1171次阅读
讲解怎样在VSS中使用LabVIEW RF To...

NIWeek 2011-未来工具的发展应用

此外,请看未来科学发现的工具,例如NI LabVIEW的蓝图与建造理念以及系统中的所有部件。 执行...

发表于 2018-06-24 06:20 760次阅读
NIWeek 2011-未来工具的发展应用

了解NI LabVIEW 2011的特性与应用范...

观看Duncan Hudson, Elijah Kerry和Chris Delvizis介绍NI L...

发表于 2018-06-24 05:20 1095次阅读
了解NI LabVIEW 2011的特性与应用范...

RF信号分析仪14GHz NI PXIe-566...

观看Jim Bains和Raajit Laal谈论业界最高性能的RF信号分析仪14GHz NI PX...

发表于 2018-06-24 05:15 898次阅读
RF信号分析仪14GHz NI PXIe-566...

介绍如何使用NI的工具来提高工作效率、开发创新

光看学生、教授、研究人员和工程师介绍他们如何使用NI的工具来提高工作效率、开发创新。 NI Lab...

发表于 2018-06-22 14:59 714次阅读
介绍如何使用NI的工具来提高工作效率、开发创新

数据采集-Rap

比较搞笑的 NI 员工出演的 数据采集广告 Rap

发表于 2018-06-22 14:21 1213次阅读
数据采集-Rap

LabVIEW为Google Nexus One...

LabVIEW助力Google Nexus One自动化测试

发表于 2018-06-22 14:20 1402次阅读
LabVIEW为Google Nexus One...

由 LabVIEW 开发软件控制烟花爆竹的顺序

使用LabVIEW控制烟花爆竹的顺序

发表于 2018-06-22 12:20 1181次阅读
由 LabVIEW 开发软件控制烟花爆竹的顺序

通过Shelley Gretlein了解LabV...

观看Shelley Gretlein介绍LabVIEW的未来以及今后25年的发展以及 未来工程发展中...

发表于 2018-06-22 10:34 1237次阅读
通过Shelley Gretlein了解LabV...

关于NIWeek 2011演讲内容

观看James Truchard博士在2011年NIWeek上发表的开幕主题演讲,其中他提及了虚拟仪...

发表于 2018-06-22 09:20 1192次阅读
关于NIWeek 2011演讲内容

使用NI LabVIEW设计了三维图像设计

他们利用NI LabVIEW、NI PXI-7340和NI智能相机进行三维图像设计。 用了短短3个...

发表于 2018-06-22 06:18 1181次阅读
使用NI LabVIEW设计了三维图像设计

LabVIEW之父历史回顾编程理念,这将对未来造...

LabVIEW之父Jeff Kodosky回顾了他如何创造图形化编程,并且分享了基本的编程理念。这些...

发表于 2018-06-22 03:34 1382次阅读
LabVIEW之父历史回顾编程理念,这将对未来造...

介绍 LabVIEW 的转换与应用范围

08版最新LabVIEW平台介绍,包括LabVIEW的应用范围,模拟与数字I/O,信号处理与数字,可...

发表于 2018-06-14 00:35 1437次阅读
介绍 LabVIEW 的转换与应用范围

了解 LabVIEW 的优势,如何使用OPC连接...

通过本教程您将了解到什么是LabVIEW 的优势 OPC基础如何将连接LabVIEW到PLC

发表于 2018-06-13 00:36 2625次阅读
了解 LabVIEW 的优势,如何使用OPC连接...

LabVIEW 8.5的“多核”功能如何使用?

通过本教程您将全面了解到 1.多核开发的挑战 2.利用多核架构开发的方略 3.NI LabVIEW ...

发表于 2018-06-11 14:36 1507次阅读
LabVIEW 8.5的“多核”功能如何使用?

使用NI LabVIEW和NI CompactR...

他和他在读高中的儿子与当地中学机器人班合作,使用NI LabVIEW和NI CompactRIO制造...

发表于 2018-05-11 09:17 794次阅读
使用NI LabVIEW和NI CompactR...