更新KUKA程序

This commit is contained in:
zhusenlin
2026-02-06 19:32:09 +08:00
parent fdd197f9cd
commit bdc205a668
77 changed files with 10688 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
&ACCESS RV
DEF ActionReturn (nRet:IN )
DECL INT nRet
END_POS=$POS_ACT
Q_CmdCountRet=CmdCountLast
Q_CmdResult=nRet
Q_CmdRet=CmdSave
Q_Cmd_Running=0
END

View File

@@ -0,0 +1,16 @@
&ACCESS RV
DEFDAT CONFIG PUBLIC
GLOBAL INT PdtTypeLast=0
GLOBAL INT CmdCountLast=5
GLOBAL INT CmdSave=10
GLOBAL INT OffsetX_Save=0
GLOBAL INT OffsetY_Save=0
GLOBAL INT CountX_Save=1
GLOBAL INT CountY_Save=4
GLOBAL BOOL ConfMessSave=FALSE
DECL GLOBAL E6POS END_POS={X 3447.50732,Y 2180.00269,Z 1194.16223,A 179.028702,B -19.9683552,C 89.8567,S 6,T 19,E1 3545.58130,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
ENDDAT

View File

@@ -0,0 +1,10 @@
&ACCESS RV
DEF GripClose ( )
Q_GripPosIndex=102
Q_GripPosCount=I_GripPosCountRet+1
IF Q_GripPosCount>1000 THEN
Q_GripPosCount=1
ENDIF
WAIT FOR (I_GripPosIndexRet==Q_GripPosIndex) AND (I_GripPosCountRet==Q_GripPosCount) AND I_GripClose
END

View File

@@ -0,0 +1,11 @@
&ACCESS RV
DEF GripOpen ( )
Q_GripPosIndex=101
Q_GripPosCount=I_GripPosCountRet+1
IF Q_GripPosCount>1000 THEN
Q_GripPosCount=1
ENDIF
WAIT FOR (I_GripPosIndexRet==Q_GripPosIndex) AND (I_GripPosCountRet==Q_GripPosCount) AND I_GripOpen
END

View File

@@ -0,0 +1,13 @@
&ACCESS RV
DEFDAT HomeModule
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
ENDDAT

View File

@@ -0,0 +1,27 @@
&ACCESS RV
DEF HomeModule ( )
;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)
;ENDFOLD (INI)
PTP $POS_ACT
IF $POS_ACT.Z<1600 THEN
LIN {Z 1600}
ENDIF
;FOLD SPTP HOME Vel=100 % DEFAULT ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=DEFAULT; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XHOME WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FHOME), $BASE = SBASE(FHOME.BASE_NO), $IPO_MODE = SIPO_MODE(FHOME.IPO_FRAME), $LOAD = SLOAD(FHOME.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PDEFAULT), $APO = SAPO_PTP(PDEFAULT), $GEAR_JERK[1] = SGEAR_JERK(PDEFAULT), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
END

View File

@@ -0,0 +1,14 @@
&ACCESS RVO
&REL 1
DEFDAT MainModule
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
ENDDAT

View File

