机器人教程网

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

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

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

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

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

x
程序流程指令WaitUntil-ABB机器人标准指令编程0 u5 |- {% D  D/ z0 f4 d0 V
WaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];
% m. v, H, ?- @5 z4 r/ i9 Q6 A0 X* f[\InPos] :                提前量开关。        ( switch )       : k8 S5 k# B/ p3 x, z
Cond:                判断条件。        ( bool )
* i+ c" n. M2 E! o' R, I' }0 X[\MaxTime]:        最长等待时间 s。( num ) 1 X6 j! L+ k% A( x6 C; o; X
[\TimeFlag]:        超时逻辑量。        ( bool )
" `0 O# i& W$ t. [% I4 H
& {! W1 N0 C( h/ ]# k. W  A
ABB机器人程序流程指令WaitUntil-应用:7 O+ [+ H$ Y- |( }8 _/ e
        当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量 [\InPos],机器人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令 WaitDI 的功能更广,可以替代其所有功能。. g$ f! D, d$ R$ i* M

( X, u+ M% h. f/ e# x7 w8 A% f( jABB机器人程序流程指令WaitUntil-限制:& |0 I. K( L6 [# Q$ l
  • 当前指令在使用参变量 [\InPos] 时,遇到程序突然停止运行,机器人不能其保证停在最终停止点进行条件判断。
    " l7 t% N0 q( D2 L7 M, |9 n! m/ }% C* n

7 k# Q8 z) I# zABB机器人程序流程指令WaitUntil-实例:
3 J0 v" e+ B/ S( q' w) v        PROC PickPart()
9 _: W  n! z1 Q- h* x          MoveJ pPrePick,vFastEmpty,zBig,tool1;. v4 K4 V! k# T
          WaitUntil di_Ready=1;  →机器人等待输入信号,直到信号 di_Ready 值为 1,才执行随后指令。! b! W& t& F) K. e) k3 P
          (WaitDI di_Ready,1;)1 M3 K/ W# N) X: I: g

& F( ]# Y& a# {9 Y# M        PROC PickPart()- y3 z& K% P! L- n1 S
          MoveJ pPrePick,vFastEmpty,zBig,tool1;
& s- b8 B% O$ G3 e. S          WaitUntil nCounter=4\MaxTime:=5;
( J& J( p3 S0 [/ N; G# d2 b          …  →机器人等待相应数据输入,如果 5 秒内仍没有得到相应数据值 4,自动进行 Error Handler 处理,如果没有 Error Handler,机器人停机报错 。# n1 ^2 z, i/ v6 [( E
        ERROR( S, A7 e9 T4 a$ K
          IF ERRNO=ERR_WAIT_MAXTIME THEN) n7 O. b! H" \9 ]) b( X6 P
            TPWrite “……”;5 u! }. u- J, R: E4 h! i
            RETRY;
! C* k) x) ~4 u8 D. j9 J          ENDIF- Y; z* R: l3 x8 p
        ENDPROC" _: W% y' }& E7 X* L

2 y+ [+ {+ S2 I0 }+ JABB机器人程序流程指令WaitUntil-实例:, N4 Z& u  V& o6 [- L% @. x
        PROC PickPart()
$ i1 s, y2 v" Y0 z9 b          MoveJ pPrePick,vFastEmpty,zBig,tool1;
  A; \* t" |: ]: c& i& _          bTimeout:=TRUE;7 [8 y  v1 g/ o9 b  \# B/ I
          nCounter:=0;
/ L5 z, I8 N5 E3 K) ?          WHILE bTimeout DO
7 P% K6 l" L+ h- h6 F$ p# F            IF nCounter>3 THEN  L4 X# w* {' R% S8 o: p
              TPWrite “……”;+ A1 P) m7 r" D+ y/ {% V
            ENDIF
9 D' q/ P6 e" Y! ~            IF nCounter>30 THEN  E$ a' {7 `6 I* L7 x( O3 x
              Stop;  ^3 n2 M% v1 _7 w- Z; j4 N" j
            ENDIF
- k; ^4 e% e7 V* T" }4 {# z1 I: ]) j            WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout;: ^4 Y' L+ b7 t! n8 r5 z
            Incr nCounter;   →机器人等待相应逻辑值,如果 1 秒内仍没有得到相应值,机器人自动执行随后指令,但此时 TimeFlag 值为 TRUE;机器人得到相应逻辑值,TimeFlag 值为 FALSE。
* S- w, z+ [5 ^1 ]          ENDWHILE" N) v% G( m( I9 s
          …4 A& V6 m9 Y; y4 E7 U# z
        ENDPROC7 |- F0 V3 |! n9 `2 x8 Y6 C
回复

使用道具 举报

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

GMT+8, 2025-7-17 05:21 , Processed in 0.070327 second(s), 22 queries .

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

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