Beiträge von Kotti kuka

    Der X-Wert von 3700 scheint mir anhand Deines Videos schon speziell.

    Auf dem Video ist die Linearachse nicht zu sehen auf der der Roboter steht. Wollte nicht die zurzeit noch herrschende Unordnung zeigen😅 also müsste das ja hinkommen.

    Hast Du diese Werte ermittelt / eingetragen ?

    Nein das wurde von jemandem gemacht der sich hauptberuflich mit Robotern beschäftigt. Nur halt nicht mit sprutcam.

    Hätte ich mal früher gewusst das es euch gibt^^ So wie es aussieht ist das Problem gelöst. Hab es jetzt so:


    Bei den X,Y,Z,a,b,c Werten die vermessenen Basedaten eintragen (nur den Z-Wert musste ich um ca. 100mm anpassen, das erklärt sich mir noch nicht so ganz)

    Und zusätzlich den Anweisungen aus dem Video folgen um Sprutcam richtig einzustellen und dann ist die Geschwindigkeit über vel.cp anpassbar und der Tisch läuft auch flüssiger. https://kb.sprutcam.com/display/SKB/Robot+rotating+table



    DEF Test()

    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )

    INTERRUPT ON 3

    BAS (#INITMOV,0)

    BAS (#VEL_PTP,100)

    BAS (#ACC_PTP,100)


    $BASE=EK(MACHINE_DEF[3].ROOT,MACHINE_DEF[3].MECH_TYPE,BASE_DATA[18]:{x 0,y 0,z 0,a 0,b 0,c 0})

    $TOOL=TOOL_DATA[1]

    S_RPM=18000

    DoR=3

    $advance=5

    $VEL.CP=0.167

    PTP {A1 -22.427, A2 -86.762, A3 136.469, A4 -179.779, A5 34.659, A6 179.852, E1 -1560, E2 -112.89, E3 0, E4 0, E5 0, E6 0}

    Du machst dagegen ein direkte Zuweisung an $BASE in Zeile 7 was nur ein festes Bezugssystem im Raum aktiviert. EK dient also dazu dem System zu sagen mit welcher externen Kinematik das BASE mitfahren soll. Das funktioniert wahrscheinlich beim teachen am Roboter weil dein BASE als externes BASE auf einer Zusatzachse vermessen wurde. In dem Fall ruft bei Inlineformularen das bas.src über die Methode EX_BASE den passenden EK Aufruf auf. Ersetze also deine direkte Zuweisung an BASE in Zeile 7 durch


    EX_BASE(18,3)

    Schreibe ich das so, sagt die Steuerung: Name nicht als Untergramm vereinbart


    DEF Test()

    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )

    INTERRUPT ON 3

    BAS (#INITMOV,0)

    BAS (#VEL_PTP,100)

    BAS (#ACC_PTP,100)


    EX_Base(18,3)

    $TOOL=TOOL_DATA[1]

    S_RPM=18000

    DoR=3

    $advance=5

    $VEL.CP=0.167

    PTP {A1 -22.427, A2 -86.762, A3 136.469, A4 -179.779, A5 34.659, A6 179.852, E1 -1560, E2 -112.89, E3 0,

    .......


    Mein Roboter Experte hat mir das dann so vorgeschlagen, dabei fährt der Robbi den ersten PTP richtig an und fährt dann weit weg vom Tisch in den Achs Endschalter?


    DEF Test()

    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )

    INTERRUPT ON 3

    BAS (#INITMOV,0)

    BAS (#VEL_PTP,100)

    BAS (#ACC_PTP,100)


    $BASE=EK(MACHINE_DEF[3].ROOT,MACHINE_DEF[3].MECH_TYPE,BASE_DATA[18]:{x 0,y 0,z 0,a 0,b 0,c 0})

    $TOOL=TOOL_DATA[1]

    S_RPM=18000

    DoR=3

    $advance=5

    $VEL.CP=0.167

    PTP {A1 -22.427, A2 -86.762, A3 136.469, A4 -179.779, A5 34.659, A6 179.852, E1 -1560, E2 -112.89, E3 0, E4 0, E5 0, E6 0}

    LIN {X -560.222, Y -231.219, Z 34.001, A -157.443, B 0, C -180, E2 -112.89} C_DIS

    Rein die Kopplung richtig aktivieren wird nicht die Lösung sein. Punkte müssten dann dazu auch richtig generiert werden.

    Also hilft mir der Lösungsansatz von Fubini mit Ex_Base nicht weiter?

    Ich würde Dir empfehlen, die systemrelevanten Variabeln im Hauptlauf der Geschwindigkeit / Beschleunigung mal abzubilden in der Variabelnübersicht und parallel zum Ablauf aktualisiert anzeigen zu lassen. Dann siehst Du auch, wie sich das Ganze verhält..

    Wenn ich mir die Variabeln angucke kommt der Tisch immer nur auf ca. 20 Prozent seiner Geschwindigkeit. Vielleicht verdeutlicht ein kurzes video mein problem.


    Um eine generierung des Programms durch Sprutcam kommen wir auch nicht herum da wir 3D Teile fräsen wollen und das ist so am Roboter ja nicht möglich zu programmieren(zumindest für ein Tischler^^).

    Vielleicht gehen wir auch falsch an die Sache ran und man muss mehr mit den Roboterachsen machen als mit dem Tisch aber für mich macht es mehr sind bei runden Bauteilen den Tisch drehen zu lassen als den Roboter da hier ja viel weniger Achsen in bewegung sind.

    Das werde ich am Montag mal ausprobieren, Danke!


    Bezüglich des Supports bei Kuka hab ich die Erfahrung gemacht das es immer darauf ankommt an wen man gerät...


    Und das mit den Vel.cp müsste doch funktionieren dadurch das die Achse mathematisch gekoppelt ist oder bin ich da falsch informiert? (entschuldigt, ich hab leider auch nur halbwissen da ich eigentlich Tischler bin)

    Normalerweise ist vel.cp ja nur auf den TCP bezogen, aber durch die Kopplung müsste die externe achse doch auch darauf reagieren oder braucht die immer den $vel_axis?

    Hallo, wir haben einen Kuka mit einer Krc 2 Steuerung bei uns in der Firma. Der Kuka steht auf einer Linear Achse und davor ein Drehtisch als endlos drehende Achse. Das Programm kommt aus dem Cam System Sprutcam.

    Nun zu meinem Problem: Der Roboter soll die montierte Frässpindel "hinhalten" und der Drehtisch (Achse 8 ) dreht sich, der Roboter muss nur zwischendurch zustellen. Dies macht er auch allerdings reagiert der Drehtisch (Achse 8, mathematisch gekoppelt) nicht auf den vel.cp und der Verschleifbefehl c_Dis scheint auch nicht zu funktionieren da der Tisch sich ruckelig bewegt. Ich kann den Vel.cp von 0.1 bis 2 hochstellen und der Tisch macht immer dasselbe. Gibt es da einen extra Befehl um die Kopplung aufzurufen? oder ist die Achse vielleicht falsch installiert? Muss der Drehtisch mit einem anderen Befehl versorgt werden?

    Die Leute von Sprutcam und Kuka wissen auch nicht so recht weiter. Vielleicht gibt es hier einen klugen Kopf der mir weiterhelfen kann?:)


    Teacht man ein Programm direkt am Roboter kann der Tisch auf einmal auf unterschiedliche Geschwindigkeiten fahren und auch im Handverfahren folgt der Roboter einer Spitze auf dem Tisch so wie es sein soll.


    Das Programm sieht in etwa so aus:


    DEF Test()

    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )

    INTERRUPT ON 3

    BAS (#INITMOV,0)

    BAS (#VEL_PTP,100)

    BAS (#ACC_PTP,100)


    $BASE=BASE_DATA[18]

    $TOOL=TOOL_DATA[1]

    S_RPM=18000

    DoR=3

    $advance=5

    $VEL.CP=0.167

    PTP {A1 -22.427, A2 -86.762, A3 136.469, A4 -179.779, A5 34.659, A6 179.852, E1 -1560, E2 -112.89, E3 0, E4 0, E5 0, E6 0}

    LIN {X -560.222, Y -231.219, Z 34.001, A -157.443, B 0, C -180, E2 -112.89} C_DIS

    LIN {X -560.222, Y -231.219, Z 48, A -157.443, B 0, C -180, E2 -112.89} C_DIS

    $VEL.CP=0.133

    LIN {X -560.222, Y -231.219, Z 24, A -157.443, B 0, C -180, E2 -112.89} C_DIS

    LIN {X -560.219, Y -231.218, Z 24, A -157.443, B 0, C -180, E2 -122.34} C_DIS

    LIN {X -560.223, Y -231.22, Z 24, A -157.443, B 0, C -180, E2 -131.8} C_DIS

    LIN {X -560.224, Y -231.22, Z 24, A -157.443, B 0, C -180, E2 -141.25} C_DIS

    LIN {X -560.224, Y -231.22, Z 24, A -157.443, B 0, C -180, E2 -150.7} C_DIS

    LIN {X -560.225, Y -231.221, Z 24, A -157.443, B 0, C -180, E2 -160.16} C_DIS

    LIN {X -560.226, Y -231.221, Z 24, A -157.443, B 0, C -180, E2 -169.61} C_DIS

    LIN {X -560.229, Y -231.222, Z 24, A -157.443, B 0, C -180, E2 -179.07} C_DIS

    LIN {X -560.229, Y -231.222, Z 24, A -157.443, B 0, C -180, E2 -188.52} C_DIS

    LIN {X -560.229, Y -231.222, Z 24, A -157.443, B 0, C -180, E2 -197.97} C_DIS

    LIN {X -560.232, Y -231.223, Z 24, A -157.443, B 0, C -180, E2 -207.43} C_DIS

    LIN {X -560.235, Y -231.225, Z 24, A -157.443, B 0, C -180, E2 -216.88} C_DIS

    LIN {X -560.232, Y -231.223, Z 24, A -157.443, B 0, C -180, E2 -226.33} C_DIS

    LIN {X -560.232, Y -231.223, Z 24, A -157.443, B 0, C -180, E2 -235.79} C_DIS

    LIN {X -560.236, Y -231.225, Z 24, A -157.443, B 0, C -180, E2 -245.24} C_DIS

    LIN {X -560.236, Y -231.225, Z 24, A -157.443, B 0, C -180, E2 -254.69} C_DIS

    LIN {X -560.234, Y -231.224, Z 24, A -157.443, B 0, C -180, E2 -264.15} C_DIS

    LIN {X -560.236, Y -231.225, Z 24, A -157.443, B 0, C -180, E2 -273.6} C_DIS

    LIN {X -560.233, Y -231.224, Z 24, A -157.443, B 0, C -180, E2 -283.05} C_DIS

    LIN {X -560.233, Y -231.224, Z 24, A -157.443, B 0, C -180, E2 -292.51} C_DIS

    LIN {X -560.23, Y -231.223, Z 24, A -157.443, B 0, C -180, E2 -301.96} C_DIS

    LIN {X -560.229, Y -231.222, Z 24, A -157.443, B 0, C -180, E2 -311.42} C_DIS

    LIN {X -560.232, Y -231.223, Z 24, A -157.443, B 0, C -180, E2 -320.87} C_DIS

    LIN {X -560.23, Y -231.223, Z 24, A -157.443, B 0, C -180, E2 -330.32} C_DIS

    LIN {X -560.229, Y -231.222, Z 24, A -157.443, B 0, C -180, E2 -339.78} C_DIS

    LIN {X -560.229, Y -231.222, Z 24, A -157.443, B 0, C -180, E2 -349.23} C_DIS

    LIN {X -560.227, Y -231.221, Z 24, A -157.443, B 0, C -180, E2 -358.68} C_DIS

    LIN {X -560.222, Y -231.219, Z 24, A -157.443, B 0, C -180, E2 -368.14} C_DIS

    LIN {X -560.22, Y -231.219, Z 24, A -157.443, B 0, C -180, E2 -377.59} C_DIS

    LIN {X -560.224, Y -231.22, Z 24, A -157.443, B 0, C -180, E2 -387.05} C_DIS

    LIN {X -560.22, Y -231.218, Z 24, A -157.443, B 0, C -180, E2 -396.5} C_DIS...........