|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
输入输出指令WaitDI-ABB机器人标准指令编程/ g' k: M7 g0 \$ U. ^
WaitDI Signal, Value ; I" o) q! S5 D1 Q3 _
[\MaxTime][\TimeFlag];
0 d/ S! X4 _' Z2 b- XSignal: 输入信号名称。 ( signaldi )
- q1 O, H" s( S: Z5 V* n8 v! JValue: 输入信号值。 ( dionum ) " D* L0 j5 `# P$ ], w1 d6 C
[\MaxTime]: 最长等待时间 s。( num ) " I% x- E ` Y. w) l* K
[\TimeFlag]: 超时逻辑量。 ( bool )
# @* c4 O. H/ ?' H/ [" E
/ Y# H7 g; p' f- p: G+ X# g6 @ ' v% U( a4 |. f( m
应用:0 h% Y. B# w7 k4 G3 H% a3 V0 x' k# F
等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:ABB机器人等待工件到位信号。
" j O+ p& W( t. o9 E; G1 }4 v+ R; R: `; p# y& p8 e9 c% z
实例:& L! `) ^! Q- j& t# m
PROC PickPart()) q* S) E! X2 z5 s2 f% e
MoveJ pPrePick,vFastEmpty,zBig,tool1;
- O. b% w: a# ] WaitDI di_Ready,1; →ABB机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
4 i; R) Y2 m, V4 J ]5 o …
d& K' H$ j& e6 ]4 r- o ENDPROC
+ @$ h- H) p$ `: y6 Z5 Y/ D4 p4 G/ z" D! H& \' E, B% d
PROC PickPart()
/ K Q ?/ B j, W5 O/ } MoveJ pPrePick,vFastEmpty,zBig,tool1;0 J T4 X0 a: S7 K/ p7 I+ g
WaitDI di_Ready,1\MaxTime:=5; →ABB机器人等待相应输入信号,如果 5 秒内仍没有等到信号 di_Ready 值为 1,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
+ m/ O7 r% N( S7 O, m0 J8 d0 e …% Z. |+ h0 I) }% G/ B$ G6 Q% |; ^
ERROR3 \# ]3 k2 }* I3 i7 S4 A
IF ERRNO=ERR_WAIT_MAXTIME THEN
1 m a# G6 \) @2 x/ _ TPWrite “……”;9 x, x$ Z' U# i% b# @% Y0 n
RETRY;' B/ d2 y0 O: O/ D. K8 M C
ELSE
1 r% ]! T# y* e0 z" ~& B RAISE;3 P6 y1 }0 m) h
ENDIF
) u, F0 k" t, c* [/ K ENDPROC
* H; d; K2 r) s4 y Z6 z5 t; h& L( W% h
实例:
u$ q$ c b( l$ N! M& p Y PROC PickPart()0 ~9 T$ f+ U( F$ M9 C1 {7 I
MoveJ pPrePick,vFastEmpty,zBig,tool1;
8 V1 Z4 y; \. ~" s/ i bTimeout:=TRUE;
8 V2 u8 z$ o% U5 b nCounter:=0;
) Z+ k8 J& q: x WHILE bTimeout DO% [" ^2 B+ k0 X) D$ [3 @
IF nCounter>3 THEN. q7 p* d7 U" Q- l% I. w" J7 w+ a d
TPWrite “……”;
6 D/ y3 y* s. I5 I ENDIF
+ E: I) Q9 g2 X" s% o IF nCounter>30 THEN. T/ H: ~4 `) k( {3 i% h
Stop;+ R' v1 l) i8 U3 m& q G
ENDIF& B' e0 y3 B0 O. z- k" r" B! p
WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;→ABB机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。
w% `, i3 t' J4 n0 S( \3 h, } Incr nCounter; ) T( k2 M$ s8 v1 W
ENDWHILE
4 R0 p. c# P/ U/ S- O; U2 w* X …
$ t* ^5 Y$ b# g- d* L2 i3 v" G- K ENDPROC
0 l9 a; E" z: a" f |
|