机器人教程网

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

作者: 我是机器人    时间: 2019-10-16 11:59
标题: 程序流程指令WaitUntil-ABB机器人标准指令编程
程序流程指令WaitUntil-ABB机器人标准指令编程
6 y: t+ [; W8 p) ^& n1 D8 aWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
# }, G- U, E. a! ]* C+ K7 `[\InPos] :                提前量开关。        ( switch )       3 R% |2 W* ]  X* {6 [
Cond:                判断条件。        ( bool ) & A  u; a' W7 z+ T0 }
[\MaxTime]:        最长等待时间 s。( num ) 6 c6 ^8 G0 ^2 u4 L$ \( a3 s0 m
[\TimeFlag]:        超时逻辑量。        ( bool )! y/ w) D& `6 g$ q- c' t, L/ t

# U  V4 p# @3 I+ t! H
ABB机器人程序流程指令WaitUntil-应用:& e6 ^2 y* Q% d" k$ @  Z  u
        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
) L6 B2 j0 B. U+ J% C0 M4 j4 K" k) z
ABB机器人程序流程指令WaitUntil-限制:3 _  X8 D- \2 p

: F# Y  X7 o9 M; V4 c7 T/ kABB机器人程序流程指令WaitUntil-实例:8 Y2 j1 X% p* I( L2 g4 H; W
        PROC PickPart()
, Y7 I: k0 q+ }  a$ Z          MoveJ pPrePick,vFastEmpty,zBig,tool1;
/ D$ O0 Q, x1 o6 `0 W" R% d# l          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。7 }- X2 |( u7 h% F
          (WaitDI di_Ready,1;)
$ w1 I! Q* v3 {, W+ x: u4 C+ f8 B! {6 {- \* w! u8 n9 U; M
        PROC PickPart()
% ~7 j: F9 o6 Y  \5 G* o6 U          MoveJ pPrePick,vFastEmpty,zBig,tool1;) K9 ^  `+ T/ _. ^; {
          WaitUntil nCounter=4\MaxTime:=5;5 T, ^7 Z% ~# a  Q+ d
          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。# u5 A4 A* x# g% L% D
        ERROR
2 f& E9 I6 ?! r* j' k& k2 e7 D- S6 q4 T          IF ERRNO=ERR_WAIT_MAXTIME THEN& @  F8 J1 g3 t- _" |5 ]2 f6 I
            TPWrite “……”;) [; ]$ }3 e3 P) x/ H' R% n8 d- G
            RETRY;) z7 f' K/ N( Y( d6 r" t  {" }
          ENDIF) u5 {, B& @1 [1 Q- {
        ENDPROC
1 q/ t, k! U( V' G& V% r' H" o$ \: W
ABB机器人程序流程指令WaitUntil-实例:- @/ f4 i# b6 `2 m, S5 u9 _4 G, E. H
        PROC PickPart()' r  K" s, w  X
          MoveJ pPrePick,vFastEmpty,zBig,tool1;# N5 w! x- _. v7 o; r  L9 ~* g7 {" J
          bTimeout:=TRUE;
# g  z% u5 E, ^0 M- p) _8 B          nCounter:=0;; z: g* w0 }% W1 T6 x7 e  \
          WHILE bTimeout DO# ]" J% v8 ?( P  e
            IF nCounter>3 THEN
7 Q) q/ j2 e5 e              TPWrite “……”;( F8 s  n! \$ f# C
            ENDIF
( J: w4 ]1 r5 j; b            IF nCounter>30 THEN; y6 a5 `3 u6 o# _" d& U' _
              Stop;* l( {3 J/ q" X( ?/ {/ H
            ENDIF
' J0 p3 l4 g+ g  W8 r            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
9 r2 M/ c7 o; N& S8 U* F3 i! T5 Z            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。9 Q/ T, p5 L  W+ q
          ENDWHILE
5 H, S6 G/ v7 H* O/ O          …' I; Z# T5 V& a7 `" M+ F; {, ^
        ENDPROC
# h9 c5 q0 v1 }




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