|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程4 m/ n$ i, L1 X" m
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
* k, r% r. h1 e0 l! x[\InPos] : 提前量开关。 ( switch )
7 F# y2 }6 P* W( ICond: 判断条件。 ( bool )
& A& [; V- R# H$ e5 l1 }5 k' o" V [[\MaxTime]: 最长等待时间 s。( num ) 7 q0 l4 h- r5 c5 U
[\TimeFlag]: 超时逻辑量。 ( bool ); Y* G, |2 ^# ` a' f, h
P- Z' V1 M) p4 |& N
ABB机器人程序流程指令WaitUntil-应用:
' {+ |7 i7 c8 z+ f3 m 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
$ U& K! F) B& ]# {+ l) Z. d4 s$ |' L/ X. V; V
ABB机器人程序流程指令WaitUntil-限制:
/ A0 M0 [! [% q9 r* s- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
: v. v, \, |9 j7 A
+ }6 W" W/ `% P3 P6 w M v' ]ABB机器人程序流程指令WaitUntil-实例:
, K- @' G; S! @ PROC PickPart(); r3 o2 n9 N3 Z- x
MoveJ pPrePick,vFastEmpty,zBig,tool1;' @5 I/ L. p8 U
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
S& T3 u: N7 A% f! m j (WaitDI di_Ready,1;)
5 y4 l$ y. k' u0 o& A' A) c: f/ \5 Q, a c7 O: v- {9 k
PROC PickPart()# I2 K+ H2 @/ H9 }. J" e; C
MoveJ pPrePick,vFastEmpty,zBig,tool1;
0 @' q1 d3 s. H. x+ J WaitUntil nCounter=4\MaxTime:=5;0 d. B, i) D. k! Q) `8 D4 N, ~/ Z: {0 O
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
! x* T3 k+ c: n& E; R& W ERROR
8 a$ ?* ~8 A" J# M IF ERRNO=ERR_WAIT_MAXTIME THEN
4 F" g1 H( j6 U; V" M TPWrite “……”;
9 N/ R& b" T2 R RETRY;' @4 ~8 \# y( x1 y- R
ENDIF: e+ O* x) T' f# z6 i: r2 l
ENDPROC! [+ ]. Y7 k7 `0 l
; Z) A, L+ _; O% C% Q4 j: w+ A* Z
ABB机器人程序流程指令WaitUntil-实例:. B+ f4 G5 ^) B" \
PROC PickPart(). L& x" o3 I' H @2 W4 z
MoveJ pPrePick,vFastEmpty,zBig,tool1;' v/ _2 d. d9 x; I
bTimeout:=TRUE;
' v; h9 `/ e* }: s6 e% K nCounter:=0;
9 ?- q7 \3 t$ N2 K$ d WHILE bTimeout DO8 ^6 A9 Z7 s& \! L1 v
IF nCounter>3 THEN; y& ~& Z2 V& C' v9 J
TPWrite “……”;
! E: N L# e9 z/ O4 m6 _ ENDIF
; P9 Y! n2 u" u, G( P" }+ Q! o" X IF nCounter>30 THEN" N# U& Z/ M+ {0 {3 A* V
Stop;
1 K7 e% O! t8 c& T ENDIF
; w! C1 R+ W1 K6 i4 @# {1 Q WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;7 G |6 K1 I5 \0 Z
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
; ~& K9 C4 l$ F1 }& P2 h ENDWHILE2 H( }* i X9 y+ |) F) ?8 x3 U
…
) t: n! ], K; g ENDPROC- M7 r! l3 ]+ v2 T
|
|