Hallo zusammen,
Ich habe derzeit ein Problem, zu dem ich bisher im Forum keine Infos finden konnte...
Eckdaten Roboter:
KR10 R1420
KRC4 KSS 8.6.7
Der Roboter steht bereits beim Kunden und ist auch bereits seit einem Jahr in Betrieb.
Die Aufgaben des Roboters bestehen aus simplen Pick&Place Aufgaben mit einer Leiterplatte.
Aufgrund der Taktzeit konnte der Roboter bisher mit einer entspannten Geschwindigkeit von 40-60% fahren.
Da die Taktzeit nun verringert wurde, wurden die Roboter schneller gestellt, wodurch es plötzlich zu einem mir unbegreiflichen Verhalten des Roboters kam.
Auf einmal wurden bestimmte Positionen nicht mehr genau angefahren, sondern "überfahren", wodurch der Greifer mit der Leiterplattenzuführung kollidiert.
Setzt man die Geschwindigkeit wieder runter (OV_PRO < 70%), werden die Positionen wieder genau angefahren.
Die Bewegung, die der Roboter ausführen muss ist keine komplizierte. Er muss lediglich seinen Arm leicht nach unten ausstrecken, die Achsen A4 + A6 bleiben größtenteils gleich, A5 bewegt sich leicht mit, um den Greifer parallel zum Boden/Station zu halten.
Der Roboter kommt von einer E6AXIS-Position.
Die Position, die nicht genau angefahren oder Überfahren wird, ist die gXCX_SP_LOAD_Ent_LP. Hierbei handelt es sich um einen "Stoßpunkt" direkt über der Entnahmeposition (mittig über der Leiterplatte).
Im Programmbeispiel wurde die Geschwindigkeit für den Fahrbefehl bereits auf VEL = 30% reduziert. Vor der Änderung wurde der Punkt mit VEL = 75% angefahren.
;Fahrbefehl direkt vor dem Sprung in das Programm
PTP Safepos_Loader C_PTP ;E6AXIS Safepos_Loader={A1 -113.800,A2 -120.000,A3 120.000,A4 0.0,A5 90.0000,A6 44.1000}
;Start des eigentlichen Programms (oberer Teil wurde weggelassen)
CONTINUE
WAIT FOR SI_Greifer1_AS ;Greifer offen
;Stoßpunkt Leiterplatte entnehmen
;FOLD PTP <CX_SP_LOAD_Ent_LP> Vel=30 % PDAT2 Tool[3]:Greifer_LP_CX Base[1]:Loader ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=True; Kuka.PointName=CX_SP_LOAD_Ent_LP; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=30; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT2
FDAT_ACT = gFCX_SP_LOAD_Ent_LP
BAS(#PTP_PARAMS, 30.0)
SET_CD_PARAMS (0)
PTP gXCX_SP_LOAD_Ent_LP
;ENDFOLD
TRIGGER WHEN DISTANCE = 1 DELAY = 0 DO LOCATION_ACT = LOCATION_TARGET
;Endpunkt Leiterplatte entnehmen
;FOLD LIN <CX_LOAD_Ent_LP> Vel=0.2 m/s CPDAT2 Tool[3]:Greifer_LP_CX Base[1]:Loader ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=True; Kuka.PointName=CX_LOAD_Ent_LP; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=0.2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT2
FDAT_ACT = gFCX_LOAD_Ent_LP
BAS(#CP_PARAMS, 0.2)
SET_CD_PARAMS (0)
LIN gXCX_LOAD_Ent_LP
;ENDFOLD
Job_Finished(TRUE, 0)
END
Alles anzeigen
Meine größte Verwirrung kommt daher, das bei der Inbetriebnahme und Endabnahme beim Kunden der Roboter schon auf 100% gelaufen sind. Und das ohne Crash!
Die Lastdaten sind nach CAD-Werten eingetragen.
Ich hatte ein ähnliches Verhalten bei einem anderen Roboter. Hier wurde jedoch eine relative große Achsbewegung (A6 ca. 90°) innerhalb einer kurzen Fahrdistanz von ca. 20cm durchgeführt .
Auch hier war die Abhilfe, die Anfahrgeschwindigkeit des Punktes runter auf 30% zu setzen.
Meine Frage wäre, ob jemand eine Vermutung hat, woher das Fahrverhalten kommt?
Ist es der Sprung von einem E6-Axis zu einer E6Pos? Ist es der PTP-Fahrbefehl, der plötzlich einen wesentlich größeren Radius benötigt aufgrund der hohen Geschwindigkeit?
Der KUKA-Support meinte, ich soll einfach das Überschleifen der E6Axis-Position ausschalten. Das löst eventuell das Problem, aber die Ursache kenne ich trotzdem noch nicht.
Vielleicht kann hier hier jemand Licht ins Dunkel bringen
Mit freundlichem Gruß
Sheep