|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
输入输出指令WaitDI-ABB机器人标准指令编程
2 [+ w/ [9 e3 M. n; y3 h Y1 ]WaitDI Signal, Value
2 J E$ D; l! v& u& O! h[\MaxTime][\TimeFlag];9 H! q. u8 h3 T) I3 m# g: G" ~8 U
Signal: 输入信号名称。 ( signaldi )
7 p) G1 M" U t$ i3 e* o/ Y# QValue: 输入信号值。 ( dionum )
; d7 p O0 E$ ?6 i( s[\MaxTime]: 最长等待时间 s。( num )
6 A* \6 {4 b' Z! ~+ Z H" h# b[\TimeFlag]: 超时逻辑量。 ( bool )
. u# ]( m+ k) i* r# `+ e9 W( l, }8 _- N; n- i! p, _1 F
* ~. C/ x0 y' B. t应用:
E5 h ~! f7 ]* t2 _9 \ 等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:ABB机器人等待工件到位信号。
* r- j* B' ?& e. S/ C4 d
! U! _" l7 A; B5 @8 E! W3 l. |实例:1 Y% M6 ?( b* X: p7 R( s& A# m
PROC PickPart(), B+ c- v( C# T M, r0 a, }# b
MoveJ pPrePick,vFastEmpty,zBig,tool1;: R2 P4 ?9 D$ R' a
WaitDI di_Ready,1; →ABB机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
! Q! I- r% i& [ …
2 r4 N6 R0 L x0 x% Q0 q4 o; X ENDPROC: r- c O* n: `) S# \* H2 h
3 ~7 D& d5 |4 Q9 Y& w
PROC PickPart()
4 q2 s* e# ^5 _$ X. H" `9 } MoveJ pPrePick,vFastEmpty,zBig,tool1;. K ]5 @( E. h2 ^. q
WaitDI di_Ready,1\MaxTime:=5; →ABB机器人等待相应输入信号,如果 5 秒内仍没有等到信号 di_Ready 值为 1,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
9 a8 i& H. x9 d: I8 c …% B) K9 V% ], Y# B* t* d0 l
ERROR
2 H- t3 A! s2 H% z- D IF ERRNO=ERR_WAIT_MAXTIME THEN
+ I) q7 H* e% `6 V TPWrite “……”;4 s1 o9 b+ C- S4 m7 E3 U* e& l
RETRY;
2 s1 O# ^* ^9 \1 f1 j t: p+ k ELSE) T' v g- O: [7 i( i# H8 b' K2 a
RAISE;
/ l) p. ~" J7 n. l ENDIF9 V N* o. u% J9 j0 B' Z1 ]+ P
ENDPROC. C' b/ [" W% ~+ }* a' U: ^4 |
- ^5 S/ Z3 K& L( E" r: A
实例:9 u! S1 J- e* A" t; |
PROC PickPart()
0 E% w( S0 o7 z& v MoveJ pPrePick,vFastEmpty,zBig,tool1;
/ @" F( c, o( F6 w bTimeout:=TRUE;8 r: m$ v2 o7 x. l' @ D% y1 F
nCounter:=0;
+ \$ N/ X$ R' c% `0 Z; F% d WHILE bTimeout DO* ^4 _) J$ M" m3 Z( B2 Y; H
IF nCounter>3 THEN
, M7 `, h. B2 B$ s+ [4 F! E TPWrite “……”; L0 }. H) W# _/ a
ENDIF( n0 q: \8 o3 t4 m) ^
IF nCounter>30 THEN
: ~* X( F5 a. a Stop;9 ^# O3 y) B" e# t
ENDIF$ D4 _2 Q7 a& }! a' r
WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;→ABB机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。
% C6 I& `2 S: Q, V* x. C6 ? Incr nCounter; , O- D$ k1 i4 `' h( I( S( y9 _7 `8 W
ENDWHILE5 T# o3 s3 d+ C3 l$ v5 c$ x
…. b( h% B& p, G1 `
ENDPROC
$ Z/ i& V+ e" y- a5 u* T |
|