机械手自动化程序20170915
更新时间:2024-03-07 04:09:01 阅读量: 综合文库 文档下载
库卡机械手程序实例七轴运动与机台作业完成
1、 主程序 main &ACCESS RVP1 &REL 1
&PARAM DISKPATH = KRC:\\R1\\Program DEF Pro_main( ) INT l
;FOLD INI;%{PE} ;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI) ;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
GLOBAL INTERRUPT DECL 4 WHEN $IN[10]==FALSE DO Itrpt1 () GLOBAL INTERRUPT DECL 5 WHEN $IN[11]==FALSE DO Itrpt1 ()
INTERRUPT DECL 6 WHEN $IN[9]==TRUE DO Itrpt1 ();地轨异常进入中断 INTERRUPT ON 6;开地轨监视中断6 IF NOT Gripper_ChkStatus(1,\Gripper_SetStatus(1,\ Part0InLeft = FALSE Part2InLeft = FALSE ENDIF
IF NOT Gripper_ChkStatus(2,\Gripper_SetStatus(2,\ Part1InRight = FALSE ENDIF
FOR l = 1 TO 14 $OUT[l] = FALSE
ENDFOR;此循环语句在初始化时把所有端口清零复位。
IF $IN[5] THEN
Machine1_OnlyDrop = TRUE
Machine2_OnlyDrop = TRUE;机台1有首件信号时,机台1与机台2第一次响应只放标志位置1 ELSE
Machine1_OnlyDrop = FALSE Machine2_OnlyDrop = FALSE ENDIF
$FLAG[8]=FALSE;FLAG[8]是干什么用的? ;ENDFOLD (INI);初始化完成
$OV_PRO=70;限定系统运行速度
;FOLD PTP HOME Vel=100 % DEFAULT;%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT $BWDSTART=FALSE
1
库卡机械手程序实例七轴运动与机台作业完成
PDAT_ACT=PDEFAULT FDAT_ACT=FHOME
BAS(#PTP_PARAMS,100) $H_POS=XHOME PTP XHOME ;ENDFOLD
IF $IN_HOME THEN $OUT[5]=FALSE $OUT[8]=FALSE $OUT[11]=FALSE ENDIF
LOOP
WAIT SEC 0.05
IF $IN[1] AND NOT Part0InLeft ANDGripper_ChkStatus(3,\ THENToPick_Search() ENDIF
IF Part0InLeft AND ($IN[3] OR Machine1_OnlyDrop) AND Gripper_ChkStatus(1,\AND Gripper_ChkStatus(2,\Machine1() ENDIF
IF Part1InRight AND ($IN[6] OR Machine2_OnlyDrop) AND Gripper_ChkStatus(2,\AND Gripper_ChkStatus(1,\Machine2() ENDIF
IF Part2InLeft AND ($IN[8] OR Machine3_OnlyDrop) AND Gripper_ChkStatus(1,\Machine3() ENDIF ENDLOOP END
DEF Itrpt1 () HALT BRAKE END
2、 取料程序(采用中断的方法自动探料,完成取料作业) &ACCESS RVO2 &REL 1
&PARAM DISKPATH = KRC:\\R1\\Program DEF ToPick_Search( ) ;FOLD INI;%{PE} ;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( );单独用了一个系统中断? INTERRUPT ON 3 BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI)
2
库卡机械手程序实例七轴运动与机台作业完成
;FOLD USER INI
;Make your modifications here ;ENDFOLD (USER INI) ;ENDFOLD (INI)
INTERRUPT DECL 1 WHEN $IN[10]==TRUE DO FOUND() SevenAxis_Run(1) GOTO MARK
;FOLD PTP P1 CONT Vel=100 % PDAT2 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:C_DIS, 5:100, 7:PDAT2
$BWDSTART=FALSE PDAT_ACT=PPDAT2 FDAT_ACT=FP1
BAS(#PTP_PARAMS,100) PTP XP1 C_DIS ;ENDFOLD
;FOLD PTP P3 CONT Vel=100 % PDAT8 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P3, 3:C_DIS, 5:100, 7:PDAT8
$BWDSTART=FALSE PDAT_ACT=PPDAT8 FDAT_ACT=FP3
BAS(#PTP_PARAMS,100) PTP XP3 C_DIS ;ENDFOLD
;FOLD LIN P2 CONT Vel=2 m/s CPDAT2 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P2, 3:C_DIS C_DIS, 5:2, 7:CPDAT2
$BWDSTART=FALSE LDAT_ACT=LCPDAT2 FDAT_ACT=FP2
BAS(#CP_PARAMS,2) LIN XP2 C_DIS C_DIS ;ENDFOLD
;FOLD LIN P1 Vel=0.05 m/s CPDAT1 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P1, 3:, 5:0.05, 7:CPDAT1
$BWDSTART=FALSE LDAT_ACT=LCPDAT1 FDAT_ACT=FP1
BAS(#CP_PARAMS,0.05) LIN XP1 ;ENDFOLD
;FOLD PTP HOME Vel=100 % DEFAULT;%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART=FALSE PDAT_ACT=PDEFAULT FDAT_ACT=FHOME
BAS(#PTP_PARAMS,100) $H_POS=XHOME PTP XHOME ;ENDFOLD mark:
3
库卡机械手程序实例七轴运动与机台作业完成
Search()
INTERRUPT OFF 1 WAIT SEC 0 XP4=$POS_ACT
;FOLD LIN P4 CONT Vel=2 m/s CPDAT10 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P4, 3:C_DIS C_DIS, 5:2, 7:CPDAT10
$BWDSTART=FALSE LDAT_ACT=LCPDAT10 FDAT_ACT=FP4
BAS(#CP_PARAMS,2) LIN XP4 C_DIS C_DIS ;ENDFOLD
Gripper_SetStatus(1,\LIN_REL{Z 15} LIN_REL{Z -17}
Gripper_SetStatus(1,\Part0InLeft = TRUE WAIT SEC 0 XP0=$POS_ACT
XP0.Z=XP0.Z+25;看一下寻料程序到底是怎么运转的! ;FOLD LIN P0 CONT Vel=0.025 m/s CPDAT8 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P0, 3:C_DIS C_DIS, 5:0.025, 7:CPDAT8
$BWDSTART=FALSE LDAT_ACT=LCPDAT8 FDAT_ACT=FP0
BAS(#CP_PARAMS,0.025) LIN XP0 C_DIS C_DIS ;ENDFOLD
WAIT SEC 0
IF NOT $IN[10] THEN GOTO mark
ENDIF
;FOLD LIN P1 CONT Vel=2 m/s CPDAT7 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P1, 3:C_DIS C_DIS, 5:2, 7:CPDAT7
$BWDSTART=FALSE LDAT_ACT=LCPDAT7 FDAT_ACT=FP1
BAS(#CP_PARAMS,2) LIN XP1 C_DIS C_DIS ;ENDFOLD END
DEF Search( ) ;FOLD INI;%{PE} ;FOLD BASISTECH INI GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI)
4
库卡机械手程序实例七轴运动与机台作业完成
;FOLD USER INI
;Make your modifications here ;ENDFOLD (USER INI) ;ENDFOLD (INI) INTERRUPT ON 1
;FOLD PTP P1 CONT Vel=100 % PDAT6 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:C_DIS, 5:100, 7:PDAT6
$BWDSTART=FALSE PDAT_ACT=PPDAT6 FDAT_ACT=FP1
BAS(#PTP_PARAMS,100) PTP XP1 C_DIS ;ENDFOLD
$OUT[16]=TRUE
;FOLD LIN P3 CONT Vel=2 m/s CPDAT11 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P3, 3:C_DIS C_DIS, 5:2, 7:CPDAT11
$BWDSTART=FALSE LDAT_ACT=LCPDAT11 FDAT_ACT=FP3
BAS(#CP_PARAMS,2) LIN XP3 C_DIS C_DIS ;ENDFOLD
;FOLD LIN P2 CONT Vel=0.05 m/s CPDAT5 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P2, 3:C_DIS C_DIS, 5:0.05, 7:CPDAT5
$BWDSTART=FALSE LDAT_ACT=LCPDAT5 FDAT_ACT=FP2
BAS(#CP_PARAMS,0.05) LIN XP2 C_DIS C_DIS ;ENDFOLD
;FOLD LIN P1 Vel=0.02 m/s CPDAT6 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P1, 3:, 5:0.02, 7:CPDAT6
$BWDSTART=FALSE LDAT_ACT=LCPDAT6 FDAT_ACT=FP1
BAS(#CP_PARAMS,0.02) LIN XP1 ;ENDFOLD WAIT SEC 0 END
DEF FOUND() BRAKE
LIN $POS_INT ;rise a little RESUME END
3、 机台1取放料程序(完成机台1取放料动作与信号交互) &ACCESS RVO2
5
库卡机械手程序实例七轴运动与机台作业完成
ENDIF
;FOLD PTP P4 CONT Vel=100 % PDAT7 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P4, 3:C_DIS, 5:100, 7:PDAT7
$BWDSTART=FALSE PDAT_ACT=PPDAT7 FDAT_ACT=FP4
BAS(#PTP_PARAMS,100) PTP XP4 C_DIS ;ENDFOLD
;FOLD PTP P5 CONT Vel=100 % PDAT14 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P5, 3:C_DIS, 5:100, 7:PDAT14
$BWDSTART=FALSE PDAT_ACT=PPDAT14 FDAT_ACT=FP5
BAS(#PTP_PARAMS,100) PTP XP5 C_DIS ;ENDFOLD
;FOLD PTP P6 CONT Vel=100 % PDAT9 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P6, 3:C_DIS, 5:100, 7:PDAT9
$BWDSTART=FALSE PDAT_ACT=PPDAT9 FDAT_ACT=FP6
BAS(#PTP_PARAMS,100) PTP XP6 C_DIS ;ENDFOLD
;FOLD LIN P7 Vel=0.25 m/s CPDAT7 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P7, 3:, 5:0.25, 7:CPDAT7
$BWDSTART=FALSE LDAT_ACT=LCPDAT7 FDAT_ACT=FP7
BAS(#CP_PARAMS,0.25) LIN XP7 ;ENDFOLD
Gripper_SetStatus(2,\
;FOLD PTP P6 CONT Vel=100 % PDAT11 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P6, 3:C_DIS, 5:100, 7:PDAT11
$BWDSTART=FALSE PDAT_ACT=PPDAT11 FDAT_ACT=FP6
BAS(#PTP_PARAMS,100) PTP XP6 C_DIS ;ENDFOLD
;FOLD PTP P8 CONT Vel=100 % PDAT12 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P8, 3:C_DIS, 5:100, 7:PDAT12
$BWDSTART=FALSE PDAT_ACT=PPDAT12 FDAT_ACT=FP8
11
库卡机械手程序实例七轴运动与机台作业完成
BAS(#PTP_PARAMS,100) PTP XP8 C_DIS ;ENDFOLD ELSE
;FOLD PTP P5 CONT Vel=100 % PDAT13 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P5, 3:C_DIS, 5:100, 7:PDAT13
$BWDSTART=FALSE PDAT_ACT=PPDAT13 FDAT_ACT=FP5
BAS(#PTP_PARAMS,100) PTP XP5 C_DIS ;ENDFOLD
;FOLD PTP P6 CONT Vel=100 % PDAT1 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P6, 3:C_DIS, 5:100, 7:PDAT1
$BWDSTART=FALSE PDAT_ACT=PPDAT1 FDAT_ACT=FP6
BAS(#PTP_PARAMS,100) PTP XP6 C_DIS ;ENDFOLD
;FOLD LIN P7 Vel=0.25 m/s CPDAT1 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P7, 3:, 5:0.25, 7:CPDAT1
$BWDSTART=FALSE LDAT_ACT=LCPDAT1 FDAT_ACT=FP7
BAS(#CP_PARAMS,0.25) LIN XP7 ;ENDFOLD
Gripper_SetStatus(2,\
;FOLD LIN P6 CONT Vel=2 m/s CPDAT2 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P6, 3:C_DIS C_DIS, 5:2, 7:CPDAT2
$BWDSTART=FALSE LDAT_ACT=LCPDAT2 FDAT_ACT=FP6
BAS(#CP_PARAMS,2) LIN XP6 C_DIS C_DIS ;ENDFOLD
;FOLD PTP P8 CONT Vel=100 % PDAT6 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P8, 3:C_DIS, 5:100, 7:PDAT6
$BWDSTART=FALSE PDAT_ACT=PPDAT6 FDAT_ACT=FP8
BAS(#PTP_PARAMS,100) PTP XP8 C_DIS ;ENDFOLD
Machine_Start(2)
;FOLD PTP HOME Vel=100 % DEFAULT;%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:,
12
库卡机械手程序实例七轴运动与机台作业完成
5:100, 7:DEFAULT
$BWDSTART=FALSE PDAT_ACT=PDEFAULT FDAT_ACT=FHOME
BAS(#PTP_PARAMS,100) $H_POS=XHOME PTP XHOME ;ENDFOLD ENDIF
IF Machine2_OnlyDrop THEN Machine2_OnlyDrop = FALSE ENDIF
Machine_Start(2) END
5、 机台3取放料程序(完成机台3取放料动作与信号交互) &ACCESS RVP1 &REL 6
DEF Machine3( ) ;FOLD INI;%{PE} ;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI) ;FOLD USER INI
;Make your modifications here ;ENDFOLD (USER INI) WAIT FOR $FLAG[1] $FLAG[8]=TRUE ;ENDFOLD (INI)
PTP $POS_ACT SevenAxis_Run(3)
;FOLD OUT 11 '' State=TRUE ;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:11, 3:, 5:TRUE, 6:
$OUT[11]=TRUE ;ENDFOLD
;FOLD PTP P1 CONT Vel=100 % PDAT6 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:C_DIS, 5:100, 7:PDAT6
$BWDSTART=FALSE PDAT_ACT=PPDAT6 FDAT_ACT=FP1
BAS(#PTP_PARAMS,100) PTP XP1 C_DIS ;ENDFOLD
;FOLD PTP P2 CONT Vel=100 % PDAT2 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P2, 3:C_DIS, 5:100, 7:PDAT2
$BWDSTART=FALSE
13
库卡机械手程序实例七轴运动与机台作业完成
PDAT_ACT=PPDAT2 FDAT_ACT=FP2
BAS(#PTP_PARAMS,100) PTP XP2 C_DIS ;ENDFOLD
;FOLD LIN P3 Vel=0.25 m/s CPDAT1 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P3, 3:, 5:0.25, 7:CPDAT1
$BWDSTART=FALSE LDAT_ACT=LCPDAT1 FDAT_ACT=FP3
BAS(#CP_PARAMS,0.25) LIN XP3 ;ENDFOLD
Gripper_SetStatus(1,\
;FOLD LIN P2 CONT Vel=2 m/s CPDAT2 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P2, 3:C_DIS C_DIS, 5:2, 7:CPDAT2
$BWDSTART=FALSE LDAT_ACT=LCPDAT2 FDAT_ACT=FP2
BAS(#CP_PARAMS,2) LIN XP2 C_DIS C_DIS ;ENDFOLD
;FOLD PTP P4 CONT Vel=100 % PDAT3 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P4, 3:C_DIS, 5:100, 7:PDAT3
$BWDSTART=FALSE PDAT_ACT=PPDAT3 FDAT_ACT=FP4
BAS(#PTP_PARAMS,100) PTP XP4 C_DIS ;ENDFOLD
;FOLD PTP P5 CONT Vel=100 % PDAT5 Tool[1] Base[0];%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P5, 3:C_DIS, 5:100, 7:PDAT5
$BWDSTART=FALSE PDAT_ACT=PPDAT5 FDAT_ACT=FP5
BAS(#PTP_PARAMS,100) PTP XP5 C_DIS ;ENDFOLD
Machine_Start(3)
;FOLD PTP HOME Vel=100 % DEFAULT;%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART=FALSE PDAT_ACT=PDEFAULT FDAT_ACT=FHOME
BAS(#PTP_PARAMS,100) $H_POS=XHOME PTP XHOME ;ENDFOLD
$TIMER_STOP[1]=FALSE
14
库卡机械手程序实例七轴运动与机台作业完成
IF $TIMER[1]>0 THEN
$TIMER_STOP[1]=TRUE ENDIF
IF Machine3_OnlyDrop THEN Machine3_OnlyDrop = FALSE ENDIF
Count_Part=Count_Part+1 IF Count_Part>=40 THEN Count_Part=0 SevenAxis_Run(4) WAIT SEC 0.1 ENDIF END
6、 地轨运动程序(完成与地轨信号交互及运动交互) &ACCESS RV2 &REL 8
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\\KRC\\Roboter\\Template\\vorgabe DEF SevenAxis_Run(Num:IN) INT Num SWITCH Num CASE 1
;FOLD PULSE 1 '' State=TRUE Time=1 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:1, 3:, 5:TRUE, 6:, 8:1
PULSE($OUT[1], TRUE,1) ;ENDFOLD
;FOLD PULSE 14 '' State=TRUE Time=1 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:14, 3:, 5:TRUE, 6:, 8:1
PULSE($OUT[14], TRUE,1) ;ENDFOLD
WAIT FOR $IN[2] $OUT[1] = FALSE $OUT[14] = FALSE CASE 2
;FOLD PULSE 2 '' State=TRUE Time=1 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:2, 3:, 5:TRUE, 6:, 8:1
PULSE($OUT[2], TRUE,1) ;ENDFOLD
;FOLD PULSE 14 '' State=TRUE Time=1 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:14, 3:, 5:TRUE, 6:, 8:1
PULSE($OUT[14], TRUE,1) ;ENDFOLD
WAIT SEC 0.5 WAIT FOR $IN[2] $OUT[2] = FALSE $OUT[14] = FALSE CASE 3
;FOLD PULSE 3 '' State=TRUE Time=1 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:3, 3:, 5:TRUE,
15
库卡机械手程序实例七轴运动与机台作业完成
6:, 8:1
PULSE($OUT[3], TRUE,1) ;ENDFOLD
;FOLD PULSE 14 '' State=TRUE Time=1 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:14, 3:, 5:TRUE, 6:, 8:1
PULSE($OUT[14], TRUE,1) ;ENDFOLD
WAIT SEC 0.5 WAIT FOR $IN[2] $OUT[3] = FALSE $OUT[14] = FALSE CASE 4
;FOLD PULSE 4 '' State=TRUE Time=1 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:4, 3:, 5:TRUE, 6:, 8:1
PULSE($OUT[4], TRUE,1) ;ENDFOLD
;FOLD PULSE 14 '' State=TRUE Time=1 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:14, 3:, 5:TRUE, 6:, 8:1
PULSE($OUT[14], TRUE,1) ;ENDFOLD
WAIT SEC 0.5 WAIT FOR $IN[2] $OUT[4] = FALSE $OUT[14] = FALSE DEFAULT MsgQuit(\ENDSWITCH END
7、 机台启动控制程序(完成机台启动,取消工作中信号给开始加工信号) &ACCESS RV2 &REL 3
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\\KRC\\Roboter\\Template\\ExpertVorgabe DEF Machine_Start(Num:IN) INT Num SWITCH Num CASE 1
;FOLD OUT 5 '' State=FALSE ;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:5, 3:, 5:FALSE, 6:
$OUT[5]=FALSE ;ENDFOLD
;FOLD PULSE 6 '' State=TRUE Time=0.5 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:6, 3:, 5:TRUE, 6:, 8:0.5
PULSE($OUT[6], TRUE,0.5) ;ENDFOLD CASE 2
;FOLD OUT 8 '' State=FALSE ;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:8, 3:, 5:FALSE, 6:
$OUT[8]=FALSE ;ENDFOLD
16
库卡机械手程序实例七轴运动与机台作业完成
;FOLD PULSE 9 '' State=TRUE Time=0.5 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:9, 3:, 5:TRUE, 6:, 8:0.5
PULSE($OUT[9], TRUE,0.5) ;ENDFOLD CASE 3
;FOLD OUT 11 '' State=FALSE ;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:11, 3:, 5:FALSE, 6:
$OUT[11]=FALSE ;ENDFOLD
;FOLD PULSE 12 '' State=TRUE Time=0.5 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VPULSE,%P 2:12, 3:, 5:TRUE, 6:, 8:0.5
PULSE($OUT[12], TRUE,0.5) ;ENDFOLD DEFAULT MsgQuit(\ENDSWITCH END
8、 手爪控制程序(完成对手爪的控制)
手爪1控制点位为OUT[16],对应检测为IN[10],对应中断4 手爪2控制点位为OUT[15],对应检测为IN[11],对应中断5 &ACCESS RV2 &REL 50
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\\KRC\\Roboter\\Template\\vorgabe DEF Gripper_SetStatus(Num:IN,Status:IN) INT Num CHAR Status SWITCH Num CASE 1
SWITCH Status CASE \
IF NOT $T1 THEN INTERRUPT OFF 4 ENDIF
$OUT[16] = FALSE WAIT SEC 0.3
WAIT FOR NOT $IN[10] Part0InLeft = FALSE Part2InLeft = FALSE CASE \
IF NOT $T1 THEN INTERRUPT ON 4 ENDIF
$OUT[16] = TRUE WAIT SEC 0.5 WAIT FOR $IN[10] DEFAULT
MsgQuit(\ ENDSWITCH
17
库卡机械手程序实例七轴运动与机台作业完成
CASE 2
SWITCH Status CASE \
IF NOT $T1 THEN INTERRUPT OFF 5 ENDIF
INTERRUPT OFF 89 $OUT[15] = FALSE WAIT SEC 0.3
WAIT FOR NOT $IN[11] Part1InRight = FALSE CASE \
IF NOT $T1 THEN INTERRUPT ON 5 ENDIF
$OUT[15] = TRUE WAIT SEC 0.5 WAIT FOR $IN[11] Part1InRight = TRUE DEFAULT
MsgQuit(\ ENDSWITCH DEFAULT
MsgQuit(\ENDSWITCH END
9、 手爪真空检测(完成对掉料状况的检测) &ACCESS RV2 &REL 10
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\\KRC\\Roboter\\Template\\FunctionVorgabe DEFFCT BOOL Gripper_ChkStatus(Num:IN,Status:IN) INT Num CHAR Status SWITCH Num CASE 1
SWITCH Status CASE \
IF NOT $OUT[16] AND NOT $IN[10] THEN RETURN TRUE ELSE
RETURN FALSE ENDIF CASE \
IF $OUT[16] AND $IN[10] THEN RETURN TRUE ELSE
RETURN FALSE
18
库卡机械手程序实例七轴运动与机台作业完成
ENDIF DEFAULT
MsgQuit(\ RETURN FALSE ENDSWITCH CASE 2
SWITCH Status CASE \
IF NOT $OUT[15] AND NOT $IN[11] THEN RETURN TRUE ELSE
RETURN FALSE ENDIF CASE \
IF $OUT[15] AND $IN[11] THEN RETURN TRUE ELSE
RETURN FALSE ENDIF DEFAULT
MsgQuit(\ RETURN FALSE ENDSWITCH CASE 3
SWITCH Status CASE \
IF NOT $OUT[15] AND NOT $OUT[16] AND NOT $IN[10] AND NOT $IN[11] THEN RETURN TRUE ELSE
RETURN FALSE ENDIF CASE \
IF $OUT[15] AND $OUT[16] AND $IN[10] AND $IN[11] THEN RETURN TRUE ELSE
RETURN FALSE ENDIF DEFAULT
MsgQuit(\ RETURN FALSE ENDSWITCH DEFAULT
MsgQuit(\ RETURN FALSE ENDSWITCH ENDFCT
10、 装夹检测子程序(完成对每台机的装夹检测与装夹异常信号交互)
19
库卡机械手程序实例七轴运动与机台作业完成
11、 后台监视程序(对安全姿态信号自动触发等后台程序进行配置) &ACCESS R
&COMMENT HandlerOnRobotFault DEF IR_STOPM ( )
;-----------------------------------
; Error Handling Robot Controller ; Switch OFF and Switch ON processes ; KRC Version >= V5.5
;----------------------------------- ;FOLD DECLARATIONS ;FOLD USER DECL ; Please insert user defined declarations ;ENDFOLD (USER DECL) ;FOLD BASISTECH DECL BOOL ApplicationRunFlag DECL CHAR ID[3] ;ENDFOLD (BASISTECH DECL) ;ENDFOLD (DECLARATIONS) ;FOLD BASISTECH INIT INTERRUPT OFF 3
STOPM_FLAG=TRUE ;Reflects state of interrupt 3 to activate/deactivate $Stopmess interrupt ID[]=\
If ($STOPMESS==TRUE) THEN BRAKE
;ENDFOLD (BASISTECH INIT) ;FOLD USER STOP
;Make your modifications here ;ENDFOLD (USER STOP) ;FOLD BASISTECH STOP
P00 (#EXT_ERR,#PGNO_GET,ID[],128 ) ApplicationRunFlag=FALSE IF (Appl_Run>0) THEN
IF $OUT[Appl_Run] THEN ApplicationRunFlag=TRUE
$OUT[Appl_Run]=FALSE ENDIF ENDIF REPEAT
POWER=SYNC() HALT
UNTIL (($STOPMESS==FALSE) AND ($POWER_FAIL==FALSE)) ;ENDFOLD (BASISTECH STOP) ;FOLD BASISTECH RESTART
P00 (#EXT_ERR,#PGNO_GET,ID[],0 ) IF (ApplicationRunFlag==TRUE) THEN IF (Appl_Run>0) THEN $OUT[Appl_Run]=TRUE ENDIF ENDIF
20
库卡机械手程序实例七轴运动与机台作业完成
;ENDFOLD (BASISTECH RESTART) ;FOLD USER RESTART
;Make your modifications here ;ENDFOLD (USER RESTART)
;FOLD BASISTECH REACTIVATE Endif INTERRUPT ON 3 STOPM_FLAG=FALSE ;Reflects state of interrupt 3 to activate/deactivate $Stopmess interrupt
;ENDFOLD (BASISTECH REACTIVATE) END
21
库卡机械手程序实例七轴运动与机台作业完成
;ENDFOLD (BASISTECH RESTART) ;FOLD USER RESTART
;Make your modifications here ;ENDFOLD (USER RESTART)
;FOLD BASISTECH REACTIVATE Endif INTERRUPT ON 3 STOPM_FLAG=FALSE ;Reflects state of interrupt 3 to activate/deactivate $Stopmess interrupt
;ENDFOLD (BASISTECH REACTIVATE) END
21
正在阅读:
机械手自动化程序2017091503-07
中医正骨民间医家(2016年元月整理)05-21
国防论文1500字12-10
议论文作文问题分析(福州三中陈原)05-15
《土地利用分类(“二调”分类)》与《中华人民共和国土地管理法》“三大类”对照表08-24
材料科学基础第3章 习题10-25
创伤急救题库(1)11-02
妇女工作个人总结(优秀10篇)03-27
阶梯作文训练(如何写游记)04-21
无机房电梯和有机房电梯的区11-21
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 机械手
- 20170915
- 自动化
- 程序
- 2011年中考复习之代数易错题
- 西交《软件工程概论》在线作业15秋满分答案
- 2017上海各区初三二模语文议论文阅读汇编
- 连续油管车操作规程
- 团日活动总结 团组织生活会总结
- 现代教育技术在通用技术综合实践课中的运用
- 加油站监理实施细则007
- 湖北文理学院毕业论文任务书范文模板 - 图文
- 《心理与教育测量》练习与思考题
- 2010年辽宁盘锦市中考数学试题及答案
- 窗口护栏及空调护栏拆除安全交底 文档
- 精选高考作文人物素材
- ABC锅炉使用说明书
- 员工出差实施细则
- 期货投资计划书(大连市场豆油)
- 秘鲁Movistar电信广告- 副本- 副本
- 注册会计师考试《税法》高频考点(二)
- 《整正曲线坐标法补充》
- 学习马克思主义心得体会
- (部编)人教版小学语文 二年级上册《课文 11 葡萄沟》优质教案