|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程( ?! x- a! D+ W
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
* l2 E$ H" q6 {# n0 G5 }. d( D/ }[\InPos] : 提前量开关。 ( switch )
+ D3 x" l* n/ n4 o4 w ?( {Cond: 判断条件。 ( bool ) 2 a) C( b/ Q- G5 \% u: B
[\MaxTime]: 最长等待时间 s。( num ) . `7 T% S9 x, h5 c0 b+ ^
[\TimeFlag]: 超时逻辑量。 ( bool ); \/ a$ ?3 B4 K# B- x* G" r$ Y
& G& p, Z$ \ z7 A; o5 q
ABB机器人程序流程指令WaitUntil-应用:
- d0 k g# R% w+ I8 x8 X 当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。) ?/ O3 ]4 N( P8 Z( \( \/ r
5 @$ }3 v( A( ?6 z, u6 A/ W, vABB机器人程序流程指令WaitUntil-限制:
4 H5 r1 X% y- B. ?; C- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
a( a# _" V) r V" N1 L
0 m1 ^2 ]# i( m( ?5 Z$ BABB机器人程序流程指令WaitUntil-实例:: b X2 n! Q* ?2 {# n7 P5 Z; u
PROC PickPart()
) i+ y4 W6 W4 }( f: q; D- \ MoveJ pPrePick,vFastEmpty,zBig,tool1;$ |7 i2 t6 _: a) V. `
WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
" J# I9 w6 A; ]* u8 n# D (WaitDI di_Ready,1;)
1 C# X; ~: j0 g2 t8 F9 b! H& d6 g$ m9 W
PROC PickPart()' X( J, v0 o' g) k* C* A2 \" B
MoveJ pPrePick,vFastEmpty,zBig,tool1;
7 i, l: G% V, z3 F WaitUntil nCounter=4\MaxTime:=5;
8 P* B, @$ j( l' y … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
6 F d* Z: j" r9 y' u# S ERROR
$ b$ m3 P; s- I9 Q IF ERRNO=ERR_WAIT_MAXTIME THEN5 m& J& B" s7 c4 Q
TPWrite “……”;
3 _4 G+ t9 H( q5 A* r0 v4 @ RETRY;
$ `: X" w; k4 E ENDIF6 `/ B: l" m9 S1 A3 e5 k4 \ {2 \7 A
ENDPROC
( T/ V9 x) w3 R
6 h5 r6 ^. U# O6 I! s4 Z8 zABB机器人程序流程指令WaitUntil-实例:4 N% v; a- D( e* T! d% ~
PROC PickPart()
: y( T3 P* m: C( |" S- H* s MoveJ pPrePick,vFastEmpty,zBig,tool1;: [$ m8 Y) A% t! v2 w
bTimeout:=TRUE;
7 ~6 C: ?! d& [$ o- M nCounter:=0;
% u2 j- m) x+ o WHILE bTimeout DO$ h( e) Z% h5 {. `" Y/ B
IF nCounter>3 THEN& Q9 P- |$ ^; Z& e
TPWrite “……”;
2 k& m3 ~- K# ?8 n; U5 Y) Z ENDIF
+ b2 I8 l* c7 K( x8 I$ y+ p IF nCounter>30 THEN
# {6 w; I( F$ u$ f! [" n Stop;& L+ a0 w- d E9 V# A; U" U
ENDIF4 F* Y7 h; E% B( X1 C$ f
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
$ N+ v; H) ^% K Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。9 \. X J/ v* A( O3 X0 Y
ENDWHILE; X. E* u# ]* W, R' F) \
…5 g: r+ n6 @$ l$ n3 B( F& C6 _4 _" u
ENDPROC
9 ^5 A& y% k- x k |
|