LABVIEW的深入探索之内外有别的条件结构

2015-08-25 09:39:55来源: eefocus
        条件结构(CASE)是LV常用结构之一,最为典型的条件结构是含有错误处理的条件结构,常常用于避免使用顺序结构。与C语言的条件结构不同,对于显示控件,所有的CASE分支必须对显示控件传递数据(赋值)或者直接使用默认值,不允许不输出。

        在条件结构中,处理显示控件有两种完全不同的方式,这两种方式虽然表明上看差别不大,在具体编程中都可能使用过,但是对于大型数据处理,比如大的数组,运行效率差别极大,可能不经意间造成程序运行缓慢,且不易查错。

方法一:条件结构外处理显示输入控件和显示控件。这种方法中,输入控件和显示控件均位于条件结构分支之外。如下图所示:

        

 

方法2:条件结构内处理输入控件和显示控件控件。这种方法中,输入控件和显示控件位于条件结构分支中,从程序框图上看,似乎更为简洁,但却是非常错误的,如下图所示。

方法2中,错误分支中没有进行任何处理,输入控件和显示控件位于无错误分支中。

OUT,VI和IN.VI实现的功能是完全相同的,但是运行效率却是天壤之别,数组越大,区别更为明显。当然不同的计算机上,运行时间会有区别。下面是测试程序框图。

 

下面是测试结果,二者的运行时间相差20000多倍。

下面引入一个“顶层程序框图”,顶层程序框图常见于LV爱好者的文章中,LV的相关书籍中没有这样的概念。OUT.VI中,输入控件位于左侧,显示控件位于右侧,均位于所有结构之外,所有结构之外称作“顶层程序框图”,类似于C语言中的形参部分。

顶层程序框图中,运行效率是极高的,这是因为在进入子VI之前,LV很容易可以断定,缓存是可以重用的,因此不需要在循环中,每次复制数组。但是输入控件和显示控件位于条件分支内部时,LV可能无法判定缓存是可以重用的,因此采用的值复制的方法,这样牺牲了效率,但是保证了正确的结果。

方法二中,表面上看似乎更为合理,但却是错误的,因此可以得出结论,子VI中的输入控件和显示控件应该位于顶层程序框图中,不应该位于任何结构之中。

关键字:LABVIEW  内外有别  条件结构

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2015/0825/article_12906.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LABVIEW
内外有别
条件结构

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved