|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
& Y7 {/ H' B9 O- a+ u0 Z8 [WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
8 @7 ? I" w2 c q: Y) K[\InPos] : 提前量开关。 ( switch ) 4 b4 d& U& `1 ?' L7 G! b
Cond: 判断条件。 ( bool )
* b( I& b$ G0 M. V+ Q; W) r[\MaxTime]: 最长等待时间 s。( num )
2 d; c: j/ ]7 a4 D[\TimeFlag]: 超时逻辑量。 ( bool )
' A7 i; U4 c+ I4 R/ P/ R* Z
4 }" Q; P7 l2 V4 y, v$ RABB机器人程序流程指令WaitUntil-应用:
1 i2 ~! c) _: N, b+ o9 C! r 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
3 d' R% \, l* a) N( R
# A% ]; ?+ v8 s7 J: T6 XABB机器人程序流程指令WaitUntil-限制:% W. |9 z m7 R% f4 z- n3 e
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。: F) d% X. f7 z0 y" s
5 {+ H1 c$ N `5 s7 i4 K1 p. j
ABB机器人程序流程指令WaitUntil-实例:
w6 V% m* d6 z& S }% r$ P) F! o+ _ PROC PickPart()
) |2 A8 |# M, w6 W6 ~( D MoveJ pPrePick,vFastEmpty,zBig,tool1;: U. k* Y- t( ~4 M
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。/ Y$ m, q: Q1 a U
(WaitDI di_Ready,1;)9 S8 C2 Y3 H' J* H _/ {: \
% F; y* }. [9 X- y9 w' N8 ~
PROC PickPart()3 A! D" x8 I! s9 T5 b9 r* ~
MoveJ pPrePick,vFastEmpty,zBig,tool1;
: r1 f1 z* l! v) e$ |- C7 j' h WaitUntil nCounter=4\MaxTime:=5;+ Z9 b4 }. k1 Q# K7 M
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。0 g6 k, N# j1 \% d+ q' h
ERROR/ g# X I; M x6 V- K, T, S7 ?
IF ERRNO=ERR_WAIT_MAXTIME THEN
. _7 l, A/ U9 I* n# S" [1 W TPWrite “……”;
0 V; m9 i. R3 t y! p9 e# g/ K) ` RETRY;
9 R8 }3 X; L x; e3 E, i% F1 @ ENDIF7 @) f. N# I5 Y/ J1 w
ENDPROC
+ P( }' B: J! o* n) w+ n; S+ H( Q' t7 s8 X
ABB机器人程序流程指令WaitUntil-实例:
$ r! B' T* w- B PROC PickPart()) `! I8 p0 G: I: Z+ w
MoveJ pPrePick,vFastEmpty,zBig,tool1;% `- m1 _' q L$ D
bTimeout:=TRUE;$ h6 H1 s% Z6 i! _
nCounter:=0;
! ?# M- [2 g4 O3 w7 ]9 H2 J) R WHILE bTimeout DO
& o) b7 \( S! {" q' j- d IF nCounter>3 THEN
6 D s5 @/ b; J% q' x3 T TPWrite “……”;* R N$ v3 D' Y; }5 p! U
ENDIF
' Q6 G: Z) J( w IF nCounter>30 THEN: D. B1 {8 i. \5 G+ w) u
Stop;
+ e5 Y+ J8 t5 s$ u* F ENDIF
4 I/ A) G" g* f6 M! [: ^+ Z: [ WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;! g+ i: u# w9 s& t4 d
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。& t- m. I; E- L7 q
ENDWHILE8 R7 y6 U; F+ K
…
. Z0 w* o' \& F7 Z3 B: h2 d ENDPROC- S, y1 c, r9 e) T& Z: A
|
|