|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
输入输出指令WaitDI-ABB机器人标准指令编程
) h: n) H5 e+ |' I9 `: [* _WaitDI Signal, Value . {1 M+ e5 X' c* ?7 f
[\MaxTime][\TimeFlag];. y1 ~% i" Q/ H3 r* ^
Signal: 输入信号名称。 ( signaldi )
4 }$ x# {0 I/ J( KValue: 输入信号值。 ( dionum )
: S9 i2 p' @9 I# y; F& S[\MaxTime]: 最长等待时间 s。( num )
" c. }5 T, V, l# K) T/ i6 ?5 t[\TimeFlag]: 超时逻辑量。 ( bool ); W3 h" Z- `+ K/ Y) y
/ `% y- `; W! r* n% Y1 U3 B7 L
8 T" C4 d5 w7 e! b应用:6 t. S ^4 g& s9 [
等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:ABB机器人等待工件到位信号。
' B! p* d5 ?, w P( @( P6 l, R
) H3 P) g1 ? j实例:4 e2 Z& d7 _. }1 @0 D6 j6 h- K2 q# q
PROC PickPart()) P7 H {; U/ x& k2 A
MoveJ pPrePick,vFastEmpty,zBig,tool1;( ?& ]* _3 }& A0 w* K6 }
WaitDI di_Ready,1; →ABB机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
8 g9 n; U7 _: G8 N* o) e4 e …$ R1 h+ C4 f8 S) o; B
ENDPROC P. _- e( l4 \: i# N6 {4 W, |
0 G( `8 N7 |$ P9 l- o* l
PROC PickPart()
4 R& m+ S6 J9 a MoveJ pPrePick,vFastEmpty,zBig,tool1;
7 \; K7 ~9 C( y WaitDI di_Ready,1\MaxTime:=5; →ABB机器人等待相应输入信号,如果 5 秒内仍没有等到信号 di_Ready 值为 1,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
4 V/ M) N9 S6 q" @5 S1 e, Q … A6 Y7 d' k0 \6 o) X/ z2 e/ N& k
ERROR. q/ S/ W! ~1 `" b* O( i
IF ERRNO=ERR_WAIT_MAXTIME THEN5 m7 h, l7 j2 e' y7 n
TPWrite “……”;0 y A' a& j7 R( _1 }5 Z" X
RETRY;
5 {0 T h" Z5 [# ^ ELSE& @6 G, ~ g) b$ v
RAISE;
9 w6 Q+ S- \) |" `( }; Q4 ~ ENDIF& @5 W7 n$ G: j. S4 d' u
ENDPROC
, i& b0 E/ ~" x: o G+ B8 h" ]7 ?' Q) ^7 f. _; y; d! E' u
实例:
6 l5 L: w# g* U) s% ]6 m PROC PickPart()# M# \. t" I" l
MoveJ pPrePick,vFastEmpty,zBig,tool1;: j/ K8 d/ {' T* ^9 q
bTimeout:=TRUE;
H B4 {9 N) u1 q5 y- P" C5 z nCounter:=0;
' w- ~/ M1 T2 e* V- S! \ WHILE bTimeout DO
& b7 V; |$ k- i6 M/ x! | IF nCounter>3 THEN3 _% x# ?6 ?" t% I
TPWrite “……”;
! D; B" |! v* T) |/ ]4 \ ENDIF
/ b8 l* B0 y- G IF nCounter>30 THEN3 n0 N% Z' l( I6 [1 k1 k
Stop;7 W- l" y( J9 M7 O9 m6 l* \
ENDIF
/ o8 O' ^/ e% w: _; ?$ l7 N WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;→ABB机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。
7 `$ Q+ h: l8 {) E( k0 a" O Incr nCounter;
- r$ w9 O- h8 J ENDWHILE: N9 L6 v& W5 D! s q: F0 c- p
…$ g* @: F+ a+ w, Y
ENDPROC6 L5 a3 m8 X9 l" \7 ?, O; X
|
|