LabVIEW新手5大错误
错误使用局部变量
LabVIEW编程中另一个常见的错误是过度使用局部变量。局部变量是共享内存中的一个区域,用于在计算机程序不同部分之间传递数据。局域变量通常用于文本编程语言,具有非常强大的功能,但如果出现竞争条件,就会产生问题。
对于其他编程语言来说,通过变量传递数据是必需的,而LabVIEW则提供了一种数据流方法,可将数据从程序的一个部分移动到另一个部分。LabVIEW固有的并行性机制决定着用户不能过度使用变量,因为同一时间内通常会有多个不同的位置的程序访问共享内存。如果过度使用变量,则会出现某个读/写操作赢了“竞争”,而其他操作则输了“竞争”,丢失数据的操作会被忽视,因此在LabVIEW中过度使用变量可能会最终导致数据丢失。
您可以通过多种方法安全地将数据从LabVIEW程序的一个部分传递到另一个部分,包括连线、队列、事件、通知、功能全局变量等等。每个机制都是针对特定情况设计的,但都具有消除竞争条件的功能。
忽略代码模块化
通常情况下,新LabVIEW用户创建的是“即写即忘”应用程序去完成简单的任务,而没有考虑到以后是否会用到这些代码。随着编程工作越来越多,他们会发现自己一遍又一遍地重写同一段代码。而如果在编程同时创建一个可复用于其他应用的模块化子VI,就可以节省大量的开发时间。
如果您知道代码的特定部分将会重用于同一应用程序,或感觉该部分代码可能会用于未来的应用程序,那么您应该花一点时间将该部分代码变成一个子VI。如果要使某部分代码成为一个子VI,您需要做的主要是添加一个文档、使用“接线端”、禁用某些VI属性。创建子VI的最简单方法之一是高亮标记程序框图中的某部分代码,然后从菜单栏中选择“编辑>>创建子VI”。这样这部分代码就会放到一个单独的VI,然后使用“接线端”。您仍然需要为图标添加说明,并将文档记述添加到程序框图和VI属性中,然后取消某些VI设置,但“编辑>>创建子VI”可帮助您很好地了解代码的模块化功能。
代码模块化时必须取消的一项设置是“允许调试”。 您可在“VI属性(文件>>VI属性)”下的“执行”目录中找到此选项。代码完全正常运行无需再使用高亮执行等调试功能时,在执行设置中取消“允许调试”,然后再次运行VI。这样做的好处是由于在编译过程中进行了优化,应用程序的运行速度可能加快,而且由于启动调试的代码被关闭,VI所占的磁盘物理空间也相应减少了。
创建庞大繁琐的程序框图
许多新LabVIEW用户都会把程序框图编写得非常繁琐庞大。对于一些复杂的应用程序,我们难免需要编写较大的程序框图,但庞大的程序框图从一定程度上也可以表明该程序缺乏编程架构。如果没有一个基本的架构,要长期维护该程序是非常困难的,而且如果以后要添加新功能也会非常困难。正如只有一个好的框架才能建造一栋结构合理的房子,一个好的编程架构可以为您构建应用程序提供了一个安全可靠的框架。
几乎所有的程序员都会发现常见的框架中,软件架构是非常有用的。实际上LabVIEW中的许多架构,如生产者/消费者和状态机,与其他编程语言非常相似。
了解LabVIEW的架构可以缩短开发时间和提高应用程序的可扩展性。 LabVIEW 2012包含了模板和项目范例,使理解架构变得更加容易。模板解释了不同的架构及应用。项目范例则是基于模板的更大型应用程序,演示了如何使用模板来应对实际的挑战。您可以将硬件加入到范例项目中,或者需要时可将项目范例作为一个整体应用程序,同时项目范例具有开放性且文档记述也很完整,所以您可针对具体应用进行自定义。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码