机器人教程网

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

作者: 我是机器人    时间: 2019-10-16 11:59
标题: 程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
) ^6 Q( @; h7 i0 K6 JWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];9 v5 c: R$ a: _' }* l0 a0 p
[\InPos] :                提前量开关。        ( switch )      
8 a0 N. n6 _+ [+ w. BCond:                判断条件。        ( bool )   p( q) H3 x, _9 n
[\MaxTime]:        最长等待时间 s。( num )
1 }: m5 H6 V8 p  T6 @- D' B+ f. v[\TimeFlag]:        超时逻辑量。        ( bool )! W+ i% S$ t+ W, H, y

- G1 P- {" B) _' h( O4 K# T9 A1 M
ABB机器人程序流程指令WaitUntil-应用:
, L3 J& T* w1 b2 v1 J- T        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
, |/ K1 i  _6 g; d1 n4 e3 E0 s' m8 k2 T# G6 V
ABB机器人程序流程指令WaitUntil-限制:
  s5 L, O1 U" e/ s+ R2 U" K2 s, n  @$ G, n
ABB机器人程序流程指令WaitUntil-实例:
+ C" i8 [% i4 g$ j        PROC PickPart()4 E+ l# e# D, Z/ G0 g2 ]+ l& w; A9 W
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
/ R* T6 N' P4 P0 z; P9 a$ `+ B# i          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
! h) l2 r7 g: f5 v; G& I% V          (WaitDI di_Ready,1;)
% a' Z! v/ G' J! e9 B* A4 k- w3 I  f9 ~, R: L+ ?4 d8 w
        PROC PickPart()+ {' p+ E! g& J4 R8 o: Q
          MoveJ pPrePick,vFastEmpty,zBig,tool1;5 ^: r9 |1 Q) J$ R! C4 M
          WaitUntil nCounter=4\MaxTime:=5;) m* Q) r+ ^$ R4 e
          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
$ {  a( [* m' ~& w& ?' R: c' }        ERROR
! O3 K. I# w* F: b2 @/ O* H  |( `          IF ERRNO=ERR_WAIT_MAXTIME THEN
  J5 G, |1 p( w1 U/ W# H: b            TPWrite “……”;! q) N4 i9 z! n( A/ k" Z
            RETRY;
" S7 c9 A( z5 n" a1 ?          ENDIF. I' y8 ?4 R8 k2 }6 V
        ENDPROC
8 g; i; e$ r* T+ F( w2 Y0 \- C
. q& y. X" V, f. yABB机器人程序流程指令WaitUntil-实例:7 p/ a: n1 j5 u# [4 r
        PROC PickPart()  t1 l( V7 N5 h) k; T& e2 W
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
* l1 i2 b$ J& K, s          bTimeout:=TRUE;
# m( F0 r7 ?- r# b6 h          nCounter:=0;
- ~( N) t" T  k8 a' n* _  v# c# r          WHILE bTimeout DO
' @2 p# d! J* \; g5 u            IF nCounter>3 THEN
3 h) c% e9 D+ g: S# C+ m              TPWrite “……”;
" w% ^/ T6 ]4 M5 X0 g            ENDIF
# L. @) V. E) N            IF nCounter>30 THEN
1 K; \4 W& \5 U5 ]# u              Stop;6 P4 I8 K* H! u
            ENDIF1 |, r" }& |& o3 i  ?
            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
7 }3 i' c& ^7 j# X9 {9 N            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
- x3 K5 [8 h! y# q          ENDWHILE
$ ~  ]' b" o: V; v9 F! n1 @          …
% K$ N. W* m5 S; |% b% P        ENDPROC' n& q& B+ A/ L4 r





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