0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于LabVIEW新手遇到的5大误区的介绍和分析

发烧友研习社 来源:djl 2019-10-25 11:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

虽然 LabVIEW软件长期以来一直帮助工程师和科学家们快速开发功能测量和控制应用,但不是所有的新用户都会遵循LabVIEW编程的最佳方法。 LabVIEW图形化编程比较独特,因为只需看一眼用户的应用程序,就马上可以发现用户是否遵循编码的最佳方法。有些用户会犯这些错误是因为他们没有真正理解LabVIEW框图数据流背后的原理,而有些用户则是不知道哪些特性可提高LabVIEW编程质量。

本文介绍了经验欠缺的LabVIEW程序员最经常犯的一些编程错误,同时也提供了采用正确LabVIEW编程方法的建议。

关于LabVIEW新手遇到的5大误区的介绍和分析

图 1. LabVIEW新手典型“杰作”

1过度使用平铺式顺序结构

许多LabVIEW新手并不完全了解“数据流”执行背后的概念,而这些概念却是LabVIEW编程的基础。其中一个现象是用户往往在程序框图中过度使用平铺式顺序结构。用户经常依赖平铺式顺序结构来实现程序框图的代码串行执行,而不是使用数据流和节点之间的连线。

关于LabVIEW新手遇到的5大误区的介绍和分析

图 2. 用户往往过度依赖平铺式顺序结构,而没有充分理解数据流编程概念

数据流编程是指只有在所需的数据输入全部到达时,框图上的节点(子VI、本原、结构等)才开始执行。 这对于使用LabVIEW的程序员来说非常有用,因为独立的进程本身就可以实现并行运行,而命令式语言却需要额外的设置才能实行并行执行。随着计算机CPU的不断增多,LabVIEW可自动分解并行流程,提高代码性能,而无需用户编写任何额外代码。而强行使用平铺式顺序结构来执行程序框图不仅会限制并行运行,还会丧失这一优势。限制程序框图中不必要的结构有助于提高整体可读性和保持更简洁的框图。

错误连线可以有效地实现程序框图上的数据流,而不需要依靠平铺式顺序结构,此外错误连线还有助于实现错误处理策略。

何时应该使用平铺式顺序结构?
通过平铺式顺序结构来执行程序框图有助于代码性能的基准测试。通过使用框架内具有时间计数器的顺序结构,您可以决定两个时间计数器之间代码执行所花费的时间。这是一般数据流执行所无法实现的。

关于LabVIEW新手遇到的5大误区的介绍和分析

图 3. 平铺式顺序结构和时间计数器VI有助于代码的基准测试

关于数据流编程的更多信息,请访问在线自学培训(ni.com/self-paced-training)LabVIEW核心课程1的“数据流”。购买LabVIEW或具有标准服务项目(ni.com/ SSP)会员资格的用户可以免费参加在线自学培训。

2错误使用局部变量

LabVIEW编程中另一个常见的错误是过度使用局部变量。局部变量是共享内存中的一个区域,用于在计算机程序不同部分之间传递数据。局域变量通常用于文本编程语言,具有非常强大的功能,但如果出现竞争条件,就会产生问题。

对于其他编程语言来说,通过变量传递数据是必需的,而LabVIEW则提供了一种数据流方法,可将数据从程序的一个部分移动到另一个部分。LabVIEW固有的并行性机制决定着用户不能过度使用变量,因为同一时间内通常会有多个不同的位置的程序访问共享内存。如果过度使用变量,则会出现某个读/写操作赢了“竞争”,而其他操作则输了“竞争”,丢失数据的操作会被忽视,因此在LabVIEW中过度使用变量可能会最终导致数据丢失。


可以通过多种方法安全地将数据从LabVIEW程序的一个部分传递到另一个部分,包括连线、队列、事件、通知、功能全局变量等等。每个机制都是针对特定情况设计的,但都具有消除竞争条件的功能。

3忽略代码模块化

通常情况下,新LabVIEW用户创建的是“即写即忘”应用程序去完成简单的任务,而没有考虑到以后是否会用到这些代码。随着编程工作越来越多,他们会发现自己一遍又一遍地重写同一段代码。而如果在编程同时创建一个可复用于其他应用的模块化子VI,就可以节省大量的开发时间。

如果您知道代码的特定部分将会重用于同一应用程序,或感觉该部分代码可能会用于未来的应用程序,那么您应该花一点时间将该部分代码变成一个子VI。如果要使某部分代码成为一个子VI,您需要做的主要是添加一个文档、使用“接线端”、禁用某些VI属性。创建子VI的最简单方法之一是高亮标记程序框图中的某部分代码,然后从菜单栏中选择“编辑>>创建子VI”。这样这部分代码就会放到一个单独的VI,然后使用“接线端”。您仍然需要为图标添加说明,并将文档记述添加到程序框图和VI属性中,然后取消某些VI设置,但“编辑>>创建子VI”可帮助您很好地了解代码的模块化功能。

