|
|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
输入输出指令WaitDI-ABB机器人标准指令编程
2 H# G4 B' y2 h( w6 GWaitDI Signal, Value ( V. i s" N. N; W- q( c$ H" n' S- E
[\MaxTime][\TimeFlag];/ a) f& H+ F/ l
Signal: 输入信号名称。 ( signaldi )
C, I2 B* \2 {# x) KValue: 输入信号值。 ( dionum ) ; _# H* F6 g" m
[\MaxTime]: 最长等待时间 s。( num ) 8 z0 |, X& i0 f) q1 X3 @- N
[\TimeFlag]: 超时逻辑量。 ( bool )
3 ?7 K ~. p. S& f$ ?# L# S/ E5 J8 I2 Q9 L: H
9 H2 h2 W8 b, E! ]: o应用:
, A( C0 t) k/ e+ Y+ Y 等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:ABB机器人等待工件到位信号。
3 r- V9 J6 T- w) }6 }
! y! C/ |2 d. m实例:
2 q0 E" B. o# B3 i R: j5 Y PROC PickPart()8 ~5 P3 |7 u* t- P
MoveJ pPrePick,vFastEmpty,zBig,tool1;. c0 `2 E/ l( I
WaitDI di_Ready,1; →ABB机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
# T" l: O; d- u) K2 z …/ m. K- n r$ e) ~0 `+ l
ENDPROC
, b7 t0 ~0 m9 \3 s. u: X# H7 k6 V* c! Q# Y
PROC PickPart()
6 x- v# e9 R4 |4 n MoveJ pPrePick,vFastEmpty,zBig,tool1;
' \% `5 |+ u: W% O0 U/ X WaitDI di_Ready,1\MaxTime:=5; →ABB机器人等待相应输入信号,如果 5 秒内仍没有等到信号 di_Ready 值为 1,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。1 _. \& ?" _' Z# l" Q! j* Y
…
; G' ~# D5 J2 W ERROR; A% ~: I/ ^$ U% V& \" Z' |$ E; h
IF ERRNO=ERR_WAIT_MAXTIME THEN
- X+ e" c0 |) ]% l" d5 N C" W) X TPWrite “……”;
( I- a5 w* k9 L) r. `6 M8 E RETRY;* v8 C0 t) A' ^) k. u8 A& q u" K8 @
ELSE. G: U5 x+ e! h. b5 P
RAISE;6 c5 W6 I. Y! P: L2 B) p( U9 Y; }
ENDIF
5 H% Q9 X8 c1 D/ p! N6 U7 { ENDPROC
6 h5 s- Q0 U+ ]* C2 X
1 w( t/ Z1 L9 A4 t+ U实例:
3 S7 M/ t! @: ?/ i: R: g: h* R PROC PickPart()# N1 ^, d% W) Z) C: k5 l
MoveJ pPrePick,vFastEmpty,zBig,tool1;
7 z' [0 [' C3 `: F7 ~2 b bTimeout:=TRUE;8 o7 n7 v" H' Z0 k5 M; O# k
nCounter:=0;: F% _! }2 I7 r' g2 O
WHILE bTimeout DO+ I/ d7 q C, U! o+ L+ h/ V3 ]
IF nCounter>3 THEN
) D' P1 b9 ]* {8 U5 |* A+ D TPWrite “……”;! G+ C0 ?1 v5 Q; w8 N1 q1 `
ENDIF2 l% K( D" ^( f3 \6 \6 I
IF nCounter>30 THEN7 r) I u% e" g) ?
Stop;; B8 B. n! w$ O( n) o9 |
ENDIF5 d$ U/ r4 [+ [3 l4 x
WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;→ABB机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。- _# @: I+ }. }5 {0 O1 w
Incr nCounter;
' e% a/ f2 a! F ENDWHILE
7 p# e# _) \$ _- }$ e$ R `; J …1 s! L4 t/ v) _, R- ?) E8 l5 b) I% [* w
ENDPROC1 ^0 ^! g; o4 l+ h
|
|