|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程+ p) i; w2 K+ f( W0 M: E0 c
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
+ s6 @ ]5 P3 Z/ u' X[\InPos] : 提前量开关。 ( switch )
7 o8 k* [; J8 ?. ~' M cCond: 判断条件。 ( bool )
* u8 D* b/ O, T[\MaxTime]: 最长等待时间 s。( num ) ; P, Z: ?# u8 Q& `9 x; R
[\TimeFlag]: 超时逻辑量。 ( bool )5 g! w' X4 f* x- J( w; e" F
2 _# e/ H5 ~) `& i" NABB机器人程序流程指令WaitUntil-应用:
8 a2 ^0 r( d2 T0 X# u4 G! g- ` 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
" V6 |/ a3 a Q! f2 ?: f) E6 W" x, r: G3 A6 h# T' B
ABB机器人程序流程指令WaitUntil-限制:
8 S G/ W1 q! s1 l; h& _8 o- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
& t' o" X2 C) a% i( U" ^% d" E " u8 ^$ ?0 ~* Z) _/ M
ABB机器人程序流程指令WaitUntil-实例:8 u8 h: d" r2 p V, ^7 P! J& T
PROC PickPart(): y7 J+ i# w, R s' a" r
MoveJ pPrePick,vFastEmpty,zBig,tool1;4 |/ _1 B9 [7 G+ x7 s
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。/ \0 b: W2 \/ G0 \% f1 y
(WaitDI di_Ready,1;)6 a2 T' A- h8 g1 c3 {! k8 z
# @: E* q! }6 t
PROC PickPart()
/ f$ z7 |% O* R, S" t/ ]/ g MoveJ pPrePick,vFastEmpty,zBig,tool1;1 I. C" l9 ]0 e3 T
WaitUntil nCounter=4\MaxTime:=5;' H: e# G3 k( H4 ^) {7 ?
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
' v' Y" B% X. K( l ERROR
4 V/ ^2 H; n Y9 L& ^0 W0 w0 J- B IF ERRNO=ERR_WAIT_MAXTIME THEN
* G3 e) N5 m$ [3 n TPWrite “……”;
$ |6 c7 f* G) g% U RETRY;
/ M W/ L6 D1 e# h ENDIF
- B( n# f; \2 ?3 A0 L: i/ s" } ENDPROC
: ^; ]$ o' n. }6 X/ j2 [# N# b0 o9 ~
ABB机器人程序流程指令WaitUntil-实例:
3 R" T9 Y- l9 F- }" b PROC PickPart()0 L% C: j+ l; i- Z& g; ?
MoveJ pPrePick,vFastEmpty,zBig,tool1;
$ N% d" v- u2 D7 Q: b bTimeout:=TRUE;8 H: C/ `/ d" V1 j
nCounter:=0;! C9 T+ J0 `0 N- H
WHILE bTimeout DO3 ~; x0 R( M" R D+ y" a1 M
IF nCounter>3 THEN$ t3 p' W3 K0 V: a% G
TPWrite “……”;% W! `% }0 f* R: R1 X
ENDIF
) s) ]* \$ A. c$ E3 @! k6 { IF nCounter>30 THEN. M0 b: n8 ?" E. c
Stop;
6 |3 t- B8 e0 c' v9 G$ L0 x# D5 \ ENDIF! l0 o: k1 q% ?% o5 ~# s( W" E
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
9 R; a7 Z" u6 r5 A+ s. X6 I Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
- W4 {2 d) Q( L2 D& K ENDWHILE
( K; |+ w& V+ N5 w+ C …
7 |4 d' p8 i3 l# D6 n; M# ^ ENDPROC
( O/ t: w3 H$ w* p- R, V) Z |
|