|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
$ }. P2 Z! L3 w; s3 r1 X2 lWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];8 d* A: x5 Q6 |, [+ f# R. X- o& L4 S
[\InPos] : 提前量开关。 ( switch ) 9 O/ E+ `/ {! D( q
Cond: 判断条件。 ( bool ) 8 A c2 |# A w4 e3 n
[\MaxTime]: 最长等待时间 s。( num )
! s6 I+ [$ X. ]9 d[\TimeFlag]: 超时逻辑量。 ( bool )
+ ?: D8 U& x+ T) _ K$ ]2 {+ Q
" S: L- \( v! wABB机器人程序流程指令WaitUntil-应用:
& ^% ?& S5 r# q6 z 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
5 i9 p8 ]( i8 T5 E% f6 {$ ^4 H% t# y/ S7 U
ABB机器人程序流程指令WaitUntil-限制:/ U" T9 L4 M ?2 z; m1 J* K
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。6 a* v6 K Y# ~; ~
9 C& t6 F: R8 {- _: v& F3 }ABB机器人程序流程指令WaitUntil-实例:
* o/ z- N# M# Y+ \% I) o8 P PROC PickPart()
+ g4 W1 g& o& l6 Z a- z7 b MoveJ pPrePick,vFastEmpty,zBig,tool1;
3 v/ |/ X& h7 j7 @$ H8 a/ i WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
9 e( ], d* a7 G) d# S (WaitDI di_Ready,1;); ~& D; e/ U9 b4 N
" w R+ Q. J7 R1 L8 D1 K4 P
PROC PickPart()8 _& g5 `1 y( N7 i- U [
MoveJ pPrePick,vFastEmpty,zBig,tool1;! m5 c. ?9 Y" e( \
WaitUntil nCounter=4\MaxTime:=5;
# {7 |6 I; e! s: J8 |; `$ X2 }9 t: o … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。, G! K1 {, w; _9 g( ^2 [3 f
ERROR
! L, C R9 q5 C' N# _ IF ERRNO=ERR_WAIT_MAXTIME THEN
- n R5 g3 H c0 C, a# ^* L( v TPWrite “……”;9 {' y- N9 T6 }9 g% S
RETRY;# v! h& @. N1 u; g9 g6 ]$ v8 h( S
ENDIF- V9 F4 M0 C5 @, q
ENDPROC
# Q5 I& b/ P+ f z8 v$ T
( M/ S- J1 ?& O& J U0 W$ l: \, E& SABB机器人程序流程指令WaitUntil-实例:* @+ [8 q! A! G9 c' y+ V
PROC PickPart(); i5 q. z* J( f" z# ^' O
MoveJ pPrePick,vFastEmpty,zBig,tool1;0 T: B/ i! L7 Q! [7 Z) f
bTimeout:=TRUE;- Q# u0 ^9 k0 D6 _3 K* X0 o: m$ f
nCounter:=0;) D/ M' ]8 C3 {8 p
WHILE bTimeout DO
: Z4 o! w8 N: j" s: O IF nCounter>3 THEN9 D: v2 r0 m) q9 {, b1 n4 z
TPWrite “……”;
7 A- W2 x! s O+ K; u ENDIF/ l& a+ m- |* K5 }# {/ p: k, {
IF nCounter>30 THEN
8 u& x% u; r7 @4 N' H Stop;. c+ B: t9 A+ c
ENDIF
" @* @- f- k. y) Y$ _ WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;) d1 `2 R, k# W% j. f
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
. A- u* B8 z# v: y2 X ENDWHILE- \% A8 Y) D$ s+ D
…1 ^$ {) w R6 k* ~2 ?3 h7 a
ENDPROC
8 `# G4 j$ {! w0 Q v- x2 T |
|