|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程- h( z7 _; B# p& o7 g
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
8 M1 ~. ]6 Y& _5 Z: r6 u: G5 h% f[\InPos] : 提前量开关。 ( switch ) 2 h- y% U' \8 z$ E+ i
Cond: 判断条件。 ( bool )
# R- j+ W0 I9 ^' H0 B" H# I+ O2 v[\MaxTime]: 最长等待时间 s。( num ) $ u/ l2 K9 F6 v* V8 H
[\TimeFlag]: 超时逻辑量。 ( bool )2 ^+ x# M4 s q
9 m; F$ c1 {; M5 ?/ C
ABB机器人程序流程指令WaitUntil-应用:
6 d/ T4 }) T3 Z. L* j 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。0 F6 }1 h/ G/ x1 ^
& w) {9 {$ @! OABB机器人程序流程指令WaitUntil-限制:
7 i* R! |0 {/ J- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
6 P& F2 u9 H4 l [8 e0 r0 v ' r: w3 ~# o% r' L
ABB机器人程序流程指令WaitUntil-实例:( {! t6 y+ A' x5 p8 z
PROC PickPart() t2 G3 w6 L( m; z& B) [
MoveJ pPrePick,vFastEmpty,zBig,tool1;
5 d6 o% C' v0 [- j1 G- G4 {2 X WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。, {/ R3 W: {, i7 J
(WaitDI di_Ready,1;)
0 j! u/ d& E4 o" `6 m( l: ~5 }& U& l! V) H, N1 T
PROC PickPart()
* u5 |0 y/ J7 z/ o( V9 | MoveJ pPrePick,vFastEmpty,zBig,tool1;! B3 |. p2 T$ P$ D
WaitUntil nCounter=4\MaxTime:=5;1 F7 u6 b5 m. I: u
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。' w# H' |* W+ {" o5 Z! c$ {# Q
ERROR
$ [( w& U3 r8 [2 U/ l9 [ IF ERRNO=ERR_WAIT_MAXTIME THEN
( o) Z; E4 M* j4 X0 M1 V1 A0 j+ f! ]2 ` TPWrite “……”;
6 r: Y4 `/ \" x: s2 R RETRY;
1 K1 X4 v: l8 s0 w" s0 L ENDIF/ N9 p+ h, J; _! w; `
ENDPROC. c0 E# W9 E M( I& l& v; {6 S
3 }( E* u7 c7 P$ e4 C- CABB机器人程序流程指令WaitUntil-实例:5 t9 {, F4 k6 _( _2 h# N
PROC PickPart()- b' [; ~, D0 u. a+ \! R
MoveJ pPrePick,vFastEmpty,zBig,tool1;# z% L5 T5 l- K; r/ T6 T
bTimeout:=TRUE;6 r% |/ a& @9 L! c
nCounter:=0;- | E! s: W: Z7 W7 r2 a
WHILE bTimeout DO0 l3 b- C9 V, _, a1 o R
IF nCounter>3 THEN% O8 D$ }' D& |. { y
TPWrite “……”;
" F2 \/ \7 p, P+ @7 |- w ENDIF; P% b! U# v, F( m, E/ }
IF nCounter>30 THEN! v$ K) |" d* c* d2 N) a
Stop;
) u+ ?* g$ T( g ENDIF
8 \, z* D* Z: e: E# `4 I) d' W WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;) t8 _6 ~: s9 ?& {1 R! ~7 ^
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。+ }% e0 e+ d0 q2 v8 m
ENDWHILE H2 N$ N& {: a1 }) W
…6 m4 _- v9 a. ~3 \4 p7 p
ENDPROC
. K( j1 b1 x6 n# j5 R |
|