机器人教程网

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

作者: 我是机器人    时间: 2019-10-16 11:59
标题: 程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
; V6 [- ^8 L6 B/ f; |; e; QWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
# q  a! c( Z! D# e) \' x# N[\InPos] :                提前量开关。        ( switch )       ' a7 O, n" w* n* ]
Cond:                判断条件。        ( bool ) + @& a. G8 S( n* B* a1 g& n/ e: O
[\MaxTime]:        最长等待时间 s。( num ) * `6 p4 G2 |  y7 s9 m" W
[\TimeFlag]:        超时逻辑量。        ( bool ), V+ K" n5 L* v3 E$ u, o


% P9 O2 z# u' n& f/ d) \ABB机器人程序流程指令WaitUntil-应用:
/ ]1 `4 `1 k: ]% O9 w$ K8 c        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。" `8 L+ O7 g( R3 {3 h0 S+ w2 a

$ T' Z* j6 \( G) p2 ]- gABB机器人程序流程指令WaitUntil-限制:
' |  s! o$ g; E4 ?  L
+ w/ e/ p& m/ R. [: B& vABB机器人程序流程指令WaitUntil-实例:
& y4 d4 o3 q! ?) e4 r% l        PROC PickPart()5 W' v8 m% `, ~9 g: V- }
          MoveJ pPrePick,vFastEmpty,zBig,tool1;$ N+ ~0 d2 K8 L/ N) ~+ u3 Q
          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
8 }+ r7 b& F0 C; o          (WaitDI di_Ready,1;)4 Y& `7 F6 c2 `( \$ J
- I! J  o: j4 I" g* m# z, h
        PROC PickPart()
- x, @% ~& G/ D4 L- v( L          MoveJ pPrePick,vFastEmpty,zBig,tool1;
: I/ d4 q- ]2 ^" @) @- z% D' [, q          WaitUntil nCounter=4\MaxTime:=5;& l+ d; W! O. m) q5 {
          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。+ |0 Q8 I7 W& e; t
        ERROR; b/ W+ q/ Q0 h( O+ a" ^9 x7 ^
          IF ERRNO=ERR_WAIT_MAXTIME THEN
7 `* ^- P' ?; ?. E: o            TPWrite “……”;
' `5 e, n% L" y# a            RETRY;' a& g) f5 E  |9 t
          ENDIF& A7 i' B6 B1 R. S4 e
        ENDPROC
9 F8 l6 @$ o9 s; w6 x: h* O  }& q6 I8 B: f! K
ABB机器人程序流程指令WaitUntil-实例:
: L3 N  A. p8 k8 N! ^* @1 K        PROC PickPart()
" t' E9 @" u6 \          MoveJ pPrePick,vFastEmpty,zBig,tool1;' b5 a- S  e) o: _
          bTimeout:=TRUE;9 ^5 ?4 ^# h% ~' C
          nCounter:=0;
% ^1 y$ j' m, q! w7 x          WHILE bTimeout DO8 ~2 V7 W% w* R' u, C' z0 H0 c
            IF nCounter>3 THEN( U7 T0 A! ]& b/ \
              TPWrite “……”;, N2 G/ J8 p" `0 A
            ENDIF
. g  {5 I4 v/ T8 f$ P1 X5 I            IF nCounter>30 THEN3 V, N  q, ]. M1 K
              Stop;
6 X% \! }7 {! k1 c            ENDIF8 ~3 }  _* J1 Z# j
            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;, g0 ~; q3 A. N/ e) i$ C4 b
            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
/ w, _2 r; u7 b6 A! r4 w+ Z          ENDWHILE
  a# t5 u2 V( }1 g; c          …
7 ]: G  {/ u& k        ENDPROC
; M) e7 C# b$ m8 L7 c




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