|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
8 D, D/ Q# _/ V8 oWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];" S) e! `7 x6 v
[\InPos] : 提前量开关。 ( switch )
7 t- O! F1 m' a/ S/ b* E' a& fCond: 判断条件。 ( bool )
0 J, ]7 n) E1 X9 O[\MaxTime]: 最长等待时间 s。( num )
/ G( I3 s; z9 A# B- P8 F4 {[\TimeFlag]: 超时逻辑量。 ( bool )% v# K7 a' x! f
, m X; W; D" k# C4 pABB机器人程序流程指令WaitUntil-应用:5 E" Y4 f, |; ?: G/ b
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
+ ?* S1 S1 o0 w4 p9 Q" m1 [3 i) ]; _
ABB机器人程序流程指令WaitUntil-限制:
' v5 N' O1 s9 R- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。! {8 q! x3 [8 p! m0 \
4 }6 j# K, w& uABB机器人程序流程指令WaitUntil-实例:3 _# L8 r1 h3 [5 l$ X6 b9 y2 O$ x
PROC PickPart()
" p! U1 n: x5 w/ N7 }" } MoveJ pPrePick,vFastEmpty,zBig,tool1;
8 c0 v! N8 K# _, | WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
- ?: q+ ]- N, v) t6 k: `) i! S3 W- h (WaitDI di_Ready,1;)4 q7 s: g, M4 f+ ] v! v M
/ G& W* I. a/ z/ c4 S/ _/ x PROC PickPart()
: J" h3 ?9 b3 f5 |" Z MoveJ pPrePick,vFastEmpty,zBig,tool1;
9 {" g) M7 I3 O6 ~& j" Z WaitUntil nCounter=4\MaxTime:=5;
, g$ p! S& {0 q" N# v, |8 E Q l … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
' ]6 W1 X; p. a$ { f! y( ~$ } ERROR4 a( D {9 J2 q
IF ERRNO=ERR_WAIT_MAXTIME THEN9 m; @9 k8 T: C4 b) m# H7 T* F; l
TPWrite “……”;% [/ j& M* \/ X9 h7 m
RETRY;* h) s- ^& h* d$ Y
ENDIF$ A7 W' g; ~* _" L4 ]
ENDPROC3 u8 e" x- d% n3 F
7 W5 x0 l: L6 n k2 f9 w- ]
ABB机器人程序流程指令WaitUntil-实例:% {. x4 u8 |: z) P, `
PROC PickPart()
9 Z: x7 O8 P' J! w. i MoveJ pPrePick,vFastEmpty,zBig,tool1;' W( \% m% n1 k( U1 j7 R3 e: I( Y
bTimeout:=TRUE;
3 p8 E$ P0 f5 D9 [ t! S# @ nCounter:=0;" J# a; @' t4 @ y& @+ ]. B1 U
WHILE bTimeout DO+ n9 ?9 b' m" v& V. E n
IF nCounter>3 THEN; t, o$ r# ]9 ]9 [' h P5 p2 u
TPWrite “……”;
( p; c4 t# T' e& ]7 z! y ENDIF* V7 e4 T3 |4 \! p& g0 A$ N# ]
IF nCounter>30 THEN
' f5 N& @/ \9 g( q7 X Stop;
6 _, W: v4 U# g' ~; T/ P ENDIF, w$ h, x, G% u
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
; ]; E' k! w R7 }3 w Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。" _8 `/ H; n' Z3 R9 @( a
ENDWHILE
; G: [( `, ^0 e+ F& W% ` …: Q4 m& v+ t9 M& f% Q2 y
ENDPROC
+ j' ]/ s$ D V0 L7 |2 k |
|