Hi guys. Something with the approximation is still a bit confusing for me.
When I am looking in the manual, KSS_87_en_pdf, section 10.3.6, page 447, my positions should be approximated by userfined radius. As I read the manual, I understand that I can set the $APO.CDIS to how large the approximation circle should be. However, setting the values from default 500 down to 200 mm or 5 mm or 0.5mm, I dont see any change when I am executing my robot program.
I can of cause remove the C_DIS in e.g. below, but then I am back to the jerky motions for the SLIN. So the code below do not have really any inpact on approximation. The reason for why I am using SLIN {offsetting} : myPostion is to safe having many different positions. Then I think the code is more cleaner and easier to understand, because you can look into the code and see: "Ahh, so the robot moves to the standard approach poistion and then move down 300 mm in the Z direction, e.g. It would be harder to understand if it was just P1, P2 or other names...
The whole program is shown below:
; Setting the approximation in mm
$APO.CDIS = 0.5
SWITCH GetColorOfLiftedStack()
;// If green
CASE 1
nhandle = Set_KrlMsg (#notify, greenStackmessage, mypar[], myoptions)
;FOLD SLIN placeStack1 Vel=2 m/s CPDAT01 Tool[3]:ForkCenterOfBox Base[4]:EUpalletNEW ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=placeStack1; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT01; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XplaceStack1 WITH $VEL = SVEL_CP(2.0, , LCPDAT01), $TOOL = STOOL2(FplaceStack1), $BASE = SBASE(FplaceStack1.BASE_NO), $IPO_MODE = SIPO_MODE(FplaceStack1.IPO_FRAME), $LOAD = SLOAD(FplaceStack1.TOOL_NO), $ACC = SACC_CP(LCPDAT01), $ORI_TYPE = SORI_TYP(LCPDAT01), $APO = SAPO(LCPDAT01), $JERK = SJERK(LCPDAT01), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;/ Move down a bit when having a green stack --> It is here, where I see that the C_DIS with different radius do not have any changes.
SLIN {X 0,Y 0,Z -300,A 0,B 0, C 0}:XplaceStack1 C_DIS
;/ Move out to prepare to move to stack1home pos --> It is here, where I see that the C_DIS with different radius do not have any changes.
SLIN {X -500,Y 0,Z -300,A 0,B 0, C 0}:XplaceStack1 C_DIS
;// If blue
CASE 2
nhandle = Set_KrlMsg (#notify, blueStackmessage, mypar[], myoptions)
;FOLD SLIN placeStack1 Vel=2 m/s CPDAT01 Tool[3]:ForkCenterOfBox Base[4]:EUpalletNEW ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=placeStack1; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT01; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XplaceStack1 WITH $VEL = SVEL_CP(2.0, , LCPDAT01), $TOOL = STOOL2(FplaceStack1), $BASE = SBASE(FplaceStack1.BASE_NO), $IPO_MODE = SIPO_MODE(FplaceStack1.IPO_FRAME), $LOAD = SLOAD(FplaceStack1.TOOL_NO), $ACC = SACC_CP(LCPDAT01), $ORI_TYPE = SORI_TYP(LCPDAT01), $APO = SAPO(LCPDAT01), $JERK = SJERK(LCPDAT01), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;/ Move down a bit when having a blue stack --> It is here, where I see that the C_DIS with different radius do not have any changes.
SLIN {X 0,Y 0,Z -200,A 0,B 0, C 0}:XplaceStack1 C_DIS
;/ Move out to prepare to move to stack1home pos --> It is here, where I see that the C_DIS with different radius do not have any changes.
SLIN {X -500,Y 0,Z -200,A 0,B 0, C 0}:XplaceStack1 C_DIS
;// If red
CASE 3
nhandle = Set_KrlMsg (#notify, redStackmessage, mypar[], myoptions)
;FOLD SLIN placeStack1 Vel=2 m/s CPDAT01 Tool[3]:ForkCenterOfBox Base[4]:EUpalletNEW ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=placeStack1; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT01; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XplaceStack1 WITH $VEL = SVEL_CP(2.0, , LCPDAT01), $TOOL = STOOL2(FplaceStack1), $BASE = SBASE(FplaceStack1.BASE_NO), $IPO_MODE = SIPO_MODE(FplaceStack1.IPO_FRAME), $LOAD = SLOAD(FplaceStack1.TOOL_NO), $ACC = SACC_CP(LCPDAT01), $ORI_TYPE = SORI_TYP(LCPDAT01), $APO = SAPO(LCPDAT01), $JERK = SJERK(LCPDAT01), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;/ Move down a bit when having a red stack -->It is here, where I see that the C_DIS with different radius do not have any changes.
SLIN {X 0,Y 0,Z -200,A 0,B 0, C 0}:XplaceStack1 C_DIS
;/ Move out to prepare to move to stack1home pos --> It is here, where I see that the C_DIS with different radius do not have any changes.
SLIN {X -500,Y 0,Z -200,A 0,B 0, C 0}:XplaceStack1 C_DIS
;// If yellow
CASE 4
nhandle = Set_KrlMsg (#notify, yellowStackmessage, mypar[], myoptions)
;FOLD SLIN placeStack1 Vel=2 m/s CPDAT01 Tool[3]:ForkCenterOfBox Base[4]:EUpalletNEW ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=placeStack1; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT01; Kuka.VelocityPath=2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
;ENDFOLD
SLIN XplaceStack1 WITH $VEL = SVEL_CP(2.0, , LCPDAT01), $TOOL = STOOL2(FplaceStack1), $BASE = SBASE(FplaceStack1.BASE_NO), $IPO_MODE = SIPO_MODE(FplaceStack1.IPO_FRAME), $LOAD = SLOAD(FplaceStack1.TOOL_NO), $ACC = SACC_CP(LCPDAT01), $ORI_TYPE = SORI_TYP(LCPDAT01), $APO = SAPO(LCPDAT01), $JERK = SJERK(LCPDAT01), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
;ENDFOLD
;/ Move down a bit when having a yellow stack --> It is here, where I see that the C_DIS with different radius do not have any changes.
SLIN {X 0,Y 0,Z -100,A 0,B 0, C 0}:XplaceStack1 C_DIS
;/ Move out to prepare to move to stack1home pos --> It is here, where I see that the C_DIS with different radius do not have any changes.
SLIN {X -500,Y 0,Z -100,A 0,B 0, C 0}:XplaceStack1 C_DIS
;// Opps, something is not right.
DEFAULT
ENDSWITCH
Display More