Falsche Bahnplanung bei Punkteverschiebung mit wobj

  • Hi alle zusammen,


    hab da mal wieder ein kleines Problem(chen) wo ich eure Hilfe gebrauchen könnte.
    Es geht um eine IRC 5 Steuerung mit einem IRB 1600.


    Das Problem ist schnell beschrieben :|:
    3 Punkte (Unterschiedliche Stellung) in Koordinatensystem A geteacht.

    Um diese 3 Punkte an 3 weitern Stationen zu duplizieren habe ich einfach Koordinatensystem B, C und D eingemessen und fahre nur mit ändern des Werkobjektes diese insgesamt 12 Punkte an.

    Funktioniert soweit auch. Jedoch in Koordinatensystem D kann der Roboter 2 von 3 Punkten nicht anfahren, da er irgendwie anders herum hinter sich her fahren möchte...

    Auch wenn die Vorposition schon 20cm davor ist, dreht er dann einfach ab.

    Es handelt sich um MoveJ Punkte, die angefahren werden, ob er mit MoveL diese direkt anfährt habe ich heute nicht mehr ausprobiert.


    Habt ihr Ideen woran das liegen könnte? Evtl, dass die Teachpunkte und die letzten Punkt knapp um die 180° auseinander liegen und der dann lieber den anderen Weg nehmen möchte???


    Habe zum Verständnis eine kleine Zeichnung angehangen.
    Schon mal danke für eure Hilfe.


    Btw: Sorry für meine Paintskills xD

  • ANZEIGE
  • Habt ihr Ideen woran das liegen könnte? Evtl, dass die Teachpunkte und die letzten Punkt knapp um die 180° auseinander liegen und der dann lieber den anderen Weg nehmen möchte???

    Ja.

    Lies mal bitte in der Doku unter Datentypen das Kapitel "confdata" und bei den Instruktionen "ConfJ" und "ConfL".

    Das Problem mit dem Unterschied um 180° bzw. "einen Hauch drunter oder einen Hauch drüber" ist ein Generelles. Das kann einem die Anlage kurz und klein hauen, wenn man nur "mal eben" ein anderes Tool nimmt, einen Offset draufschlägt oder eine Überschleifzone plötzlich zum Genauhalt wird. Bitte sehr ernst nehmen!


    Falls möglich in Deinem speziellen Fall: für jeden Platz der Station einen EIGENEN Anfahrpunkt grob drüber (mit ConfJ \On oder, falls Du ganz sicher gehen willst, mit MoveAbsJ), und dann die eigentlichen Bearbeitungspunkte ausschließlich mit MoveL und ConfL \Off.

  • Programmiersklave vielen Dank für die Antwort. Hat mir echt weiter geholfen und war auch hilfreich.
    Habe alle Punkte mit ConfJ und ConfL super anfahren können, doch habe ich hier ein großes Problem gehabt.
    Das Programm ist leider so flexibel, das ich von jeder Stellung und noch mehr anderen Stellung starte und auch überall enden könnte. Deshalb läuft das über ein kleines Programm mit temporären Positionen, Basen und Werkzeugen, welches ich aber vorher immer mit Daten füttere ;).

    Außerdem sind die Positionen auch noch variabel.


    Es kam dadurch manchmal dazu, dass ich bei einem durchlauf die Vorposition mit ConfJ anfahren musste, aber andere Vorpositionen, beim nächsten durchlauf des Programms (gleiche Zeile, aber veränderte Positionsvariable) nicht. So wollte der Roboter manchmal einfach komplett über sich her fahren, anstelle den Weg außen rum zu nehmen ^^ . So gab es mehrere Situationen.


    Lange Rede kurzer Sinn. Ruder zurück, Schnell die Punkte mit ConfL angefahren, Teachpositionen in den einzelnen Werkobjekten integriert, welche ich dann einfach direkt in die temporären Variablen schiebe, falls benötigt, und dann gehe ich mit einem guten gewissen weiter. Das andere war mir dann doch etwas zu heiß 8o


    An Erfahrung bin ich trotzdem wieder reicher geworden :thumbup:

  • Alternativ kannst du auch die Achskonfigurationsdaten hart je Wobj umschreiben. Hatte ich schon einmal in einem extremen Fall gehabt, Das war ein großes Regal, welches zig verschiedene Achskonstellationen hatte. Hier ein kurzer Auszug:

  • Hallo,
    eine detailierte Beschreibung zu den Achskonfigurationen findest Du Im Handbuch "Technical reference manual RAPID Instructions, Functions and Data types" im Kapitel "Datentypen, confdata"

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • erfüllt aber seinen Zweck.


    Richtig. Es erfüllt seinen Zweck. Hier ist es gewollt, dass der Roboter das Handgelenk an manchen Positionen gezielt durchschlägt, was mittels Conf*/Off nicht sauber funktionierte und ich deswegen darauf umschwenken musste.. Zusätzlich soll das Regal nur mit drei Positionen geteacht werden. Die Anfahrtswege werden auch alle nur berechnet. Deswegen der ganze Aufwand. Das wäre bei insgesamt 150 Ablagepositionen ein Heidenaufwand geworden.. Programmierer sind ja bekanntlich faul! 😏

  • Programmierer sind ja bekanntlich faul!

    ... und dann erwähnt der Bauleiter bei der Übergabe der aufgebauten Anlage noch in einem Nebensatz: "ach ja, und wir mussten den Roboter 30° verdreht und 20 cm weiter links aufstellen, ging nicht anders. Projektleiter sagt, dass das passt. Ist doch nicht schlimm, oder?"

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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