|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程' `! L. a4 _! n0 Z! b
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];- _, J4 b& k4 Y- h% U& S; S
[\InPos] : 提前量开关。 ( switch ) 5 N; |8 _' i L
Cond: 判断条件。 ( bool ) 1 e" k8 g/ t6 s% {" {" X
[\MaxTime]: 最长等待时间 s。( num ) ( C6 k% I3 ~) s$ h% ]7 g
[\TimeFlag]: 超时逻辑量。 ( bool )- d& a: Y$ M( v! q1 f4 R
" b; S8 H0 k: a# f/ W) w
ABB机器人程序流程指令WaitUntil-应用:
' W4 U8 X" j! u 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。5 W1 m- c7 {0 I8 R5 u' |
+ n' I# d$ h2 u2 g& AABB机器人程序流程指令WaitUntil-限制:4 _: [" V: J9 m* f! Q
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
: T5 D" O/ O0 L ) L V5 @( `! g( ^6 r" g
ABB机器人程序流程指令WaitUntil-实例:
" L- J; H, I, @* ]5 F PROC PickPart()8 {5 p) a; c# R* f R
MoveJ pPrePick,vFastEmpty,zBig,tool1;
; c/ `. q+ j, J/ O- M* R WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
: j4 ]. ?" k* O- x3 ~/ ^! D$ F$ p (WaitDI di_Ready,1;)1 p% I) `8 V/ [
, P& _6 m+ \: i4 j9 U' j4 K
PROC PickPart() V; @: i) b8 q7 i' T
MoveJ pPrePick,vFastEmpty,zBig,tool1;
( c" b6 v; `9 W8 e) _3 |1 T WaitUntil nCounter=4\MaxTime:=5;9 Z8 s1 p6 `3 _- r
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
2 _1 y9 S& p, @6 r u9 [ D ERROR
( m1 Q- |$ U; q, W% M" F IF ERRNO=ERR_WAIT_MAXTIME THEN, V2 Q7 ^) M$ b+ E5 d3 H$ Q( \
TPWrite “……”;
1 w) ^4 D# A4 {8 j2 a: ^ RETRY;3 d1 [* H& h; y, q' Z
ENDIF( ]8 o6 @' j2 L. \) T7 m- ]8 ^
ENDPROC/ K: K# Y' n* C2 a0 [
/ d4 F8 Y, _+ i1 rABB机器人程序流程指令WaitUntil-实例:
4 |! ]+ D9 Q0 g) E* A/ [ PROC PickPart()6 j0 B* G5 Y; n1 L& {9 O7 e2 @/ V
MoveJ pPrePick,vFastEmpty,zBig,tool1;+ g& l* f% }$ B: E% M* j
bTimeout:=TRUE;
6 P$ J& H& c/ S; \& ` nCounter:=0;
; n" i- c N$ D+ }+ W2 F, t0 { WHILE bTimeout DO
2 w9 {- n; a( S4 w! V4 B6 p IF nCounter>3 THEN
! |% j5 X0 k. c$ R, j. ? TPWrite “……”;0 W0 u2 F+ T1 i1 P0 M# J0 ]
ENDIF
7 k' T" L, C! J( j: }" H IF nCounter>30 THEN
; G0 [5 ]1 ]0 q {7 z+ z Stop;
2 X% C g7 ?9 s ENDIF: a# H, S$ f7 l/ K# x5 j( z$ h
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;8 a. v$ |/ D$ p5 b5 z. |4 ], D+ ^
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。: S6 |, O7 I4 l# W0 x
ENDWHILE' o9 O+ m6 X3 m: W" O
…
, z: e. t2 f7 @# V; _: b ENDPROC
% K, A9 B' |5 m5 Y: l3 H |
|