|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
( n! _$ s, s& j. \. j8 G2 LWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];( g c$ p b5 m
[\InPos] : 提前量开关。 ( switch ) 5 }6 {' M7 o$ d: q# E, ~2 y1 D
Cond: 判断条件。 ( bool )
2 x9 @; {9 C2 T. G[\MaxTime]: 最长等待时间 s。( num )
) n# F! `8 L3 m+ I[\TimeFlag]: 超时逻辑量。 ( bool )+ F0 h. S: t, b9 Q+ I
; l' t7 R: m' K a1 j2 j2 P0 A& QABB机器人程序流程指令WaitUntil-应用:
* \+ H( O- H# {8 w 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。" n6 T4 F5 I" m" H: I
% I* G4 F L2 }" dABB机器人程序流程指令WaitUntil-限制:
7 h/ J5 q% a. Q, V! @+ U' y. T8 I- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。( X( L* h/ X C% _6 B, O z- Z
! u7 X; F; x* R! g$ ^/ XABB机器人程序流程指令WaitUntil-实例:
7 \4 i2 O2 P7 x. Z" { PROC PickPart()
# w1 l; l7 D* B! \ MoveJ pPrePick,vFastEmpty,zBig,tool1;7 e# X: v7 d5 p- s0 e3 F3 S
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
) z2 G. G6 ^0 r* i (WaitDI di_Ready,1;)" H* }- A+ N! Z# f2 ?! F
( G/ G* m" A. T PROC PickPart()) g1 O8 Y$ k) W. m& ?) K* A X
MoveJ pPrePick,vFastEmpty,zBig,tool1;
2 n4 |, G& U }2 B% e WaitUntil nCounter=4\MaxTime:=5;' k) J: g0 a% _7 |
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
3 J" M# E& A( ^/ @ p, R ERROR" k$ j* n2 R/ g
IF ERRNO=ERR_WAIT_MAXTIME THEN8 }7 _+ Q; y* h# d; m( J! x
TPWrite “……”;
: N/ C V" ?- Y$ i# v" i2 E& X RETRY;' V5 }# n: o& O W- t
ENDIF
% S0 d1 ~& Q$ P5 e0 v ENDPROC
+ `/ n6 U$ A/ D/ Y4 x
1 d/ ?7 G1 y* q( u- FABB机器人程序流程指令WaitUntil-实例:
: v2 t. V8 {2 h6 r2 q PROC PickPart()" c6 ?7 u8 i1 ]: {# e- W+ S
MoveJ pPrePick,vFastEmpty,zBig,tool1;
) `, ]( G: J" w$ F bTimeout:=TRUE;
+ R7 e: K2 Y/ I& R: W. ^* A nCounter:=0;
9 [9 E7 N2 \9 P5 I r& C5 Y$ X- I3 ^ WHILE bTimeout DO, Z, K2 P. }2 o: w( ~, ^
IF nCounter>3 THEN
$ R/ c. m* I8 h TPWrite “……”;0 ]( ^/ x2 |3 p/ D$ z- ^
ENDIF3 t- b# U& C6 I' ]
IF nCounter>30 THEN! _2 T: p) f+ E9 y
Stop;
" e+ o: \' _- K- W! _! ^ ENDIF4 j2 G4 ?( E5 ]
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
! @0 A/ G9 ^* l: Y Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。9 G6 p+ _( O* [4 {1 F
ENDWHILE
/ _' n- ]# R0 U8 v1 | …
, V- u( _, ~& X* [- t ENDPROC
4 b" U- q! K. i- p |
|