|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程5 H; I8 d6 k0 d* }* w
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];6 i8 b2 W' C+ D3 U4 j2 J
[\InPos] : 提前量开关。 ( switch )
" E+ c6 t( R5 z2 ^Cond: 判断条件。 ( bool )
$ V! M+ K. \; I% z% A" n; c[\MaxTime]: 最长等待时间 s。( num ) 0 V; z% a2 g/ H3 g4 A- ^, ?2 F
[\TimeFlag]: 超时逻辑量。 ( bool )0 ~3 j3 d$ W7 }) H
* o/ Z! D" m$ E. l3 Y) f& p
ABB机器人程序流程指令WaitUntil-应用:; {- s( V3 x( s, M1 B+ a' `
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
j7 H4 I! N3 P0 e
- {9 P- a; I- hABB机器人程序流程指令WaitUntil-限制:
* @" z6 g) `* h. T# ~& o- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。" C! \+ j0 t& M) F1 t3 V8 o
8 |: S/ m( h- d( T3 H
ABB机器人程序流程指令WaitUntil-实例:0 J# R5 _+ o& N# t) m
PROC PickPart()- E# ]4 W2 c& ]/ y
MoveJ pPrePick,vFastEmpty,zBig,tool1;
$ A j/ ^- A) c( X/ M WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。. |1 f9 ^ P# j0 o1 R
(WaitDI di_Ready,1;)* U! s y ^; Q! `4 K+ z
; G& q) K, U3 v# j
PROC PickPart()
2 D* U& W. ` P5 ?3 p) K4 f! P+ W# o2 s MoveJ pPrePick,vFastEmpty,zBig,tool1;
' `' B+ K8 u- M' y WaitUntil nCounter=4\MaxTime:=5;3 J: |7 z P) @' O ]( L- E! k
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。& y# z( W o; O6 i
ERROR7 e" r& s( X' e* t7 W8 r9 Y
IF ERRNO=ERR_WAIT_MAXTIME THEN
3 c& _! x5 s& F$ m: ` TPWrite “……”;* o/ y4 @4 ]+ A; f/ R- V# S9 x& h
RETRY;
* n$ s( I# v% E( D5 k$ f ENDIF
2 p& m0 R% S' q) b2 O" D" K ENDPROC) f. t: B$ o x# n ]1 l
# x# a* i7 o# X& n2 r- \8 Q( a. p1 qABB机器人程序流程指令WaitUntil-实例:" \/ R. d2 ?8 n7 q! V
PROC PickPart()0 v q5 k. R; G9 T) r6 Q
MoveJ pPrePick,vFastEmpty,zBig,tool1;2 U* _ _: ~! m8 P* @# R3 {" U
bTimeout:=TRUE;
1 s' X w2 |- t4 @4 s8 y) l nCounter:=0;
2 q: P) k1 n& j0 p. E WHILE bTimeout DO
- t6 B2 |/ Y5 M0 G; X" Q; v! V IF nCounter>3 THEN& D, ^' ?0 `. e6 X! d3 u- U
TPWrite “……”;
; p) [& U# D( D4 x# k7 j6 Q ENDIF
3 U% \0 W+ O/ f1 c# [4 q7 I% } IF nCounter>30 THEN
# x- N0 f% @/ C t& j" r p Stop;5 Z, ]% B: B- f' Q; K
ENDIF
8 e+ @' }' h; ]4 k2 m WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;% K* R3 i1 H0 X0 ^5 P2 k, G0 t
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
8 c9 O6 L) d. n* @# D9 Z- K3 b ENDWHILE
! Q- d/ ^+ {8 ?# F9 O" t2 O& M …% w+ B H8 H0 l* [. S
ENDPROC
3 Y# O/ J T) e8 } |
|