KUKA机器人SPR铆接工艺程序解释

更新时间:2023-06-15 21:27:54 阅读: 评论:0

&ACCESS RV5
&REL 776
&PARAM DISKPATH = KRC:\R1\Program\2Robot_func
DEF Rivet( )
;===================================================
;VERTION: 1.0 BETA
;Author:Zoro         - HOKUTO
;LAST UPDATE: 2019.11.30
;===================================================
END

;FOLD RIVET_INIT


;----------------------------------------
;
RIVET_INIT       铆接初始化
;----------------------------------------
global DEF RIVET_INIT()

  $OUT[Rivet_Start_OUT]=FALSE           ;输出铆接启动OUT2001=0   
  $OUT[Rivet_Restart_OUT]=FALSE         ;输出重铆OUT2003=0
  WAIT FOR ($IN[Rivet_Fault_IN]==FALSE) ;铆接报警IN2003=0
  $OUT[Start_FillMAG_OUT]=FALSE         ;填充铆钉OUT2066=0
  $OUT[Rivet_POS_Out]=FALSE             ;铆枪运行到设定位置
  Q_Rivet_ID=0                          ;程序号置0
  Q_Rivet_HOME_ID=0                     ;开枪位置置0

END
;ENDFOLD RIVET_INIT

;
FOLD RIVET_START

;----------------------------------------
; RIVET_START    启动铆接
;----------------------------------------
global DEF RIVET_START(ID:IN,POS1:IN)
INT ID   ;铆接程序号
INT POS1  ;初始化铆接开口度
INT Answer 
INT Answer2

  Answer=0
  Answer2=0
  ERROR_COUNT_FLAG=FALSE   ;复位计数标示器=0
 
  RESTART_RIVET: 
 
  ;DRY ON MODE SELECTION
    IF (($IN[Dry_On_In]==FALSE) AND ($EXT==TRUE)) OR (($FLAG[1]==TRUE) 
AND ($EXT==FALSE)) THEN
      $OUT[Rivet_Dry_Out]=FALSE   
    ELSE
      $OUT[Rivet_Dry_Out]=TRUE   ;空运行IN25=0
    ENDIF
   
  ;启动铆接
  ;START RIVET       
    WAIT FOR  ($IN[Rivet_Ready_IN]==TRUE) AND ($IN[Rivet_Start_IN]==TRUE) 
AND ($IN[Rivet_Fault_IN]==FALSE ) 
    ; 使能IN2008=1 AND  等待铆接IN2001=1 AND 铆接报警IN2003=0
    Q_Rivet_ID=ID  ;铆接程序号
    Q_Rivet_HOME_ID=POS1  ; 开枪位置
    $OUT[Rivet_Start_OUT]=TRUE ;输出铆接启动OUT2001=1
    $OUT[Rivet_FORCE_RC_OUT]=FALSE  ; 输出铆接完成OUT2002=0
    $OUT[Rivet_Restart_OUT]=FALSE   ; 输出重铆OUT2003=0
    WAIT FOR ($IN[Rivet_Com_IN]==TRUE) OR ($IN[Rivet_Fault_IN]==TRUE ) ;等待铆接完成IN2002=1OR铆接故障IN2003=0
    WAIT FOR ($IN[Rivet_Home_POS_IN]==TRUE)  ;等待铆枪到位置IN2006=1
;SPOT_COUNT_START
    IF $IN[Rivet_Fault_IN]==TRUE THEN  ;假如铆接报错IN2003=1
$OUT[126]=TRUE   ;输出铆接报错OUT126=1
      MsgDialog(Answer,"Warnning Rivet Spot Fault,Do you want to Restart?", "GAC",,,,,,,"NO","YES")
      WAIT FOR (Answer==1) OR (Answer==2) ;示教器弹出报错框,询问是否重铆
      IF Answer==2 THEN  ;假如选择 NO
        $OUT[Rivet_Restart_OUT班组文化建设内容]=FALSE   ;输出重铆OUT2003=0 
        $OUT[Rivet_FORCE_RC_OUT]=TRUE   ;铆接完成OUT2002=1
        MsgDialog(Answer2,"Warnning Rivet Spot Fault,Do you want to Accout for it ?", "GAC",,,,,,,"NO","YES")
       ;示教器弹出窗口,确认铆接是否完成。
        WAIT FOR (Answer2==1) OR (Answer2==2) 
        IF Answer2==2 THEN  ;假如选择选择 YES 
          ERROR_COUNT_FLAG=TRUE  ;铆接数量+1
        ENDIF学古筝多少钱
        IF Answer2==1 THEN  ;假如选择 NO
          ERROR_COUNT_FLAG=FALSE  ;计数不加+1
        ENDIF
      ENDIF
      IF Answer==1 THEN  ;假如选择 否
        $OUT[Rivet_Restart_OUT]=TRUE  ;输出重铆OUT2003=1
        $OUT[Rivet_FORCE_RC_OUT]=FALSE ;铆接完成OUT2002=0
        GOTO RESTART_RIVET ;跳转到重铆
      ENDIF
    ENDIF
    WAIT FOR ($IN[Rivet_Home_POS_IN]==TRUE) AND ($IN[Rivet_Com_IN]==TRUE ) ;等待铆接到位2006=1 AND 铆接完成2002=1
   
    IF ($OUT[Rivet_Dry_Out]==FALSE) AND (ERROR_COUNT_FLAG==FALSE) THEN ;假如空运行IN25=0 AND计数标志=0
      Spot_Job_Count1= Spot_Job_Count1+1   ;那么计数+1
    ENDIF 
  ;SPOT_COUNT_STOP 
    $OUT[Rivet_Start_OUT]=FALSE  ;输出铆接启动OUT2001=0
    $OUT[Rivet_Restart_OUT]=FALSE ;输出重铆OUT2003=0
    $OUT[Rivet_FORCE_RC_OUT]=FALSE  ;铆接完成OUT2002=0
    WAIT FOR $IN[Rivet_Com_IN]==FALSE ;等待输出铆接完成IN2002=0
    Q_Rivet_ID=0 ;铆接程序号=0
    Q_Rivet_HOME_ID=0 ;铆接位置=0
