机器人教程网

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

作者: 我是机器人    时间: 2019-10-16 11:59
标题: 程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
; m/ }) g2 ]  w2 tWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];( q2 Q8 ]. j5 N! j  E
[\InPos] :                提前量开关。        ( switch )       8 S1 O" ]5 k- `  R: l+ `4 N
Cond:                判断条件。        ( bool )
8 z- _. j; {/ S+ m7 f/ A  K0 U# D[\MaxTime]:        最长等待时间 s。( num )
6 v/ l9 n5 n6 }. p  N5 [[\TimeFlag]:        超时逻辑量。        ( bool )1 s; Y) I5 O& `

# F7 Q. T: r2 z' V! x0 R) T+ R
ABB机器人程序流程指令WaitUntil-应用:+ ]8 G4 w$ f2 D' F
        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
( G7 o5 [, M8 v; S8 Y# r( S$ k$ l  Y: w2 F! t' ~
ABB机器人程序流程指令WaitUntil-限制:, @4 r  }# t7 x  C9 Q% p
$ `4 m, n8 n/ k* j! x- R0 t
ABB机器人程序流程指令WaitUntil-实例:
0 W! F! s9 u. s% I. {. a        PROC PickPart()
* V- e9 }4 P* ~          MoveJ pPrePick,vFastEmpty,zBig,tool1;
# A/ v; q* v3 ]5 z' I* @. o* W          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。8 m* A$ D: ]  k6 S" e
          (WaitDI di_Ready,1;)
( X5 v) H2 s* I/ ]( R( w8 ]% B4 [# [2 T; r0 a6 U) O, O
        PROC PickPart()5 n. V9 l$ R. @5 w, z0 H
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
" Q/ k# C4 |5 J0 w          WaitUntil nCounter=4\MaxTime:=5;
: o% r2 c# i$ j4 r          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。, ~% ~( T! _4 M3 e+ K
        ERROR' u) @4 H: \( C% j$ ]4 y" W, h, b' O
          IF ERRNO=ERR_WAIT_MAXTIME THEN
4 z( a1 V3 W) b2 g3 h/ p0 o            TPWrite “……”;
. U- t0 G1 V7 y$ \. g            RETRY;
# G" i( N$ k" m+ A% o          ENDIF
$ {2 n. b  Q( _& s        ENDPROC
2 L4 p" k1 k, g$ m3 P$ }# {- V1 y% ~: m9 R
ABB机器人程序流程指令WaitUntil-实例:
# E0 E3 v( @' a3 W, h0 N5 f" T        PROC PickPart()
$ ~8 r; |6 q9 q          MoveJ pPrePick,vFastEmpty,zBig,tool1;
% i1 o0 [' ~" p+ M. F2 X          bTimeout:=TRUE;
  U( V7 x; q  n" G          nCounter:=0;
7 x3 h8 t- }$ _1 _6 B" y& `2 ^          WHILE bTimeout DO# X% U- r1 G- F2 j% g8 M$ u8 p& W0 l
            IF nCounter>3 THEN% U! e" d1 Y/ R: ]. [
              TPWrite “……”;* V5 Q9 T7 ~/ Q9 t+ \  {: w. v
            ENDIF4 @8 G+ k% J9 M, W+ _( E7 ^( l% ~! U
            IF nCounter>30 THEN
; a, X/ F, z# z, k& w' u  J0 [; k              Stop;
2 r9 B& b& r6 M, B6 U. b            ENDIF
/ @3 C1 Y0 v' F& r% d/ E            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;4 S$ S9 G, s4 {$ _1 T3 `, I
            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
6 _) Y& Z' k- X0 _& l          ENDWHILE1 I, M$ t# y) T% r8 }0 U
          …
4 m* A2 ?! q4 O        ENDPROC6 \# _) U8 U6 S3 }





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