Problem mit berechneten Positionen bei PTP-Fahrt

  • Hallo,


    bin dabei ein Palettierprogramm zu schreiben. Kartons von einem Abnahmepunkt auf 3 Palettenplätze.
    Für jede Palette gibt es eine Base und einen geteachten Punkt an der Ecke der Palette. Von diesem Punkt berechne ich alle Positionen des Palettiervorgangs.
    VORPOS1 -> über der maximalen Palettierhöhe in Palettenmitte
    VORPOS2 -> zwei Lagen über der Ziel-Lage
    VORPOS3 -> eine Lage über der Ziel-Lage versetzt und gedreht
    ZIELPOS ->
    und wieder zurück


    Wenn ich die Vorpositionen mit PTP Befehlen anfahre stoppt das Programm mit der Meldung "Unerreichbarer Punkt Achse..." oder er dreht mir die Achse 6 statt um +90° um -270° was für den Kabelschlepp nicht sehr gut ist.


    Ich hab dann mal aus den PTP-Befehlen LIN-Befehle gemacht was zur Folge hatte, das alles bestens funktioniert. Leider geht die Taktzeit dabei zu stark in Keller.

    Welche Möglichkeiten gibts, um berechnet Punkte mit PTP-Befehlen anzufahren?


    Gruß Thomas


    PS: Ein Mitarbeiter von der KUKA-Hotline meinte, ich solle das Ganze mit Baseverschiebung machen, dann könnte ich die Punkte teachen. Bin mit aber nicht sicher, ob das mein Problem löst. Ich müsst mich erst in das Thema einarbeiten, da ich damit keine Erfahrung haben und ich kann dann wahrscheinlich den grössten Teil meines Programms wegschmeisen.


    Einmal editiert, zuletzt von thomas450 ()

  • Schritt für Schritt zum Roboterprofi!
  • Hallo Thomas,


    ich nehme mal an das deine Vorpos als E6POS deklariert sind, und du deshalb probleme mit dem TURN hast. Entweder du must schauen was der TURN an dieser Stelle im Programm für einen Wert hat und diesen zuweisen, oder Du kannst es mal als Frame probieren, da hier kein Status und Turn hinterlegt ist.


    Gruß Chili1886

  • Hi,


    ich würde mir eine E6POS als Vorposition teachen um den Rob in eine Orientierung zu zwingen und dann alles weitere über ein Frame also nur X,Y,Z,A,B,C, das wird für dein Schlauchpaket besser sein!

  • Die Achse 1 befindet sich bei dem 2. Palettenplatz im Bereich von 0°. D.h. die Teachposition ist z.B. bei -10° und die errechnete Position über der Palettenmitte ist bei +10°.


    Würde es helfen, wenn ich die aus der errechneten Position Status und Turn entferne (einen FRAME verwende) und dann PTP positioniere?


    Gruß Thomas

  • sollte eigentlich funktionieren, da sich der Roboter ohne S und T ähnlich wie bei LIN den kürzesten weg sucht. Aufpassen must du nur wenn sich die Bahn durch die Berechnung verändern kann, da der Roboter sonst evtl. eine andere Bahn fährt.

  • Sicher?


    Ich meine, wenn kein S/T in einer PTP bewegung angegeben ist, dann werden die zuletzt gültigen Werte verwendet. Und das kann dann natürlich wieder schiefgehen.


    Wenn bei der Teachposition A1 negativ ist, und bei der Berrechneten die A1 allerdings positiv (sein sollte), dann geht bei der Bewegung ohne dass explizit S/T angegeben werden der Roboter davon aus, dass bei der errechneten Zielposition A1 auch einen negativen winkel hat, und fährt A1 somit auf -340°

  • Eine Möglichkeit wäre:


    DECL E6AXIS zielachsen
    DECL E6AXIS startachsen
    DECL E6POS berechnete_position ;die position die du anfahren willst
    DECL FRAME berechnete_position_ohne_status_und_turn
    DECL INT err_status


    ....


    berechnete_position_ohne_status_und_turn = berechnete_position
    startachsen = $axis_act
    $target_status = #BEST
    $TOOL = TOOL_DATA[17] ;dein tool oder $nullframe
    $BASE = BASE_DATA[23] ;deine base oder $nullframe
    zielachsen = INVERSE(berechnete_position,startachsen,err_status)
    if (errstatus==0) then
    ptp zielachsen
    else
    loop
    ;error
    endloop
    endif


    siehe auch: http://www.roboterforum.de/rob….0.html;msg39014#msg39014


    bzw doku der inverse funktion hier: http://www.roboterforum.de/rob….0.html;msg21739#msg21739

    Einmal editiert, zuletzt von atw12az5 ()

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