机器人教程网

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

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

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

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

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

x
程序流程指令WaitUntil-ABB机器人标准指令编程
: P9 r: A: H; [/ c& mWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];% e% m/ \/ ~! S+ N* v; ?
[\InPos] :                提前量开关。        ( switch )      
# F3 P9 ]2 h; B* ~( Y# N$ \Cond:                判断条件。        ( bool )
4 r$ \5 H6 I9 O[\MaxTime]:        最长等待时间 s。( num )
) P6 `' b; p7 Z* `1 l5 r( v[\TimeFlag]:        超时逻辑量。        ( bool )- i4 h' c8 y: P' T$ o

& o2 q* e/ U- C0 K: @  {% y& c
ABB机器人程序流程指令WaitUntil-应用:
6 R4 |/ d! p2 [8 M% s  h) Y        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
7 o4 q( Y( h- A+ k( o3 T2 u# }
& R8 }8 h3 ^2 g+ S) N: \8 N, QABB机器人程序流程指令WaitUntil-限制:
0 B& z$ Z! ?  y& S* E* Z3 p6 M
  • 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
    ) d# V; D: O2 l7 v
; u9 k2 r. L! D4 r6 W( ]' I
ABB机器人程序流程指令WaitUntil-实例:
/ O# A" u- F/ P) a        PROC PickPart()* ]4 O1 |0 |1 {* S; d* j
          MoveJ pPrePick,vFastEmpty,zBig,tool1;: ?6 M3 l9 m. r! R
          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。4 P: s  v# Q# S& a* F' K6 K
          (WaitDI di_Ready,1;)
6 O7 E0 r% _6 j2 M1 p
6 J  ?) ^; b# w0 D/ p        PROC PickPart()& o1 R* a& N& j1 y/ b$ O
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
# k1 D  U7 l6 {: n/ A          WaitUntil nCounter=4\MaxTime:=5;" m2 A6 t6 H9 ]( x4 H# `' s1 f2 y0 v# X
          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
' \( k! O* n' K' x6 \# ]% ]8 V0 J        ERROR
& |% U; P. e. H8 ?% F          IF ERRNO=ERR_WAIT_MAXTIME THEN
, R; X: M7 a- `1 w9 x6 B% t            TPWrite “……”;
$ U$ G' y% f& x6 @0 j+ q            RETRY;
2 G8 C. ?! _% ~; a          ENDIF
3 y5 ?: Z1 \6 y# k- [        ENDPROC* H+ Y1 [8 \+ w

2 ^. C: ]  ]6 R% }8 v( i/ QABB机器人程序流程指令WaitUntil-实例:$ J1 p. R6 c9 x$ g2 q2 k( ^2 k
        PROC PickPart()4 Z$ ?( d& ~' ]" p6 K0 O# W) S
          MoveJ pPrePick,vFastEmpty,zBig,tool1;5 o7 @$ o  B3 y4 e8 Y+ y9 k
          bTimeout:=TRUE;" e5 |/ b/ O4 }& G
          nCounter:=0;: s( F9 ?4 l. @
          WHILE bTimeout DO4 V  f6 }2 g" p3 q) x
            IF nCounter>3 THEN5 B. c7 W8 v: q5 E+ S
              TPWrite “……”;
, r) d: m% I& C# o- k            ENDIF0 u4 R6 s7 S2 \9 N& d! _8 E
            IF nCounter>30 THEN
! L0 h! V  s; f0 @              Stop;
1 R3 a5 s7 P0 K            ENDIF6 X" F5 D4 P7 v) ^# {: [
            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
- k# X, s0 S$ {0 L! `8 ]            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。* y8 g# Q1 B3 j" J& o8 ^) ~  m& N
          ENDWHILE+ B3 n( K& A" E. I
          …
" E. w+ E1 r) ~3 p2 g' d- a7 e9 `        ENDPROC
" J$ Q3 V% }, N  I# Y, O5 L
回复

使用道具 举报

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

GMT+8, 2024-9-27 22:04 , Processed in 0.060457 second(s), 22 queries .

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

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