机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
9 b' b3 m* `8 y1 C5 @4 r q
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
3 {& U8 J5 j: O' h& y
[\InPos] : 提前量开关。 ( switch )
& O) w g2 h1 q8 m+ ~
Cond: 判断条件。 ( bool )
" G4 o" q: o: d8 A" U
[\MaxTime]: 最长等待时间 s。( num )
& j2 ] [: C, @+ w
[\TimeFlag]: 超时逻辑量。 ( bool )
! M K4 K& D+ o0 @! q/ y
" e( e+ D" F( u2 y( m
ABB机器人程序流程指令WaitUntil-应用:
# P. j+ E g# b, p
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
4 D% f3 _, M) T7 R
2 Q5 i, F$ T; v3 o; D! a% O0 `, A
ABB机器人程序流程指令WaitUntil-限制:
* Z/ n. A+ O! ~4 d6 x! n( H F
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
, H) @) X& U6 @6 n4 g
, \; r! }2 L% S6 y
ABB机器人程序流程指令WaitUntil-实例:
, {6 b* U2 J9 c6 h u
PROC PickPart()
0 I- K6 i2 U* c. D* j
MoveJ pPrePick,vFastEmpty,zBig,tool1;
7 {* f- ]+ t3 m5 o
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
5 {6 J. l9 Z3 h( a* Z3 E8 T
(WaitDI di_Ready,1;)
$ {7 s- `( B1 b) u5 e3 E! a
& L3 h% R1 j1 U: ?
PROC PickPart()
1 _; H9 K1 {9 q0 H. o9 g" G5 I
MoveJ pPrePick,vFastEmpty,zBig,tool1;
+ S8 S& P* z0 @2 ]0 X8 @' w
WaitUntil nCounter=4\MaxTime:=5;
) |" O; [+ T! ?4 p) w5 y
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
' v7 B0 T2 l/ W9 l5 z/ q
ERROR
% P9 L& R; e: _6 y+ e: R7 O
IF ERRNO=ERR_WAIT_MAXTIME THEN
c: n8 p) g( x0 \* c
TPWrite “……”;
: z4 I* b2 F' o
RETRY;
$ y7 s; M. h% ^- u: `; Q! l; I2 C
ENDIF
( v" L- F2 t( E) w
ENDPROC
. w! z* e( O7 v& A) M- a4 Y
3 H) ?3 j2 n8 k7 H! p/ q/ o
ABB机器人程序流程指令WaitUntil-实例:
5 `- ]4 Z3 y/ U: v
PROC PickPart()
; V. ~! ^: \& ?5 E5 A7 n5 ]1 d
MoveJ pPrePick,vFastEmpty,zBig,tool1;
$ d( v$ T& s ^) Y- ] _
bTimeout:=TRUE;
; F- t% V2 K! o7 S$ _
nCounter:=0;
, u) g) k, I% E# p9 q
WHILE bTimeout DO
, B3 M) P- M. J$ W$ P+ c& O
IF nCounter>3 THEN
+ ^. O8 j0 m9 Z. k6 ]
TPWrite “……”;
; L* h& F o8 P! D0 w
ENDIF
! k8 j' H2 n8 b; Y7 D5 z% \7 U7 ]
IF nCounter>30 THEN
( X3 g/ ~: W4 H0 Z; u
Stop;
5 x7 \+ O: P; b
ENDIF
0 K$ k5 M0 @' j" ]( N* u- T$ F
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
" y* C) @) d/ f5 R8 ]- h
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
$ [' H5 @* }/ z6 s. D
ENDWHILE
. {5 n2 S3 E/ r
…
. e2 k" f' b8 u
ENDPROC
( X* F! q7 ?6 Z6 s1 H% J
欢迎光临 机器人教程网 (http://robotjc.com/)
Powered by Discuz! X3.2