机器人教程网

标题: 程序流程指令WaitUntil-ABB机器人标准指令编程 [打印本页]

作者: 我是机器人    时间: 2019-10-16 11:59
标题: 程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程* g1 w7 t; W5 t$ ^/ V! r; z& E* N
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];/ F1 I" y0 C, X# w
[\InPos] :                提前量开关。        ( switch )       4 {- z" n: h1 Q6 n
Cond:                判断条件。        ( bool ) 3 T. `+ z8 m$ a5 K
[\MaxTime]:        最长等待时间 s。( num ) & T* ^/ q' O3 N
[\TimeFlag]:        超时逻辑量。        ( bool )# e! T/ ]7 Y& a, ?+ [) e% z

# z! J/ O; H1 }+ a. I) i
ABB机器人程序流程指令WaitUntil-应用:
# U# h" `0 x2 ^( N9 \3 ?: c        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
+ Q7 {  o6 d: v- N3 ]. z7 Y1 l
0 E* {3 C) c3 \- ]5 |5 V# JABB机器人程序流程指令WaitUntil-限制:+ Y. D& M- p: e" B& M

6 h1 S4 f/ U* N. ~0 P. Y8 D* mABB机器人程序流程指令WaitUntil-实例:
# |5 g3 d% {0 y6 g        PROC PickPart()
4 v( G* C/ l8 X          MoveJ pPrePick,vFastEmpty,zBig,tool1;
  ~4 T* j( ~. o' A0 O- F! O4 T          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。, s- k( h) g+ B5 Y4 Y6 l
          (WaitDI di_Ready,1;)
6 k; V. c' q5 ~7 a( z* g  Z7 f  ^0 H5 i! c) D+ l7 K
        PROC PickPart()3 A5 @, n7 m/ \2 w* ~. A
          MoveJ pPrePick,vFastEmpty,zBig,tool1;: a2 y) c0 w# O. f0 `
          WaitUntil nCounter=4\MaxTime:=5;
1 q- F" }$ Q) f5 V( M          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。9 ?  S; D7 d2 t6 `% A. X2 {
        ERROR0 w: e" a+ c; [5 v1 C/ H
          IF ERRNO=ERR_WAIT_MAXTIME THEN  A" J4 k4 u0 U5 }6 a/ Y  K" ^
            TPWrite “……”;' t% a  y. z. |5 {7 `3 @
            RETRY;
$ O$ V1 Q/ |: B- m3 x          ENDIF: u8 `/ N' K9 \8 X2 s
        ENDPROC$ m/ M' K5 X) b2 G- \& I

: E. Q) J( w$ B3 F$ wABB机器人程序流程指令WaitUntil-实例:
* G) m& N2 n9 ^  g, K/ H$ J        PROC PickPart()* a0 ]. z% M1 ]2 V) r6 @% T, e. ^! W
          MoveJ pPrePick,vFastEmpty,zBig,tool1;, h4 y, R, J( _# B: A; ~  ~
          bTimeout:=TRUE;+ S9 }; L+ o9 k
          nCounter:=0;
0 ^# e) y( j8 L% C          WHILE bTimeout DO
0 a0 p4 U6 i9 n- u            IF nCounter>3 THEN2 h" }& N9 a& o7 E! D- G3 A2 d
              TPWrite “……”;
5 Y& j. U/ q" S9 L- Z/ O0 n            ENDIF
. ~4 g# t9 Q4 A1 ]  G$ f6 d            IF nCounter>30 THEN" @; N% J2 J9 c* l. d1 Y2 ], n
              Stop;
- V6 }. c# H$ h2 |8 i            ENDIF( U2 [* g0 i) m* D- E+ i! s* C
            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
6 `) ?6 Y- A) v& S            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
, e% x" h4 S, ?+ ]* x          ENDWHILE& h6 ]0 @. r9 p
          …
- _# C0 H! S% h3 e        ENDPROC/ d. ^) g7 O, z! a% s7 {; q





欢迎光临 机器人教程网 (http://robotjc.com/) Powered by Discuz! X3.2