@@ -0,0 +1,75 @@
&ACCESS RVO
&REL 1
DEF MainModule()
;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS == TRUE DO IR_STOPM()
INTERRUPT ON 3
;ENDFOLD
;FOLD USER INI
;Make your modifications here
;ENDFOLD
;ENDFOLD
$CYCFLAG[1]=(I_GripSafty1 == FALSE) OR (I_GripSafty2==FALSE)
INTERRUPT DECL 24 WHEN $CYCFLAG[1] DO StopSafty()
INTERRUPT ON 24
;FOLD PTP $POS_ACT Tool[0] Base[0]
BAS(#INITMOV, 0)
BAS(#BASE, 0)
BAS(#TOOL, 0)
PTP $POS_ACT
;ENDFOLD
$ov_pro=40
LOOP
AutoRun()
ENDLOOP
END
DEF AutoRun()
IF I_ProductType <> PdtTypeLast THEN
MsgNotify("PdtType is Change", "SafeErr")
Q_Error1=TRUE
$FLAG[10]=TRUE
HALT
ENDIF
PdtTypeLast=I_ProductType
WAIT FOR (I_Cmd > 0) AND (I_CmdCount <> CmdCountLast) AND (Q_Cmd_Running==0)
CmdSave = I_Cmd
CmdCountLast = I_CmdCount
Q_Cmd_Running=CmdSave
OffsetX_Save=I_OffsetX
OffsetY_Save=I_OffsetY
CountX_Save=I_CountX
CountY_Save=I_CountY
SWITCH CmdSave
CASE 1
FeedBelt1Pick()
CASE 2
FeedBelt2Pick()
CASE 3
ReFeedBeltPick()
CASE 4
WaterBeltPick()
CASE 5
NgBeltPlace()
CASE 10
Pallet1Place()
CASE 11
Pallet2Place()
ENDSWITCH
END
DEF StopSafty()
INTERRUPT OFF 24
BRAKE F
PTP $POS_INT:{z 20}
$FLAG[10]=TRUE
INTERRUPT ON 24
END

View File

@@ -0,0 +1,19 @@
&ACCESS RVO
DEFFCT BOOL CheckInPos (R_offset:IN,EndPos:IN )
DECL REAL R_offset
DECL BOOL b_Pok
DECL E6POS ACT_Point
DECL E6POS EndPos
ACT_Point = $POS_ACT
IF (ABS(ACT_Point.X - EndPos.X) > R_offset) OR (ABS(ACT_Point.Y - EndPos.Y) > R_offset) OR (ABS(ACT_Point.Z - EndPos.Z) > R_offset) OR (ABS(ACT_Point.A - EndPos.A) > 0.5) OR (ABS(ACT_Point.B - EndPos.B) > 0.5) OR (ABS(ACT_Point.C - EndPos.C) > 0.5) OR (ABS(ACT_Point.E1 - EndPos.E1) > R_offset) THEN
b_Pok=FALSE
ELSE
b_Pok=TRUE
ENDIF
IF NOT b_Pok THEN
MsgNotify("CheckInPosError", "OutArea", , , 1)
;HALT
ENDIF
RETURN b_Pok
ENDFCT

View File

@@ -0,0 +1,12 @@
&ACCESS RVO
DEFFCT CHAR[32] INT_TO_STR(iVal:IN)
DECL INT iVal,I,offset
DECL CHAR Ret[32]
DECL STATE_T state
offset=0
FOR I=1 TO 32
Ret[I]=0
ENDFOR
SWRITE(Ret[],state,offset,"%d",iVal)
Return (Ret[])
ENDFCT

View File

@@ -0,0 +1,12 @@
&ACCESS RV
DEF Initmove ( )
CONTINUE
IF ($T1 OR $T2) AND NOT $NEAR_POSRET THEN
CONTINUE
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
CONTINUE
PTP $POS_ACT C_DIS
ENDIF
END

View File

@@ -0,0 +1,64 @@
&ACCESS RV
&REL 1
DEFFCT E6POS OffsetByBase(Position:IN, rRelX:IN, rRelY:IN, rRelZ:IN, rRelA:IN, rRelB:IN, rRelC:IN)
DECL E6POS Position, rPosition
DECL REAL rRelX, rRelY, rRelZ, rRelA, rRelB, rRelC
DECL FRAME FrameTrans, FrameRot, PosTrans, PosRot
IF VARSTATE("rRelX") <> #INITIALIZED THEN
rRelX = 0
ENDIF
IF VARSTATE("rRelY") <> #INITIALIZED THEN
rRelY = 0
ENDIF
IF VARSTATE("rRelZ") <> #INITIALIZED THEN
rRelZ = 0
ENDIF
IF VARSTATE("rRelA") <> #INITIALIZED THEN
rRelA = 0
ENDIF
IF VARSTATE("rRelB") <> #INITIALIZED THEN
rRelB = 0
ENDIF
IF VARSTATE("rRelC") <> #INITIALIZED THEN
rRelC = 0
ENDIF
rPosition = Position
FrameTrans = $NULLFRAME
FrameTrans.X = rRelX
FrameTrans.Y = rRelY
FrameTrans.Z = rRelZ
FrameRot = $NULLFRAME
FrameRot.A = rRelA
FrameRot.B = rRelB
FrameRot.C = rRelC
PosTrans = $NULLFRAME
PosTrans.X = rPosition.X
PosTrans.y = rPosition.Y
PosTrans.Z = rPosition.Z
PosRot = $NULLFRAME
PosRot.A = rPosition.A
PosRot.B = rPosition.B
PosRot.C = rPosition.C
;Positionstransformation durchfuehren
rPosition = FrameTrans:PosTrans:FrameRot:PosRot
;Status & Turn der Originalposition uebernehmen
;Werte der externen Achse der Orignalposition
;uebernehmen
rPosition.E1 = Position.E1
rPosition.E2 = Position.E2
rPosition.E3 = Position.E3
rPosition.E4 = Position.E4
rPosition.E5 = Position.E5
rPosition.E6 = Position.E6
RETURN(rPosition)
ENDFCT

View File

@@ -0,0 +1,45 @@
&ACCESS RV
&REL 1
DEFFCT E6POS OffsetByTool(Position:IN, rRelX:IN, rRelY:IN, rRelZ:IN, rRelA:IN, rRelB:IN, rRelC:IN)
DECL E6POS Position,rPosition
DECL REAL rRelX, rRelY, rRelZ, rRelA, rRelB, rRelC
DECL FRAME FrameTmp
IF VARSTATE("rRelX") <> #INITIALIZED THEN
rRelX = 0
ENDIF
IF VARSTATE("rRelY") <> #INITIALIZED THEN
rRelY = 0
ENDIF
IF VARSTATE("rRelZ") <> #INITIALIZED THEN
rRelZ = 0
ENDIF
IF VARSTATE("rRelA") <> #INITIALIZED THEN
rRelA = 0
ENDIF
IF VARSTATE("rRelB") <> #INITIALIZED THEN
rRelB = 0
ENDIF
IF VARSTATE("rRelC") <> #INITIALIZED THEN
rRelC = 0
ENDIF
FrameTmp = $NULLFRAME
FrameTmp.X = rRelX
FrameTmp.Y = rRelY
FrameTmp.Z = rRelZ
FrameTmp.A = rRelA
FrameTmp.B = rRelB
FrameTmp.C = rRelC
rPosition = Position:FrameTmp
rPosition.E1 = Position.E1
rPosition.E2 = Position.E2
rPosition.E3 = Position.E3
rPosition.E4 = Position.E4
rPosition.E5 = Position.E5
rPosition.E6 = Position.E6
RETURN(rPosition)
ENDFCT

View File

@@ -0,0 +1,19 @@
&ACCESS RV
DEFFCT INT REAL_TO_Output (rVal:IN )
DECL REAL rVal
DECL INT Offset,Ret
DECL INT INTS[4]
DECL CHAR Bytes[4]
Offset=0
Ret=0
CAST_TO(Bytes[],Offset,rVal)
INTS[1] = Bytes[1]
INTS[2] = Bytes[2]
INTS[2] = INTS[2]*256
INTS[3] = Bytes[3]
INTS[3] = INTS[3]*65536
INTS[4] = Bytes[4]
INTS[4] = INTS[4]*16777216
Ret=INTS[1]+INTS[2]+INTS[3]+INTS[4]
RETURN Ret
ENDFCT

View File

@@ -0,0 +1,22 @@
&ACCESS RVO
DEFFCT CHAR[32] REAL_TO_STR(iVal:IN)
DECL REAL iVal
DECL INT I,offset
DECL CHAR Ret[32]
DECL STATE_T state
offset=0
FOR I=1 TO 32
Ret[I]=0
ENDFOR
SWRITE(Ret[],state,offset,"%.3f",iVal)
Return (Ret[])
ENDFCT

View File

@@ -0,0 +1,24 @@
&ACCESS RV
DEFDAT FEEDBELT1PICK
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PickH; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT1; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2= "}
DECL FDAT FPickH={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPickH={X 1797.49475,Y 1360.66516,Z 1167.60986,A -165.399490,B -1.87913013,C 179.432770,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPick={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPick={X 1797.49475,Y 1360.66516,Z 667.609802,A -165.399490,B -1.87913013,C 179.432770,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,44 @@
&ACCESS RV
DEF FeedBelt1Pick ( )
;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)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPickH=XPick
XPickH.Z=XPick.Z+500
;FOLD SPTP PickH CONT Vel=100 % PDAT1 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XPickH WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FPickH), $BASE = SBASE(FPickH.BASE_NO), $IPO_MODE = SIPO_MODE(FPickH.IPO_FRAME), $LOAD = SLOAD(FPickH.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
;ENDFOLD
CONTINUE
WAIT FOR I_GripOpen AND I_Signal1 AND I_AreaReady1 AND I_AreaReady4 AND NOT I_GripExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter1=TRUE
;FOLD SLIN Pick Vel=2 m/s CPDAT1 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPick WITH $VEL = SVEL_CP(2.0, , LCPDAT1), $TOOL = STOOL2(FPick), $BASE = SBASE(FPick.BASE_NO), $IPO_MODE = SIPO_MODE(FPick.IPO_FRAME), $LOAD = SLOAD(FPick.TOOL_NO), $ACC = SACC_CP(LCPDAT1), $ORI_TYPE = SORI_TYP(LCPDAT1), $APO = SAPO(LCPDAT1), $JERK = SJERK(LCPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
GripClose()
;FOLD SLIN PickH Vel=2 m/s CPDAT2 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPickH WITH $VEL = SVEL_CP(2.0, , LCPDAT2), $TOOL = STOOL2(FPickH), $BASE = SBASE(FPickH.BASE_NO), $IPO_MODE = SIPO_MODE(FPickH.IPO_FRAME), $LOAD = SLOAD(FPickH.TOOL_NO), $ACC = SACC_CP(LCPDAT2), $ORI_TYPE = SORI_TYP(LCPDAT2), $APO = SAPO(LCPDAT2), $JERK = SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
Q_AreaEnter1=FALSE
ActionReturn(1)
END

View File

@@ -0,0 +1,22 @@
&ACCESS RV
DEFDAT FeedBelt2Pick
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL LDAT LCPDAT2={CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}},APO_FAC 50.0,APO_DIST 500,AXIS_ACC 100.0,AXIS_VEL 100.0,CIRC_TYP #BASE,JERK_FAC 50.0,ORI_TYP #VAR,VEL 2,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL FDAT FPick_1={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL LDAT LCPDAT1={CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}},APO_FAC 50.0,APO_DIST 500,AXIS_ACC 100.0,AXIS_VEL 100.0,CIRC_TYP #BASE,JERK_FAC 50.0,ORI_TYP #VAR,VEL 2,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL PDAT PPDAT1={APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL FDAT FPickH={BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL MODULEPARAM_T LAST_TP_PARAMS = {PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PickH; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT1; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2= "}
DECL E6POS XPickH = {A -165.39949,B -1.87913013,C 179.43277,S 2,T 43,X 1797.49475,Y 1360.66516,Z 1167.60986,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL E6POS XPick = {A -165.39949,B -1.87913013,C 179.43277,S 2,T 43,X 1797.49475,Y 1360.66516,Z 667.609802,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT FPick = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
ENDDAT

View File

@@ -0,0 +1,45 @@
&ACCESS RV
DEF FeedBelt2Pick ( )
;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)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPickH=XPick
XPickH.Z=XPick.Z+500
;FOLD SPTP PickH CONT Vel=100 % PDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XPickH WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FPickH), $BASE = SBASE(FPickH.BASE_NO), $IPO_MODE = SIPO_MODE(FPickH.IPO_FRAME), $LOAD = SLOAD(FPickH.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
;ENDFOLD
CONTINUE
WAIT FOR I_GripOpen AND I_Signal2 AND I_AreaReady1 AND I_AreaReady4 AND NOT I_GripExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter1=TRUE
;FOLD SLIN Pick Vel=2 m/s CPDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPick WITH $VEL = SVEL_CP(2.0, , LCPDAT1), $TOOL = STOOL2(FPick), $BASE = SBASE(FPick.BASE_NO), $IPO_MODE = SIPO_MODE(FPick.IPO_FRAME), $LOAD = SLOAD(FPick.TOOL_NO), $ACC = SACC_CP(LCPDAT1), $ORI_TYPE = SORI_TYP(LCPDAT1), $APO = SAPO(LCPDAT1), $JERK = SJERK(LCPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
GripClose()
;FOLD SLIN PickH Vel=2 m/s CPDAT2 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPickH WITH $VEL = SVEL_CP(2.0, , LCPDAT2), $TOOL = STOOL2(FPickH), $BASE = SBASE(FPickH.BASE_NO), $IPO_MODE = SIPO_MODE(FPickH.IPO_FRAME), $LOAD = SLOAD(FPickH.TOOL_NO), $ACC = SACC_CP(LCPDAT2), $ORI_TYPE = SORI_TYP(LCPDAT2), $APO = SAPO(LCPDAT2), $JERK = SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
Q_AreaEnter1=FALSE
ActionReturn(1)
END

View File

@@ -0,0 +1,23 @@
&ACCESS RV
DEFDAT NgBeltPlace
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS = {PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PlaceH; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT2; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=True; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2= "}
DECL FDAT FPlaceH={BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlaceH={X 1800.64709,Y -146.362045,Z 1228.85449,A -165.397675,B -1.88142359,C 179.427,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPlace={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlace={X 1800.64709,Y -146.362045,Z 728.854492,A -165.397675,B -1.88142359,C 179.427,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}},APO_FAC 50.0,APO_DIST 500,AXIS_ACC 100.0,AXIS_VEL 100.0,CIRC_TYP #BASE,JERK_FAC 50.0,ORI_TYP #VAR,VEL 2,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FHOME1 = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,52 @@
&ACCESS RV
DEF NgBeltPlace ( )
;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)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPlaceH=XPlace
XPlaceH.Z=XPlace.Z+500
;FOLD SPTP PlaceH CONT Vel=100 % PDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XPlaceH WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FPlaceH), $BASE = SBASE(FPlaceH.BASE_NO), $IPO_MODE = SIPO_MODE(FPlaceH.IPO_FRAME), $LOAD = SLOAD(FPlaceH.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
;ENDFOLD
CONTINUE
WAIT FOR I_AreaReady4 AND NOT I_Signal5 AND NOT I_GripBelowExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter2=TRUE
;FOLD SLIN Place Vel=2 m/s CPDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=Place; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPlace WITH $VEL = SVEL_CP(2.0, , LCPDAT1), $TOOL = STOOL2(FPlace), $BASE = SBASE(FPlace.BASE_NO), $IPO_MODE = SIPO_MODE(FPlace.IPO_FRAME), $LOAD = SLOAD(FPlace.TOOL_NO), $ACC = SACC_CP(LCPDAT1), $ORI_TYPE = SORI_TYP(LCPDAT1), $APO = SAPO(LCPDAT1), $JERK = SJERK(LCPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
GripOpen()
;FOLD SLIN PlaceH CONT Vel=2 m/s CPDAT2 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=True; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPlaceH WITH $VEL = SVEL_CP(2.0, , LCPDAT2), $TOOL = STOOL2(FPlaceH), $BASE = SBASE(FPlaceH.BASE_NO), $IPO_MODE = SIPO_MODE(FPlaceH.IPO_FRAME), $LOAD = SLOAD(FPlaceH.TOOL_NO), $ACC = SACC_CP(LCPDAT2), $ORI_TYPE = SORI_TYP(LCPDAT2), $APO = SAPO(LCPDAT2), $JERK = SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
;ENDFOLD
CONTINUE
Q_AreaEnter2=FALSE
;FOLD SPTP HOME1 Vel=100 % PDAT2 ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME1; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XHOME1 WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FHOME1), $BASE = SBASE(FHOME1.BASE_NO), $IPO_MODE = SIPO_MODE(FHOME1.IPO_FRAME), $LOAD = SLOAD(FHOME1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT2), $APO = SAPO_PTP(PPDAT2), $GEAR_JERK[1] = SGEAR_JERK(PPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
ActionReturn(1)
END

View File

@@ -0,0 +1,26 @@
&ACCESS RV
DEFDAT PALLET1PLACE
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS = {PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PlaceH; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT2; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2="}
DECL FDAT FPlaceH={BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlaceH={X 1800.64709,Y -146.362045,Z 1228.85449,A -165.397675,B -1.88142359,C 179.427,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPlace={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlace={X 1800.64709,Y -146.362045,Z 728.854492,A -165.397675,B -1.88142359,C 179.427,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}},APO_FAC 50.0,APO_DIST 500,AXIS_ACC 100.0,AXIS_VEL 100.0,CIRC_TYP #BASE,JERK_FAC 50.0,ORI_TYP #VAR,VEL 2,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FHOME1 = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,53 @@
&ACCESS RV
DEF Pallet1Place ( )
;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)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPlace=XPallet1PlaceB
XPlace.X=XPallet1PlaceB.X - CountY_Save*OffsetY_Save
XPlace.Y=XPallet1PlaceB.Y - CountX_Save*OffsetX_Save
XPlaceH=XPlace
XPlaceH.Z=XPlace.Z+500
;FOLD SPTP PlaceH CONT Vel=100 % PDAT1 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XPlaceH WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FPlaceH), $BASE = SBASE(FPlaceH.BASE_NO), $IPO_MODE = SIPO_MODE(FPlaceH.IPO_FRAME), $LOAD = SLOAD(FPlaceH.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
;ENDFOLD
CONTINUE
WAIT FOR I_AreaReady2 AND NOT I_GripBelowExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter2=TRUE
;FOLD SLIN Place Vel=2 m/s CPDAT1 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=Place; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPlace WITH $VEL = SVEL_CP(2.0, , LCPDAT1), $TOOL = STOOL2(FPlace), $BASE = SBASE(FPlace.BASE_NO), $IPO_MODE = SIPO_MODE(FPlace.IPO_FRAME), $LOAD = SLOAD(FPlace.TOOL_NO), $ACC = SACC_CP(LCPDAT1), $ORI_TYPE = SORI_TYP(LCPDAT1), $APO = SAPO(LCPDAT1), $JERK = SJERK(LCPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
GripOpen()
;FOLD SLIN PlaceH CONT Vel=2 m/s CPDAT2 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=True; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPlaceH WITH $VEL = SVEL_CP(2.0, , LCPDAT2), $TOOL = STOOL2(FPlaceH), $BASE = SBASE(FPlaceH.BASE_NO), $IPO_MODE = SIPO_MODE(FPlaceH.IPO_FRAME), $LOAD = SLOAD(FPlaceH.TOOL_NO), $ACC = SACC_CP(LCPDAT2), $ORI_TYPE = SORI_TYP(LCPDAT2), $APO = SAPO(LCPDAT2), $JERK = SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
;ENDFOLD
CONTINUE
Q_AreaEnter2=FALSE
;FOLD SPTP HOME1 Vel=100 % PDAT2 ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME1; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XHOME1 WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FHOME1), $BASE = SBASE(FHOME1.BASE_NO), $IPO_MODE = SIPO_MODE(FHOME1.IPO_FRAME), $LOAD = SLOAD(FHOME1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT2), $APO = SAPO_PTP(PPDAT2), $GEAR_JERK[1] = SGEAR_JERK(PPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
ActionReturn(1)
END

View File

@@ -0,0 +1,23 @@
&ACCESS RV
DEFDAT Pallet2Place
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS = {PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PlaceH; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT2; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2="}
DECL FDAT FPlaceH={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlaceH={X 1800.64709,Y -146.362045,Z 1228.85449,A -165.397675,B -1.88142359,C 179.427,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPlace={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPlace={X 1800.64709,Y -146.362045,Z 728.854492,A -165.397675,B -1.88142359,C 179.427,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
DECL FDAT FHOME1 = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,53 @@
&ACCESS RV
DEF Pallet2Place ( )
;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)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPlace=XPallet1PlaceB
XPlace.X=XPallet1PlaceB.X - CountY_Save*OffsetY_Save
XPlace.Y=XPallet1PlaceB.Y - CountX_Save*OffsetX_Save
XPlaceH=XPlace
XPlaceH.Z=XPlace.Z+500
;FOLD SPTP PlaceH CONT Vel=100 % PDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XPlaceH WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FPlaceH), $BASE = SBASE(FPlaceH.BASE_NO), $IPO_MODE = SIPO_MODE(FPlaceH.IPO_FRAME), $LOAD = SLOAD(FPlaceH.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
;ENDFOLD
CONTINUE
WAIT FOR I_AreaReady2 AND NOT I_GripBelowExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter2=TRUE
;FOLD SLIN Place Vel=2 m/s CPDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=Place; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPlace WITH $VEL = SVEL_CP(2.0, , LCPDAT1), $TOOL = STOOL2(FPlace), $BASE = SBASE(FPlace.BASE_NO), $IPO_MODE = SIPO_MODE(FPlace.IPO_FRAME), $LOAD = SLOAD(FPlace.TOOL_NO), $ACC = SACC_CP(LCPDAT1), $ORI_TYPE = SORI_TYP(LCPDAT1), $APO = SAPO(LCPDAT1), $JERK = SJERK(LCPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
GripOpen()
;FOLD SLIN PlaceH Vel=2 m/s CPDAT2 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PlaceH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPlaceH WITH $VEL = SVEL_CP(2.0, , LCPDAT2), $TOOL = STOOL2(FPlaceH), $BASE = SBASE(FPlaceH.BASE_NO), $IPO_MODE = SIPO_MODE(FPlaceH.IPO_FRAME), $LOAD = SLOAD(FPlaceH.TOOL_NO), $ACC = SACC_CP(LCPDAT2), $ORI_TYPE = SORI_TYP(LCPDAT2), $APO = SAPO(LCPDAT2), $JERK = SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
CONTINUE
Q_AreaEnter2=FALSE
;FOLD SPTP HOME1 Vel=100 % PDAT2 ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME1; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XHOME1 WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FHOME1), $BASE = SBASE(FHOME1.BASE_NO), $IPO_MODE = SIPO_MODE(FHOME1.IPO_FRAME), $LOAD = SLOAD(FHOME1.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT2), $APO = SAPO_PTP(PPDAT2), $GEAR_JERK[1] = SGEAR_JERK(PPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
ActionReturn(1)
END

View File

@@ -0,0 +1,21 @@
&ACCESS RV
&REL 7
&PARAM DISKPATH = KRC:\R1\Program\TP
DEFDAT POSBASE PUBLIC
;***************************************************
; *
;***************************************************
DECL GLOBAL E6POS XPallet1PlaceB={X 1800.64709,Y -146.362045,Z 728.854492,A -165.397675,B -1.88142359,C 179.427,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XPallet2PlaceB={X 1800.64709,Y -146.362045,Z 728.854492,A -165.397675,B -1.88142359,C 179.427,S 2,T 2,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XFeedBelt1Pick={X 1797.49475,Y 1360.66516,Z 667.609802,A -165.399490,B -1.87913013,C 179.432770,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XFeedBelt2Pick={X 1797.49353,Y 1360.66553,Z 667.598755,A -165.400482,B -1.87961507,C 179.432861,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XNgBeltPlace={X 1797.49353,Y 1360.66553,Z 667.598755,A -165.400482,B -1.87961507,C 179.432861,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XWaterBeltPick={X 1797.49353,Y 1360.66553,Z 667.598755,A -165.400482,B -1.87961507,C 179.432861,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL GLOBAL E6POS XReFeedBeltPick={X 1797.49353,Y 1360.66553,Z 667.598755,A -165.400482,B -1.87961507,C 179.432861,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
ENDDAT

View File

@@ -0,0 +1,23 @@
&ACCESS RV
DEFDAT ReFeedBeltPick
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PickH; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT1; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2= "}
DECL FDAT FPickH={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPickH={X 1797.49475,Y 1360.66516,Z 1167.60986,A -165.399490,B -1.87913013,C 179.432770,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPick={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPick={X 1797.49475,Y 1360.66516,Z 667.609802,A -165.399490,B -1.87913013,C 179.432770,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,44 @@
&ACCESS RV
DEF ReFeedBeltPick ( )
;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)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPickH=XPick
XPickH.Z=XPick.Z+500
;FOLD SPTP PickH CONT Vel=100 % PDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XPickH WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FPickH), $BASE = SBASE(FPickH.BASE_NO), $IPO_MODE = SIPO_MODE(FPickH.IPO_FRAME), $LOAD = SLOAD(FPickH.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
;ENDFOLD
CONTINUE
WAIT FOR I_GripOpen AND I_Signal1 AND I_AreaReady1 AND I_AreaReady4 AND NOT I_GripExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter1=TRUE
;FOLD SLIN Pick Vel=2 m/s CPDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPick WITH $VEL = SVEL_CP(2.0, , LCPDAT1), $TOOL = STOOL2(FPick), $BASE = SBASE(FPick.BASE_NO), $IPO_MODE = SIPO_MODE(FPick.IPO_FRAME), $LOAD = SLOAD(FPick.TOOL_NO), $ACC = SACC_CP(LCPDAT1), $ORI_TYPE = SORI_TYP(LCPDAT1), $APO = SAPO(LCPDAT1), $JERK = SJERK(LCPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
GripClose()
;FOLD SLIN PickH Vel=2 m/s CPDAT2 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPickH WITH $VEL = SVEL_CP(2.0, , LCPDAT2), $TOOL = STOOL2(FPickH), $BASE = SBASE(FPickH.BASE_NO), $IPO_MODE = SIPO_MODE(FPickH.IPO_FRAME), $LOAD = SLOAD(FPickH.TOOL_NO), $ACC = SACC_CP(LCPDAT2), $ORI_TYPE = SORI_TYP(LCPDAT2), $APO = SAPO(LCPDAT2), $JERK = SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
Q_AreaEnter1=FALSE
ActionReturn(1)
END

View File

@@ -0,0 +1,23 @@
&ACCESS RV
DEFDAT WaterBeltPick
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.MovementParameterFieldEnabled=True; Kuka.IsAngleEnabled=False; Kuka.PointName=PickH; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT1; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataName=CPDAT2; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.VelocityPath=2; Kuka.FrameData.point2= "}
DECL FDAT FPickH={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPickH={X 1797.49475,Y 1360.66516,Z 1167.60986,A -165.399490,B -1.87913013,C 179.432770,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT1={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL FDAT FPick={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " "}
DECL E6POS XPick={X 1797.49475,Y 1360.66516,Z 667.609802,A -165.399490,B -1.87913013,C 179.432770,S 2,T 43,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000,APO_FAC 50.0000,AXIS_VEL 100.000,AXIS_ACC 100.000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000,GEAR_JERK 100.000,EXAX_IGN 0,CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 500.000,APO_MODE #CDIS,GEAR_JERK 100.000,EXAX_IGN 0}
ENDDAT

View File

@@ -0,0 +1,44 @@
&ACCESS RV
DEF WaterBeltPick ( )
;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)
;ENDFOLD (INI)
WAIT FOR $IN_HOME OR $IN_HOME1 OR $IN_HOME2 OR CheckInPos(20.0, END_POS)
XPickH=XPick
XPickH.Z=XPick.Z+500
;FOLD SPTP PickH CONT Vel=100 % PDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XPickH WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FPickH), $BASE = SBASE(FPickH.BASE_NO), $IPO_MODE = SIPO_MODE(FPickH.IPO_FRAME), $LOAD = SLOAD(FPickH.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
;ENDFOLD
CONTINUE
WAIT FOR I_GripOpen AND I_Signal1 AND I_AreaReady1 AND I_AreaReady4 AND NOT I_GripExist AND I_GripSafty1 AND I_GripSafty2
CONTINUE
Q_AreaEnter1=TRUE
;FOLD SLIN Pick Vel=2 m/s CPDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPick WITH $VEL = SVEL_CP(2.0, , LCPDAT1), $TOOL = STOOL2(FPick), $BASE = SBASE(FPick.BASE_NO), $IPO_MODE = SIPO_MODE(FPick.IPO_FRAME), $LOAD = SLOAD(FPick.TOOL_NO), $ACC = SACC_CP(LCPDAT1), $ORI_TYPE = SORI_TYP(LCPDAT1), $APO = SAPO(LCPDAT1), $JERK = SJERK(LCPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
GripClose()
;FOLD SLIN PickH Vel=2 m/s CPDAT2 Tool[1]:Tool1 Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PickH; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XPickH WITH $VEL = SVEL_CP(2.0, , LCPDAT2), $TOOL = STOOL2(FPickH), $BASE = SBASE(FPickH.BASE_NO), $IPO_MODE = SIPO_MODE(FPickH.IPO_FRAME), $LOAD = SLOAD(FPickH.TOOL_NO), $ACC = SACC_CP(LCPDAT2), $ORI_TYPE = SORI_TYP(LCPDAT2), $APO = SAPO(LCPDAT2), $JERK = SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
Q_AreaEnter1=FALSE
ActionReturn(1)
END

View File

@@ -0,0 +1,44 @@
&ACCESS RVO
&COMMENT USER specified PLC program
&ACCESS RVP
&COMMENT USER specified PLC program
DEF PLC ( )
DECL STATE_T STAT
DECL MODUS_T MODE
LOOP
IF $FLAG[10] THEN
CWRITE($CMD,STAT,MODE,"RESET/R1/cell()")
;CWRITE($CMD,STAT,MODE,"RESET/R1/MainModule()")
$FLAG[10]=FALSE
ENDIF
IF $FLAG[11] THEN
CWRITE($CMD,STAT,MODE,"STOP 1")
$FLAG[11]=FALSE
ENDIF
IF $FLAG[12] THEN
CWRITE($CMD,STAT,MODE,"CANCEL 1")
$FLAG[12]=FALSE
ENDIF
IF $CONF_MESS AND NOT ConfMessSave THEN
Q_Error1=FALSE
Q_Error2=FALSE
Q_Error3=FALSE
Q_Error4=FALSE
Q_Error5=FALSE
Q_Error6=FALSE
Q_Error7=FALSE
Q_Error8=FALSE
Q_Error9=FALSE
Q_Error10=FALSE
Q_Error11=FALSE
Q_Error12=FALSE
Q_Error13=FALSE
Q_Error14=FALSE
Q_Error15=FALSE
Q_Error16=FALSE
ENDIF
ConfMessSave=$CONF_MESS
ON_ERROR_PROCEED
ENDLOOP
END

View File

@@ -0,0 +1,129 @@
&ACCESS RV
&REL 1
DEFDAT SignalIO PUBLIC
;FOLD PLC_TO_KUKA
GLOBAL SIGNAL I_AreaReady1 $IN[17]
GLOBAL SIGNAL I_AreaReady2 $IN[18]
GLOBAL SIGNAL I_AreaReady3 $IN[19]
GLOBAL SIGNAL I_AreaReady4 $IN[20]
GLOBAL SIGNAL I_AreaReady5 $IN[21]
GLOBAL SIGNAL I_AreaReady6 $IN[22]
GLOBAL SIGNAL I_AreaReady7 $IN[23]
GLOBAL SIGNAL I_AreaReady8 $IN[24]
GLOBAL SIGNAL I_AreaReady9 $IN[25]
GLOBAL SIGNAL I_AreaReady10 $IN[26]
GLOBAL SIGNAL I_AreaReady11 $IN[27]
GLOBAL SIGNAL I_AreaReady12 $IN[28]
GLOBAL SIGNAL I_AreaReady13 $IN[29]
GLOBAL SIGNAL I_AreaReady14 $IN[30]
GLOBAL SIGNAL I_AreaReady15 $IN[31]
GLOBAL SIGNAL I_AreaReady16 $IN[32]
GLOBAL SIGNAL I_Signal1 $IN[33]
GLOBAL SIGNAL I_Signal2 $IN[34]
GLOBAL SIGNAL I_Signal3 $IN[35]
GLOBAL SIGNAL I_Signal4 $IN[36]
GLOBAL SIGNAL I_Signal5 $IN[37]
GLOBAL SIGNAL I_Signal6 $IN[38]
GLOBAL SIGNAL I_Signal7 $IN[39]
GLOBAL SIGNAL I_Signal8 $IN[40]
GLOBAL SIGNAL I_Signal9 $IN[41]
GLOBAL SIGNAL I_Signal10 $IN[42]
GLOBAL SIGNAL I_Signal11 $IN[43]
GLOBAL SIGNAL I_Signal12 $IN[44]
GLOBAL SIGNAL I_Signal13 $IN[45]
GLOBAL SIGNAL I_Signal14 $IN[46]
GLOBAL SIGNAL I_Signal15 $IN[47]
GLOBAL SIGNAL I_Signal16 $IN[48]
GLOBAL SIGNAL I_GripSafty1 $IN[49]
GLOBAL SIGNAL I_GripSafty2 $IN[50]
GLOBAL SIGNAL I_GripBelowExist $IN[51]
GLOBAL SIGNAL I_GripExist $IN[52]
GLOBAL SIGNAL I_GripOpen $IN[53]
GLOBAL SIGNAL I_GripClose $IN[54]
GLOBAL SIGNAL I_ProductType $IN[65] TO $IN[80]
GLOBAL SIGNAL I_Cmd $IN[81] TO $IN[96]
GLOBAL SIGNAL I_CmdCount $IN[97] TO $IN[112]
GLOBAL SIGNAL I_GripPosIndexRet $IN[113] TO $IN[128]
GLOBAL SIGNAL I_GripPosCountRet $IN[129] TO $IN[144]
GLOBAL SIGNAL I_GripPosResult $IN[145] TO $IN[160]
GLOBAL SIGNAL I_OffsetX $IN[161] TO $IN[176]
GLOBAL SIGNAL I_OffsetY $IN[177] TO $IN[192]
GLOBAL SIGNAL I_CountX $IN[193] TO $IN[208]
GLOBAL SIGNAL I_CountY $IN[209] TO $IN[224]
;ENDFOLD
;FOLD KUKA_TO_PLC
GLOBAL SIGNAL Q_PickDone $OUT[33]
GLOBAL SIGNAL Q_PlaceDone $OUT[34]
GLOBAL SIGNAL Q_InHome1 $OUT[49]
GLOBAL SIGNAL Q_InHome2 $OUT[50]
GLOBAL SIGNAL Q_InHome3 $OUT[51]
GLOBAL SIGNAL Q_InHome4 $OUT[52]
GLOBAL SIGNAL Q_InHome5 $OUT[53]
GLOBAL SIGNAL Q_InHome6 $OUT[54]
GLOBAL SIGNAL Q_InHome7 $OUT[55]
GLOBAL SIGNAL Q_InHome8 $OUT[56]
GLOBAL SIGNAL Q_InHome9 $OUT[57]
GLOBAL SIGNAL Q_InHome10 $OUT[58]
GLOBAL SIGNAL Q_InHome11 $OUT[59]
GLOBAL SIGNAL Q_InHome12 $OUT[60]
GLOBAL SIGNAL Q_InHome13 $OUT[61]
GLOBAL SIGNAL Q_InHome14 $OUT[62]
GLOBAL SIGNAL Q_InHome15 $OUT[63]
GLOBAL SIGNAL Q_InHome16 $OUT[64]
GLOBAL SIGNAL Q_AreaEnter1 $OUT[65]
GLOBAL SIGNAL Q_AreaEnter2 $OUT[66]
GLOBAL SIGNAL Q_AreaEnter3 $OUT[67]
GLOBAL SIGNAL Q_AreaEnter4 $OUT[68]
GLOBAL SIGNAL Q_AreaEnter5 $OUT[69]
GLOBAL SIGNAL Q_AreaEnter6 $OUT[70]
GLOBAL SIGNAL Q_AreaEnter7 $OUT[71]
GLOBAL SIGNAL Q_AreaEnter8 $OUT[72]
GLOBAL SIGNAL Q_AreaEnter9 $OUT[73]
GLOBAL SIGNAL Q_AreaEnter10 $OUT[74]
GLOBAL SIGNAL Q_AreaEnter11 $OUT[75]
GLOBAL SIGNAL Q_AreaEnter12 $OUT[76]
GLOBAL SIGNAL Q_AreaEnter13 $OUT[77]
GLOBAL SIGNAL Q_AreaEnter14 $OUT[78]
GLOBAL SIGNAL Q_AreaEnter15 $OUT[79]
GLOBAL SIGNAL Q_AreaEnter16 $OUT[80]
GLOBAL SIGNAL Q_Error1 $OUT[81]
GLOBAL SIGNAL Q_Error2 $OUT[82]
GLOBAL SIGNAL Q_Error3 $OUT[83]
GLOBAL SIGNAL Q_Error4 $OUT[84]
GLOBAL SIGNAL Q_Error5 $OUT[85]
GLOBAL SIGNAL Q_Error6 $OUT[86]
GLOBAL SIGNAL Q_Error7 $OUT[87]
GLOBAL SIGNAL Q_Error8 $OUT[88]
GLOBAL SIGNAL Q_Error9 $OUT[89]
GLOBAL SIGNAL Q_Error10 $OUT[90]
GLOBAL SIGNAL Q_Error11 $OUT[91]
GLOBAL SIGNAL Q_Error12 $OUT[92]
GLOBAL SIGNAL Q_Error13 $OUT[93]
GLOBAL SIGNAL Q_Error14 $OUT[94]
GLOBAL SIGNAL Q_Error15 $OUT[95]
GLOBAL SIGNAL Q_Error16 $OUT[96]
GLOBAL SIGNAL Q_CmdRet $OUT[97] TO $OUT[112]
GLOBAL SIGNAL Q_CmdCountRet $OUT[113] TO $OUT[128]
GLOBAL SIGNAL Q_CmdResult $OUT[129] TO $OUT[144]
GLOBAL SIGNAL Q_Cmd_Running $OUT[145] TO $OUT[160]
GLOBAL SIGNAL Q_GripPosIndex $OUT[161] TO $OUT[176]
GLOBAL SIGNAL Q_GripPosCount $OUT[177] TO $OUT[192]
;ENDFOLD
ENDDAT

View File

@@ -0,0 +1,29 @@
&ACCESS RVO
&REL 14
DEFDAT TestModule
;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 your modifications here
;ENDFOLD (USER EXT)
;ENDFOLD (EXTERNAL DECLARATIONS)
DECL FDAT FPallet1PlaceB = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT1 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL MODULEPARAM_T LAST_TP_PARAMS = {PARAMS[] "Kuka.VelocityFieldEnabled=False; Kuka.ColDetectFieldEnabled=False; Kuka.MovementParameterFieldEnabled=False; Kuka.IsAngleEnabled=False; Kuka.PointName=ReFeedBeltPick; Kuka.FrameData.base_no=0; Kuka.FrameData.tool_no=1; Kuka.FrameData.ipo_frame=#BASE; Kuka.isglobalpoint=False; Kuka.MoveDataPtpName=PDAT7; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.MovementData.vel=100; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPtp=100; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0"}
DECL FDAT FPallet2PlaceB = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT2 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL FDAT FFeedBelt1Pick = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT3 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL FDAT FFeedBelt2Pick = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT4 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL PDAT PPDAT5 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL FDAT FNgBeltPlace = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT6 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL FDAT FWaterBeltPick = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
DECL PDAT PPDAT7 = {APO_MODE #CDIS,APO_DIST 500,VEL 100,ACC 100,GEAR_JERK 100.0,EXAX_IGN 0}
DECL FDAT FReFeedBeltPick = {BASE_NO 0,TOOL_NO 1,IPO_FRAME #BASE,POINT2[] " "}
ENDDAT

View File

@@ -0,0 +1,58 @@
&ACCESS RVO
&REL 14
DEF TestModule ( )
;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)
;ENDFOLD (INI)
;FOLD SPTP Pallet1PlaceB Vel=100 % PDAT1 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=Pallet1PlaceB; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XPallet1PlaceB WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FPallet1PlaceB), $BASE = SBASE(FPallet1PlaceB.BASE_NO), $IPO_MODE = SIPO_MODE(FPallet1PlaceB.IPO_FRAME), $LOAD = SLOAD(FPallet1PlaceB.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;FOLD SPTP Pallet2PlaceB Vel=100 % PDAT2 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=Pallet2PlaceB; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XPallet2PlaceB WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FPallet2PlaceB), $BASE = SBASE(FPallet2PlaceB.BASE_NO), $IPO_MODE = SIPO_MODE(FPallet2PlaceB.IPO_FRAME), $LOAD = SLOAD(FPallet2PlaceB.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT2), $APO = SAPO_PTP(PPDAT2), $GEAR_JERK[1] = SGEAR_JERK(PPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;FOLD SPTP FeedBelt1Pick Vel=100 % PDAT3 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=FeedBelt1Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT3; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XFeedBelt1Pick WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FFeedBelt1Pick), $BASE = SBASE(FFeedBelt1Pick.BASE_NO), $IPO_MODE = SIPO_MODE(FFeedBelt1Pick.IPO_FRAME), $LOAD = SLOAD(FFeedBelt1Pick.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT3), $APO = SAPO_PTP(PPDAT3), $GEAR_JERK[1] = SGEAR_JERK(PPDAT3), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;FOLD SPTP FeedBelt2Pick Vel=100 % PDAT4 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=FeedBelt2Pick; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT4; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XFeedBelt2Pick WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FFeedBelt2Pick), $BASE = SBASE(FFeedBelt2Pick.BASE_NO), $IPO_MODE = SIPO_MODE(FFeedBelt2Pick.IPO_FRAME), $LOAD = SLOAD(FFeedBelt2Pick.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT4), $APO = SAPO_PTP(PPDAT4), $GEAR_JERK[1] = SGEAR_JERK(PPDAT4), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;FOLD SPTP NgBeltPlace Vel=100 % PDAT5 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=NgBeltPlace; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT5; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XNgBeltPlace WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FNgBeltPlace), $BASE = SBASE(FNgBeltPlace.BASE_NO), $IPO_MODE = SIPO_MODE(FNgBeltPlace.IPO_FRAME), $LOAD = SLOAD(FNgBeltPlace.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT5), $APO = SAPO_PTP(PPDAT5), $GEAR_JERK[1] = SGEAR_JERK(PPDAT5), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;FOLD SPTP WaterBeltPick Vel=100 % PDAT6 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=WaterBeltPick; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT6; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XWaterBeltPick WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FWaterBeltPick), $BASE = SBASE(FWaterBeltPick.BASE_NO), $IPO_MODE = SIPO_MODE(FWaterBeltPick.IPO_FRAME), $LOAD = SLOAD(FWaterBeltPick.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT6), $APO = SAPO_PTP(PPDAT6), $GEAR_JERK[1] = SGEAR_JERK(PPDAT6), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;FOLD SPTP ReFeedBeltPick Vel=100 % PDAT7 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=ReFeedBeltPick; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT7; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
;ENDFOLD
SPTP XReFeedBeltPick WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FReFeedBeltPick), $BASE = SBASE(FReFeedBeltPick.BASE_NO), $IPO_MODE = SIPO_MODE(FReFeedBeltPick.IPO_FRAME), $LOAD = SLOAD(FReFeedBeltPick.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPDAT7), $APO = SAPO_PTP(PPDAT7), $GEAR_JERK[1] = SGEAR_JERK(PPDAT7), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
END