机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
3 F q: Y( n, t/ o6 U! ?
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
3 T% D" J9 U- C0 W3 H$ O) x
[\InPos] : 提前量开关。 ( switch )
6 t5 R w, A) R4 k
Cond: 判断条件。 ( bool )
9 }: j& j& n/ {- e4 W+ [
[\MaxTime]: 最长等待时间 s。( num )
9 c# a7 @% \3 f4 e$ Z! ^
[\TimeFlag]: 超时逻辑量。 ( bool )
. [. t, K. R$ @, @) r! x
1 u0 g$ `3 R! E/ Q- q
ABB机器人程序流程指令WaitUntil-应用:
% ]5 o) T% ~$ K/ b5 M; y, Y+ \
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
, e; X- M T s+ v7 p u
9 J+ r$ o* V# U$ t
ABB机器人程序流程指令WaitUntil-限制:
$ X' g( N& e1 {) K% r. \
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
. t. t S$ {1 W, J- i2 Q
( k$ z+ x' o8 |9 T: k B: C4 }; V
ABB机器人程序流程指令WaitUntil-实例:
3 I3 O; ~& R8 `& o
PROC PickPart()
7 U8 N$ x% q8 F: Q8 d' B
MoveJ pPrePick,vFastEmpty,zBig,tool1;
$ n' \* y7 J4 }0 p0 R
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
+ x8 p" S4 U* L+ G) c
(WaitDI di_Ready,1;)
% \! h2 x; d7 U& }
0 b4 \! S3 I* j+ _
PROC PickPart()
3 h! S2 D0 }+ j& f' t* d. E3 E
MoveJ pPrePick,vFastEmpty,zBig,tool1;
" K2 [* ?0 h4 F9 Y: f
WaitUntil nCounter=4\MaxTime:=5;
& h: \% H$ q r2 v( v# C6 R
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
0 p4 x) \. Y6 |, e b* m$ I
ERROR
7 g( Q5 p. H/ ^4 \* J' p
IF ERRNO=ERR_WAIT_MAXTIME THEN
$ d, n$ h1 q- Q$ {3 g' g0 G% V
TPWrite “……”;
) a4 H7 O, T5 P/ m! g0 X
RETRY;
; x% E: K, x7 H1 Y) G2 e$ g
ENDIF
/ B9 {. J- G* t/ c8 b0 Q
ENDPROC
, g% ^2 H E& F/ c4 u; b3 Z
4 u. S6 E0 v Q8 E* ^6 o4 H* Z/ ]
ABB机器人程序流程指令WaitUntil-实例:
/ p# M; |' u6 C0 n
PROC PickPart()
# i! \4 x8 r4 K, ]
MoveJ pPrePick,vFastEmpty,zBig,tool1;
1 m4 O1 q1 t: G5 N( `! K
bTimeout:=TRUE;
7 w$ Q$ r! ~$ ~* b
nCounter:=0;
0 I0 d: ^) G! [
WHILE bTimeout DO
4 m0 ~8 B2 @/ s. W; `6 O( A9 U( J
IF nCounter>3 THEN
- g. D+ x7 e7 g. M3 ~7 _/ C
TPWrite “……”;
7 g# g1 j5 H) W3 e' u
ENDIF
# w8 m J* e( D! \( G. Q4 j. }
IF nCounter>30 THEN
. H/ x7 R" f5 l
Stop;
1 f( Y# a% c4 R- {% U. \! o
ENDIF
3 O- J% [7 v3 g4 {& M$ Z5 {) `
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
. D- d! O' p+ X8 Z, D
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
* l! T2 G8 x# [: P. ^7 U9 P
ENDWHILE
4 T5 J' A8 {2 U e
…
- |' e! b! ?3 v1 {2 H# m9 N5 e$ o
ENDPROC
9 w! v/ |. V8 W0 w# [
欢迎光临 机器人教程网 (http://robotjc.com/)
Powered by Discuz! X3.2