机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
% S3 i; }6 Q! E7 N. d0 t
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
; w5 o$ S) P B8 h4 i3 J3 u
[\InPos] : 提前量开关。 ( switch )
9 C8 s( r1 y1 \8 D/ G
Cond: 判断条件。 ( bool )
5 x4 S O5 W! a" d1 d! [" D
[\MaxTime]: 最长等待时间 s。( num )
7 n4 r( q" N* b: n* o
[\TimeFlag]: 超时逻辑量。 ( bool )
1 b7 N6 X! [! N' D; f5 K
- D$ u& j V" s P
ABB机器人程序流程指令WaitUntil-应用:
' v; l; x2 t- E% `1 x- L' g
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
0 p9 P- V( i. E( s
/ @( C$ h" Z( a: U# a
ABB机器人程序流程指令WaitUntil-限制:
1 x( V" K5 Q7 A7 a9 ~6 E
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
4 L( b) A) n( |7 M$ k/ W* A
7 h# @& `* f" L4 I' r9 V
ABB机器人程序流程指令WaitUntil-实例:
1 d, K4 x9 k4 i- A1 U( C
PROC PickPart()
& V8 y1 m) t- C& u+ I
MoveJ pPrePick,vFastEmpty,zBig,tool1;
w% W. H9 F' w- }4 Q$ f8 K$ c
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
9 H5 z+ a2 a$ ~ L" C
(WaitDI di_Ready,1;)
N) D) K$ w7 X8 W4 T7 o' q
3 H1 A2 P( K2 n& w: @6 i
PROC PickPart()
. S) O* d" V6 q5 ^) e d
MoveJ pPrePick,vFastEmpty,zBig,tool1;
5 G2 l! A- M! s- ~& s; q
WaitUntil nCounter=4\MaxTime:=5;
P, d7 K; s5 R2 w' p: M
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
2 E* i: J9 v7 }# O
ERROR
, ]) `0 k6 K- W+ b
IF ERRNO=ERR_WAIT_MAXTIME THEN
6 e' z$ ] ~/ w: I3 m3 i2 z
TPWrite “……”;
) W$ u1 c) O i$ ?9 D
RETRY;
( r* `* p2 N* ]# ^6 D7 }
ENDIF
, a8 [& G+ ~2 O8 |% t: v8 X
ENDPROC
9 q5 |* l* O! R7 S+ D8 r+ J
' A( w6 E# e2 K: |5 W: J7 m! ?
ABB机器人程序流程指令WaitUntil-实例:
* G2 a; v. }2 Y* Q. a
PROC PickPart()
5 K2 k( ?/ F, j! J8 X- F
MoveJ pPrePick,vFastEmpty,zBig,tool1;
) T ^3 }; ]9 o. w; s; b
bTimeout:=TRUE;
' ]3 R! k" F8 u- Y+ {' ^) o, Y
nCounter:=0;
4 T' r" |. p& h7 x$ u
WHILE bTimeout DO
, N' B/ P2 }( r
IF nCounter>3 THEN
# m5 v* k' L) }" F; i1 O
TPWrite “……”;
0 ^& d8 m0 F: h& x
ENDIF
0 }7 |2 b! a* |# ?9 |3 k( K
IF nCounter>30 THEN
$ H+ \9 d# ?" ]7 a
Stop;
) y1 ], y6 P1 e
ENDIF
7 Q$ U5 M% z' u! e. I' G2 W& ?
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
% y9 S* f5 e- Y( P" P' n; D
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
& b! O t M% @7 i; y
ENDWHILE
. I5 s# h- Q7 Y2 d
…
, \: [8 U; V4 D5 w
ENDPROC
/ F: K$ @9 w! c0 \1 r( t
欢迎光临 机器人教程网 (http://robotjc.com/)
Powered by Discuz! X3.2