机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
$ K8 s- D9 P. Y6 a# `
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
. ]' T, V9 d6 D
[\InPos] : 提前量开关。 ( switch )
6 i) B3 b, G" Y/ C
Cond: 判断条件。 ( bool )
! \3 ]+ g. K: O& y! Z! q2 I
[\MaxTime]: 最长等待时间 s。( num )
9 Y! T8 u6 w* }* X2 @
[\TimeFlag]: 超时逻辑量。 ( bool )
- s4 t0 [* q' `( ^: ^, [
G) [4 ]! j' ^5 A! A+ y6 t
ABB机器人程序流程指令WaitUntil-应用:
1 r1 n0 K* \% I0 T5 F( M' X
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
/ c8 w$ [$ U. o/ R( ~# @
! m! O- o+ A# ]! r" ]8 _
ABB机器人程序流程指令WaitUntil-限制:
( e4 n8 ^+ ?5 L, B! Y) C; q
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
1 R6 u8 Y; I4 q
4 {( A4 C( F" `. g2 f# {
ABB机器人程序流程指令WaitUntil-实例:
* X9 s! ^1 @' h! }# u
PROC PickPart()
- }# ~* g4 D1 J% K* n4 W5 E
MoveJ pPrePick,vFastEmpty,zBig,tool1;
; c( u5 b ]7 h, ]. T3 T
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
, N) M# a, ]* e3 m" J2 i
(WaitDI di_Ready,1;)
' P) _9 ?+ } H7 b1 k, ?
4 ^: l2 m+ u& k1 G' h h% r
PROC PickPart()
' A$ n; Q0 {/ r4 S
MoveJ pPrePick,vFastEmpty,zBig,tool1;
# P! A2 I: `4 f i7 t2 f
WaitUntil nCounter=4\MaxTime:=5;
: E8 w9 ^' R* e- l! v8 z+ J
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
, R4 ^5 t2 g3 ]5 d* Q3 b( x$ H
ERROR
+ h) E' l4 c- x& q* M7 L
IF ERRNO=ERR_WAIT_MAXTIME THEN
+ |4 e% r) u5 N w# q' u5 B1 B
TPWrite “……”;
8 K* ~! z1 g- q8 e" _ G* C
RETRY;
7 J$ _0 j! g' W* U8 d8 j* T
ENDIF
1 A; r$ _3 f6 q
ENDPROC
* q/ K' T* v& n0 i- r0 Z6 N
- y- `, r; m# O* A) Q0 B4 ^
ABB机器人程序流程指令WaitUntil-实例:
* z' d% E: ?3 i, C/ g
PROC PickPart()
* @/ G% d' D: @$ O4 o, P5 {3 U* S
MoveJ pPrePick,vFastEmpty,zBig,tool1;
" B0 J/ m k& X) t# x1 v
bTimeout:=TRUE;
6 V6 }, C4 a: o, e1 Y
nCounter:=0;
& N; h$ C) o3 Z* R
WHILE bTimeout DO
' e% W B8 x+ r! {$ Z9 x! }
IF nCounter>3 THEN
% ~4 B( z# q" G
TPWrite “……”;
5 P) G. L3 L1 T) t- {) A
ENDIF
- Q0 o; R0 G9 z( M, o
IF nCounter>30 THEN
+ O' X! }2 F2 \( Y) F( D
Stop;
! w7 M7 r: i& ^' f1 O- q
ENDIF
( t" V( O2 \3 z) X, E
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
5 D& {: {( a2 W( \3 t. {0 `* u: r
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
$ t/ L, W. g/ d7 t( p, j5 f/ j
ENDWHILE
! z5 d0 ]" q2 P$ R
…
" | i8 h7 b0 d5 C, B7 M& w
ENDPROC
# c0 T+ f% L- L/ w" V& H
欢迎光临 机器人教程网 (http://www.robotjc.com/)
Powered by Discuz! X3.2