|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
2 o' G" D* F1 u, T$ S; OWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
7 M: Y9 s+ v& j6 V; t) U- W. d& E[\InPos] : 提前量开关。 ( switch ) 2 I' y; e* ]% k ~1 ]# m# e
Cond: 判断条件。 ( bool )
' F& ^2 S; N5 D, [[\MaxTime]: 最长等待时间 s。( num )
7 Z$ Y" R+ c! }) b4 W[\TimeFlag]: 超时逻辑量。 ( bool )
1 X2 G1 T3 n2 w% S) r' y ; f6 [2 ~( q. Q! D1 M
ABB机器人程序流程指令WaitUntil-应用:
3 S" @( x0 v t, r) C; P; `3 u; | 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
?$ ?. G4 \& }
, W. f: X2 b, y5 oABB机器人程序流程指令WaitUntil-限制:
& W! C4 _* d" g( R" }3 u9 p- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。 D$ y. S) c- j# D3 U7 [
/ w$ k$ ^& ?7 T! M
ABB机器人程序流程指令WaitUntil-实例:
9 y- J* l: U6 s0 |: F. j# f% c/ {% ] PROC PickPart()0 A! {" B; U) \2 k3 Y
MoveJ pPrePick,vFastEmpty,zBig,tool1;, l) x% I& r1 L
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
) Z3 R: Z5 h5 s- z+ H% y/ W. d (WaitDI di_Ready,1;)
C# L9 j# S$ a: @2 s8 V6 w" Y$ J7 k3 M% m& i! b
PROC PickPart()* e' m. |4 O0 ^) s4 J- S' L
MoveJ pPrePick,vFastEmpty,zBig,tool1;" B) c* }7 z5 q3 t* G7 a
WaitUntil nCounter=4\MaxTime:=5;
8 X" ~. W$ Q; ?' T … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。. s! ~7 D3 |" k' R0 ?: }
ERROR' C4 m/ c I3 R
IF ERRNO=ERR_WAIT_MAXTIME THEN
& G- u' f+ x6 N5 v& q0 a9 b, v TPWrite “……”;
# S; t3 d6 b8 t) q RETRY;, I l& e' o& x+ F
ENDIF
$ Z W# J0 \6 q9 V; f2 P& U* C ENDPROC
, H3 l/ I- \9 Z/ f2 P
5 h2 |4 m$ M, s5 x. ~! Y& `ABB机器人程序流程指令WaitUntil-实例:
' [6 b& Y. X* }8 p PROC PickPart()
0 J: `+ S y \# X MoveJ pPrePick,vFastEmpty,zBig,tool1;8 i6 g. E5 ?7 l) T
bTimeout:=TRUE;
& H* N8 `( M% ^+ l8 w& _ nCounter:=0;
1 j- T$ p0 H. y2 I WHILE bTimeout DO
/ w7 ?4 [7 |3 V9 n IF nCounter>3 THEN) O# x1 t/ K% D
TPWrite “……”;
" X2 L, x8 G7 M ENDIF1 f3 _6 K+ K3 u& L
IF nCounter>30 THEN
5 ?* Q: X( c1 `9 J Stop;! M ^( p+ r2 [: x( J$ A" _
ENDIF
( ]+ C1 C/ Y; v1 D WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
* y+ B4 i& \3 n Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
0 q7 j- K i5 |4 `0 }3 S z) X( f& H ENDWHILE+ z% y% H, m' `* ^/ Q
…8 y5 F+ I( V1 m. d5 o/ u
ENDPROC: p! t {$ W+ B
|
|