机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
; V6 [- ^8 L6 B/ f; |; e; Q
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
# q a! c( Z! D# e) \' x# N
[\InPos] : 提前量开关。 ( switch )
' a7 O, n" w* n* ]
Cond: 判断条件。 ( bool )
+ @& a. G8 S( n* B* a1 g& n/ e: O
[\MaxTime]: 最长等待时间 s。( num )
* `6 p4 G2 | y7 s9 m" W
[\TimeFlag]: 超时逻辑量。 ( bool )
, V+ K" n5 L* v3 E$ u, o
% P9 O2 z# u' n& f/ d) \
ABB机器人程序流程指令WaitUntil-应用:
/ ]1 `4 `1 k: ]% O9 w$ K8 c
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
" `8 L+ O7 g( R3 {3 h0 S+ w2 a
$ T' Z* j6 \( G) p2 ]- g
ABB机器人程序流程指令WaitUntil-限制:
' | s! o$ g; E4 ? L
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
# Z& @/ H, A% f& c. } x- ~
+ w/ e/ p& m/ R. [: B& v
ABB机器人程序流程指令WaitUntil-实例:
& y4 d4 o3 q! ?) e4 r% l
PROC PickPart()
5 W' v8 m% `, ~9 g: V- }
MoveJ pPrePick,vFastEmpty,zBig,tool1;
$ N+ ~0 d2 K8 L/ N) ~+ u3 Q
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
8 }+ r7 b& F0 C; o
(WaitDI di_Ready,1;)
4 Y& `7 F6 c2 `( \$ J
- I! J o: j4 I" g* m# z, h
PROC PickPart()
- x, @% ~& G/ D4 L- v( L
MoveJ pPrePick,vFastEmpty,zBig,tool1;
: I/ d4 q- ]2 ^" @) @- z% D' [, q
WaitUntil nCounter=4\MaxTime:=5;
& l+ d; W! O. m) q5 {
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
+ |0 Q8 I7 W& e; t
ERROR
; b/ W+ q/ Q0 h( O+ a" ^9 x7 ^
IF ERRNO=ERR_WAIT_MAXTIME THEN
7 `* ^- P' ?; ?. E: o
TPWrite “……”;
' `5 e, n% L" y# a
RETRY;
' a& g) f5 E |9 t
ENDIF
& A7 i' B6 B1 R. S4 e
ENDPROC
9 F8 l6 @$ o9 s; w6 x
: h* O }& q6 I8 B: f! K
ABB机器人程序流程指令WaitUntil-实例:
: L3 N A. p8 k8 N! ^* @1 K
PROC PickPart()
" t' E9 @" u6 \
MoveJ pPrePick,vFastEmpty,zBig,tool1;
' b5 a- S e) o: _
bTimeout:=TRUE;
9 ^5 ?4 ^# h% ~' C
nCounter:=0;
% ^1 y$ j' m, q! w7 x
WHILE bTimeout DO
8 ~2 V7 W% w* R' u, C' z0 H0 c
IF nCounter>3 THEN
( U7 T0 A! ]& b/ \
TPWrite “……”;
, N2 G/ J8 p" `0 A
ENDIF
. g {5 I4 v/ T8 f$ P1 X5 I
IF nCounter>30 THEN
3 V, N q, ]. M1 K
Stop;
6 X% \! }7 {! k1 c
ENDIF
8 ~3 } _* J1 Z# j
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
, g0 ~; q3 A. N/ e) i$ C4 b
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
/ w, _2 r; u7 b6 A! r4 w+ Z
ENDWHILE
a# t5 u2 V( }1 g; c
…
7 ]: G {/ u& k
ENDPROC
; M) e7 C# b$ m8 L7 c
欢迎光临 机器人教程网 (http://www.robotjc.com/)
Powered by Discuz! X3.2