专业编程基础技术教程

网站首页 > 基础教程 正文

ABB机器人IF条件判断指令

ccvgpt 2024-11-20 13:03:32 基础教程 12 ℃

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

IF 的语法结构

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

Condition:条件

ABB机器人IF条件判断指令

<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 可以嵌套

?上一篇:ABB机器人Compact IF紧凑型条件判断指令

最近发表
标签列表