机器人教程网

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

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

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

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

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

x
程序流程指令WaitUntil-ABB机器人标准指令编程& X) H4 D' r1 q( w: d& O! M5 u
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
8 j: T: b2 H) N# O* }7 L[\InPos] :                提前量开关。        ( switch )       + k$ W+ n2 t" @* C0 @' U+ }8 s7 q0 B
Cond:                判断条件。        ( bool ) + i( P& C" K7 V( n5 A7 J5 A) o
[\MaxTime]:        最长等待时间 s。( num )
/ i/ d1 E2 v+ s- P[\TimeFlag]:        超时逻辑量。        ( bool )# }. h% K7 x4 c( ~: }

6 `5 F9 a& D- o: m" k# a
ABB机器人程序流程指令WaitUntil-应用:9 @( w8 p0 g7 ^) s
        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
3 I# @- Z# T& I2 m( O( q) \; Z) ?' e8 m/ {! M: W. g. v
ABB机器人程序流程指令WaitUntil-限制:
9 `# M2 g. c5 h$ N4 c
  • 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
    5 o3 c3 u7 z, _( h2 P" C
+ R* B% I  [0 n: n
ABB机器人程序流程指令WaitUntil-实例:4 T; v/ p1 y3 K8 R8 r; S2 B( Y
        PROC PickPart()/ T( C5 C# e. Q; d) l2 _, I  i
          MoveJ pPrePick,vFastEmpty,zBig,tool1;; t' x( z9 y4 c4 E* Y; p( Y
          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
8 q8 |3 H* g7 u/ j+ ^6 Z: d          (WaitDI di_Ready,1;)+ q6 ]/ e9 T& j1 q1 d
+ ^$ o$ b  r* [
        PROC PickPart()3 }9 _8 @+ k* }' B, E
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
9 j, W; P; b8 r. S          WaitUntil nCounter=4\MaxTime:=5;0 G* k; b/ O' c! ^0 I' J
          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
* H+ P+ o) a4 g+ `3 ^' C4 |& H        ERROR
% l* @; J7 ]. Z          IF ERRNO=ERR_WAIT_MAXTIME THEN
/ Y( U$ X1 ~" g) u5 O, Y            TPWrite “……”;$ J* o  a" q4 o; L: [
            RETRY;
& `% _# S5 ]% @  s7 V; L          ENDIF
  t4 [& k3 m% W9 T$ T! V        ENDPROC& R; p  L% x7 F
2 k4 R1 @- X3 P& p" q  f, {
ABB机器人程序流程指令WaitUntil-实例:8 L; Q. T. y6 `. d
        PROC PickPart()
0 m# `  R, q  U" Z  R5 e, C          MoveJ pPrePick,vFastEmpty,zBig,tool1;
% x% ^5 }5 K# y! ?/ \' s" d& g          bTimeout:=TRUE;1 f1 q% r% B2 C  L; A
          nCounter:=0;
  g7 X; j8 q# F" T; w8 y, x% x          WHILE bTimeout DO
# p( D2 D# y# z2 H; v" w3 U0 O" H$ H# z            IF nCounter>3 THEN
6 j: m$ M' R2 ~0 f              TPWrite “……”;
2 U& G3 i" J9 G- J            ENDIF
# x" i; _- q5 c9 g6 y6 i5 k            IF nCounter>30 THEN
6 b8 A: P8 S( m/ g              Stop;. `1 }+ p% G0 F: e
            ENDIF& i- o" o6 O! d+ C& f, p* q' I
            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;
. F) \) ]4 h4 Y5 R7 ]( n( j: T            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。# L7 H* @) j4 b  I
          ENDWHILE: r0 |+ e# z9 \3 W& v1 }* U
          …
. F  x; j+ v- l0 H- j0 Q        ENDPROC1 K0 ~$ m* |- G
回复

使用道具 举报

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

GMT+8, 2026-8-31 04:57 , Processed in 0.066716 second(s), 22 queries .

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

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