Hi
I am sitting with a KR 30-3 robot with a KR C2 controller. The robot is used for welding and has an external axis (E1) installed. The function of the welding process is as followed: E1 is holding the subject which is to be welded. Therefor the robot has to move down to the subject, turn on the laser for welding, and then the E1 turns 360 degrees.
The issue comes when I have to turn E1 the 360 degrees. I have 4 motions for this: LIN-CIRC-CIRC-LIN. In between these movements the robot stops, but not between the first two motions: LIN-CIRC. The two LIN are used for a small overlap for when the welding Ramps up and down. There is another KUKA robot next to mine which has the exact same function. Here it works so have tried everything to copy that. Also the configuration in machine.dat. The E1 is configured as a Rotary axis in machine.dat.
I have made a small program to test this movement and also to make it easiere for you to get an overview. The "error" is still exicisting in this.
.DAT:
DEFDAT ROTATEST
;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL INT SUCCESS
;ENDFOLD (BASISTECH EXT)
;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
;Make here your modifications
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL BASIS_SUGG_T LAST_BASIS={POINT1[] "P8 ",POINT2[] "P8 ",CP_PARAMS[] "CPDAT5 ",PTP_PARAMS[] "PDAT0 ",CONT[] "C_DIS ",CP_VEL[] "2 ",PTP_VEL[] "100 ",SYNC_PARAMS[] "SYNCDAT ",SPL_NAME[] "S0 "}
DECL E6POS XP1={X 661.018616,Y -1120.05701,Z 983.145325,A -60.8549194,B 0.668700576,C 0.0650226921,S 22,T 26,E1 59.9508209,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FP1={TOOL_NO 1,BASE_NO 18,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT1={VEL 2.0,ACC 100.0,APO_DIST 1.0,APO_FAC 50.0,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0,EXAX_IGN 0}
DECL TM_SUGG_T LAST_TQM={TM_ID[] "TM4 "}
DECL TQM_TQDAT_T TM1={T11 200,T12 200,T13 200,T14 200,T15 200,T16 200,T21 1000,T22 1000,T23 1000,T24 1000,T25 1000,T26 1000,K1 300,K2 300,K3 300,K4 300,K5 299,K6 301,O1 20,O2 30,ID 1,OVM 0,TMF 1.0}
DECL E6POS XP2={X 661.018616,Y -1120.05701,Z 983.145325,A -60.8549194,B 0.668700576,C 0.0650226921,S 22,T 26,E1 -28.4577293,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL E6POS XP3={X 661.018616,Y -1120.05701,Z 983.145325,A -60.8549194,B 0.668700576,C 0.0650226921,S 22,T 26,E1 -140.647003,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FP3={TOOL_NO 1,BASE_NO 18,IPO_FRAME #BASE,POINT2[] "XP2",TQ_STATE FALSE}
DECL LDAT LCPDAT2={VEL 2.0,ACC 100.0,APO_DIST 1.0,APO_FAC 50.0,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0,EXAX_IGN 0}
DECL TQM_TQDAT_T TM2={T11 0,T12 5,T13 9,T14 0,T15 8,T16 4,T21 4,T22 4,T23 5,T24 2,T25 5,T26 2,K1 301,K2 301,K3 300,K4 300,K5 299,K6 300,O1 20,O2 30,ID 2,OVM 50,TMF 1.0}
DECL E6POS XP4={X 661.017883,Y -1120.05798,Z 983.145325,A -60.8551292,B 0.668711483,C 0.0652224869,S 22,T 26,E1 -223.487,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL E6POS XP5={X 661.017395,Y -1120.05798,Z 983.145203,A -60.8553391,B 0.668722391,C 0.0654222965,S 22,T 26,E1 -296.364014,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FP5={TOOL_NO 1,BASE_NO 18,IPO_FRAME #BASE,POINT2[] "XP4",TQ_STATE FALSE}
DECL LDAT LCPDAT3={VEL 2.0,ACC 100.0,APO_DIST 1.0,APO_FAC 50.0,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0,EXAX_IGN 0}
DECL TQM_TQDAT_T TM3={T11 0,T12 7,T13 9,T14 1,T15 8,T16 4,T21 5,T22 4,T23 4,T24 2,T25 5,T26 2,K1 300,K2 301,K3 300,K4 300,K5 299,K6 300,O1 20,O2 30,ID 3,OVM 50,TMF 1.0}
DECL E6POS XP6={X 661.017212,Y -1120.05798,Z 983.147217,A -60.8553391,B 0.668603599,C 0.0654263124,S 22,T 26,E1 -318.408905,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FP6={TOOL_NO 1,BASE_NO 18,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT4={VEL 2.0,ACC 100.0,APO_DIST 1.0,APO_FAC 50.0,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0,EXAX_IGN 0}
DECL TQM_TQDAT_T TM4={T11 0,T12 7,T13 9,T14 1,T15 8,T16 3,T21 4,T22 2,T23 4,T24 1,T25 4,T26 3,K1 300,K2 300,K3 301,K4 300,K5 299,K6 300,O1 20,O2 30,ID 4,OVM 50,TMF 1.0}
DECL LDAT LCPDAT5={VEL 2.0,ACC 100.0,APO_DIST 5.0,APO_FAC 50.0,ORI_TYP #VAR}
DECL E6POS XP7={X -293.603088,Y 151.271896,Z 290.531311,A -0.519257426,B -0.585869491,C -89.893013,S 22,T 26,E1 -0.131835893,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL E6POS XP8={X -293.221191,Y -152.010895,Z 290.531311,A 54.1424294,B -0.585869491,C -89.893013,S 22,T 26,E1 -54.7935295,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FP8={TOOL_NO 1,BASE_NO 17,IPO_FRAME #BASE,POINT2[] "XP7",TQ_STATE FALSE}
DECL PDAT PPDAT1={VEL 100.0,ACC 40.0,APO_DIST 100.0,APO_MODE #CPTP}
DECL LDAT LCPDAT6={VEL 2.0,ACC 100.0,APO_DIST 1.0,APO_FAC 50.0,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0,EXAX_IGN 0}
ENDDAT
Display More
.SRC:
DEF RotaTest( )
;FOLD INI
;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)
;ENDFOLD (INI)
;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%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
;FOLD LIN P1 CONT Vel=2 m/s CPDAT6 Tool[1]:Laser Base[18]:Vertikal;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P1, 3:C_DIS, 5:2, 7:CPDAT6
$BWDSTART=FALSE
LDAT_ACT=LCPDAT6
FDAT_ACT=FP1
BAS(#CP_PARAMS,2)
LIN XP1 C_DIS
;ENDFOLD
;FOLD CIRC P2 P3 CONT Vel=2 m/s CPDAT2 Tool[1]:Laser Base[18]:Vertikal;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VCIRC,%P 1:CIRC, 2:P2, 3:P3, 4:C_DIS, 6:2, 8:CPDAT2
$BWDSTART=FALSE
LDAT_ACT=LCPDAT2
FDAT_ACT=FP3
BAS(#CP_PARAMS,2)
CIRC XP2, XP3 C_DIS
;ENDFOLD
;FOLD CIRC P4 P5 CONT Vel=2 m/s CPDAT3 Tool[1]:Laser Base[18]:Vertikal;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VCIRC,%P 1:CIRC, 2:P4, 3:P5, 4:C_DIS, 6:2, 8:CPDAT3
$BWDSTART=FALSE
LDAT_ACT=LCPDAT3
FDAT_ACT=FP5
BAS(#CP_PARAMS,2)
CIRC XP4, XP5 C_DIS
;ENDFOLD
;FOLD LIN P6 CONT Vel=2 m/s CPDAT4 Tool[1]:Laser Base[18]:Vertikal;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P6, 3:C_DIS, 5:2, 7:CPDAT4
$BWDSTART=FALSE
LDAT_ACT=LCPDAT4
FDAT_ACT=FP6
BAS(#CP_PARAMS,2)
LIN XP6 C_DIS
;ENDFOLD
;LIN {E1 30} C_DIS
;LIN {E1 -50} C_DIS
;LIN {E1 -120} C_DIS
;LIN {E1 -190} C_DIS
;LIN {E1 -260} C_DIS
;LIN {E1 -270} C_DIS
;FOLD PTP HOME Vel=100 % DEFAULT;%{PE}%R 5.6.13,%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
END
Display More
As you can tell I have also tried with only LIN (OUT-commented in the end). And yes, CONT is used for every motion and I have tried changing the approximated distance in CONT. Also I have tried putting in a LIN after the last movement, because I have been told CONT doesn't work well with PTP.
Since I know these movement works on the other robot, I have an idea that it is my teach points that are incorrect, but when I tried to have the exact same relationship between my LIN and CIRC and my AUX and END_point in my CIRC movements as the other robot, it still stopped between every motion.
Let me know if any info is missing. Thank you in advance.