|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
输入输出指令WaitDI-ABB机器人标准指令编程
( Z# R# Z9 T, V% RWaitDI Signal, Value . z' v. D2 S3 ~- N3 g6 S
[\MaxTime][\TimeFlag]; |- q/ R/ Z$ f- b$ J. \! O$ k9 U1 _' o
Signal: 输入信号名称。 ( signaldi ) Z2 B1 c" m+ S/ Z
Value: 输入信号值。 ( dionum ) 6 N2 I$ w' Q% g: y/ l |, ~
[\MaxTime]: 最长等待时间 s。( num )
7 B& g5 @/ n9 p* q2 O) @$ h[\TimeFlag]: 超时逻辑量。 ( bool ); T9 Y! T! ~: l, s! j
; ? p" k: P# m! ^4 {; L0 z ( X+ ]+ n7 z& w. F0 n& a& ]
应用:
! d% J4 _3 ?* N7 X& f8 {1 { 等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:ABB机器人等待工件到位信号。
7 T9 R& h6 @+ D3 J1 ^ V W; S) V ~, U
8 o$ t( R' | X7 w- V4 [9 U实例:9 {& [# t5 b3 {
PROC PickPart()" q5 i$ @8 {5 d8 @" O1 o
MoveJ pPrePick,vFastEmpty,zBig,tool1;
% g2 U3 T* t' V+ }' x' `7 p WaitDI di_Ready,1; →ABB机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
% r- s7 y0 n' F( j4 F) E …. @8 y: l4 E1 X+ i U0 W3 K/ B
ENDPROC
1 i; s; K) h& q2 e7 z! }! |
* C2 X: E9 J; |' \PROC PickPart()
3 r" v9 L: q! A, w7 l g6 P MoveJ pPrePick,vFastEmpty,zBig,tool1;. [3 b& P. ~# N0 t' b. {! Q [
WaitDI di_Ready,1\MaxTime:=5; →ABB机器人等待相应输入信号,如果 5 秒内仍没有等到信号 di_Ready 值为 1,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。5 ?/ F) o3 J; H) w: `: a
…2 H) i8 D3 s& u. e
ERROR
3 ?% h4 o. q: n5 y IF ERRNO=ERR_WAIT_MAXTIME THEN1 |8 X) F1 `3 g4 P R! ~1 g q
TPWrite “……”;+ g# d% t, C3 v4 B8 Z9 t
RETRY;! h4 ]6 v( [6 g4 S
ELSE
) g- I, y2 T: C) [9 X7 h RAISE;5 p, `, i& l7 o; p: p
ENDIF
# o# G( l5 y' \+ a- h2 E& L: i ENDPROC1 N( A8 y4 C7 W+ m8 H
& _9 r2 M4 F* w% I% [( t( j实例:
* q3 T1 `. N" J i+ Y/ M8 B PROC PickPart()
6 x# v( C) P7 N" a0 R MoveJ pPrePick,vFastEmpty,zBig,tool1;& R( v8 E' F7 g A! v
bTimeout:=TRUE;
+ c% v1 l' e, @$ w' A nCounter:=0;
: R. t# k# L. ?* ?& J* ] WHILE bTimeout DO: \) E A$ D/ D0 _2 o N9 u! ^' t
IF nCounter>3 THEN
( F6 b7 \# J5 E5 P; W" W TPWrite “……”;
9 L5 h, e2 p1 R9 u- W1 \ ENDIF1 |4 O; q. a8 b8 a( q8 ~
IF nCounter>30 THEN
, \. X% A0 G( l' U% g Stop;
e* {' y3 R: k, a! i ENDIF
+ C1 ]+ O4 r( r9 o D% ~ WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;→ABB机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。9 F. q, R/ m9 j& }" Z
Incr nCounter;
1 |& z _3 _) e1 Q ENDWHILE
0 c& a0 M; Z, n9 H# l+ v …6 u" ?( B& w' O0 T% u- R* K
ENDPROC
" Q) {. O" e9 o0 q, l* |# l$ N! { |
|