|
注册用户,获取RB币,享更多免费资源下载和阅读权限。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
程序流程指令WaitUntil-ABB机器人标准指令编程
5 I \/ L' R4 a# }9 {0 g. ]WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];6 N4 Q6 Q- ~- k6 B
[\InPos] : 提前量开关。 ( switch )
7 Z" F) b2 U: m" F# F5 ~Cond: 判断条件。 ( bool ) ) K9 p' @6 ~0 v% r
[\MaxTime]: 最长等待时间 s。( num )
6 Q: F7 H) U7 o+ F9 Q) ~$ g[\TimeFlag]: 超时逻辑量。 ( bool )
( E# t7 ~$ X* w7 z # {- W) U, p6 g+ U6 ~
ABB机器人程序流程指令WaitUntil-应用:9 [; F8 Y; J4 z
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。4 R2 F- Z: u/ e
: v( D# ^$ n1 `% _2 q
ABB机器人程序流程指令WaitUntil-限制:' S/ A/ i) Q0 V* U* f% W5 F Q. ~' @
- 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。; Y5 @# @9 i n: V* p
( `. |* {$ j( M
ABB机器人程序流程指令WaitUntil-实例:
, L/ e8 `7 p: g9 ]2 ^ PROC PickPart()
8 M3 D& r2 t7 ?+ c# V$ t9 k& B3 J8 | MoveJ pPrePick,vFastEmpty,zBig,tool1;
- X% Z8 }) c. d3 n WaitUntil di_Ready=1; →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
4 W' P5 \ o* K7 ?) N, K" B (WaitDI di_Ready,1;)
& m5 ?8 @+ t' {+ a# M8 F3 m9 h: b9 q6 j# ]7 x- K/ T
PROC PickPart()
$ g0 z) p3 Z" \ MoveJ pPrePick,vFastEmpty,zBig,tool1;
. p+ H5 v+ d# A P* t8 ~ WaitUntil nCounter=4\MaxTime:=5;
$ y8 d- ~ w8 l7 O K7 m … →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
# O, i& Z( ~: N' ` ERROR4 M/ i# I' x5 e0 q. v, S' X+ k( B
IF ERRNO=ERR_WAIT_MAXTIME THEN0 q7 h9 i- T! t! m" _- s
TPWrite “……”;
, M# \4 E+ J7 I: \ RETRY;
3 h; v2 y: k2 j$ z! t: a ENDIF
: A2 V! e* |6 ^4 h! g6 s7 p; y7 H% }* I ENDPROC, f: W+ [( `8 \' J0 ]. N G. R
9 s9 _7 e7 U8 |0 X6 {3 ~# X
ABB机器人程序流程指令WaitUntil-实例:
2 K X! s+ m( h' } PROC PickPart()
2 q' J% \# L: L MoveJ pPrePick,vFastEmpty,zBig,tool1;4 F* N/ ?' A& S1 ~$ w! k
bTimeout:=TRUE;5 I5 M# f8 `( U* u" A% _
nCounter:=0;8 Y, m9 o" R. V( [0 ^! M2 ?
WHILE bTimeout DO4 z: o' Q4 s8 A. a& t
IF nCounter>3 THEN& P, h5 ~9 N" a" [0 k' m3 A
TPWrite “……”;; A" t# a3 L4 \! R! l
ENDIF0 j8 ?% ?+ f; E4 B; r' |0 A/ n3 g
IF nCounter>30 THEN
% Q$ _+ N! X/ t. L$ V8 o Stop;
4 v, a7 s" Q& v ENDIF6 q8 ~. u* r& ?' D7 e
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;# f& x8 ?0 A3 z
Incr nCounter; →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
1 g/ p7 X4 ^2 i, A6 c- }2 _. z ENDWHILE: B6 F" h5 {5 l8 @3 Z2 w5 j
…
3 \; v. [9 _% d. s i* F4 H; C ENDPROC
9 w; ?, j; M o0 d6 y: a2 s |
|