视觉论坛VISIONBBS微信公众号:石鑫华视觉网

 找回密码
 注册会员
查看: 904|回复: 0

[转载] 陈树学:labview编程技巧-----令人无奈的IF ELSE

[复制链接]
  • TA的每日心情
    奋斗
    昨天 16:23
  • 签到天数: 1255 天

    [LV.10]100FPS

    发表于 2014-11-2 19:26:08 | 显示全部楼层 |阅读模式
    LabVIEW作为一种编程语言,相对于常规编程语言,有其独特的编程风格.

    ( [. j  @0 ]3 U! B* w: l
    % D& c' Q4 o* S* u0 \
    编程语言都具有顺序,条件转移和循环三种基本结构.LV的IF ELSE常常令人很无奈.
    : @3 J# ^( K! X$ P

      v! k7 ?1 {- ]' ]% N
    if (condition1)

    1 }# s; R& H/ J# Y- x! E, d
       ........
    - g# ^: f' K  O$ R  O
    else if (condition2)
    : _! C8 I' x* a- s, I
    3 Y+ y8 ?/ S( h7 x* b+ z' }. n. J
        ........
      R& [( m, s" F6 V9 `! i
    else if (condition3)
    5 a7 H" j9 c, f0 K

    + F8 z, R" ]8 U
    类似与上面的条件结构在其他编程语言中很容易实现,在LV中却是个问题.
    / y6 t% C% n- x" r9 V! ~( O3 j
    " q& u( @& ~  X; E9 O: O  Z
    1.如果超过三层IF ELSE判断,LV中则很难读懂代码,嵌套太多了

    7 o& H' _: |  _/ J6 Z4 \4 x
    2.LV的IF结构必须通过隧道传递数值,即使这个值有时是根本不需要的.

    ( `: N1 ]+ F; O5 V; E) C: c
    . j3 L3 A  k! k( w
    比如:
    $ v5 H+ A& r5 A0 A+ p
    if (a==1)
    / n# Z0 K: ?- E5 _5 B' A  ?
       b=2;
    ( ]" b2 P3 ]+ m4 _8 ]! Q$ ~
    else

    + ~3 j4 L' b  Q- ^1 I- b
      c=3;
    . w8 ~8 V: b% g# x& u3 i

    6 V9 K& c& {& {3 x
    当变量a=1时,令变量b=2,当变量a!=1时,令C=3

    % g/ c2 Q2 t2 l4 L3 m
    但是在LV中,当变量a=1时,在令变量b=2的同时,还必须处理C,而此时我们根本不想对C进行任何操作.同理,当a!=1时,我们也不得不处理b的问题.

    + n* `2 H" B  v  y& t* d8 C& b/ `  w' m8 H0 U% j6 G! ^
    5 |3 V/ H4 M! y, _. y: x( C- T/ |9 L
    有网友提问:
    * e0 y# o- S: D) [6 ?* \3 V: {' u
    Hi

    . t, J" |2 J7 ]
    I like to do the following statements in LabVIEW,

    ' |4 v# l7 |8 E3 k+ Y! E
    IF AoValue<=0.1 THEN
    + R. [6 c1 A, \8 |4 X  L  N: @% V    AoValue1=(AoValue-0.0060)8 m' w9 Q& ^0 x9 a1 M
        ELSEIF (AoValue >0.1) AND (AoValue<0.2) THEN
    . H5 J' L/ E3 H6 ^* T( e
         AoValue1=(AoValue-0.0035)
    5 w$ z& B$ h" I4 \ENDIF

    : D5 f6 v7 @0 {- Q, A: f
    Pls help with this

    ' z+ _: Q$ l4 ~
    Thanks
    + w+ d  }& r( R% b
    7 d' A/ E$ D/ `. X+ L5 k# {
    网友答案:

    0 o* }# M2 }8 A' z' K6 f- T  O+ Y# V4 ?$ b

    % {8 m2 F: b' U2 I
    这是个两层的IF ELSE结构,如果数据分成10段那,那上面的判断结构将无法实现了.(另外,他的AOVALUE应该是个输入控件)

    / R( w: u4 }8 e
    7 r+ `, |& s# N, i; p. H
    比较好的解决方法:
    # @  l# K8 d9 _& ^- i' L
    # `4 X8 [: B# p0 Z) x7 T

    # R5 {9 k1 x7 o( Z4 k% F
    + y" I4 S, e; m3 ^$ B) Y0 Q
    如果是数值类比较,更好的方法是利用公式节点.

    + Y3 M  ]' \  h! o5 ~+ L* _

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册会员

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    淘宝机器视觉商城

    Archiver|手机版|小黑屋| 机器视觉之家|东莞市华动智能科技有限公司 ( 粤ICP备17078359号-2 ) |网站地图

    GMT+8, 2018-7-23 04:38

    Powered by shixinhua.com X3.4

    © 2001-2018 VISIONBBS.COM 浏览量:

    快速回复 返回顶部 返回列表