|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程! i7 {' c0 m! S" r. h% f1 |
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
+ x5 r( `; c! s2 K1 P0 D, [[\InPos] : 提前量开关。 ( switch ) ( i G% q7 Z) z/ u: C
Cond: 判断条件。 ( bool )
, G4 E9 c' D) t2 E# V% i[\MaxTime]: 最长等待时间 s。( num )
3 W. ~5 Q5 [, M) V6 B[\TimeFlag]: 超时逻辑量。 ( bool )
4 b) g( R" u& Q: w0 q7 N* S, g/ I8 A
( r; S( \) ~( q. U z! ~ABB机器人程序流程指令WaitUntil-应用:
0 \, m* S- t* b2 P+ i* B1 A/ d 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。& K' w8 @& o& P* q& k
' O* f' U6 ^, i, q1 _6 P/ qABB机器人程序流程指令WaitUntil-限制:( X" k8 J0 g( `$ U! O, E, Z( N
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。$ d/ b/ O# K* d% l- U
* i2 {; d o' e1 b) CABB机器人程序流程指令WaitUntil-实例:
7 ]# B+ p5 R. C, A PROC PickPart()9 f$ ]- w3 S. ^$ g
MoveJ pPrePick,vFastEmpty,zBig,tool1;* ~7 H" `' {5 R
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。$ \1 [. e7 R1 `7 T
(WaitDI di_Ready,1;)' e [: B3 x8 X$ q Y+ g: I
' T1 p( ~4 @/ b" X PROC PickPart()
' O3 o% F- }* l9 U) C MoveJ pPrePick,vFastEmpty,zBig,tool1;7 Y- _% G9 m) v" }) u
WaitUntil nCounter=4\MaxTime:=5;
! p1 H" u4 F1 \$ Y5 B … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
' W& ?! }; k- g; O' c# G. { ERROR
- l& D4 u& X# B5 I& u0 m+ V' C IF ERRNO=ERR_WAIT_MAXTIME THEN
' w$ |4 d) G+ a q. p7 J TPWrite “……”;
+ o; D- j1 S0 x1 I( A RETRY;
9 O6 j0 y# x: M6 Z8 `* n ENDIF$ q" D' ]9 |7 j6 a
ENDPROC) L) ?5 m: L8 f- G* {0 p
5 w* ?1 Z; }3 E; {8 \ O. Q
ABB机器人程序流程指令WaitUntil-实例:
) c& r @6 [# W$ [ PROC PickPart()4 h2 b4 z! w- G7 h6 k' F
MoveJ pPrePick,vFastEmpty,zBig,tool1;
# e- q( m0 ^0 c& Q bTimeout:=TRUE;3 H' h2 J! ~- X7 ?
nCounter:=0;2 a5 b, o$ y5 L
WHILE bTimeout DO5 Y7 r1 I( o$ b N" z. }4 _8 O
IF nCounter>3 THEN: f+ q5 u9 N8 o. k6 O
TPWrite “……”;
, S% U g) s2 o" R3 T ENDIF" ^! m' k2 r7 p' b
IF nCounter>30 THEN
- u+ p! M B: r9 `; M' T Stop;
0 U! C5 x' U4 D0 E* S- D5 G- m ENDIF1 C g% U7 u. N; }& j+ r+ L/ L
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;# s( ]3 r, L2 I! Z
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。- |, R3 ^8 l* |: ^* C4 h$ q, P+ l
ENDWHILE; y8 e7 _8 m% k2 A+ _& i
…
S# ^! O/ |* S ENDPROC
, ^& M5 m* |, E( Y |
|