|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
) X" X+ L1 G6 l5 [0 eWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
# ~( n0 l2 A# _[\InPos] : 提前量开关。 ( switch )
9 I% m/ L& V" E! U% u$ }Cond: 判断条件。 ( bool )
1 @2 k) t7 v6 V" o' Z/ w2 A[\MaxTime]: 最长等待时间 s。( num ) 5 ?* q% v& R, [; G6 x. v- ^
[\TimeFlag]: 超时逻辑量。 ( bool )
- e/ ^) f6 |" K, b 7 z/ Q4 n* z, Q* L/ e2 v
ABB机器人程序流程指令WaitUntil-应用:# s+ x* M7 k# Y; L& d. f0 Y
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。0 p0 F K Q; u- F, e( ^
9 N8 @! u$ K! ]5 o. V2 F0 m# U3 C( e
ABB机器人程序流程指令WaitUntil-限制:
' _1 n* P5 O) w* K7 X# Y- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
0 n" J% {, }3 L5 t. l
+ I$ x$ A6 Y6 b: C! VABB机器人程序流程指令WaitUntil-实例:
$ l2 c" y% N: D5 W) { PROC PickPart()
: o- |/ F7 ~2 ^" j* w MoveJ pPrePick,vFastEmpty,zBig,tool1;
3 o$ f# [( v5 { WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。 H) x! O7 W5 ?7 L/ K
(WaitDI di_Ready,1;)
; @* e! e/ _1 L4 J) X- r1 X
$ f4 @1 I* L. i2 G2 M PROC PickPart()' M" u3 O8 G# Y; h1 W$ Z
MoveJ pPrePick,vFastEmpty,zBig,tool1;7 h; }! l) i2 n1 b3 p1 M" {& E- J' E
WaitUntil nCounter=4\MaxTime:=5;
/ Z' T0 \+ Z7 l; A# r … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。3 A) p) U5 O; \: P$ X3 F' @/ m- i" y
ERROR8 `2 o2 R! I2 l9 L
IF ERRNO=ERR_WAIT_MAXTIME THEN
s0 |7 A5 b0 M2 @6 F& ? TPWrite “……”;
4 t }! w5 F8 u$ n1 F RETRY;
$ t( D2 {% A! N6 U; U- u ENDIF
9 A" M. f' B3 a2 a ENDPROC4 s# F( ^1 C: m* J7 |1 S
* a9 j) W2 {* w, Y2 Q, o
ABB机器人程序流程指令WaitUntil-实例:7 r* x# e1 E8 Y, l- C; a
PROC PickPart()/ C7 }8 A7 r( w2 k- |
MoveJ pPrePick,vFastEmpty,zBig,tool1;& F! x9 m4 P3 @
bTimeout:=TRUE;
: ^; i- o, ?7 L% U8 d: V& A nCounter:=0;0 b& a' |; d* U* }; }: X* \: V
WHILE bTimeout DO, m2 ?5 D$ w8 I3 d
IF nCounter>3 THEN# _4 [ c4 u/ }! o; \5 s c
TPWrite “……”;' y* @5 j9 k0 A8 O( \, \3 I
ENDIF$ o( Q9 x: A/ t% ]: G% P" B
IF nCounter>30 THEN
( [( e7 N& x' ]% ~ Stop;
) V9 s' W) x# A ENDIF
& G4 Z* i$ y5 `5 T WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
2 H+ ^9 c0 B1 e( q5 w9 ] ^' ~ Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
- b/ ]( F. V& u0 r$ V ENDWHILE
/ u/ Z3 z9 w u! P( v. s …& g4 L0 }& y5 d9 |/ t3 ?
ENDPROC
% [ q1 ~5 M) r6 O* _2 J" V+ ~5 t5 Y: U |
|