LabVIEW使用技巧窍门锦集.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LabVIEW使用技巧-LabVIEW使用窍门

,. LabVIEW使用技巧集锦 一 本地变量(local variable)与属性节点(property node)的不同 我们知道在程序框图中,本地变量或属性节点无须与control(控制器)/indicator(指示器)直接连线就可用来传递“控制器”/“指示器”中的数值。当然,属性节点还有非常多的使用方法,所以对本地变量与属性节点之间不同的讨论也仅限于传递数值这个特性上。 实际上,虽然它们从传递数值这个特性上有相同之处,但本质上还有许多不同的地方,只有充分了解它们之间的差异,才能有效、合理的在程序中使用它们。 <!--[if !supportLists]-->1、?? <!--[endif]-->内存 本地变量:建立本地变量实质就是对“控制器”/“指示器”中数据进行复制(copy),所以要占用内存,当为数组建立多个本地变量时,会占用大量的内存。操作行为是读数据(Read)或写数据(Write) 属性节点:建立属性节点实质上是对“控制器”/“指示器”中数据进行查询或置入,不会占用内存。因为在部件创建时已经为此参数分配好了内存,多少有些像VB中的属性设置。操作行为是查询(Query)数据或置入(Set)数据。 ? <!--[if !supportLists]-->2、?? <!--[endif]-->执行速度 本地变量:由于本地变量是对内存操作,所以运行速度很快。 属性节点:相对于本地变量来讲,属性节点的效率是很低的,或者说更占用CPU的资源。 ? 下面通过两个测试图来进一步说明二者之间的差异。在图1中,我们使用一个for循环对Numeric的本地变量写10000次数据,并测量运行的时间,探针[1]显示出程序运行时间是:4mS。 图1 本地变量的10000次运行时间 然后,我们将图1中的本地变量换成一个属性节点,见图2。 我们会看到10000次的操作运行时间是:2472mS。 图2?? 属性节点的10000次的运行时间 由此可见,在数据频繁操作时属性节点的效率是很低的,或者说更占用CPU的资源。 <!--[if !supportLists]-->1、?? <!--[endif]-->数据竞争 本地变量:容易导致数据竞争,很多LabVIEW的书籍都介绍了这方面的例子。原因是本地变量破坏了数据流的工作方式。这也正是LabVIEW及许多书籍中强调的“慎用”本地变量的原因。? 属性节点:可以通过“错误簇”来引导数据流,所以不会发生数据竞争现象。注意,当属性节点的错误簇没有使用(与其它vi相互连接),同样可能会导致数据竞争现象发生。 作者:一天到晚游泳的鱼(一位值得尊敬的老先生) 出处: HYPERLINK "" LabVIEW中的“错误”机制 对于任何一种编程语言或编程环境来说,建立或具有发现错误的机制都是非常必要的,LabVIEW也不例外。特别是LabVIEW面对更多的应用是测试、测量,所以在这方面,程序的设计者更应引起对错误机制的足够重视。 ? ???? LabVIEW提供了以下提示错误的方法: 1、?? LabVIEW编译器 LabVIEW编译器是发现程序错误的第一道关卡。与其它编成语言不一样,LabVIEW编译器是嵌入在LabVIEW开发环境中的即时编译器,我们根本无法察觉到它的运行时间或速度。因为它是在编程的每一步都进行编译的,当程序编制过程中出现错误或必要的参数还没有设定时,LabVIEW开发环境中的“运行”按钮呈现出折断形式。此时双击该按钮会弹出一个“Error List”的对话框,指出错误的数量、位置及可能产生的原因。用鼠标双击任何的一条灰化错误提示,将在程序框图上找到错误的发生地,并用虚线将产生错误的部件提示出。比如:我们在一个空白的程序框图上放置一个“DAQmx Write.vi”就会看到我们上述的现象发生。当我们将相关参数配置完成时,“运行”按钮恢复正常。 由于LabVIEW编译器可以即时发现错误,所以大大的减少了纠正错误的时间提高了编程效率(不必错误成堆才去处理)。这一特点对于初学LabVIEW的人来说体会是非常深刻的。 ? 2、?? 错误簇(Error Cluster) LabVIEW编译器通常是针对程序代码的错误给出提示,这是一种外在的错误机制。并不能保证程序运行时不出现错误。LabVIEW还提供了另一种在程序运行时发现错误,通报错误的内部错误机制,那就是错误簇 (Error Cluster)。 错误簇(Error Cluster)中包含了三种不同数据类型的元素: Status——布尔型,True表示有错误 Code? ——整数型(32位),给出LabVIEW 定义的错误代码 Source——字符串类型,用来解释、说明错误(可能的)原因。 ? 使用者也可以定义自己的错误代码和错误说明。 ? 错误簇

您可能关注的文档

文档评论(0)

一叶轻舟 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档