机器人教程网
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
[打印本页]
作者:
我是机器人
时间:
2019-10-16 11:59
标题:
程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
" ?- ^. b$ g' B N: K! ^
WaitUntil
[\InPos,]
Cond
[\MaxTime][\TimeFlag]
;
5 i* B0 g9 n8 l5 G& q& f/ M/ r
[\InPos] : 提前量开关。 ( switch )
/ F2 D2 C T/ Y: Y% s
Cond: 判断条件。 ( bool )
! i( @+ [8 X9 Z2 R4 D
[\MaxTime]: 最长等待时间 s。( num )
0 k% \$ b7 G* m& Y K, M( B2 E4 \
[\TimeFlag]: 超时逻辑量。 ( bool )
: T2 J) z8 D: K' }3 t, |1 d: C
) i" j ?7 v0 a
ABB机器人程序流程指令WaitUntil-应用:
4 u( N* c* n3 \3 |1 |) C5 P
当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
) Q# m" U' G! I
( K* O: |& O1 n2 \; j7 Z2 I
ABB机器人程序流程指令WaitUntil-限制:
8 c1 ^( u$ k- }3 T# J7 ]
当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
$ c0 b t3 U M9 N
9 S% y1 Y, R8 q: I7 X8 J2 u& R
ABB机器人程序流程指令WaitUntil-实例:
) B# M4 G) S X' {; O
PROC PickPart()
1 E+ X* C* |. n7 H7 m% c
MoveJ pPrePick,vFastEmpty,zBig,tool1;
7 |5 n% n, s7 `. Z6 A
WaitUntil di_Ready=1;
→机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
. h) w9 o' `$ S8 l
(WaitDI di_Ready,1;)
' e2 f, k o% o! \1 c# o6 p3 ?, t
. ^% K) ^9 l* p( Q
PROC PickPart()
& a& \( A& c. J+ y/ @4 }, B- ~
MoveJ pPrePick,vFastEmpty,zBig,tool1;
1 J* b9 Y1 _: }* K3 I8 s2 I
WaitUntil nCounter=4\MaxTime:=5;
. d9 r/ t9 J" |7 L
…
→机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
; L. @/ t7 J* B% L
ERROR
: G+ P- c! I$ S) h$ b
IF ERRNO=ERR_WAIT_MAXTIME THEN
5 n2 w+ c; J+ ?8 A
TPWrite “……”;
# [+ D1 w! ^* ^/ E# z
RETRY;
. F& t7 h0 X& `8 Q- k/ m$ ?
ENDIF
& M8 f2 A2 o) o; z
ENDPROC
+ Q0 p( i- n) N+ i6 Z' C' S' a
, g) K& C6 [" |, D* @2 ~; v# L0 X
ABB机器人程序流程指令WaitUntil-实例:
/ ^7 R- V* O3 Q
PROC PickPart()
' ?2 {3 I* f4 U o& S. h
MoveJ pPrePick,vFastEmpty,zBig,tool1;
: v, H: c9 s* t/ S; V
bTimeout:=TRUE;
) \, O' N6 v. x* D: V+ |' K
nCounter:=0;
0 W' C. v. |) f8 ]+ Z- ]3 c% r$ B1 _
WHILE bTimeout DO
6 E( E9 a3 r$ v( W
IF nCounter>3 THEN
( B" _7 G2 `4 p' T
TPWrite “……”;
3 s4 X: D0 u$ P. N% U
ENDIF
- t& h- B; G- `. n* y4 w
IF nCounter>30 THEN
/ _- ? l9 i) P9 B% O# J' Z2 d: @
Stop;
4 l" _2 j' p; c% H( b2 \
ENDIF
% u6 A1 `" N! p
WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
7 [1 Z" Z" A! F& H2 x
Incr nCounter;
→机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
9 J5 M* P" I+ y t) I+ w
ENDWHILE
( D7 }6 c4 V! w0 L4 A9 q' n
…
: ^1 Q/ A7 L/ b* h6 \, k6 ~9 W" X" o2 h0 c
ENDPROC
) c& k- I2 Q$ |% P
欢迎光临 机器人教程网 (http://www.robotjc.com/)
Powered by Discuz! X3.2