机器人教程网

标题: 程序流程指令WaitUntil-ABB机器人标准指令编程 [打印本页]

作者: 我是机器人    时间: 2019-10-16 11:59
标题: 程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
9 b' b3 m* `8 y1 C5 @4 r  qWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];3 {& U8 J5 j: O' h& y
[\InPos] :                提前量开关。        ( switch )       & O) w  g2 h1 q8 m+ ~
Cond:                判断条件。        ( bool ) " G4 o" q: o: d8 A" U
[\MaxTime]:        最长等待时间 s。( num )
& j2 ]  [: C, @+ w[\TimeFlag]:        超时逻辑量。        ( bool )
! M  K4 K& D+ o0 @! q/ y
" e( e+ D" F( u2 y( m
ABB机器人程序流程指令WaitUntil-应用:
# P. j+ E  g# b, p        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
4 D% f3 _, M) T7 R2 Q5 i, F$ T; v3 o; D! a% O0 `, A
ABB机器人程序流程指令WaitUntil-限制:* Z/ n. A+ O! ~4 d6 x! n( H  F
, \; r! }2 L% S6 y
ABB机器人程序流程指令WaitUntil-实例:
, {6 b* U2 J9 c6 h  u        PROC PickPart()
0 I- K6 i2 U* c. D* j          MoveJ pPrePick,vFastEmpty,zBig,tool1;7 {* f- ]+ t3 m5 o
          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
5 {6 J. l9 Z3 h( a* Z3 E8 T          (WaitDI di_Ready,1;)
$ {7 s- `( B1 b) u5 e3 E! a
& L3 h% R1 j1 U: ?        PROC PickPart()
1 _; H9 K1 {9 q0 H. o9 g" G5 I          MoveJ pPrePick,vFastEmpty,zBig,tool1;
+ S8 S& P* z0 @2 ]0 X8 @' w          WaitUntil nCounter=4\MaxTime:=5;
) |" O; [+ T! ?4 p) w5 y          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。' v7 B0 T2 l/ W9 l5 z/ q
        ERROR% P9 L& R; e: _6 y+ e: R7 O
          IF ERRNO=ERR_WAIT_MAXTIME THEN
  c: n8 p) g( x0 \* c            TPWrite “……”;: z4 I* b2 F' o
            RETRY;
$ y7 s; M. h% ^- u: `; Q! l; I2 C          ENDIF
( v" L- F2 t( E) w        ENDPROC
. w! z* e( O7 v& A) M- a4 Y3 H) ?3 j2 n8 k7 H! p/ q/ o
ABB机器人程序流程指令WaitUntil-实例:5 `- ]4 Z3 y/ U: v
        PROC PickPart()
; V. ~! ^: \& ?5 E5 A7 n5 ]1 d          MoveJ pPrePick,vFastEmpty,zBig,tool1;
$ d( v$ T& s  ^) Y- ]  _          bTimeout:=TRUE;
; F- t% V2 K! o7 S$ _          nCounter:=0;, u) g) k, I% E# p9 q
          WHILE bTimeout DO, B3 M) P- M. J$ W$ P+ c& O
            IF nCounter>3 THEN+ ^. O8 j0 m9 Z. k6 ]
              TPWrite “……”;
; L* h& F  o8 P! D0 w            ENDIF! k8 j' H2 n8 b; Y7 D5 z% \7 U7 ]
            IF nCounter>30 THEN( X3 g/ ~: W4 H0 Z; u
              Stop;
5 x7 \+ O: P; b            ENDIF0 K$ k5 M0 @' j" ]( N* u- T$ F
            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;" y* C) @) d/ f5 R8 ]- h
            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。$ [' H5 @* }/ z6 s. D
          ENDWHILE. {5 n2 S3 E/ r
          …
. e2 k" f' b8 u        ENDPROC( X* F! q7 ?6 Z6 s1 H% J





欢迎光临 机器人教程网 (http://robotjc.com/) Powered by Discuz! X3.2