|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
& H6 P* S: p7 c+ k8 `3 oWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];0 ?- u7 _' W& u
[\InPos] : 提前量开关。 ( switch )
# b( b+ A. I7 C: _( u9 VCond: 判断条件。 ( bool )
6 b0 ]: {) h* p! H[\MaxTime]: 最长等待时间 s。( num ) ; U* L$ [, s4 R1 P o! B* Q' |
[\TimeFlag]: 超时逻辑量。 ( bool )
0 j- ~# @$ N7 A! y9 G+ t % i6 T& H/ ~2 M' u8 \2 p
ABB机器人程序流程指令WaitUntil-应用:+ w! m& ~" @" J* B4 w
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
4 k1 Z2 F9 }+ ^' t
/ ?) C1 R' e; k: R1 K% ?ABB机器人程序流程指令WaitUntil-限制:
6 h! |1 A. z( _1 L t) ^ {- X; R; `# `- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。5 K. \" G% q D0 p# f/ }! a
) w6 g: b; B$ FABB机器人程序流程指令WaitUntil-实例:
9 V- [' E& I. m$ O* M, J0 B& O) d) f PROC PickPart()6 w0 T4 f6 _7 } d# `3 c; d
MoveJ pPrePick,vFastEmpty,zBig,tool1;& w/ g1 y% e5 u& t4 v9 _7 O# a
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
# p. {" u# G S7 `! J (WaitDI di_Ready,1;)
( r1 f- v8 k( R( z4 e* s' A$ W) e' r' Y' G3 l
PROC PickPart()( ~3 \2 o! e* F* I8 w
MoveJ pPrePick,vFastEmpty,zBig,tool1;
- Y& \$ h2 b9 ?9 }0 s WaitUntil nCounter=4\MaxTime:=5;
p( R: f& x4 g9 d$ J0 i7 d' u9 {, _. D" g … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
/ [& X' b% Y0 @+ V ERROR; |- c$ i0 ]5 ]% Z6 G9 f7 l
IF ERRNO=ERR_WAIT_MAXTIME THEN- l R; R" Q$ H1 _0 P% y' W
TPWrite “……”;5 z: Y1 j. W, D6 s# @7 q
RETRY;& A) G& J+ I# k$ |6 [5 ^ z& A$ f
ENDIF9 A/ S# W# U, {* K% @. t7 ?( W+ {
ENDPROC' F: Y+ z7 L; r- r4 Z
, x) L( ~6 r. P! e4 V
ABB机器人程序流程指令WaitUntil-实例:+ m; R% a. o+ [/ |
PROC PickPart()
$ _; o. x/ n6 e' S7 x: k; W1 o) ^ MoveJ pPrePick,vFastEmpty,zBig,tool1;
/ n! _6 k2 Y2 d. s5 O S5 W2 U/ k1 Q bTimeout:=TRUE;
- M: M1 C2 Z! t& a, ?3 d1 O6 W nCounter:=0;
9 x; v$ g0 |1 x' n WHILE bTimeout DO, G1 _6 t9 D& ^# Z* F6 G/ V
IF nCounter>3 THEN! S% {# f2 L# d
TPWrite “……”;
. D- W4 ]6 U3 D4 h4 l* _5 b, m+ [ ENDIF
+ [# V% t1 t4 V& W IF nCounter>30 THEN) r5 }/ j, H2 t M5 k. ^0 p& Z/ p
Stop;
4 w. H. a4 |- J u0 x, A H ENDIF
; z4 _& j# V& J5 ]" p WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
. D$ i! T2 E* @& L/ C* i2 V ] Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。7 z; M" h9 W# g% C/ Q+ }! g
ENDWHILE, e, A0 g$ P3 v: v
…
- M- ]% B2 J9 W Y! @$ ~0 R ENDPROC$ R2 W/ E4 g4 n' g C
|
|