|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
* t5 K, f: H) Z% ~0 WWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];- `2 P8 x! D! h* x" |) s5 K1 u' q
[\InPos] : 提前量开关。 ( switch ) & M& j2 n$ i- B$ A8 ?+ [
Cond: 判断条件。 ( bool ) ( P6 u K l8 B' r
[\MaxTime]: 最长等待时间 s。( num ) & ~) B9 X) w, [3 b$ I( X$ N
[\TimeFlag]: 超时逻辑量。 ( bool ): ~% f5 h. `5 N3 Y+ }1 ]2 m8 A
. ^: a; ~% S' E8 r8 J
ABB机器人程序流程指令WaitUntil-应用: b, T* _5 S9 T4 V- b2 w4 d: d8 G
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。, Z: d( j. x5 R4 z
\2 r6 g0 T, Y8 \: f
ABB机器人程序流程指令WaitUntil-限制:
; O* _8 Z: e: P/ [! ?4 B" x8 h- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
! i* g3 J; p$ Z) ~ 8 J! ?* R* N5 f/ |- j- ]
ABB机器人程序流程指令WaitUntil-实例:9 F4 U% s6 G- S7 F* W
PROC PickPart()% h$ }, ]' `' m3 [8 l. T3 F
MoveJ pPrePick,vFastEmpty,zBig,tool1;
: s- e7 h6 D: j: }# k8 s: b WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。* l/ h; H4 z" V: {
(WaitDI di_Ready,1;)4 _5 Q1 J4 g) n) @" e
" G$ Y9 l5 m$ z- g1 l
PROC PickPart(): p% P% L$ ?. P' w
MoveJ pPrePick,vFastEmpty,zBig,tool1;+ d' [/ O1 `! H* l, T5 T% ]
WaitUntil nCounter=4\MaxTime:=5;
9 |( D+ ?2 u$ k! {6 u( s3 x: Y … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
- `: m& [, q' |0 f( P7 r8 N ERROR
. o- E" \& b% E, x IF ERRNO=ERR_WAIT_MAXTIME THEN9 Z0 ^0 y5 J$ ~6 B1 ?% d3 u
TPWrite “……”;8 C" p$ X. K" |' y+ F
RETRY;$ F% Z4 r! m( f, D" u# g6 m
ENDIF% s+ a8 o! \% B0 ?) V+ P2 X# t: d
ENDPROC
, M C# E, U# k( l) x% z& @
0 m3 w- x7 z* i' u: HABB机器人程序流程指令WaitUntil-实例:4 Z4 N3 u# J' t7 M4 i: x( |0 B
PROC PickPart()
; f) ^: w6 X- A/ ~ MoveJ pPrePick,vFastEmpty,zBig,tool1;6 @2 l% a3 h% x- y8 H2 F
bTimeout:=TRUE;* m. f( v: V8 n; x
nCounter:=0;/ d; C3 x1 C/ `* ]/ l8 X
WHILE bTimeout DO
' l, S7 k& ]% m4 o* T1 O IF nCounter>3 THEN) s, {& q8 V9 n
TPWrite “……”;0 M7 T0 G; M0 @* h$ r* I7 ^
ENDIF
/ ^( o5 n) h0 ? IF nCounter>30 THEN
A! r1 O' H1 h. y0 @1 @ Stop;7 G1 x( T5 p1 V5 Y2 L5 t e9 x0 x2 W
ENDIF
) l( D1 V- v C& ~ WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;2 m2 Z5 c u4 o; ~! b# S7 v8 M' O
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。1 F+ Q2 f; z1 \0 J; y# y( V
ENDWHILE
" j4 m# W g' }4 C& O# r' \$ T …; i( X {6 H9 @4 O6 q( S
ENDPROC
: Q5 [% Z6 E- J" r O; w |
|