|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
输入输出指令WaitDI-ABB机器人标准指令编程3 j z. o, E6 U8 D/ {+ o7 |
WaitDI Signal, Value - g. r5 I' n% O) D+ R
[\MaxTime][\TimeFlag];
* {: J( b m, d8 DSignal: 输入信号名称。 ( signaldi ) + i! U6 u! J8 Z$ D2 F* V
Value: 输入信号值。 ( dionum )
/ V- W5 x5 e- Q6 l% p& d& q0 r& F[\MaxTime]: 最长等待时间 s。( num ) 5 c/ T' e% Q" V5 @" n6 Q& h$ N- V
[\TimeFlag]: 超时逻辑量。 ( bool )+ g9 p( i9 z5 L+ `2 d8 `1 ?
( ?: ^! H- C% \' U& T
% W4 Y4 h7 v$ f2 @: w$ \应用:
" G) C+ z* `$ r2 x) T 等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:ABB机器人等待工件到位信号。
* O7 H: H3 S3 w6 y3 [
3 S9 t$ |/ Q! ^, b实例:- y1 ?# W5 T: P, u2 Y
PROC PickPart()
4 H/ e6 x. f c1 i MoveJ pPrePick,vFastEmpty,zBig,tool1;
" r+ G" v# I( K( Q. I. ?, q1 ~ WaitDI di_Ready,1; →ABB机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。) [7 w7 M! `+ O0 Y: g5 Y9 O1 C
…! p' {) o1 |) m O
ENDPROC
2 q4 d# @0 `4 s4 R6 ^1 l5 A* Z" C3 D2 I
PROC PickPart()4 A* U, t: E, T0 ]7 y
MoveJ pPrePick,vFastEmpty,zBig,tool1;4 Y) p3 D& ~; |8 N3 z9 t2 q$ h% `
WaitDI di_Ready,1\MaxTime:=5; →ABB机器人等待相应输入信号,如果 5 秒内仍没有等到信号 di_Ready 值为 1,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。( r( s( L, O6 V4 f
…
2 Q* O+ {0 S& [ A6 {; N j* B$ i* p ERROR8 M G9 N H/ }, M
IF ERRNO=ERR_WAIT_MAXTIME THEN. H/ F' @0 b4 Z; m {4 I) c
TPWrite “……”;
0 [7 V' x9 n7 }2 |" ^ RETRY;
9 p: I! I: V! r6 f6 N ELSE: n/ S2 J2 |0 w% \; b3 [
RAISE;! a0 o$ ?' y+ v' O- H* Y
ENDIF- v G9 z4 M2 p- `. \7 F
ENDPROC
7 e1 n9 c6 _3 O/ d) H+ W8 y x; @9 h* `* w3 y* y
实例:
9 b1 i$ ^. D- |: | PROC PickPart()$ Y2 Z9 C: D1 [+ b1 f& d1 n
MoveJ pPrePick,vFastEmpty,zBig,tool1;: O9 v$ {7 q7 r- g! h
bTimeout:=TRUE;
3 E9 a6 z" b6 D. Z nCounter:=0;
' x# }: \; |3 V WHILE bTimeout DO9 S$ |" O; b4 K! [7 t& r8 f
IF nCounter>3 THEN
1 ^$ b1 a) b9 ?4 A# @+ D' s* g& a; W TPWrite “……”;
+ N6 C- G1 A! n' Q9 s+ D( G ENDIF
1 r& k; q( W; q; t IF nCounter>30 THEN' u; C6 h! T5 ]3 |& l' ?; o
Stop;
0 `0 x! P8 n) X; K" E ENDIF0 R8 b2 L# ]' n2 s0 ?. M6 x+ ^
WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;→ABB机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。
4 M9 P0 B; R c$ ?" ?$ y Incr nCounter; ' [2 [# P9 M l
ENDWHILE( w2 @+ e1 \$ a
…
6 F4 l1 l% Q0 E" i* b- Q8 I4 C ENDPROC! u0 ?! x. X3 ~" x
|
|