|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
# Y: t! \1 ^; |+ B% u- DWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];: y: P' d) O- ]( [
[\InPos] : 提前量开关。 ( switch ) 6 A' @1 B1 Y5 [! e
Cond: 判断条件。 ( bool )
& {5 N4 g8 n% |/ }% @/ V$ }[\MaxTime]: 最长等待时间 s。( num ) & H4 N1 e+ n7 _
[\TimeFlag]: 超时逻辑量。 ( bool )
& z* f! |1 A' U( v 0 t/ A* V! A' G. s
ABB机器人程序流程指令WaitUntil-应用:* A8 d: S- c- }& G2 y
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。+ H" N7 I1 a. r" Z) d% ?
' c3 r; B7 m' W, Z* R$ W
ABB机器人程序流程指令WaitUntil-限制:
6 c5 [; l m5 Q& h7 I: U4 G" P( r- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
. w& Q- V9 i( G, a+ v # s; V# {( {3 d! N7 }* v! S
ABB机器人程序流程指令WaitUntil-实例:( r C& f% H. F9 k& o
PROC PickPart()
8 e7 t% ?6 v8 Z U( L+ j MoveJ pPrePick,vFastEmpty,zBig,tool1;4 c+ z6 e F; A0 n& [* Y" ?1 p
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
# m/ p% ?; |" A7 \: N+ b& P" f (WaitDI di_Ready,1;)
/ J8 I2 v4 @1 b: g
) ?# o6 R+ i( W! N PROC PickPart()
O5 Z4 B. b5 k. ? MoveJ pPrePick,vFastEmpty,zBig,tool1;
, S5 G( V) M f WaitUntil nCounter=4\MaxTime:=5;0 Z. O3 K* O2 T- @
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。" U1 x: _' r& C' _3 |% H2 `9 N' }
ERROR
3 ?8 f7 R* A( b! X; |' ] IF ERRNO=ERR_WAIT_MAXTIME THEN9 S# e" q8 y: f8 T' z
TPWrite “……”;
+ q- O4 P( c& C RETRY;
' W1 y3 t6 q. Q+ N4 o ENDIF
/ P- ^! A s* Z6 @# [ ENDPROC
2 F! c" E9 P! S5 Q4 \5 A* r
7 f" J/ t: i# u/ B. e6 ?/ I6 CABB机器人程序流程指令WaitUntil-实例:
8 k' c/ r8 C y# n/ W$ {9 |* G PROC PickPart()
& ` q% \ |9 }* `6 h q MoveJ pPrePick,vFastEmpty,zBig,tool1;9 V* S9 S4 _7 Y/ O/ }/ j; `4 h
bTimeout:=TRUE;( g) E! V% u' S8 w
nCounter:=0;' d2 ]8 S7 d6 z3 L/ N: t! S
WHILE bTimeout DO
8 ~0 k4 u L6 f, N- l: W) E IF nCounter>3 THEN5 v! o. b3 r/ Q: g5 S; l
TPWrite “……”;2 o: q. S6 L% @" K
ENDIF- S/ ]! V. e) d8 G( n
IF nCounter>30 THEN' n9 k1 p% b. o0 j3 U
Stop;
" m9 h( S' v& ~' D: V9 z/ e ENDIF
; P. w6 N3 B" p1 D7 B WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;, U/ M2 E% t' J+ R3 {( U+ N# n
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
0 F1 o. b. o h ENDWHILE) s: b0 g( o% G" {' Y
…" v* g; u* ^. i, { h& b1 q
ENDPROC
0 K/ A' d X& e |
|