|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程# m% C0 p+ K0 f c$ I% n
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
& b% |# S# \" T[\InPos] : 提前量开关。 ( switch )
* n* J& |( X( ~3 F3 E! R$ UCond: 判断条件。 ( bool ) # Z1 T, l" A$ q# s9 z. o
[\MaxTime]: 最长等待时间 s。( num )
( t- q! \; Q0 G) n[\TimeFlag]: 超时逻辑量。 ( bool )
, W& X8 x- t; X
4 y3 w0 r0 F/ v( w' u6 }+ xABB机器人程序流程指令WaitUntil-应用:
, x; k1 Y: ?) \2 Q W+ q/ m 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。 j7 c, ~% k$ e1 O
4 I0 ^4 p" ]. S% ~* l1 a' ^' g# i5 vABB机器人程序流程指令WaitUntil-限制:% d3 Z G3 Z9 ^! X' V6 M- B1 X
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
1 }4 F3 p* c; S4 u% \' ` + l# ]& r8 g- f3 W1 v" \
ABB机器人程序流程指令WaitUntil-实例:+ }4 j; o2 k" ~" m! | |* n5 G
PROC PickPart()
* y( e" o+ @, S! W MoveJ pPrePick,vFastEmpty,zBig,tool1;
' z, X! r1 v* H WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。$ u* N) {& j6 M/ Z
(WaitDI di_Ready,1;)
; R" M) u4 w+ P* ~( T S
8 [' \& P o' Y' v6 Z! |8 I: \/ }9 V PROC PickPart()
q+ o" e7 |5 x% E# l2 m# Y. q5 q0 K MoveJ pPrePick,vFastEmpty,zBig,tool1;$ E6 T/ E; s0 i& P+ J- g
WaitUntil nCounter=4\MaxTime:=5;
+ M# R" c2 y2 u0 j … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
, D8 b' a1 {' T$ Q9 p ERROR
% f% s1 O& d: u! n1 ` IF ERRNO=ERR_WAIT_MAXTIME THEN" u8 \+ Z+ ]8 Y$ t4 Y
TPWrite “……”;
3 I* I! T1 I7 F- X; D2 q RETRY;; X4 @, g G. H8 ]( @, Q/ G2 t/ k4 ^
ENDIF% \4 I* \! i# w) r) T' u
ENDPROC5 g- {1 p) i6 G1 G
- c5 g; g3 o' f* L6 s
ABB机器人程序流程指令WaitUntil-实例:
8 |* U4 V9 I: B* ]% T7 X PROC PickPart()
5 Z5 \: |$ M6 u, y' W" c MoveJ pPrePick,vFastEmpty,zBig,tool1;
/ U; V1 a2 t6 K! b5 G0 n. } bTimeout:=TRUE;
: b5 A# S0 }: O; Z nCounter:=0;
- O6 k' y2 f6 p, |% Y WHILE bTimeout DO e# E K0 y a& F2 O/ ^
IF nCounter>3 THEN; C+ F8 ?& u. Y6 l. ^% v
TPWrite “……”;
* Z/ ]$ x0 j0 ]' @ R, P5 @ ENDIF
8 F1 | b/ T% N7 ^8 g IF nCounter>30 THEN
1 f/ |- N; j) q6 `' R Stop;2 K F( X* d3 L/ R( o0 c5 ^6 |
ENDIF: a$ f1 x5 ?& K! }1 V* L# q
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;9 J5 T( `2 f( d, U2 K: [- e; q
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
/ W K4 ], ?8 S% @ ENDWHILE% q( H2 T6 J% S' x; O3 d. ^
…. z. a( J- Y1 V0 i: i6 P$ h7 ~
ENDPROC
/ p ^" o% s& c$ f |
|