Inbetriebnahme Drehtisch

  • Hallo Zusammen,
    eins vorweg, das Thema Kuka und Co ist für mich ziemliches Neuland. Momentan arbeite ich mich aber in die Unterlagen ein und lese hier im Forum fleißig mit.


    Zum Problem, ich würde gerne einen Drehtisch (Marke Eigenbau) in Betrieb nehmen.
    Zurzeit frage ich mich wie es mit der externen Kinematik abläuft. Am Anfang habe ich einfach die BASE auf den Drehtisch verschoben:
    {X 1610.000, Y 0.000, Z -650.000, A 0.0000, B 0.0000, C 0.0000}


    Was im Nachhinein totaler Quatsch war weil ich ja eine "gekoppelte Base" brauche?


    Zum setzten der Base nutze ich den Befehl:
    $BASE=EK(MACHINE_DEF[2].ROOT,MACHINE_DEF[2].MECH_TYPE,BASE_DATA[17]:{x 0,y 0,z 0,a 0,b 0,c 0})


    In den mada habe ich
    $EX_AX_NUM=1
    $EX_KIN = {ET1 #EASYS, ET2 #NONE, ...
    $ET1_AX={TR_A1 #E1,..
    stehen.


    Eine externe Kinematik mit den Koordinaten oben habe ich angelegt und eine BASE 17. Ist Base 17 automatisch die externe?


    Welche Daten zum Zellenaufbau muss ich noch in den mada eintragen (FRAME $ET1_TA1KR..)?


    Das Werkzeug befindet sich bei:
    {X 414.000, Y 0.000, Z 95.000, A 0.0000, B -90.0000, C 0.0000}


    Zum Setup:
    Kuka Kr30 HA (6 +1)
    Kuka KRC 2 V5.4.11
    Drehtisch E1 mit Kuka-Servomotor


    Ich hoffe ihr versteht mich einigermaßen :D
    Wie ist die richtige Vorgehensweise?


    Beste Grüße
    DIN

    Einmal editiert, zuletzt von SJX ()

  • Schritt für Schritt zum Roboterprofi!
  • Du brauchst noch mindestens die Maschinendefinition in der $config.dat.
    MACHINE_DEF[2]={NAME[] "Drehtisch",COOP_KRC_INDEX 1,PARENT[] "WORLD",ROOT {X -4.74420,Y -2047.99902,Z 786.215210,A -0.230000,B 0.120000,C 179.820},MECH_TYPE #EASYS,GEOMETRY[] "ObjectId = -195660369"}
    Wenn weiter nichts eingetragen wird, dreht der um die Z-Achse (ohne Gewähr). Das heisst, die Orientierung dort ist auch an der Synchronrichtung beteiligt, wenn Du A auf den Kopf stellst, dreht er andersrum.
    Das BASE bezieht sich dann auf den Fußpunkt (!).
    Ich messe in einer stationären Welt immer den gleichen Punkt dreimal in verschiedener Achsstellung, daraus kann man einen Kreismittelpunkt und die Orientierung der Achse berechnen. Ich glaub', dafür gibt's auch ein Tool in der HMI, habe ich aber noch nicht benutzt.
    WorkVisual überschreibt Dir den Fußpunkt übrigens ohne Nachfrage, wenn Du ihn nicht im Projekt einträgst. Und selbst dann scheint es nicht immer zu gehen, bzw. vielleicht kennt einer das Geheimnis des fehlenden Eintrags, den man dann noch braucht. Ist ein bissl blöd, wenn man nicht dran denkt, und dann plötzlich der Drehtisch virtuell wieder mitten im Roboter steht.


    Grüße,
    Michael

  • Moin Moin! Danke Michael für deine Antwort.


    In der $config.dat steht:
    MACHINE_DEF[2]={NAME[] "Drehtisch",COOP_KRC_INDEX 1,PARENT[] " ",ROOT {X 1610.0,Y 0.0,Z -650.0,A 0.0,B 0.0,C 0.0},MECH_TYPE #EASYS,GEOMETRY[] " "}


    Irgendetwas stimmt aber mit der Orientierung noch nicht. Die Istpositionen passen solange ich nicht den Drehtisch verfahre.
    Wenn ich E1 auf 45° fahre wandert A auf – 45° (anstelle von + 45° laut Simulation). :huh:


    Gruß DIN

  • Moin DIN,


    dann dreh mal deinen Drehsinn der Achse, entweder über $AXIS_DIR oder in der Getriebeübersetzung $RAT_MOT_AX[X]={N -XXX,D YYY}

    Die Abnahme von GOTO Anweisungen verhält sich reziprok zur Qualität einer Programmierung

  • Hallo Martin,
    der Teller dreht in echt wie in der Simulation im Uhrzeigersinn.


    Über den Achsenmanager habe ich zum Testen die Drehrichtung umgekehrt, war auch mein erster Gedanke.
    Ich habe das jetzt noch einmal versucht. Danke für den Tipp.


    Leider ohne Erfolg, bei E1 45° plus ist A -45°


    Beste Grüße DIN

  • [size=2]Deshalb schrob ich ja extra, dass die Ausrichtung des Fußpunktes wichtig sei. Versuch mal [font=verdana, sans-serif]ROOT {X 1610.0,Y 0.0,Z -650.0,A 0.0,B 0.0,C 180.0} oder sowas. [/font]
    [/size]





    [size=2][font=verdana, sans-serif]Grüße,[/font]
    [/size]
    [font=verdana, sans-serif][size=2]Michael[/size][/font]


  • Moin Din,


    müsste auch gehen, wenn du nur B um 180° drehst


    Stimmt, im Eifer des Gefechts wurde da was von mir verdreht.
    Letzte Woche konnte ich auch schon die ersten einfachen Objekte aus Styropor fräsen. :D


    Folgende Probleme beschäftigen mich im Moment.


    Die "Positionierüberwachung E1" springt öfters an, lässt sich diese Deaktivieren?


    Beim Kopieren von einem sehr großen Fräsweg kommt es zum Abbruch. "XXX.SRC zu lang. Zeile wurde abgeschnitten".


    Wie bekomme ich das Programm eingelesen?


    Beste Grüße DIN


  • Beim Kopieren von einem sehr großen Fräsweg kommt es zum Abbruch. "XXX.SRC zu lang. Zeile wurde abgeschnitten".


    Wie bekomme ich das Programm eingelesen?


    Beste Grüße DIN


    Hi DIN


    Aufteilen in mehrere Dateien / Unterprogramme.


    Edit:
    Die Meldung müsste eigentlich vollständig heißen "Zeile {Zeilennummer} in {Modulname} zu lang. Zeile wurde abgeschnitten".


    Es gelten folgende Beschränkungen:
    Max. Zeilenlänge: 486 Zeichen
    Max. Programmlänge: 32767 Zeilen

  • Was die Positionierüberwachung angeht: da geht es wohl um Schleppabstand. Schleppfehlertoleranz vergrößern, und/oder Rampen steiler machen im Rahmen der Motor/Getriebephysik. (Vielleicht bei der Maximalgeschwindigkeit von E1 auch über das maximale Moment nachdenken welches im Not-Halt-Fall auf die Mechanik einwirkt....)



    Grüße
    Michael

  • Moin DIN,


    Wert für Positionierfenster “$IN_POS_MA” vergrößern.
    Wert für Positionierzeit “$TIME_POS” vergrößern.
    Driftabgleich durchführen.
    Regelkreisverstärkung überprüfen.
    Mechanik überprüfen.

    Die Abnahme von GOTO Anweisungen verhält sich reziprok zur Qualität einer Programmierung

  • Danke, ihr seid die Besten! :beerchug:



    Ich habe den Kuka gestern nach der Installation der Absauganlage und weiteren Umbauarbeiten am Drehteller wieder gestartet. Der Drehteller hat jetzt deutlich mehr Gewicht und lässt sich von Hand anhalten (Quitt Stellgröße E1/ Stillstand E1).


    Die Werte für die Positionierzeit und Fenster werde ich am Montag anpassen, wie bekomme ich mehr Drehmoment auf dem Motor?


    Beste Grüße und ein schönes Wochenende
    DIN


  • ... Der Drehteller hat jetzt deutlich mehr Gewicht und lässt sich von Hand anhalten (Quitt Stellgröße E1/ Stillstand E1).
    Die Werte für die Positionierzeit und Fenster werde ich am Montag anpassen, wie bekomme ich mehr Drehmoment auf dem Motor?
    ...


    Moin,
    das hat Martin Huber doch schon geschrieben.



    ...
    Driftabgleich durchführen.
    Regelkreisverstärkung überprüfen.
    Mechanik überprüfen....

    never touch a running system

  • Hallo DIN,
    Poste doch bitte mal Deine aktuellen Madas, Hardwarekomponenten (Motorentyp, Getriebe, Kupplung, etc. mit Tech-Daten) und ein Photo Deiner Achse. (Kann man sich was vorstellen, was Du machst)
    Zeichne mit Oszilloskopfunktion mal Strom IST / SOLL, Drehzahl, Schleppfehler in Testprog auf mit Grundbeladung des Tisches.


    Anhand dieser Daten kann man Aussage treffen, wie Du mit welchen Parameterwerten die Achse optimieren kannst.
    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Programmiersklave


    WorkVisual überschreibt Dir den Fußpunkt übrigens ohne Nachfrage, wenn Du ihn nicht im Projekt einträgst. Und selbst dann scheint es nicht immer zu gehen, bzw. vielleicht kennt einer das Geheimnis des fehlenden Eintrags, den man dann noch braucht. Ist ein bissl blöd, wenn man nicht dran denkt, und dann plötzlich der Drehtisch virtuell wieder mitten im Roboter steht.


    Hatte auch schon Probleme mit Fußpunkt rücksetzen durch WV (KRC4 - V8.3.28).
    Bei mir war der Grund, dass im Ausgangs-KUKA-Projekt die externen Achsen eine Objekt-ID hatten (config.dat: "MACHINE_FRAME_DAT").
    Die KUKA-Routine zum Einmessen des Fußpunktes hat diese ID aber nicht überschrieben. WV hat dann bei "Code laden" anhand der ID das alte Bezugssystem irgendwo rausgezogen ("MACH_DEF_INDEX" + "Parents" zurückgesetzt).


    Geholfen hat dann letztendlich Löschen der Objekt-ID in der config.dat.

    Einmal editiert, zuletzt von zteve ()

  • Hallo DIN,
    verwendest also ein KUKA Motor Typ C alte Version von AEG (Pacific Scientific).
    $ServoFile wäre also KSD_16_MC_A. (Müsste vorhanden sein, KSD1-16 verbaut in Steuerschrank?)


    Das sehr kleine Getriebeübersetzungsverhältnis wie auch Riemenantrieb sind sicher nicht einfach / optimal zum tunen. Führt zwangsläufig zu grösserem Schleppfehler / Überschiessen bei schnellen Beschleunigungen / Verzögerungen. Was war der Grund für diese Auslegung? Brauchst ja keine 400 U/Min (6 U/sec) des Tisches? Evtl. Reduktion max. Drehzahl des Motors/ Anpassung Beschleunigung, Filterwert.


    Tunen tust die Achse mit $G_VEL_PTP, $I_VEL_PTP, $LG_PTP, $RAISE_TIME. Wenn ermittelt Übernahme in die ....._CP.
    Braucht dafür Testprogramm mit 2 PTP-Positionen der externen Achse in Schleife, 100%. Während Bewegung Aufzeichnung mit Oszilloskop Strom, Drehzahl, Schleppfehler. Normalerweise Ziel Schleppfehler < 1 rad, Strom nicht in Strombegrenzung.
    Achse normalerweise mit "Standardgewichtsbeladung".
    Riemen optimal gespannt?


    $RAISE_TIME (Achshochlaufzeit verrechnet mit Filter) würde ich sicherlich in Deinem Falle zum Starten erhöhen. 1000ms (Stromspitzen Beschleunigung / Verzögerung beachten, evtl. Anpassen
    "Theoretisches" / Prinzipielles Vorgehen:
    1: Einstellung von $G_VEL_PTP (Geschwindigkeitsregler PTP Proportionalverstärkung).
    Dafür Integralfaktor "ausschalten", $I_VEL_PTP auf 9999. Wert von Standardwert ( Typ C 29 ) schrittweise erhöhen, und in Oszilloskop Schleppfehler und Stromverhalten beachten. Wenn Motor Knurrgeräusche von sich gibt, 10% reduzieren.


    2:[size=3]Einstellung von $I_VEL_PTP (Geschwindigkeitsregler PTP Integralfaktor)[/size]
    [size=3]$I_VEL_PTP schrittweise reduzieren und Schwingungsverhalten beobachten. Typ C-Motor gilt Richtwert 90ms als Anhaltspunkt. Riemen kann Bild aber total verfälschen. Testen und mit Oszilloskop überprüfen.[/size]
    [size=3]3: $LG_PTP (KV Faktor, Lageregler PTP optimieren.)[/size]
    [size=3]Standardwert = 0.3 Normalbereich liegt zwischen 0.2 -0.6. Kleinere Motoren haben tendenziell höhere Werte als grosse Motoren. [/size]
    [size=3]Beeinflusst die härte der Regelung, sauberes Positionierverhalten. Zu hohe Werte führen zum Pulsen der Achse.[/size]
    [size=3]Deine gemeldeten Fehler betreffend Positionierung deuten darauf hin, das Wert zu klein ist. Hier kann Riemen aber das Ergebnis stark verfälschen (Schlagen, Dehnbarkeit)[/size]
    [size=3] Poste mal die eine oder andere Oszilloskopaufzeichnung.[/size]
    [size=3]Gruss SJX[/size]




    [size=3] [/size]

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Hallo SJX,


    vielen Dank für deine ausführliche Antwort! Das schrauben an gewissen Parametern hat schon eine
    Besserung gebracht aber richtig rund läuft der Tisch lange noch nicht. An dieser Stelle würde ich
    gerne einen Fachmann zur Seite ziehen, also falls einer einen aus dem Raum Düsseldorf kennt, immer
    her damit auch gerne per PN.


    Im Anhang befindet sich eine Oszilloskopaufzeichnung von dem vorgeschlagenen Testprogramm.


    Beste Grüße
    DIN

  • Hallo DIN,
    Mit was für Werte der Parameter hast Du die Traces erstellt?
    Wie hoch bist Du testweise mit $G_VEL_PTP gegangen? Kommt der Motor überhaupt ins Brummen?
    Wie weit bist Du mit $I_VEL_PTP gegangen?
    (grössere Schwingungen der Drehzahl // IST-SOLL Abweichung der Drehzahl )
    Max. Umdrehung im Trace ist klein für Typ Motor. Ist Verfahrweg so klein, dass Topspeed gar nicht erreicht wird oder testest Du in T1?
    Wieviel Gewicht / Schwungmasse hast Du auf der Achse?


    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

    Einmal editiert, zuletzt von SJX ()

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden