ABB机器人IF条件判断指令

依次测试条件,直至满足其中一个条件。通过与该条件相关的指令,继续程序执行。如果未满足任何条件,则通过符合ELSE的指令,继续程序执行。如果满足多个条件,则仅执行与第一个此类条件相关的指令。

IF 的语法结构


 IF Condition THEN
    <SMT>
 ELSEIF Condition THEN
    <SMT>
 ELSE
    <SMT>
 ENDIF

Condition:条件

<SMT>:需要执行的指令

语法说明:IF条件判断指令,就是根据不同的条件(Condition)去执行不同的指令。条件判定的条件数量可以根据实际情况进行增加或减小

格式IF Condition THEN DO ENDIF
参数Condition判断条件
DO执行语句

示例


有关于如何使用指令FOR的更多例子阐述如下。

MODULE MainModule

Var num a:=10;

PROC main()

   IF a>10 THEN   !当a大于10,a减1

   a:=a-1;

   ELSEIF a<1 THEN  !当a小于10,a加1

   a:=a+1;

   ELSE            !当前面的条件(Condition)都不满足,就跳转到aa标签

   GOTO aa;

   ENDIF
   aa:
   MoveJ pHome,v1000,fine,tool0\WObj:=wobj0;

ENDPROC

ENDMODULE

 MODULE MainModule
        VAR num x := 0;
        VAR num y := 0;
        CONST num bian := 50;
        CONST robtarget p10:=[[355.53,-499.89,643.48],[1.77401E-7,3.39455E-8,1,-5.27226E-8],[-1,0,-1,0],                                  [9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
        CONST robtarget p20:=[[355.53,50.11,643.48],[4.32223E-9,-3.8027E-8,-1,1.91626E-8],[0,-1,0,0],                                    [9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
        CONST jointtarget jpos10:=[[0,0,0,0,90,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
 PROC main()
    
        MoveAbsJ jpos10\NoEOffs, v1000, z50, tool0; !安全点
        Reset Vacuum;  !初始化吸嘴
        aa:  !标签aa
        !试想一下,人抓东西和放东西
        MoveJ Offs(p10,x*bian,y*bian,200),v1000,fine,tool0\WObj:=wobj0;!离抓取点的上方z轴200
        MoveL Offs(p10,x*bian,y*bian,0),v1000,fine,tool0\WObj:=wobj0;  !到达抓取点
        Set Vacuum; !吸取物块
        WaitTime 1; !等待1秒
        MoveL Offs(p10,x*bian,y*bian,200),v1000,fine,tool0\WObj:=wobj0;!离抓取点的上方z轴200
        MoveJ Offs(p20,y*bian,x*bian,200),v1000,fine,tool0\WObj:=wobj0;!离放取点的上方z轴200
        MoveL Offs(p20,y*bian,x*bian,0),v1000,fine,tool0\WObj:=wobj0;  !到达放取点
        Reset Vacuum;!放物块
        WaitTime 1; !等待1秒
        MoveL Offs(p20,y*bian,x*bian,200),v1000,fine,tool0\WObj:=wobj0;!离放取点的上方z轴200
        
        y := y+1;     
        
        IF y<3 THEN   !当y小于3时,跳转aa标签执行搬运指令
            GOTO aa;
        ENDIF
        
        y := 0;
        x := x + 1;
        
        IF x<3 THEN   !当x小于3时,跳转aa标签执行搬运指令
            GOTO aa;
        ENDIF
        
       MoveAbsJ jpos10\NoEOffs, v1000, z50, tool0;!安全点

ENDPROC
ENDMODULE

总结


  • IF 可以通过 条件 ( Condition ) 进行跳转,选择满足条件的分支
  • IF 可以嵌套

希望对你们有所帮助,如有不足之处,欢迎大家留言探讨,本文已经首发在个人微信公众号:龙猫YOU ,欢迎关注!

  • 10
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值