机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
6 y: t+ [; W8 p) ^& n1 D8 a
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
# }, G- U, E. a! ]* C+ K7 `
[\InPos] : 提前量开关。 ( switch )
3 R% |2 W* ] X* {6 [
Cond: 判断条件。 ( bool )
& A u; a' W7 z+ T0 }
[\MaxTime]: 最长等待时间 s。( num )
6 c6 ^8 G0 ^2 u4 L$ \( a3 s0 m
[\TimeFlag]: 超时逻辑量。 ( bool )
! y/ w) D& `6 g$ q- c' t, L/ t
# U V4 p# @3 I+ t! H
ABB机器人程序流程指令WaitUntil-应用:
& e6 ^2 y* Q% d" k$ @ Z u
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
) L6 B2 j0 B. U+ J
% C0 M4 j4 K" k) z
ABB机器人程序流程指令WaitUntil-限制:
3 _ X8 D- \2 p
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
/ V V) T& b. O. p1 ]
: F# Y X7 o9 M; V4 c7 T/ k
ABB机器人程序流程指令WaitUntil-实例:
8 Y2 j1 X% p* I( L2 g4 H; W
PROC PickPart()
, Y7 I: k0 q+ } a$ Z
MoveJ pPrePick,vFastEmpty,zBig,tool1;
/ D$ O0 Q, x1 o6 `0 W" R% d# l
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
7 }- X2 |( u7 h% F
(WaitDI di_Ready,1;)
$ w1 I! Q* v3 {, W+ x: u
4 C+ f8 B! {6 {- \* w! u8 n9 U; M
PROC PickPart()
% ~7 j: F9 o6 Y \5 G* o6 U
MoveJ pPrePick,vFastEmpty,zBig,tool1;
) K9 ^ `+ T/ _. ^; {
WaitUntil nCounter=4\MaxTime:=5;
5 T, ^7 Z% ~# a Q+ d
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
# u5 A4 A* x# g% L% D
ERROR
2 f& E9 I6 ?! r* j' k& k2 e7 D- S6 q4 T
IF ERRNO=ERR_WAIT_MAXTIME THEN
& @ F8 J1 g3 t- _" |5 ]2 f6 I
TPWrite “……”;
) [; ]$ }3 e3 P) x/ H' R% n8 d- G
RETRY;
) z7 f' K/ N( Y( d6 r" t {" }
ENDIF
) u5 {, B& @1 [1 Q- {
ENDPROC
1 q/ t, k! U( V
' G& V% r' H" o$ \: W
ABB机器人程序流程指令WaitUntil-实例:
- @/ f4 i# b6 `2 m, S5 u9 _4 G, E. H
PROC PickPart()
' r K" s, w X
MoveJ pPrePick,vFastEmpty,zBig,tool1;
# N5 w! x- _. v7 o; r L9 ~* g7 {" J
bTimeout:=TRUE;
# g z% u5 E, ^0 M- p) _8 B
nCounter:=0;
; z: g* w0 }% W1 T6 x7 e \
WHILE bTimeout DO
# ]" J% v8 ?( P e
IF nCounter>3 THEN
7 Q) q/ j2 e5 e
TPWrite “……”;
( F8 s n! \$ f# C
ENDIF
( J: w4 ]1 r5 j; b
IF nCounter>30 THEN
; y6 a5 `3 u6 o# _" d& U' _
Stop;
* l( {3 J/ q" X( ?/ {/ H
ENDIF
' J0 p3 l4 g+ g W8 r
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
9 r2 M/ c7 o; N& S8 U* F3 i! T5 Z
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
9 Q/ T, p5 L W+ q
ENDWHILE
5 H, S6 G/ v7 H* O/ O
…
' I; Z# T5 V& a7 `" M+ F; {, ^
ENDPROC
# h9 c5 q0 v1 }
欢迎光临 机器人教程网 (http://robotjc.com/)
Powered by Discuz! X3.2