机器人教程网
标题:
输入输出指令WaitDI-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-9-2 11:35
标题:
输入输出指令WaitDI-ABB机器人标准指令编程
输入输出指令WaitDI-ABB机器人标准指令编程
1 m, V) f2 D& j% ]8 M: O
WaitDI
Signal
,
Value
- v. [5 F$ b- H/ Y' f8 T
[\MaxTime][\TimeFlag]
;
0 }0 b: D9 j3 q. X- h, r A N
Signal:
输入信号名称。
( signaldi )
6 i/ ]; a5 X# a8 h8 u' c6 a
Value:
输入信号值。
( dionum )
: V, c5 O* U; L" b$ d9 o
[\MaxTime]:
最长等待时间 s。
( num )
$ G5 e2 z0 _' {$ ~! q4 i8 o
[\TimeFlag]:
超时逻辑量。
( bool )
( r2 U5 L' f7 s( I# O
) N% I# V% W A5 R; n1 i
1 Q: p5 j% o; L q- U! _" L
应用:
' l3 ]7 o7 v# C* X
等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:ABB机器人等待工件到位信号。
7 E% e) n$ W& K5 b$ @
, R c& e' G* F& D5 Q+ ~/ G
实例:
1 S4 _4 o) Y8 V5 T
PROC PickPart()
8 b' f1 H" M2 G0 U9 o
MoveJ pPrePick,vFastEmpty,zBig,tool1;
6 ~. `' _: g4 a$ }
WaitDI di_Ready,1;
→
ABB
机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
5 n/ C/ D& b: T$ t
…
) ?# z6 e+ g' V- X. ^
ENDPROC
8 c- B. u9 O0 C2 r
. i) c4 y% C% R/ Y% E
PROC PickPart()
+ t& b8 y, \& f3 w t( X/ g% A
MoveJ pPrePick,vFastEmpty,zBig,tool1;
/ F6 j! D' T9 P: C( N
WaitDI di_Ready,1\MaxTime:=5;
→
ABB
机器人等待相应输入信号,如果 5 秒内仍没有等到信号 di_Ready 值为 1,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
% x1 G: A4 P( [ v; `: Y" } I
…
: c# i7 _8 g9 \6 S0 @
ERROR
( R+ i/ U. J4 `, }' n
IF ERRNO=ERR_WAIT_MAXTIME THEN
7 Y, @$ r, i3 c. }
TPWrite “……”;
, b' o' v& M, o( B+ _6 y/ O* x
RETRY;
# p# ~2 u- x3 [; p9 Q: ?9 d( q
ELSE
_+ z1 v2 o" ~. S
RAISE;
: Y- G8 ^* A& B- Q* O
ENDIF
- ]1 M1 M' ~2 j& b
ENDPROC
t4 [- i. A' E2 H0 N& m
) }) ~: z+ _: G. H5 c
实例:
) P9 D$ x' x% T4 d) J* i9 S6 t
PROC PickPart()
* g: V7 ?2 M, E3 }9 l" r# B: H+ }
MoveJ pPrePick,vFastEmpty,zBig,tool1;
4 H) `+ b8 v/ E6 h0 e. m
bTimeout:=TRUE;
" r, I# G+ R5 j0 Z$ V' f% ~
nCounter:=0;
, q3 Z0 _$ A9 F* h8 b. t
WHILE bTimeout DO
, R9 _) ?, I, e: @9 J
IF nCounter>3 THEN
p. a$ L6 D9 n6 |7 e% a
TPWrite “……”;
1 V1 i7 z/ z, z& k5 |/ s8 A( C
ENDIF
. j" L d# w1 t( `- E6 K
IF nCounter>30 THEN
, `; S* Z+ r3 b3 @
Stop;
. ` Z( W1 Z$ s6 n3 C. o6 g
ENDIF
% p- n F, j2 C+ _
WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;
→
ABB机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。
9 X, w" o' _) F' P2 ^
Incr nCounter;
" }' }9 r8 o' S8 S
ENDWHILE
, V, [& w7 Q% J
…
. r' T! m, [# L7 q- g
ENDPROC
' v) L# L/ ^5 C' `* P. ^
欢迎光临 机器人教程网 (http://www.robotjc.com/)
Powered by Discuz! X3.2