|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
输入输出指令WaitDI-ABB机器人标准指令编程
9 h1 y: v: p6 X5 Z4 V1 P6 tWaitDI Signal, Value
! x, M! e/ u/ n! ~1 u" f[\MaxTime][\TimeFlag];
* m, M1 I8 t GSignal: 输入信号名称。 ( signaldi ) 5 m/ R9 _4 @" T" O1 [' m R
Value: 输入信号值。 ( dionum ) 5 l {9 V. G, w
[\MaxTime]: 最长等待时间 s。( num )
* I3 F- g; E6 s* N" W$ K6 l8 X[\TimeFlag]: 超时逻辑量。 ( bool )) c. E4 _' w! y1 W0 R$ g, x- ~$ V
. B6 @ O0 O# G& e* R% F0 g9 b3 w( N
8 L7 R6 p% g- p4 L$ v应用:4 E, A8 \3 _+ I D
等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:ABB机器人等待工件到位信号。
" V. g# Q& z0 g/ y3 @7 ^1 l$ e" m9 _' k; }# Q
实例:
8 T Z) j1 F! G6 l PROC PickPart()
! M: O" j7 d8 ^& ^0 z |' ] MoveJ pPrePick,vFastEmpty,zBig,tool1;6 ]% a, v4 U e' k
WaitDI di_Ready,1; →ABB机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
' v/ l( f! M9 t …8 f6 n U6 K5 s& e" E/ u
ENDPROC
* f2 c- W; J# Z. G$ b) G# l/ d. [4 S& o" ^4 E1 o" I7 B
PROC PickPart()
: {! [2 W+ ?3 @7 I7 q, L B MoveJ pPrePick,vFastEmpty,zBig,tool1;
O; i# ?, h; G4 f! k" p WaitDI di_Ready,1\MaxTime:=5; →ABB机器人等待相应输入信号,如果 5 秒内仍没有等到信号 di_Ready 值为 1,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
) i% A6 L. N' f7 c …
" s7 c( B* D/ P/ q m ERROR
' |6 k) ~2 ~7 a+ U5 t0 E- Z2 {2 D IF ERRNO=ERR_WAIT_MAXTIME THEN, D2 w2 |0 n) Z% l; l
TPWrite “……”;
! j7 ~- c" V% @( A RETRY;# G" b$ H6 `9 V: e! C8 [, O- j$ n
ELSE
% _& B: O) c" I: A$ y ^% ] RAISE;
6 \. ]* U8 L/ k" Z5 _8 z% E; I ENDIF
4 ~" \ c, P+ |' h ENDPROC* l4 p% t4 Q, r9 V: g
0 D0 L' d* |+ Q* [' g# k8 z
实例:
3 w- p9 r% ?7 E8 v n. A PROC PickPart()0 F8 {" x) |# q8 z
MoveJ pPrePick,vFastEmpty,zBig,tool1;3 r' J1 t8 d" b* x3 V9 `, m* E
bTimeout:=TRUE;; [4 S" H. F J( t7 I
nCounter:=0;0 e$ c. i# ~0 p$ `6 k6 s$ I
WHILE bTimeout DO
6 e: k, \! p9 W/ L6 P IF nCounter>3 THEN9 e6 w( A# m- k
TPWrite “……”;
" u3 ]) g" d- T: ] ENDIF* V( E6 r, q' o1 d" {% n. {0 G
IF nCounter>30 THEN
) {6 R0 X2 m3 O Stop;
* I: R/ k, Z! W n6 s9 C3 E& s ENDIF
( Z x0 K4 G' ` b; T WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;→ABB机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。# k$ n9 T) @8 L' q9 I$ b7 h
Incr nCounter;
2 V! S$ e' u7 g+ M- m ENDWHILE
; n4 s; y- g8 _- y( L* K6 I …2 a b0 I' z2 L: ^
ENDPROC$ D! s/ |( T& l
|
|