|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程7 f/ T3 R" l; L% G0 _) \
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];1 v: {: ?. P. m# R
[\InPos] : 提前量开关。 ( switch ) % h7 a: _5 S+ K4 N
Cond: 判断条件。 ( bool ) ; O( O: G. U9 d e; j# h! _
[\MaxTime]: 最长等待时间 s。( num )
- c8 F8 _6 T* k- M+ T# K* u1 D[\TimeFlag]: 超时逻辑量。 ( bool )7 I( I. |2 n( ^5 ?' k) f
5 }* m; ^& v. C( I) t, d
ABB机器人程序流程指令WaitUntil-应用:- @ f+ k4 U" F1 K. x
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。9 x/ C# z, G/ Q( G! n
~4 r6 c% h- W9 u k, V L9 mABB机器人程序流程指令WaitUntil-限制:# |( _& M7 h) p" q5 y/ t3 ~
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
; }8 V" t/ R$ k. G 5 s% t4 N8 E5 A! S$ c
ABB机器人程序流程指令WaitUntil-实例:
& X- Y; Q) p( ?* p/ k7 C) A' Y3 d PROC PickPart()
6 g) T3 y% ]6 F MoveJ pPrePick,vFastEmpty,zBig,tool1;
4 s5 Y- ^/ h! @5 q) a8 c WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
: s) q0 ]; u1 j+ X (WaitDI di_Ready,1;), ~: ~$ P" v+ t8 Q2 k4 n, B
8 A% d; [! [8 t1 D$ Y8 _ T
PROC PickPart()) [$ D- W3 }" `( H- ]+ p/ E& D
MoveJ pPrePick,vFastEmpty,zBig,tool1;% k" m% Q1 k- L! P9 n0 `
WaitUntil nCounter=4\MaxTime:=5;0 m5 y1 r( _9 K0 H
… →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。$ Z: ^7 B; v, `
ERROR
; P3 I! c6 G/ R( `) r) p/ _ IF ERRNO=ERR_WAIT_MAXTIME THEN4 B# u/ Z- q b7 P W" t
TPWrite “……”;
3 y) N8 x1 H4 d7 i8 ] y) E& r. P RETRY;
% O3 d# Z4 T% k! }/ F. q2 l/ R ENDIF( h% w$ C4 s& f) h: G) K
ENDPROC
8 Z+ [5 q; u9 K9 k$ H- ]* \& D3 Y' }. |6 S- R0 i! D$ S! \9 W
ABB机器人程序流程指令WaitUntil-实例:0 C9 Q# J: D0 g- y% a- R
PROC PickPart()3 I; _6 K/ n, J5 o4 [- P
MoveJ pPrePick,vFastEmpty,zBig,tool1;
3 M( l3 y' j. T" _, d7 W5 ?2 h- H bTimeout:=TRUE;
9 R6 {. h) t* K nCounter:=0;
' [. x/ J" f7 h# `; I! A WHILE bTimeout DO& q P# H6 C6 Q- k# _( r
IF nCounter>3 THEN2 g) Q, i6 z. i3 ^
TPWrite “……”;
5 I3 |+ D, M' ?5 i. c9 N ENDIF+ ~; N% d) v; s0 q6 l+ w
IF nCounter>30 THEN
3 W! D! Y0 [; @2 v m& N8 ]+ u Stop;
0 w1 e, S! Z8 @ w. s K ENDIF# k, ?! G( b& e! l7 x: G# e
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
. M$ Y; O8 ^/ n6 X Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。/ c# y" y; l B6 L7 H6 o
ENDWHILE
1 j3 G0 Y% K- N+ }4 o$ Q- }: `& Y …- u" l$ X8 t* g7 {0 U% [
ENDPROC
6 ^5 V% q3 S7 \& r |
|