机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
; m/ }) g2 ] w2 t
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
( q2 Q8 ]. j5 N! j E
[\InPos] : 提前量开关。 ( switch )
8 S1 O" ]5 k- ` R: l+ `4 N
Cond: 判断条件。 ( bool )
8 z- _. j; {/ S+ m7 f/ A K0 U# D
[\MaxTime]: 最长等待时间 s。( num )
6 v/ l9 n5 n6 }. p N5 [
[\TimeFlag]: 超时逻辑量。 ( bool )
1 s; Y) I5 O& `
# F7 Q. T: r2 z' V! x0 R) T+ R
ABB机器人程序流程指令WaitUntil-应用:
+ ]8 G4 w$ f2 D' F
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
( G7 o5 [, M8 v; S8 Y# r( S$ k
$ l Y: w2 F! t' ~
ABB机器人程序流程指令WaitUntil-限制:
, @4 r }# t7 x C9 Q% p
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
/ L/ [( m; \2 `5 _6 R2 K
$ `4 m, n8 n/ k* j! x- R0 t
ABB机器人程序流程指令WaitUntil-实例:
0 W! F! s9 u. s% I. {. a
PROC PickPart()
* V- e9 }4 P* ~
MoveJ pPrePick,vFastEmpty,zBig,tool1;
# A/ v; q* v3 ]5 z' I* @. o* W
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
8 m* A$ D: ] k6 S" e
(WaitDI di_Ready,1;)
( X5 v) H2 s* I/ ]( R( w
8 ]% B4 [# [2 T; r0 a6 U) O, O
PROC PickPart()
5 n. V9 l$ R. @5 w, z0 H
MoveJ pPrePick,vFastEmpty,zBig,tool1;
" Q/ k# C4 |5 J0 w
WaitUntil nCounter=4\MaxTime:=5;
: o% r2 c# i$ j4 r
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
, ~% ~( T! _4 M3 e+ K
ERROR
' u) @4 H: \( C% j$ ]4 y" W, h, b' O
IF ERRNO=ERR_WAIT_MAXTIME THEN
4 z( a1 V3 W) b2 g3 h/ p0 o
TPWrite “……”;
. U- t0 G1 V7 y$ \. g
RETRY;
# G" i( N$ k" m+ A% o
ENDIF
$ {2 n. b Q( _& s
ENDPROC
2 L4 p" k1 k, g$ m3 P
$ }# {- V1 y% ~: m9 R
ABB机器人程序流程指令WaitUntil-实例:
# E0 E3 v( @' a3 W, h0 N5 f" T
PROC PickPart()
$ ~8 r; |6 q9 q
MoveJ pPrePick,vFastEmpty,zBig,tool1;
% i1 o0 [' ~" p+ M. F2 X
bTimeout:=TRUE;
U( V7 x; q n" G
nCounter:=0;
7 x3 h8 t- }$ _1 _6 B" y& `2 ^
WHILE bTimeout DO
# X% U- r1 G- F2 j% g8 M$ u8 p& W0 l
IF nCounter>3 THEN
% U! e" d1 Y/ R: ]. [
TPWrite “……”;
* V5 Q9 T7 ~/ Q9 t+ \ {: w. v
ENDIF
4 @8 G+ k% J9 M, W+ _( E7 ^( l% ~! U
IF nCounter>30 THEN
; a, X/ F, z# z, k& w' u J0 [; k
Stop;
2 r9 B& b& r6 M, B6 U. b
ENDIF
/ @3 C1 Y0 v' F& r% d/ E
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
4 S$ S9 G, s4 {$ _1 T3 `, I
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
6 _) Y& Z' k- X0 _& l
ENDWHILE
1 I, M$ t# y) T% r8 }0 U
…
4 m* A2 ?! q4 O
ENDPROC
6 \# _) U8 U6 S3 }
欢迎光临 机器人教程网 (http://www.robotjc.com/)
Powered by Discuz! X3.2