机器人教程网

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

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

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

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

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

x
程序流程指令WaitUntil-ABB机器人标准指令编程
* t5 K, f: H) Z% ~0 WWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];- `2 P8 x! D! h* x" |) s5 K1 u' q
[\InPos] :                提前量开关。        ( switch )       & M& j2 n$ i- B$ A8 ?+ [
Cond:                判断条件。        ( bool ) ( P6 u  K  l8 B' r
[\MaxTime]:        最长等待时间 s。( num ) & ~) B9 X) w, [3 b$ I( X$ N
[\TimeFlag]:        超时逻辑量。        ( bool ): ~% f5 h. `5 N3 Y+ }1 ]2 m8 A

. ^: a; ~% S' E8 r8 J
ABB机器人程序流程指令WaitUntil-应用:  b, T* _5 S9 T4 V- b2 w4 d: d8 G
        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。, Z: d( j. x5 R4 z
  \2 r6 g0 T, Y8 \: f
ABB机器人程序流程指令WaitUntil-限制:
; O* _8 Z: e: P/ [! ?4 B" x8 h
  • 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
    ! i* g3 J; p$ Z) ~
8 J! ?* R* N5 f/ |- j- ]
ABB机器人程序流程指令WaitUntil-实例:9 F4 U% s6 G- S7 F* W
        PROC PickPart()% h$ }, ]' `' m3 [8 l. T3 F
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
: s- e7 h6 D: j: }# k8 s: b          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。* l/ h; H4 z" V: {
          (WaitDI di_Ready,1;)4 _5 Q1 J4 g) n) @" e
" G$ Y9 l5 m$ z- g1 l
        PROC PickPart(): p% P% L$ ?. P' w
          MoveJ pPrePick,vFastEmpty,zBig,tool1;+ d' [/ O1 `! H* l, T5 T% ]
          WaitUntil nCounter=4\MaxTime:=5;
9 |( D+ ?2 u$ k! {6 u( s3 x: Y          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。
- `: m& [, q' |0 f( P7 r8 N        ERROR
. o- E" \& b% E, x          IF ERRNO=ERR_WAIT_MAXTIME THEN9 Z0 ^0 y5 J$ ~6 B1 ?% d3 u
            TPWrite “……”;8 C" p$ X. K" |' y+ F
            RETRY;$ F% Z4 r! m( f, D" u# g6 m
          ENDIF% s+ a8 o! \% B0 ?) V+ P2 X# t: d
        ENDPROC
, M  C# E, U# k( l) x% z& @
0 m3 w- x7 z* i' u: HABB机器人程序流程指令WaitUntil-实例:4 Z4 N3 u# J' t7 M4 i: x( |0 B
        PROC PickPart()
; f) ^: w6 X- A/ ~          MoveJ pPrePick,vFastEmpty,zBig,tool1;6 @2 l% a3 h% x- y8 H2 F
          bTimeout:=TRUE;* m. f( v: V8 n; x
          nCounter:=0;/ d; C3 x1 C/ `* ]/ l8 X
          WHILE bTimeout DO
' l, S7 k& ]% m4 o* T1 O            IF nCounter>3 THEN) s, {& q8 V9 n
              TPWrite “……”;0 M7 T0 G; M0 @* h$ r* I7 ^
            ENDIF
/ ^( o5 n) h0 ?            IF nCounter>30 THEN
  A! r1 O' H1 h. y0 @1 @              Stop;7 G1 x( T5 p1 V5 Y2 L5 t  e9 x0 x2 W
            ENDIF
) l( D1 V- v  C& ~            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;2 m2 Z5 c  u4 o; ~! b# S7 v8 M' O
            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。1 F+ Q2 f; z1 \0 J; y# y( V
          ENDWHILE
" j4 m# W  g' }4 C& O# r' \$ T          …; i( X  {6 H9 @4 O6 q( S
        ENDPROC
: Q5 [% Z6 E- J" r  O; w
回复

使用道具 举报

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

GMT+8, 2024-12-28 17:32 , Processed in 0.064702 second(s), 21 queries .

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

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