机器人教程网

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

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

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

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

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

x
程序流程指令WaitUntil-ABB机器人标准指令编程
$ }. P2 Z! L3 w; s3 r1 X2 lWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];8 d* A: x5 Q6 |, [+ f# R. X- o& L4 S
[\InPos] :                提前量开关。        ( switch )       9 O/ E+ `/ {! D( q
Cond:                判断条件。        ( bool ) 8 A  c2 |# A  w4 e3 n
[\MaxTime]:        最长等待时间 s。( num )
! s6 I+ [$ X. ]9 d[\TimeFlag]:        超时逻辑量。        ( bool )
+ ?: D8 U& x+ T) _  K$ ]2 {+ Q

" S: L- \( v! wABB机器人程序流程指令WaitUntil-应用:
& ^% ?& S5 r# q6 z        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。
5 i9 p8 ]( i8 T5 E% f6 {$ ^4 H% t# y/ S7 U
ABB机器人程序流程指令WaitUntil-限制:/ U" T9 L4 M  ?2 z; m1 J* K
  • 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。6 a* v6 K  Y# ~; ~

9 C& t6 F: R8 {- _: v& F3 }ABB机器人程序流程指令WaitUntil-实例:
* o/ z- N# M# Y+ \% I) o8 P        PROC PickPart()
+ g4 W1 g& o& l6 Z  a- z7 b          MoveJ pPrePick,vFastEmpty,zBig,tool1;
3 v/ |/ X& h7 j7 @$ H8 a/ i          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。
9 e( ], d* a7 G) d# S          (WaitDI di_Ready,1;); ~& D; e/ U9 b4 N
" w  R+ Q. J7 R1 L8 D1 K4 P
        PROC PickPart()8 _& g5 `1 y( N7 i- U  [
          MoveJ pPrePick,vFastEmpty,zBig,tool1;! m5 c. ?9 Y" e( \
          WaitUntil nCounter=4\MaxTime:=5;
# {7 |6 I; e! s: J8 |; `$ X2 }9 t: o          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。, G! K1 {, w; _9 g( ^2 [3 f
        ERROR
! L, C  R9 q5 C' N# _          IF ERRNO=ERR_WAIT_MAXTIME THEN
- n  R5 g3 H  c0 C, a# ^* L( v            TPWrite “……”;9 {' y- N9 T6 }9 g% S
            RETRY;# v! h& @. N1 u; g9 g6 ]$ v8 h( S
          ENDIF- V9 F4 M0 C5 @, q
        ENDPROC
# Q5 I& b/ P+ f  z8 v$ T
( M/ S- J1 ?& O& J  U0 W$ l: \, E& SABB机器人程序流程指令WaitUntil-实例:* @+ [8 q! A! G9 c' y+ V
        PROC PickPart(); i5 q. z* J( f" z# ^' O
          MoveJ pPrePick,vFastEmpty,zBig,tool1;0 T: B/ i! L7 Q! [7 Z) f
          bTimeout:=TRUE;- Q# u0 ^9 k0 D6 _3 K* X0 o: m$ f
          nCounter:=0;) D/ M' ]8 C3 {8 p
          WHILE bTimeout DO
: Z4 o! w8 N: j" s: O            IF nCounter>3 THEN9 D: v2 r0 m) q9 {, b1 n4 z
              TPWrite “……”;
7 A- W2 x! s  O+ K; u            ENDIF/ l& a+ m- |* K5 }# {/ p: k, {
            IF nCounter>30 THEN
8 u& x% u; r7 @4 N' H              Stop;. c+ B: t9 A+ c
            ENDIF
" @* @- f- k. y) Y$ _            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;) d1 `2 R, k# W% j. f
            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
. A- u* B8 z# v: y2 X          ENDWHILE- \% A8 Y) D$ s+ D
          …1 ^$ {) w  R6 k* ~2 ?3 h7 a
        ENDPROC
8 `# G4 j$ {! w0 Q  v- x2 T
回复

使用道具 举报

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

GMT+8, 2024-11-28 23:24 , Processed in 0.069551 second(s), 21 queries .

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

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