|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程9 @( o. s: X7 g) H
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
4 q* N) ~% ^1 V6 V7 Z/ d[\InPos] : 提前量开关。 ( switch ) - y# c5 [ H$ `; O" i5 }+ a& q5 A
Cond: 判断条件。 ( bool )
: C- v' P9 A4 O; o1 ?5 F[\MaxTime]: 最长等待时间 s。( num )
0 l! A. P5 l; t8 l" z2 d[\TimeFlag]: 超时逻辑量。 ( bool )
0 k1 u9 J0 ?. M; V
: r8 S% U" V$ j4 L8 fABB机器人程序流程指令WaitUntil-应用:' B% `' ]9 L9 J
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
4 w) \; U- G; f: d
$ j- Q/ } w% [ABB机器人程序流程指令WaitUntil-限制:* [4 \. w* c- l# U" E
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。; b2 ?5 E/ d7 @. h3 r1 U
8 \" a6 y: ]6 @1 q" d
ABB机器人程序流程指令WaitUntil-实例:
) @! l7 V& n# k, ^; o m( W" C, a PROC PickPart()
# M" @+ O$ N6 w+ R; {5 z9 G3 \ MoveJ pPrePick,vFastEmpty,zBig,tool1;8 u# Y1 T1 b* m
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。- |0 N, N+ U: d7 K( G
(WaitDI di_Ready,1;)
# h ~0 q# c4 } @$ a" u6 f
5 r6 f" }9 t3 L# o5 c! w( r PROC PickPart()
- [7 T5 W* w, b( T6 k7 c: F MoveJ pPrePick,vFastEmpty,zBig,tool1;+ d$ V( z/ l+ M2 m2 e0 p1 q
WaitUntil nCounter=4\MaxTime:=5;+ [1 Z9 [' v( O* G& J2 G, z6 c6 ]
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
# p4 ~6 U/ f4 F& _! T% V ERROR. O8 a5 r( Z% `: C3 ~
IF ERRNO=ERR_WAIT_MAXTIME THEN! F3 H" `5 i8 n, { x
TPWrite “……”;
4 P' H( ~. L5 @+ @" R RETRY;
! a& U3 F; o4 X+ u3 n# j9 N ENDIF0 M9 T+ S( T) L; E9 Z5 F8 f
ENDPROC' J; L7 q" C. e+ o* o [
4 {' D+ l1 H/ hABB机器人程序流程指令WaitUntil-实例:
: w, B+ f, z7 n6 S9 c7 `2 K PROC PickPart()
+ k; k( n; m5 R, {+ P MoveJ pPrePick,vFastEmpty,zBig,tool1;
$ y# |' u# L5 o2 i; m bTimeout:=TRUE;8 \; i# x3 [+ U5 `( n; _. u
nCounter:=0;' s0 V# U" n+ `1 ^
WHILE bTimeout DO+ W# t/ C9 r$ V$ y
IF nCounter>3 THEN
, F! _$ X% @" u: j8 Y# k- U TPWrite “……”;
; _9 T/ g& G. d ENDIF
3 p u7 t Q2 i% ~$ |; C( E IF nCounter>30 THEN9 G5 T. C4 Z) f5 j3 @! ~& d! Z
Stop;$ J- r, x: H/ E7 s/ g! |2 y
ENDIF
0 [3 d7 `; }; C' N2 K$ f; F1 a WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
5 R7 w1 t3 n4 Q% j8 b# E" P Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。( V2 Q& m y4 k9 M( j
ENDWHILE( c: k+ w- g1 q# Z( b- B$ P
…& b {: b* |. B3 x
ENDPROC
! f1 f0 Q3 Z9 J2 @. E* @& A1 o |
|