关于LabVIEW新手遇到的5大误区的介绍和分析

图 4. 采用正确的LabVIEW代码模块化操作可以帮助您节省大量开发时间

代码模块化时必须取消的一项设置是“允许调试”。 可在“VI属性(文件>>VI属性)”下的“执行”目录中找到此选项。代码完全正常运行无需再使用高亮执行等调试功能时,在执行设置中取消“允许调试”,然后再次运行VI。这样做的好处是由于在编译过程中进行了优化,应用程序的运行速度可能加快,而且由于启动调试的代码被关闭,VI所占的磁盘物理空间也相应减少了。

4创建庞大繁琐的程序框图

许多新LabVIEW用户都会把程序框图编写得非常繁琐庞大。对于一些复杂的应用程序,我们难免需要编写较大的程序框图,但庞大的程序框图从一定程度上也可以表明该程序缺乏编程架构。如果没有一个基本的架构,要长期维护该程序是非常困难的,而且如果以后要添加新功能也会非常困难。正如只有一个好的框架才能建造一栋结构合理的房子,一个好的编程架构可以为您构建应用程序提供了一个安全可靠的框架。

几乎所有的程序员都会发现常见的框架中,软件架构是非常有用的。实际上LabVIEW中的许多架构,如生产者/消费者和状态机,与其他编程语言非常相似。

了解LabVIEW的架构可以缩短开发时间和提高应用程序的可扩展性。 LabVIEW 2012包含了模板和项目范例,使理解架构变得更加容易。模板解释了不同的架构及应用。项目范例则是基于模板的更大型应用程序,演示了如何使用模板来应对实际的挑战。您可以将硬件加入到范例项目中,或者需要时可将项目范例作为一个整体应用程序,同时项目范例具有开放性且文档记述也很完整,所以您可针对具体应用进行自定义。

关于LabVIEW新手遇到的5大误区的介绍和分析

图 5. LabVIEW 2012中的模板和项目范例使得理解软件架构变得非常轻松。

5不重视文档记录

优秀的代码文档可以有效地帮助他人理解自己写的程序。遗憾的是,许多程序员通常在开发周期末期功能开发结束之后才开始进行文档撰写。这使得用于对代码进行文档记录的时间变得非常少。正确的做法应该是在开发过程中就需抽出时间来开始进行文档记录。文档对于编程人员自身也非常有用,尤其是当他们过段时间回来看代码却不记得当初他们为什么选择某些代码时。程序员经常会一边喝着咖啡,一边熬夜编程,这往往会出现“短暂失忆”。而文档则可以帮助程序员进行回忆。

一般情况下,相对于基于文本的程序,LabVIEW的图形化特性使得程序阅读更为容易,但是有效的文档记录可以减少“解码”程序所需的时间。添加文档注释到程序框图的最简单方式是使用自由标签。您可以在框图的空白位置双击左键,并输入文字,添加注释。然后,使用箭头标记来指向自由标签引用的特定代码。如果需要添加图片,则可将它们复制到剪贴板,然后粘贴到程序框图中。物理系统图片和数学公式均有助于清晰说明程序框图内的代码上下文。

关于LabVIEW新手遇到的5大误区的介绍和分析

图 6.架构正确且文档记录充分的代码不仅可帮助其他人理解您的代码,也可帮助您更好地理解自己的代码

