|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程# y; E! R1 D, Y/ `, `& E8 y0 _
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];- u, q" y- `- @" y S; p
[\InPos] : 提前量开关。 ( switch ) 8 \% D3 j4 `4 f$ e- j
Cond: 判断条件。 ( bool )
8 c' j& ?- T/ v* h8 c[\MaxTime]: 最长等待时间 s。( num )
* Z9 |5 O) u6 r* e. W& w[\TimeFlag]: 超时逻辑量。 ( bool )# B3 E( X9 ^, o/ Q( O0 P" E
# J L$ o8 s0 ]; P1 cABB机器人程序流程指令WaitUntil-应用:
% i2 X6 X+ \+ j6 G0 l8 T 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
% y7 G$ g2 }% o1 @5 C c" p8 c
+ Q1 s A/ c! M9 n# G3 l. @$ JABB机器人程序流程指令WaitUntil-限制:
" Z6 u% ?: z" C& _- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
1 z- g. a* w" v* m( E1 C
. ]. o# {; D3 G0 K1 D XABB机器人程序流程指令WaitUntil-实例:
+ B) B6 r# r7 f* b( `, J0 Z PROC PickPart()
& ?$ q% X, h7 x( v- e MoveJ pPrePick,vFastEmpty,zBig,tool1;- @: y: Y8 |- u5 N2 Z$ C/ C
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。) m2 P) \# ?0 r. I+ j
(WaitDI di_Ready,1;)
! N2 F/ e- {& g, n1 Z4 F/ L% Z o- U( x( s3 M+ `6 _. ?+ H
PROC PickPart()
+ F% e8 ?( R2 q3 z5 U' } MoveJ pPrePick,vFastEmpty,zBig,tool1;2 m( B8 O5 ~8 Q, m9 I
WaitUntil nCounter=4\MaxTime:=5;8 h" \+ k4 m2 g" S
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。# i& t8 X# J1 @* l. I8 @4 c
ERROR2 J, n% x) A3 H8 o$ F6 S
IF ERRNO=ERR_WAIT_MAXTIME THEN0 g! K0 A! v# l3 f4 i/ }6 r4 r
TPWrite “……”;
6 h/ D) I; a" Z' h- H' @6 Q9 Q RETRY;, y& G3 t2 d+ I
ENDIF
& i+ ?9 |, x" U: X2 ]( t ENDPROC
# j1 r+ i( t& L: z6 f3 @. a+ I1 O# H! t, H* H4 {
ABB机器人程序流程指令WaitUntil-实例:2 O7 S& t8 ^9 T' ]
PROC PickPart(): U! O& P$ C$ e9 _, o9 ?
MoveJ pPrePick,vFastEmpty,zBig,tool1;$ m9 |8 p' {5 a7 d. N1 X+ X
bTimeout:=TRUE;
4 B. T8 X9 a k3 `% b1 n nCounter:=0;
6 d9 }1 b+ j. U& A+ L WHILE bTimeout DO$ Q% N1 y5 D" N. M9 f
IF nCounter>3 THEN
6 g) F7 M& `2 n4 O @ TPWrite “……”;
$ G7 y5 T. R6 g/ G w ENDIF+ K$ _7 ~5 w* J5 |& f% i$ m
IF nCounter>30 THEN
- P2 }6 H- c; r7 ? Stop;- m9 g+ k% V& A% j3 H* @- i# ?7 b- {
ENDIF: ~' }* S: V/ T( J: }( B& R* f
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;. I! ^ {9 t1 L5 o
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
# U5 e' L h8 C" W$ X5 | ENDWHILE. P2 K" u; @" r2 `
…
$ O0 X. ^- o6 K/ U; e$ m ENDPROC! h! N/ T" E$ K. l s- O2 w# f! I
|
|