$苯溴马隆胶囊OUT[126]=FALSE ;铆接故障输出126=0
   
 

 
END
;ENDFOLD RIVET_START

;FOLD RIVET_POS

;----------------------------------------
;
RIVET_POS   铆枪开口度
;----------------------------------------
global DEF RIVET_POS(POS1:IN)
INT POS1
BOOL WAIT1

    WAIT FOR  ($IN[Rivet_Ready_IN]==TRUE) AND ($IN[Rivet_Start_IN]==TRUE) 
AND ($IN[Rivet_Fault_IN]==FALSE ) 
   ; 使能IN2008=1 AND  等待铆接IN2001=1 AND 铆接报警IN2003=0
    Q_Rivet_ID=0  ;铆接程序号=0
    Q_Rivet_HOME_ID=POS1  ;铆枪开口位置1
    IF $EXT==FALSE THEN
      $OUT[Rivet_POS_Out]=TRUE  ;输出铆枪慢速运行到指定位置2008=1
    ELSE
      $OUT[Rivet_POS100_Out]=TRUE ;输出铆枪高速运行到指定位置2009=1
    ENDIF
    WAIT FOR I_Rivet_REV_ID==POS1 ;开枪位置反馈信号  IN2025~2032
    $OUT[Rivet_POS_Out]=FALSE ;输出铆枪慢速运行到指定位置2008=0
    $OUT[Rivet_POS100_Out]=FALSE ;输出铆枪高速运行到指定位置2009=0
    Q_Rivet_HOME_ID=0 ;输出开口位置 2025~2032=0

END
;ENDFOLD RIVET_POS

;FOLD MA_START

应征报名;----------------------------------------
; MAGAZING FILL   填充铆钉
;----------------------------------------
global DEF MA_START()
INT Answer
 
  Answer=0
  RESTART_FILL:                   
  WAIT 黑色教室FOR  ($IN[MA_Filled_IN]==FALSE) AND ($IN[Ready_Fill_IN]==TRUE ) AND ($IN多跳[Rivet_Fault_IN]==FALSE) 
                                              ;弹夹IN2067=0  AND 填充站IN2065=1  AND  铆接报警IN2003=0
  $OUT[Start_FillMAG_OUT]=TRUE ;启动填充铆钉信号OUT2066=1
  WAIT FOR ($IN[爱漫画网Rivet_Fault_IN]==TRUE) OR ($IN[Fill_Com_IN]==TRUE );等待铆接报错IN2003=1OR铆钉填充完成IN2066=1

  IF $IN[Rivet_Fault_IN七个字的古诗]==TRUE THEN  ;假如铆接报警IN2003=1 弹出铆接报警对话框
    MsgDialog(Answer,"Warnning Rivet Fill Magazine Fault,Do you want to Restart?", "GAC",,,,,,,"NO","YES")
    WAIT FOR (Answer==1) OR (Answer==0)
    IF Answer==0 THEN  ;选择YSE铆接完成
      $OUT[Rivet_Restart_OUT]=FALSE  ;输出重铆 OUT2003=0
      $OUT[Rivet_FORCE_RC_OUT]=TRUE  ;铆接完成OUT2002=1
    ENDIF
    IF Answer==1 THEN   ;选择NO重新铆接
      $OUT[Rivet_Restart_OUT]=TRUE    ;输出重铆 OUT2003=1
      $OUT[Rivet_FORCE_RC_OUT]=FALSE  ;铆接完成OUT2002=0
      GOTO RESTART_FILL  ;跳转到重新充钉
    ENDIF
  ENDIF

  WAIT FOR  ($IN[Ready_Fill_IN]==TRUE) OR ($IN[Fill_Com_IN]==TRUE);等待填充站IN2065=1 OR 填充完成IN2066=1
  $OUT[Start_FillMAG_OUT]=FALSE   ;启动填充铆钉信号OUT2066=0
  $OUT[Rivet_Restart_OUT]=FALSE   ; 输出重铆为2003=0
  $OUT[Rivet_FORCE_RC_OUT]=FALSE  ;输出铆接完成2002=0
END
;ENDFOLD RIVET_START

本文发布于:2023-06-15 21:27:54,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1040190.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:铆接   输出   位置   完成
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图