|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程0 C- B+ }- ]( Z+ W- F' ]
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];/ s& O; f/ @# s3 [+ @, I
[\InPos] : 提前量开关。 ( switch ) 8 \0 T# W; ^) T- N! ~
Cond: 判断条件。 ( bool ) 1 J9 ?( X. P) R: w# B% M( K
[\MaxTime]: 最长等待时间 s。( num )
6 M$ @- R6 [- B8 o: G _$ Y[\TimeFlag]: 超时逻辑量。 ( bool )
, a, `- h j1 ]1 I5 j2 w3 _ 5 W7 S+ ?% e4 C1 C; ] ?4 Q1 f
ABB机器人程序流程指令WaitUntil-应用:$ w: S2 L% d: b1 O( M, y
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。( n+ D3 Z) S; B. k4 U c
0 c! e/ ~: T" ^# @4 y) C) W
ABB机器人程序流程指令WaitUntil-限制:8 k# B" M" @& Q3 W3 [/ L- y
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
" j3 t! j8 o% ~2 Y- D
. x& D" W* b+ m; }% _ABB机器人程序流程指令WaitUntil-实例:3 W' q* H- `$ G, ]1 d
PROC PickPart()& D9 D* c& j2 H* j% S
MoveJ pPrePick,vFastEmpty,zBig,tool1;; y2 a( T! A! u ~& E6 K
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
5 u8 a' f }& u2 c& F# `2 w2 ~ (WaitDI di_Ready,1;)( U6 l& y1 l- c
9 c" U0 l) r5 o; t
PROC PickPart(): Z- {, q u1 B
MoveJ pPrePick,vFastEmpty,zBig,tool1;
8 N' H. |! b6 k& R, m WaitUntil nCounter=4\MaxTime:=5;5 ]9 {; K' L: x- P" W7 H
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
& y2 b1 Z2 m$ C& M ERROR' |% n, C; M) f7 |+ o2 s; B4 N
IF ERRNO=ERR_WAIT_MAXTIME THEN
( ]5 b, {8 v8 k+ S TPWrite “……”;. y+ B( h3 z4 S! T5 s9 J
RETRY;1 f) [% l1 C1 v1 }! _* I) x
ENDIF1 B: ]. @6 @: Z: `
ENDPROC
) q4 B4 R6 ]' W" y& D& i( F0 S% W) D+ v) }% \9 j* v3 d
ABB机器人程序流程指令WaitUntil-实例:
& N, A: ^: I* | PROC PickPart()1 C) E2 E# D( _4 M( H
MoveJ pPrePick,vFastEmpty,zBig,tool1;
9 h2 J7 p6 c! s+ ?& s bTimeout:=TRUE;3 ]+ Y4 _- m3 p+ [& J9 y
nCounter:=0;
8 k, a! p/ G+ U& M+ N3 U% Q3 N WHILE bTimeout DO
' A! O* }/ @7 o" o. p j4 q IF nCounter>3 THEN* t" A& X0 i2 E" \) F
TPWrite “……”;$ _. w6 U3 d# y% Z: o% g% ~
ENDIF3 u; v7 E9 j1 ^, |# G
IF nCounter>30 THEN/ f& S: B% u+ M
Stop;/ }% g- _4 v$ D+ U& v) G
ENDIF+ u# T* S+ N0 J
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;( Z2 B5 q% M" g3 F- V3 J
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。+ G5 y! Q% O" e. k
ENDWHILE0 \+ M" q. V* A" V
…
- B" c N( M+ y8 L7 m4 d. a ENDPROC/ n$ N1 Z; P6 j
|
|