机器人教程网

 找回密码
 立即注册
查看: 9088|回复: 0
打印 上一主题 下一主题
收起左侧

[ABB示教] 程序流程指令WaitUntil-ABB机器人标准指令编程

[复制链接]
跳转到指定楼层
楼主
发表于 2019-10-16 11:59:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

注册用户,获取RB币,享更多免费资源下载和阅读权限。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
程序流程指令WaitUntil-ABB机器人标准指令编程
8 W( h! X; Y5 t# @& Q! \WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];8 P4 g1 ^; d3 `3 `: \2 w
[\InPos] :                提前量开关。        ( switch )       / ?# W! t2 Z) T, I5 Z2 B" t' U6 u
Cond:                判断条件。        ( bool ) * r6 V1 D! p7 d# c, J7 {( `
[\MaxTime]:        最长等待时间 s。( num )
; {2 P! `2 x$ q7 J: I7 w[\TimeFlag]:        超时逻辑量。        ( bool ): B( Z7 X+ {; W3 U% H. H

/ |) f- p& t3 T* X" {* k' _7 m
ABB机器人程序流程指令WaitUntil-应用:
: N3 L$ m) \' @' b3 z) s) U        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
( }" P; x# e; C% m% J, [; v( F) b
$ |/ F0 D) d, X, g8 I6 X( _8 s2 S" aABB机器人程序流程指令WaitUntil-限制:
2 P' j5 W5 o. G4 z8 J! J
  • 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。/ |4 V' l& }  X- r
5 h, f; j( e8 s$ a, y0 W
ABB机器人程序流程指令WaitUntil-实例:
! w+ f0 G' L. Q        PROC PickPart()
! I0 l& W5 N" B7 F          MoveJ pPrePick,vFastEmpty,zBig,tool1;0 y1 ]; i8 R7 V( U2 K$ W2 t4 s
          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。% ?! H$ }" U4 |# w" X. V
          (WaitDI di_Ready,1;)- c( l: U. f/ H" D& V* r) H

: M# t0 `" f+ s+ L! c        PROC PickPart()0 f" q% }' b3 A7 u8 `
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
- m+ g. h" G# C' _          WaitUntil nCounter=4\MaxTime:=5;
6 x7 ~+ s# F+ }          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。/ s8 t5 o5 \, w" f0 d
        ERROR
) c2 f" |7 |* w( R- b$ \1 d  b          IF ERRNO=ERR_WAIT_MAXTIME THEN, M1 E. H2 r0 m: H/ R
            TPWrite “……”;. b9 h3 h; {: U- z% [
            RETRY;
6 _" n( G! g3 Z% q7 m9 {          ENDIF
) d/ a, ]( \* F! X  L0 Q7 c        ENDPROC) B5 h8 _  p. e' r( q

2 j  L- d$ H5 U; m( H& A& a2 e7 W9 kABB机器人程序流程指令WaitUntil-实例:& y0 x; O. ^/ ?
        PROC PickPart()3 d# L# {# ^6 P& u+ m2 _
          MoveJ pPrePick,vFastEmpty,zBig,tool1;; `3 D6 e% O+ q/ r( s
          bTimeout:=TRUE;2 p; O3 u' A; T) n$ ?
          nCounter:=0;  d8 K, t, D5 q
          WHILE bTimeout DO2 V$ I# y( j+ v, `7 z5 G, _2 U: _
            IF nCounter>3 THEN
9 g  U+ _0 n" ]5 J" [: a              TPWrite “……”;
/ X0 w" G9 |3 N' l            ENDIF( {6 t+ T8 A, C% P% c
            IF nCounter>30 THEN
# o( U1 r7 N  m              Stop;1 O9 m' {1 |8 \- V% J
            ENDIF, I; R( u9 v+ b  Q6 X
            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
4 R0 R  Y  T! d" t            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
( z& k7 x9 c, A, x* Z          ENDWHILE
8 e* o# Z) t/ S! e. u          …
+ N' z3 U3 e1 K1 o2 V. M        ENDPROC( a0 P4 r5 F/ G
回复

使用道具 举报

QQQQ:345103927|Archiver|手机版|禁闭室|问答社区|机器人教程网

GMT+8, 2024-6-17 04:29 , Processed in 0.062241 second(s), 21 queries .

Powered by Robotjc.com(网站备案信息:粤ICP备17111093号-1 )

快速回复 返回顶部 返回列表