|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程- }+ m5 V, ~$ {( ]5 O) C1 `
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];* ~" g5 P" R6 D$ o7 L# I1 _
[\InPos] : 提前量开关。 ( switch ) " E6 k9 e% N K; k) I* s
Cond: 判断条件。 ( bool ) 0 F- T. L& U! b
[\MaxTime]: 最长等待时间 s。( num ) # u9 P' y% d* S
[\TimeFlag]: 超时逻辑量。 ( bool )
. f7 X% @ a1 J* y" q
" J6 m! Z! U2 N$ v1 u* C( z- mABB机器人程序流程指令WaitUntil-应用:
' q, X' B2 ^6 W8 b" s; B 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
" I5 K# F8 S+ N" D! n4 e% U7 }0 F0 M8 h& R4 J4 A
ABB机器人程序流程指令WaitUntil-限制:
9 O; `7 ~/ L, x2 \3 y- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。6 D$ C2 v/ P" ^ `! M8 Y( H
8 d' E4 y" U; l& q6 B( _2 U6 y2 m2 dABB机器人程序流程指令WaitUntil-实例:& i4 o6 r* h9 M4 `% j% A5 Z
PROC PickPart()8 |8 @8 S/ q8 V3 z- M% |
MoveJ pPrePick,vFastEmpty,zBig,tool1;
" B2 E& D& K3 Y WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。2 c* \& S& }# r' s! ^: l1 }
(WaitDI di_Ready,1;)* Y& B$ V- T" F
; t$ y8 @ z4 [' l2 g PROC PickPart()) d5 w: Y6 d% c& o
MoveJ pPrePick,vFastEmpty,zBig,tool1;$ [7 J* _1 U3 } |4 A: R
WaitUntil nCounter=4\MaxTime:=5;# ^, C2 Y3 d0 y6 l& `
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。$ z, A. n$ y) ?# z) U8 ~. T" u" P
ERROR
9 ]5 v9 W% b6 z5 i7 d* i" _ IF ERRNO=ERR_WAIT_MAXTIME THEN
! _8 e E7 q% h2 g; Q5 t" {) v TPWrite “……”;
8 q# p( b w9 q RETRY;6 `; f+ h J; }. q9 `$ f
ENDIF+ x2 Y/ s' ~5 ?2 T
ENDPROC
, F% G$ i9 X& _/ [, ?5 [' q h
& W) ~, ]# \4 @) i: EABB机器人程序流程指令WaitUntil-实例:! O# `& B4 R. l/ y9 U
PROC PickPart()
& g4 [8 G, v% z4 H8 U. Y$ N$ W MoveJ pPrePick,vFastEmpty,zBig,tool1;" a& P T( {# W6 W$ j
bTimeout:=TRUE;
% `" P. D0 x2 }) m; f6 E nCounter:=0;0 |# X. Q; B* W* O8 w: J
WHILE bTimeout DO! X& L6 m/ x0 }1 S! M2 {+ Q
IF nCounter>3 THEN% z5 k+ K1 V4 q; B" ^5 ]
TPWrite “……”; D- O/ [. w( ]- A+ q2 G
ENDIF- s( U, A( C( P( D2 Q8 U0 t
IF nCounter>30 THEN: P& B3 U! X0 G$ s8 [3 n5 K6 |3 w
Stop;+ ^8 A4 q' l5 e9 D$ H) T
ENDIF
& _/ L; Q/ X3 ]' q* a/ v! C WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
% E0 P! `: U( X( H: D9 Y Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
% t2 R2 b2 p9 @' j ENDWHILE
& c; O: S" |1 V …/ F' U: \( L- M4 V. z
ENDPROC3 C5 p$ W1 z/ v! u% _
|
|