|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程& X) H4 D' r1 q( w: d& O! M5 u
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
8 j: T: b2 H) N# O* }7 L[\InPos] : 提前量开关。 ( switch ) + k$ W+ n2 t" @* C0 @' U+ }8 s7 q0 B
Cond: 判断条件。 ( bool ) + i( P& C" K7 V( n5 A7 J5 A) o
[\MaxTime]: 最长等待时间 s。( num )
/ i/ d1 E2 v+ s- P[\TimeFlag]: 超时逻辑量。 ( bool )# }. h% K7 x4 c( ~: }
6 `5 F9 a& D- o: m" k# a
ABB机器人程序流程指令WaitUntil-应用:9 @( w8 p0 g7 ^) s
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
3 I# @- Z# T& I2 m( O( q) \; Z) ?' e8 m/ {! M: W. g. v
ABB机器人程序流程指令WaitUntil-限制:
9 `# M2 g. c5 h$ N4 c- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
5 o3 c3 u7 z, _( h2 P" C + R* B% I [0 n: n
ABB机器人程序流程指令WaitUntil-实例:4 T; v/ p1 y3 K8 R8 r; S2 B( Y
PROC PickPart()/ T( C5 C# e. Q; d) l2 _, I i
MoveJ pPrePick,vFastEmpty,zBig,tool1;; t' x( z9 y4 c4 E* Y; p( Y
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
8 q8 |3 H* g7 u/ j+ ^6 Z: d (WaitDI di_Ready,1;)+ q6 ]/ e9 T& j1 q1 d
+ ^$ o$ b r* [
PROC PickPart()3 }9 _8 @+ k* }' B, E
MoveJ pPrePick,vFastEmpty,zBig,tool1;
9 j, W; P; b8 r. S WaitUntil nCounter=4\MaxTime:=5;0 G* k; b/ O' c! ^0 I' J
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
* H+ P+ o) a4 g+ `3 ^' C4 |& H ERROR
% l* @; J7 ]. Z IF ERRNO=ERR_WAIT_MAXTIME THEN
/ Y( U$ X1 ~" g) u5 O, Y TPWrite “……”;$ J* o a" q4 o; L: [
RETRY;
& `% _# S5 ]% @ s7 V; L ENDIF
t4 [& k3 m% W9 T$ T! V ENDPROC& R; p L% x7 F
2 k4 R1 @- X3 P& p" q f, {
ABB机器人程序流程指令WaitUntil-实例:8 L; Q. T. y6 `. d
PROC PickPart()
0 m# ` R, q U" Z R5 e, C MoveJ pPrePick,vFastEmpty,zBig,tool1;
% x% ^5 }5 K# y! ?/ \' s" d& g bTimeout:=TRUE;1 f1 q% r% B2 C L; A
nCounter:=0;
g7 X; j8 q# F" T; w8 y, x% x WHILE bTimeout DO
# p( D2 D# y# z2 H; v" w3 U0 O" H$ H# z IF nCounter>3 THEN
6 j: m$ M' R2 ~0 f TPWrite “……”;
2 U& G3 i" J9 G- J ENDIF
# x" i; _- q5 c9 g6 y6 i5 k IF nCounter>30 THEN
6 b8 A: P8 S( m/ g Stop;. `1 }+ p% G0 F: e
ENDIF& i- o" o6 O! d+ C& f, p* q' I
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
. F) \) ]4 h4 Y5 R7 ]( n( j: T Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。# L7 H* @) j4 b I
ENDWHILE: r0 |+ e# z9 \3 W& v1 }* U
…
. F x; j+ v- l0 H- j0 Q ENDPROC1 K0 ~$ m* |- G
|
|