|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
6 [7 X3 b" j& l# X" C" }8 e. V; S- uWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
, Y# _: c" F" \: \+ h3 z[\InPos] : 提前量开关。 ( switch )
* L0 k( x: E( P, O; [: fCond: 判断条件。 ( bool )
0 U' b7 [0 C: G2 V[\MaxTime]: 最长等待时间 s。( num ) 4 V5 ?" d+ E; Z) |8 d
[\TimeFlag]: 超时逻辑量。 ( bool )5 }/ M* ^; M: v% q% F0 G
. l0 I* A' V; J4 M' g2 ^
ABB机器人程序流程指令WaitUntil-应用:" d4 F2 g3 X+ _: |, j5 r& x' K( Q" {" u
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
* f. i; ]8 e# L# c" y) K% s5 {4 ]7 Z% r, `& u
ABB机器人程序流程指令WaitUntil-限制:0 o- A/ e B1 O% m& h5 F. g
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
( I6 K( f, H% g) ]7 b * ?5 t' x$ I; e) G, o6 \8 J
ABB机器人程序流程指令WaitUntil-实例:
) e' c6 T" M N* b- l PROC PickPart()- c, N: v2 M& E9 I9 A
MoveJ pPrePick,vFastEmpty,zBig,tool1;- v8 l* M! F+ H, I" x8 z
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
( u( `, P, S/ w/ t( q (WaitDI di_Ready,1;)
2 ^6 O3 f& P7 k& h3 Z2 q8 R3 ^# f& u+ a0 E" M! T. @
PROC PickPart()
. a A6 |+ D) S MoveJ pPrePick,vFastEmpty,zBig,tool1;* N' u+ I- B1 I! {4 b: E
WaitUntil nCounter=4\MaxTime:=5;4 o3 f" |$ `8 F3 o4 G% T- q
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
6 H2 T9 l& E& W3 V+ |( s' l! C3 F ERROR. K' E' S% U+ N' Y, w) G
IF ERRNO=ERR_WAIT_MAXTIME THEN2 n" ~( I# g) q4 s R$ o
TPWrite “……”;3 d1 B; [" L5 a' n \! U
RETRY;
; o+ x( H, i* ]. ^! A# S ENDIF" l2 }, B/ U# {. i0 g( Z
ENDPROC
0 g& q# J4 W$ @/ j* P. d
, t4 {6 I4 S) _% [+ q7 s: b, iABB机器人程序流程指令WaitUntil-实例:
! U" d4 _) W* [ PROC PickPart()
5 V5 B0 b/ Z. |' x, v0 f% \ MoveJ pPrePick,vFastEmpty,zBig,tool1;2 a9 T2 l) p$ Q" e& u
bTimeout:=TRUE;4 D' i) I6 i# \) g! ~. b A* T
nCounter:=0;
0 u+ t5 ^* b* x: \& \( v5 L, K. I WHILE bTimeout DO
. [) [! w/ n, b+ U IF nCounter>3 THEN
" k0 y4 o4 }8 X, w1 O y$ u( _' Y; w TPWrite “……”;2 b( d+ ]; B8 ~0 G, a' i5 q
ENDIF5 X2 n- G' S1 o8 E1 {* P
IF nCounter>30 THEN0 S K5 `2 I. B i/ ~
Stop;
# i" W: l& n0 E, ~ ENDIF
) s7 X* E& n K" d7 H" Q WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;0 w p0 ~% \' f" m! S$ F6 U5 @
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
# ^- B8 d' z6 g% `# L7 | ENDWHILE* [* P1 d8 C( U- U0 q$ ]7 K
…
# l- [ \ j1 y ENDPROC0 x; m0 x5 w; m8 ]* @; |
|
|