|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程9 ^/ @1 N0 b0 K& R9 _
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
0 v/ Q6 e m/ g, L0 r' W& r[\InPos] : 提前量开关。 ( switch )
. l1 D0 X6 o- l8 y2 a2 zCond: 判断条件。 ( bool ) 4 b2 e$ W) K' b3 e/ j
[\MaxTime]: 最长等待时间 s。( num ) + ~3 `' `" g4 j& j3 Y/ w# Q) W
[\TimeFlag]: 超时逻辑量。 ( bool )/ s. n; Q" ` ^; D: M" k z) u
% ]! J0 J! T I& F* F
ABB机器人程序流程指令WaitUntil-应用:8 x) p7 N: y3 H1 }
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。) c: ?4 B2 P' M$ Z- I
1 y# B8 L+ p- p. s$ V
ABB机器人程序流程指令WaitUntil-限制:! C( \( v: r: G, V
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。3 @! [4 n+ B" s; `
! O" D; D t) ]$ sABB机器人程序流程指令WaitUntil-实例:2 y& l! d t U; ~
PROC PickPart()" H z9 j& T& O: F1 o; h1 F3 N m
MoveJ pPrePick,vFastEmpty,zBig,tool1;
3 M) I W/ a7 y) Y WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
3 m6 c% V9 }5 {5 Z6 {4 c: F (WaitDI di_Ready,1;)0 |' L3 |8 B( d! {1 Q/ T* l( Q
! c- g, X* V# N, \& W PROC PickPart()
7 K1 Q O4 c: c; \1 | MoveJ pPrePick,vFastEmpty,zBig,tool1;: Q" V9 a3 v h1 w" m$ r
WaitUntil nCounter=4\MaxTime:=5;
9 O0 K8 c- }7 ^# b# `' T … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。7 }" l, z7 e5 n, Q4 {
ERROR+ D& {: u' l% b; p: C+ Y& w9 \
IF ERRNO=ERR_WAIT_MAXTIME THEN; g/ B% z0 |1 p) V7 i5 C$ ]
TPWrite “……”;, \! Y* v, K0 y# h9 \$ S, }# y; b9 q. F
RETRY;+ E3 p) B# Z, H/ h' B, x+ R4 l0 K. c
ENDIF
1 A! s) {/ l* ]/ l' l" M& { ENDPROC
/ C2 U5 V6 n! F2 G, X! U9 f/ B& ~4 }( V1 C$ H% Y2 b3 C3 |9 F `
ABB机器人程序流程指令WaitUntil-实例:
% s! V" H+ `* \5 m0 F PROC PickPart()& L/ `0 I q6 y( |, g
MoveJ pPrePick,vFastEmpty,zBig,tool1;
* I7 g. d+ W! {; C% z. s. v bTimeout:=TRUE;
2 a V6 ]1 ^0 @( I% N& i2 { nCounter:=0;
9 m+ B/ r. G- k5 Z6 q4 K6 I; X WHILE bTimeout DO. A; f: i6 T; L5 U8 i
IF nCounter>3 THEN
, R1 J" J& C' S# x0 u" k' u3 A0 n TPWrite “……”;9 z' H$ p# C" Y
ENDIF! I7 N; K3 C" D, I4 }8 O
IF nCounter>30 THEN; W* h+ k T3 |; ?7 z$ F9 x
Stop;3 N: B3 ]! W. r# F _4 m$ Y: [$ |
ENDIF. M$ W- W. \5 p4 ~/ D$ v5 W
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
: m# s0 s6 ?3 ^6 W; K7 e Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。 m! e6 m' a% C
ENDWHILE
; R# n/ m. ?4 P" m …
1 V& x$ A7 {8 A1 _5 J ENDPROC) i, |6 _- W b# n7 I
|
|