您好!欢迎光临工博士商城

库卡机器人系统集成服务商

产品:99    
联系我们
联系方式
  • 联系人:赵工
  • 电话:15002112015
  • 手机:15002112015
新闻分类
站内搜索
 
友情链接
首页 > 新闻中心 > 库卡机器人如何编辑程序等待指令
新闻中心
库卡机器人如何编辑程序等待指令
发布时间:2021-03-26        浏览次数:2889        返回列表
    程序等待指令

  1.指令与功能
 
  通常情况下,RAPID 程序的自动运行是一个连续的过程,系统在当前的指令执行完后,将自动执行下一指令。但是,为了协调机器人运动,有时需要暂停程序的执行过程,以等待系统其他条件的满足,这就需要使用程序等待指令。
 
  RAPID 程序等待的方式较多,除了可通过第 4.2 节所述的 I/O 读写等待指令,利用 I/O 信号来控制程序的执行外,还可通过定时、定位完成、***数据状态等方式来控制程序的执行过程,相关指令的名称、编程格式见表 5.1-1,编程要求和示例如下。
 
 
库卡机器人集成
 
 
  2.定时等待与移动到位等待
 
  定时等待指令 WaitTime 和移动到位等待指令 WaitRob 是 RAPID 程序***常用和***基本的程序等待指令,指令编程要求分别如下。
 
  ① 定时等待。定时等待指令 WaitTime 可直接通过程序暂停时间的设定,来控制程序的执行过程,指令的编程格式及指令添加项、程序数据的要求如下。
 
  Wait Time [\In Pos, ] Time ;
 
  \InPos:移动到位,数据类型为 switch。不使用添加项时,系统执行指令时,将立即开始暂停计时。使用添加项后,需要在机器人、外部轴移动到位,且完全停止后才开始暂停计时;如暂停时间 Time 设定 0,指令功能与下述的到位等待指令 WaitRob \InPos 相同。
 
  Time:暂停时间,数据类型为 num,单位为 s;设定值精度 0.001s,***大值无限制。
 
  定时等待指令 Wait Time 的编程示例如下。
 
  Move J p1, v1000, z30, tool1 ;
 
  Wait Time \In Pos, 0 ;              // 程序暂停,等待机器人到位
 
  Set DO do1, 1 ;
 
  Wait Time 0.5 ;                  // 程序暂停 0.5s
 
  ……
 
  ② 移动到位等待。移动到位等待指令 WaitRob 可通过对机器人、外部轴的到位区间或移动速度判别,来控制程序的执行过程,指令的编程格式及指令添加项的要求如下。
 
  WaitRob [\InPos] | [\ZeroSpeed] ;
 
  \In Pos或\Zero Speed:到位判别条件,数据类型 switch,两者必须且只能选择其一。选择\In Pos,系统以机器人、外部轴到达停止点规定的到位区间,作为暂停结束的条件;选择\ Zero Speed,系统以机器人、外部轴移动速度为 0,作为暂停结束的条件。
 
  移动到位等待指令 WaitRob 的编程示例如下。
 
  Move J p1, v1000, fine\Inpos:=inpos20, tool1 ;
 
  WaitRob \InPos ;                   // 等待到达到位区间
 
  Move J p2, v1000, fine, tool1 ;
 
  WaitRob \ZeroSpeed ;                  // 等待移动速度为 0
 
  ……

  3.逻辑状态等待
 
  逻辑状态等待指令 Wait Until 可通过对系统逻辑状态的判别来控制程序的执行过程,指令的编程格式及指令添加项的要求如下。
 
  Wait Until [\In Pos,] Cond [\Max Time] [\Time Flag] [\Poll Rate] ;
 
  \InPos:移动到位,数据类型 switch。不使用添加项时,系统执行指令时,只需要判断逻辑条件;使用添加项后,需要增加机器人、外部轴移动到位的附加判别条件。
 
  Cond:逻辑判断条件,数据类型 bool,可以使用逻辑表达式。
 
  \MaxTime:***长等待时间,数据类型 num,单位为 s。不使用本添加项时,系统必须等待逻辑条件满足,才能继续执行后续指令;使用本添加项时,如逻辑条件在\Max Time 规定的时间内未满足条件,则进行如下处理:
 
  ① 未定义添加项\Time Flag 时,系统将发出等待超时报警(ERR_WAIT_MAXTIME),并停止;
 
  ② 定义添加项\Time Flag 时,则将\Time Flag 指定的等待超时标志置为「TURE」状态,系统可继续执行后续指令。
 
  \TimeFlag:等待超时标志,数据类型为 bool。增加本添加项时,如指定的条件在\Max Time 规定的时间内仍未满足,则该程序数据将为「TURE」状态,系统可继续执行后续指令。
 
  \PollRate:检测周期,数据类型为 num,单位为 s,***小设定 0.04s。添加项用来设定逻辑判断条件的状态更新周期,不使用本添加项时,系统默认的检测周期为 0.1s。
 
  逻辑状态等待指令 Wait Until 的编程示例如下。
 
  Wait Until \Inpos, di4 = 1 ;        // 等待到位及 di4 信号 ON
 
  Wait Until di1=1 AND di2=1 \Max Time:=5 ;  // 等待 di1、di2 信号 ON,5s 后报警
 
  ……
 
  VAR bool tmout ;              // 定义超时标记
 
  Wait Until di1=1 \Max Time:= 5 \Time Flag:= tmout ; // 等待 di1 信号 ON,5s 后继续
 
  IF tmout THEN                // 检查超时标记
 
  Set DO do1, 1 ;
 
  ELSE
 
  Set DO do1, 0;
 
  ENDIF
 
  4.***数据等待
 
  ***数据 PERS(persistent)是可定义初始值并能保存***后结果的数据,它可通过模块的数据声明指令定义,但不能在主程序、子程序中定义,有关内容可参见第 2.3 节。
 
  ***数据等待指令 Wait Test And Set 可通过逻辑状态型(bool)***数据的状态,来控制程序的执行过程,指令的编程格式与程序数据要求如下。
 
  Wait Test And Set Object ;
 
  Object:***数据 PERS,数据类型 bool。指令用于不同任务控制时,Object 必须定义为全局***数据(global data,参见第 2.3 节)。
 
  ***数据等待指令 Wait Test And Set 具有如下功能。
 
  ① 如指令执行时,***数据的状态为 TRUE,则程序暂停,直至其成为 FALSE;随后,将***数据的状态设置为 TRUE。
 
  ② 如指令执行时,***数据的状态为 FALSE,则将其设置为 TRUE,并继续后续指令。
 
  ***数据等待指令 Wait Test And Set 的编程示例如下。
 
  MODULE mainmodu (SYSMODULE)          // 主模块
 
  PERS bool sem Pers := FALSE ;         // 定义***数据
 
  ……
 
  ENDMODULE
 
  !****************************************************
 
  PROC doit()                  // 程序模块
 
  ……
 
  Wait Test And Set sem Pers ;           // 等待 sem Pers 状态 FALSE
 
  ……
 
  ***数据等待指令 Wait Test And Set 的功能,实际上也可通过逻辑状态等待指令 Wait Until 实现,例如,上述程序的功能与以下程序相同。
 
  IF sem Pers = FALSE THEN
 
  sem Pers := TRUE ;
 
  ELSE
 
  Wait Until sem Pers = FALSE ;
 
  sem Pers:= TRUE ;
 
  ENDIF


了解更多库卡机器人知识欢迎点击咨询:库卡机器人集成
 
 

分享到: 


 

联系热线:15002112015 联系人:赵工 联系地址:上海嘉定区博园路1333号

技术和报价服务:星期一至星期六8:00-22:00 库卡机器人系统集成服务商

返回
顶部