对代码进行文档记录不仅只是针对复用程序库,而应该是针对每一个程序。当一个人需要为其他人讲解时,他对该主题将会有更深刻的理解。文档记录从本质上看就是在迫使程序员进行讲解,以帮助他们更好地了解自己的代码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计数器
    +关注

    关注

    32

    文章

    2306

    浏览量

    97670
  • 模块化
    +关注

    关注

    0

    文章

    348

    浏览量

    22543
  • 代码
    +关注

    关注

    30

    文章

    4947

    浏览量

    73248
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    从零开始:一份详细的灌封胶新手入门指南,告别常见操作误区 | 铬锐特实业

    针对新手的灌封胶完整入门指南,从类型选择、配比搅拌、真空脱泡到灌封固化全流程详解,帮助你避开常见操作误区,轻松掌握电子元器件防护技巧。 | 铬锐特官网
    的头像 发表于 12-17 00:31 52次阅读
    从零开始:一份详细的灌封胶<b class='flag-5'>新手</b>入门指南,告别常见操作<b class='flag-5'>误区</b> | 铬锐特实业

    关于NFC镍锌铁氧体片的介绍

    关于NFC镍锌铁氧体片的介绍
    的头像 发表于 12-04 10:52 138次阅读
    <b class='flag-5'>关于</b>NFC镍锌铁氧体片的<b class='flag-5'>介绍</b>

    分析负载特性时,有哪些常见的错误或误区

    分析负载特性时,很多人会因 “想当然套用经验”“忽略实际场景细节” 或 “混淆概念” 导致判断偏差,进而让报警阈值调整失效(如误报、漏报)。以下是 6 个最常见的错误 / 误区,附错误表现、危害
    的头像 发表于 10-10 17:03 540次阅读

    电路板生产ERP选型常见误区分析

    解决方案的品牌,万达宝凭借对行业特性的精准把握,逐渐成为众多企业的重点关注对象。本文将结合市场主流品牌特点,系统分析选型过程中易陷入的典型误区。一、万达宝:制造业场
    的头像 发表于 09-16 10:31 436次阅读
    电路板生产ERP选型常见<b class='flag-5'>误区分析</b>

    操作误区警示:发动机气密性检测仪新手易犯错误-岳信仪器

    发动机气密性检测仪在保障发动机性能和质量方面起着至关重要的作用。然而,对于新手来说,在操作过程中容易陷入一些误区,影响检测结果的准确性。以下是新手常见的操作误区
    的头像 发表于 09-13 14:54 481次阅读
    操作<b class='flag-5'>误区</b>警示:发动机气密性检测仪<b class='flag-5'>新手</b>易犯错误-岳信仪器

    汽车行业 GDPR 误区 TOP5,带您一文厘清!

    因汽车智能化发展,ADAS 技术依赖海量视频数据采集,欧盟GDPR作为全球严规,对企业处理欧盟公民数据要求严格且违规罚款重!本文对行业常见的 5 个 GDPR 误区进行逐一拆解,助力企业规避数据违规风险!
    的头像 发表于 08-27 13:36 473次阅读
    汽车行业 GDPR <b class='flag-5'>误区</b> TOP<b class='flag-5'>5</b>,带您一文厘清!

    新手入门:使用CST电磁软件进行贴片天线设计的5个基本步骤

    新手入门教程:使用CST进行贴片天线设计的5个基本步骤。从创建模型到结果分析,详细指导您完成2.45GHz微带贴片天线的完整设计流程。
    的头像 发表于 07-28 16:17 706次阅读
    <b class='flag-5'>新手</b>入门:使用CST电磁软件进行贴片天线设计的<b class='flag-5'>5</b>个基本步骤

    电机故障诊断常见误区的剖析

    纯分享帖,需要者可点击附件获取完整资料~~~*附件:电机故障诊断常见误区的剖析.pdf (免责声明:本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!)
    发表于 04-07 17:35

    避坑指南:选购电动牙刷气密检测仪的5个致命误区

    的“守门员”,其选购直接关乎企业成本与风险。然而,许多厂商在设备选型时常因认知偏差踩中以下5误区,最终付出高昂代价。误区一:只看价格低,忽视参数匹配问题:部分厂商为节省
    的头像 发表于 03-25 15:44 501次阅读
    避坑指南:选购电动牙刷气密检测仪的<b class='flag-5'>5</b>个致命<b class='flag-5'>误区</b>

    别被过时认知误导!打破关于TSN的7大认知误区

    时间敏感网络(TSN)正逐渐崭露头角成为推动各行业数字化转型的关键技术然而,如同任何新兴技术一样TSN在发展过程中也面临着诸多认知误区这些误解犹如层层迷雾阻碍着大家全面认识和充分利用TSN工具今天
    的头像 发表于 03-12 17:32 1030次阅读
    别被过时认知误导!打破<b class='flag-5'>关于</b>TSN的7大认知<b class='flag-5'>误区</b>

    低通滤波器的常见误区

    ,但在设计和使用过程中,工程师和技术人员可能会遇到一些误区误区一:低通滤波器可以完全去除高频信号 误区解析: 低通滤波器的设计目的是减少高频信号的影响,但它们并不能100%地去除所
    的头像 发表于 01-21 10:02 1187次阅读

    断路器的选型误区分析

    断路器是一种自动操作的电气开关,旨在防止电路因过载或短路而损坏。在进行断路器选型时,存在多个常见的误区,以下是对这些误区分析: 一、为应用选定错误类型的断路器 设计工程师在选型时,可能未充分
    的头像 发表于 01-03 09:48 911次阅读

    漏电开关使用误区及纠正

    漏电开关是现代电气安全中不可或缺的一部分,它能够在检测到漏电时迅速切断电源,从而保护人身安全和设备不受损害。然而,在实际使用过程中,由于对漏电开关的认识不足或操作不当,常常会出现一些误区误区
    的头像 发表于 12-30 17:18 1251次阅读

    无线充电原理的常见误区

    随着智能手机和其他便携式设备的普及,无线充电技术越来越受到关注。然而,尽管这项技术已经取得了显著进展,但公众对其工作原理和能力的理解仍然存在一些误区误区一:无线充电是新技术 误区解释: 许多人
    的头像 发表于 12-28 13:51 1108次阅读

    DFT的常见误区与解决方案

    DFT(离散傅里叶变换)在信号处理领域具有广泛的应用,但在使用过程中也常会遇到一些误区。以下是对DFT常见误区的总结以及相应的解决方案: 常见误区 混叠现象 :
    的头像 发表于 12-20 09:32 2132次阅读