|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
) L! B1 h( }2 k! j7 tWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];' Q9 h; T9 a4 ?! }
[\InPos] : 提前量开关。 ( switch )
5 ]& t/ B8 L" `0 E! f1 VCond: 判断条件。 ( bool ) 2 I) l$ @) j2 w" w
[\MaxTime]: 最长等待时间 s。( num ) 2 g, k x s$ W3 M7 u* |% r
[\TimeFlag]: 超时逻辑量。 ( bool ), i, u# O: `4 W% [4 Y" T) d
5 s8 {" N! q4 R! S0 Y+ k. T( ?
ABB机器人程序流程指令WaitUntil-应用:
* r4 ?: V- e r* T- }$ Q& M! r 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。: {, M( U$ r9 x7 M7 M
* |; X& `" C3 J- [5 ~ABB机器人程序流程指令WaitUntil-限制:$ ~$ I5 @, c, W- a, K1 `4 M
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
; `6 {+ p+ b: U # W1 y% R- N. Y. x1 r& b% Q; [
ABB机器人程序流程指令WaitUntil-实例:+ ?: C; N4 J9 f; E, w% E# b; W4 W5 T
PROC PickPart()& L* C0 r7 c1 e9 f1 R* ]
MoveJ pPrePick,vFastEmpty,zBig,tool1;
# p$ ~$ k. b& I1 C; j WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。, p* O3 @8 n/ F3 n n1 d6 r- ]
(WaitDI di_Ready,1;): @+ F+ @3 O* h' I2 b# G: l4 }
" X& H: ^' A; p1 ~; J7 R# [ PROC PickPart()
6 V$ W" p5 \6 k0 Q: o MoveJ pPrePick,vFastEmpty,zBig,tool1;$ @; @; J1 p$ I- `5 G: V0 m' X
WaitUntil nCounter=4\MaxTime:=5;
' u/ J' a: X: W … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
1 g& V! `+ G0 } ERROR# Q% j, d& o) o+ P5 X$ @
IF ERRNO=ERR_WAIT_MAXTIME THEN, ~! g* x7 Q3 E0 t) Y+ i
TPWrite “……”;
0 t! |- ~6 J$ Y1 g RETRY;
* o8 e4 n% G' h ENDIF
! b; Q+ [, k- g* @8 q# L8 Z ENDPROC; n8 j& d& k- y0 j x
- ^3 D |0 L/ K6 F1 x. pABB机器人程序流程指令WaitUntil-实例:* o7 m5 `0 T* ^( A0 g3 W0 o' M4 G
PROC PickPart()
& C! E5 P* B' a$ P MoveJ pPrePick,vFastEmpty,zBig,tool1;6 W) B* Z$ `- w9 Q& x& ~& e
bTimeout:=TRUE;! P( {: V7 s. I. S& V
nCounter:=0;7 r, Q' j* T! _* y
WHILE bTimeout DO0 K1 l6 Y e& Q
IF nCounter>3 THEN6 R+ _& c! v$ y' v8 l* {) p
TPWrite “……”;. V1 z( A3 y: i! m k8 [, A3 E: X
ENDIF
( E; c: U2 |+ [" Z, x IF nCounter>30 THEN
) `4 q. |/ [: K Stop;
. T! H; f! U1 e+ Y, f ENDIF
% F$ i' k0 A, \: { WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;4 g& H6 i( G9 k" c
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。/ ?2 K6 M) W5 { D, d
ENDWHILE
3 q& r5 Y! K. V p' @; l2 Q2 e …- p. X' \" E0 S0 |: U* U
ENDPROC) Y/ n; }; F( h9 R
|
|