机器人教程网

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

作者: 我是机器人    时间: 2019-10-16 11:59
标题: 程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程$ K8 s- D9 P. Y6 a# `
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];. ]' T, V9 d6 D
[\InPos] :                提前量开关。        ( switch )       6 i) B3 b, G" Y/ C
Cond:                判断条件。        ( bool )
! \3 ]+ g. K: O& y! Z! q2 I[\MaxTime]:        最长等待时间 s。( num ) 9 Y! T8 u6 w* }* X2 @
[\TimeFlag]:        超时逻辑量。        ( bool )- s4 t0 [* q' `( ^: ^, [

  G) [4 ]! j' ^5 A! A+ y6 t
ABB机器人程序流程指令WaitUntil-应用:1 r1 n0 K* \% I0 T5 F( M' X
        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。/ c8 w$ [$ U. o/ R( ~# @
! m! O- o+ A# ]! r" ]8 _
ABB机器人程序流程指令WaitUntil-限制:( e4 n8 ^+ ?5 L, B! Y) C; q
4 {( A4 C( F" `. g2 f# {
ABB机器人程序流程指令WaitUntil-实例:* X9 s! ^1 @' h! }# u
        PROC PickPart()- }# ~* g4 D1 J% K* n4 W5 E
          MoveJ pPrePick,vFastEmpty,zBig,tool1;; c( u5 b  ]7 h, ]. T3 T
          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
, N) M# a, ]* e3 m" J2 i          (WaitDI di_Ready,1;)' P) _9 ?+ }  H7 b1 k, ?

4 ^: l2 m+ u& k1 G' h  h% r        PROC PickPart()
' A$ n; Q0 {/ r4 S          MoveJ pPrePick,vFastEmpty,zBig,tool1;# P! A2 I: `4 f  i7 t2 f
          WaitUntil nCounter=4\MaxTime:=5;: E8 w9 ^' R* e- l! v8 z+ J
          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。, R4 ^5 t2 g3 ]5 d* Q3 b( x$ H
        ERROR
+ h) E' l4 c- x& q* M7 L          IF ERRNO=ERR_WAIT_MAXTIME THEN
+ |4 e% r) u5 N  w# q' u5 B1 B            TPWrite “……”;
8 K* ~! z1 g- q8 e" _  G* C            RETRY;7 J$ _0 j! g' W* U8 d8 j* T
          ENDIF1 A; r$ _3 f6 q
        ENDPROC* q/ K' T* v& n0 i- r0 Z6 N

- y- `, r; m# O* A) Q0 B4 ^ABB机器人程序流程指令WaitUntil-实例:
* z' d% E: ?3 i, C/ g        PROC PickPart()* @/ G% d' D: @$ O4 o, P5 {3 U* S
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
" B0 J/ m  k& X) t# x1 v          bTimeout:=TRUE;6 V6 }, C4 a: o, e1 Y
          nCounter:=0;& N; h$ C) o3 Z* R
          WHILE bTimeout DO' e% W  B8 x+ r! {$ Z9 x! }
            IF nCounter>3 THEN% ~4 B( z# q" G
              TPWrite “……”;5 P) G. L3 L1 T) t- {) A
            ENDIF- Q0 o; R0 G9 z( M, o
            IF nCounter>30 THEN
+ O' X! }2 F2 \( Y) F( D              Stop;! w7 M7 r: i& ^' f1 O- q
            ENDIF
( t" V( O2 \3 z) X, E            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;5 D& {: {( a2 W( \3 t. {0 `* u: r
            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。$ t/ L, W. g/ d7 t( p, j5 f/ j
          ENDWHILE! z5 d0 ]" q2 P$ R
          …" |  i8 h7 b0 d5 C, B7 M& w
        ENDPROC# c0 T+ f% L- L/ w" V& H





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