|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
输入输出指令WaitDI-ABB机器人标准指令编程5 ^$ ?4 K8 x) [6 r$ ^
WaitDI Signal, Value / {2 `3 l. v! M
[\MaxTime][\TimeFlag];7 `. o% T% \4 x! d4 Y: G
Signal: 输入信号名称。 ( signaldi )
' Z; m6 e' w# I/ v2 D4 f* dValue: 输入信号值。 ( dionum )
( M- V9 n# a$ X" g+ B[\MaxTime]: 最长等待时间 s。( num ) + t% b9 I1 j* {5 g% z% W2 `
[\TimeFlag]: 超时逻辑量。 ( bool )
x4 y q' a" z2 {5 J7 o
# I$ s7 ~* _+ Y% ~ # @* ~" Q& H- `, n. M6 {! a
应用:, K: i/ {2 c8 Q$ ], l& J
等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:ABB机器人等待工件到位信号。
6 z: N6 K9 G8 g) K- L/ l/ }5 i. s1 z3 h, x. n& L! ]/ m& Q+ L
实例:3 ~8 p, v7 C0 @ W9 h f, j i" C+ ~
PROC PickPart()
6 ]- \3 [! e# y; i q MoveJ pPrePick,vFastEmpty,zBig,tool1;# o8 f1 B( x& F# P0 \
WaitDI di_Ready,1; →ABB机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。, ^0 a: X6 V% v( K- ^* L
…: g4 P+ b- _7 B0 A
ENDPROC
. K" g/ r3 {, N Z( m" X4 X# ?
5 s0 I/ K' n* ]& _$ R! M" Q6 F0 jPROC PickPart()
( T2 C% [7 Z' j: C) g6 ?8 v MoveJ pPrePick,vFastEmpty,zBig,tool1;) v9 |9 Y( z- @' V8 ]! N% L. N3 d
WaitDI di_Ready,1\MaxTime:=5; →ABB机器人等待相应输入信号,如果 5 秒内仍没有等到信号 di_Ready 值为 1,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
4 a5 F; W1 U( M! g4 Y …2 g3 G; [% Z/ g9 y
ERROR; E# d2 G; z* `; X N2 l' g6 x
IF ERRNO=ERR_WAIT_MAXTIME THEN9 R2 n# v9 u# U# F# e' x9 [! m
TPWrite “……”; T* |: G. j0 u
RETRY;
3 m5 i7 d9 A% ]2 H* n( i3 v$ Q0 h, q ELSE
. D+ k6 h# `7 `* Z- O- V/ ?/ J0 a RAISE;
% [2 N+ `7 Z) Z0 M, G) ~' ? e5 i ENDIF1 _% }. v N* G
ENDPROC& ~% w0 n' ^4 _: `
; F. @4 u; r1 {" I) R N5 d: K0 G5 r实例:
$ \/ a# A! N6 e% s PROC PickPart()
! F) p( l' ^. B4 c" S# r! F MoveJ pPrePick,vFastEmpty,zBig,tool1;0 Z6 [2 L1 Z- D3 e+ M5 O7 l
bTimeout:=TRUE;$ z" f* u& l' B% a2 B/ w
nCounter:=0;
, t! D8 @* p$ O3 ~ WHILE bTimeout DO3 B! o% ]$ K2 B, ~
IF nCounter>3 THEN
" O; m3 c& T, r- C4 ~8 a" \% B' y TPWrite “……”;
1 C& o. R! X! v2 H ENDIF
# a! K/ g: v Z5 J IF nCounter>30 THEN: |. @" \ [, }2 o
Stop;
3 i6 h6 ?3 h) O2 ^0 t7 `5 r* A ENDIF
" m, ]: t" s% X& C6 ~9 V+ z WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;→ABB机器人等待到位信号,如果 1 秒内仍没有等到信号 di_Ready 值为 1,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人等到信号 di_Ready 值为 1,此时,TimeFlag 值为 FALSE。7 s, t+ ] ^$ d; x) N
Incr nCounter;
9 I/ j/ c2 J" A1 q$ K+ k1 X7 @ ENDWHILE% I( @2 P+ F; x6 q0 U# ^- L6 _
…; A) w- E2 \ L! o8 ^2 `9 s5 p
ENDPROC% a9 o, i( F+ J' U6 S
|
|