|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
) O" L! H: {9 G3 \; U. }: BWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];2 [. N' r4 N# a& a. D. F" }5 s
[\InPos] : 提前量开关。 ( switch )
8 S- x4 _; V3 V* [Cond: 判断条件。 ( bool ) * |) x. D. p% W7 J" b2 _
[\MaxTime]: 最长等待时间 s。( num )
$ a* ]' }8 n& V' Q[\TimeFlag]: 超时逻辑量。 ( bool )
1 z$ M% L6 |9 l. F- Q0 {" q$ ] 2 a1 m# G' g8 h& `, ` J# E0 W
ABB机器人程序流程指令WaitUntil-应用:
9 r. T( ?$ H! L, `4 y 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。: v" k* G0 a# A9 y, q
+ M9 b: H9 L& T* j* [" L
ABB机器人程序流程指令WaitUntil-限制:
" G$ R) d8 J( Z% Y U/ Z- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。8 b# E$ k' a$ t' c4 J
/ c* a* ^6 _! b" F
ABB机器人程序流程指令WaitUntil-实例:
! O5 p' t# u* h' X/ V! e: U PROC PickPart()8 P9 B7 ]* _+ D' I
MoveJ pPrePick,vFastEmpty,zBig,tool1;$ z" d- ^$ h u) |7 h% S
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
; E& h$ [/ j( w% t" C# J% S+ I (WaitDI di_Ready,1;)8 ?5 }+ c" }1 i7 M$ C
- U( U, |- F& d) a) M1 r1 M. R
PROC PickPart()
1 H- y0 k2 Z7 U" T MoveJ pPrePick,vFastEmpty,zBig,tool1;
) y9 t. i; Z( L0 C6 P WaitUntil nCounter=4\MaxTime:=5;' e7 p6 [# L; {- t) j, K( P# o
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。, g: J3 R2 h6 @3 u
ERROR
: D, `& [0 p3 o: j- `7 { IF ERRNO=ERR_WAIT_MAXTIME THEN
! \% U$ B8 F' i# d/ a5 ^0 _ TPWrite “……”;) B6 s V% N; f' U
RETRY;
8 a/ k) B" P' [$ K6 p V ENDIF
2 Z; `/ R! p, [5 ]# y! K( a ENDPROC( c5 }& `& J1 }7 v
' c4 ]# |& {1 S6 y: K! t& |- A
ABB机器人程序流程指令WaitUntil-实例:
, U/ T k) f: Q PROC PickPart()/ l" Z4 c7 I A4 m
MoveJ pPrePick,vFastEmpty,zBig,tool1;- z: [! Y: V$ d0 T$ d
bTimeout:=TRUE;
1 f- b5 d) m, Y8 W nCounter:=0;5 o% x e8 x' x w) P( I/ a5 ^
WHILE bTimeout DO
# ~) s& O. H/ c* u" ]' M! s# _ IF nCounter>3 THEN
H# I- m) `* q TPWrite “……”;
; B* r2 X; z* M/ {6 P ENDIF
6 f! m! h( x+ _9 O- i IF nCounter>30 THEN0 E4 m$ P) D" V1 Y+ m
Stop;
}- E$ q3 P6 W& L, Z( P d ENDIF( E7 s9 L$ P& [; b
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;5 B& } }8 C" v6 f* i
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
1 g+ B W' e5 v& h) u8 M ENDWHILE+ V$ y/ g6 z+ w# n
…% |. P% o; n" s2 x2 H
ENDPROC1 I1 W, Z* g& Q
|
|