机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
* g1 w7 t; W5 t$ ^/ V! r; z& E* N
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
/ F1 I" y0 C, X# w
[\InPos] : 提前量开关。 ( switch )
4 {- z" n: h1 Q6 n
Cond: 判断条件。 ( bool )
3 T. `+ z8 m$ a5 K
[\MaxTime]: 最长等待时间 s。( num )
& T* ^/ q' O3 N
[\TimeFlag]: 超时逻辑量。 ( bool )
# e! T/ ]7 Y& a, ?+ [) e% z
# z! J/ O; H1 }+ a. I) i
ABB机器人程序流程指令WaitUntil-应用:
# U# h" `0 x2 ^( N9 \3 ?: c
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
+ Q7 { o6 d: v- N3 ]. z7 Y1 l
0 E* {3 C) c3 \- ]5 |5 V# J
ABB机器人程序流程指令WaitUntil-限制:
+ Y. D& M- p: e" B& M
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
2 r! f& V! o5 X. ?4 i" `* F
6 h1 S4 f/ U* N. ~0 P. Y8 D* m
ABB机器人程序流程指令WaitUntil-实例:
# |5 g3 d% {0 y6 g
PROC PickPart()
4 v( G* C/ l8 X
MoveJ pPrePick,vFastEmpty,zBig,tool1;
~4 T* j( ~. o' A0 O- F! O4 T
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
, s- k( h) g+ B5 Y4 Y6 l
(WaitDI di_Ready,1;)
6 k; V. c' q5 ~7 a( z* g
Z7 f ^0 H5 i! c) D+ l7 K
PROC PickPart()
3 A5 @, n7 m/ \2 w* ~. A
MoveJ pPrePick,vFastEmpty,zBig,tool1;
: a2 y) c0 w# O. f0 `
WaitUntil nCounter=4\MaxTime:=5;
1 q- F" }$ Q) f5 V( M
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
9 ? S; D7 d2 t6 `% A. X2 {
ERROR
0 w: e" a+ c; [5 v1 C/ H
IF ERRNO=ERR_WAIT_MAXTIME THEN
A" J4 k4 u0 U5 }6 a/ Y K" ^
TPWrite “……”;
' t% a y. z. |5 {7 `3 @
RETRY;
$ O$ V1 Q/ |: B- m3 x
ENDIF
: u8 `/ N' K9 \8 X2 s
ENDPROC
$ m/ M' K5 X) b2 G- \& I
: E. Q) J( w$ B3 F$ w
ABB机器人程序流程指令WaitUntil-实例:
* G) m& N2 n9 ^ g, K/ H$ J
PROC PickPart()
* a0 ]. z% M1 ]2 V) r6 @% T, e. ^! W
MoveJ pPrePick,vFastEmpty,zBig,tool1;
, h4 y, R, J( _# B: A; ~ ~
bTimeout:=TRUE;
+ S9 }; L+ o9 k
nCounter:=0;
0 ^# e) y( j8 L% C
WHILE bTimeout DO
0 a0 p4 U6 i9 n- u
IF nCounter>3 THEN
2 h" }& N9 a& o7 E! D- G3 A2 d
TPWrite “……”;
5 Y& j. U/ q" S9 L- Z/ O0 n
ENDIF
. ~4 g# t9 Q4 A1 ] G$ f6 d
IF nCounter>30 THEN
" @; N% J2 J9 c* l. d1 Y2 ], n
Stop;
- V6 }. c# H$ h2 |8 i
ENDIF
( U2 [* g0 i) m* D- E+ i! s* C
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
6 `) ?6 Y- A) v& S
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
, e% x" h4 S, ?+ ]* x
ENDWHILE
& h6 ]0 @. r9 p
…
- _# C0 H! S% h3 e
ENDPROC
/ d. ^) g7 O, z! a% s7 {; q
欢迎光临 机器人教程网 (http://robotjc.com/)
Powered by Discuz! X3.2