&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