机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
) ^6 Q( @; h7 i0 K6 J
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
9 v5 c: R$ a: _' }* l0 a0 p
[\InPos] : 提前量开关。 ( switch )
8 a0 N. n6 _+ [+ w. B
Cond: 判断条件。 ( bool )
p( q) H3 x, _9 n
[\MaxTime]: 最长等待时间 s。( num )
1 }: m5 H6 V8 p T6 @- D' B+ f. v
[\TimeFlag]: 超时逻辑量。 ( bool )
! W+ i% S$ t+ W, H, y
- G1 P- {" B) _' h( O4 K# T9 A1 M
ABB机器人程序流程指令WaitUntil-应用:
, L3 J& T* w1 b2 v1 J- T
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
, |/ K1 i _6 g
; d1 n4 e3 E0 s' m8 k2 T# G6 V
ABB机器人程序流程指令WaitUntil-限制:
s5 L, O1 U" e
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
" O1 y' @# ~1 G! m5 D
/ s+ R2 U" K2 s, n @$ G, n
ABB机器人程序流程指令WaitUntil-实例:
+ C" i8 [% i4 g$ j
PROC PickPart()
4 E+ l# e# D, Z/ G0 g2 ]+ l& w; A9 W
MoveJ pPrePick,vFastEmpty,zBig,tool1;
/ R* T6 N' P4 P0 z; P9 a$ `+ B# i
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
! h) l2 r7 g: f5 v; G& I% V
(WaitDI di_Ready,1;)
% a' Z! v/ G' J! e9 B* A4 k- w3 I
f9 ~, R: L+ ?4 d8 w
PROC PickPart()
+ {' p+ E! g& J4 R8 o: Q
MoveJ pPrePick,vFastEmpty,zBig,tool1;
5 ^: r9 |1 Q) J$ R! C4 M
WaitUntil nCounter=4\MaxTime:=5;
) m* Q) r+ ^$ R4 e
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
$ { a( [* m' ~& w& ?' R: c' }
ERROR
! O3 K. I# w* F: b2 @/ O* H |( `
IF ERRNO=ERR_WAIT_MAXTIME THEN
J5 G, |1 p( w1 U/ W# H: b
TPWrite “……”;
! q) N4 i9 z! n( A/ k" Z
RETRY;
" S7 c9 A( z5 n" a1 ?
ENDIF
. I' y8 ?4 R8 k2 }6 V
ENDPROC
8 g; i; e$ r* T+ F( w2 Y0 \- C
. q& y. X" V, f. y
ABB机器人程序流程指令WaitUntil-实例:
7 p/ a: n1 j5 u# [4 r
PROC PickPart()
t1 l( V7 N5 h) k; T& e2 W
MoveJ pPrePick,vFastEmpty,zBig,tool1;
* l1 i2 b$ J& K, s
bTimeout:=TRUE;
# m( F0 r7 ?- r# b6 h
nCounter:=0;
- ~( N) t" T k8 a' n* _ v# c# r
WHILE bTimeout DO
' @2 p# d! J* \; g5 u
IF nCounter>3 THEN
3 h) c% e9 D+ g: S# C+ m
TPWrite “……”;
" w% ^/ T6 ]4 M5 X0 g
ENDIF
# L. @) V. E) N
IF nCounter>30 THEN
1 K; \4 W& \5 U5 ]# u
Stop;
6 P4 I8 K* H! u
ENDIF
1 |, r" }& |& o3 i ?
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
7 }3 i' c& ^7 j# X9 {9 N
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
- x3 K5 [8 h! y# q
ENDWHILE
$ ~ ]' b" o: V; v9 F! n1 @
…
% K$ N. W* m5 S; |% b% P
ENDPROC
' n& q& B+ A/ L4 r
欢迎光临 机器人教程网 (http://www.robotjc.com/)
Powered by Discuz! X3.2