我是机器人 发表于 2019-10-16 11:59:57

程序流程指令WaitUntil-ABB机器人标准指令编程

程序流程指令WaitUntil-ABB机器人标准指令编程
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
[\InPos] :                提前量开关。      ( switch )      
Cond:                判断条件。      ( bool )
[\MaxTime]:      最长等待时间 s。( num )
[\TimeFlag]:      超时逻辑量。      ( bool )

ABB机器人程序流程指令WaitUntil-应用:
      当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。

ABB机器人程序流程指令WaitUntil-限制:

[*]当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。

ABB机器人程序流程指令WaitUntil-实例:
      PROC PickPart()
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
          WaitUntil di_Ready=1;→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
          (WaitDI di_Ready,1;)

      PROC PickPart()
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
          WaitUntil nCounter=4\MaxTime:=5;
          …→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
      ERROR
          IF ERRNO=ERR_WAIT_MAXTIME THEN
            TPWrite “……”;
            RETRY;
          ENDIF
      ENDPROC

ABB机器人程序流程指令WaitUntil-实例:
      PROC PickPart()
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
          bTimeout:=TRUE;
          nCounter:=0;
          WHILE bTimeout DO
            IF nCounter>3 THEN
            TPWrite “……”;
            ENDIF
            IF nCounter>30 THEN
            Stop;
            ENDIF
            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
            Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
          ENDWHILE
          …
      ENDPROC
页: [1]
查看完整版本: 程序流程指令WaitUntil-ABB机器人标准指令编程