Überdrehen Achse 6 verhinden?

  • Hallo Allerseits,


    ich habe hier eine Roboteranwendung bei der ich Pakete aus Sorterendstellen entnehme, auf Pufferplätzen zwischenlagere und dann packoptimiert auf einer Palette ablege. Die Reihenfolge , in der die einzelnen Dinge passieren ist durch die Reihenfolge und Taktzeit bestimmt mit der die Pakete in der Endstellen ankommen und somit nicht wirklich vorhersehbar.


    Soweit klappt das alles auch prima, nur gibt es nun leider immer mal wieder Situationen in denen mir die Anlage mit einem "Softwareendschalter A6" aussteigt.


    Dann steht einfach bedingt durch die vorherigen Aufträge die Achse 6 bereits recht stark verdreht z.B 330 Grad und zur Aufnahme des nächsten Pakets müsste er auf z.B 30 Grad drehen. Die Steuerung will dann anscheinend den kürzesten Weg drehen und läuft dann natürlich bei etwa 360 Grad in den Softwareanschlag.


    Frage: Wie gewöhne ich ihm das ab?


    Gibt es eine Funktion mit der ich immer mal wieder eine (achsenspezifische) Nullstellung erzwingen kann? Als einzige Lösung fällt mir da derzeit nur ein, wieder eine weitere Reihe von Zwischenpunkten anzufahren in denen ich die Achse 6 entsprechend drehe. Da ich aber mit 5 verschiedenen Bases arbeite und es entsprechend viele Fahrmöglichkeiten von A nach B gibt, endet das mit einer sehr langen Reihe von IF abfragen. Geht das nicht auch eleganter?



    Das sollte auf jeden Fall aus dem Programm raus kommen, ich möchte keine weiteren Fahraufträge von außen geben, da das immer etwas Zeit benötigt und ich die Gesamtzykluszeit so kurz wie nur irgendwie möglich halten muss.


    Danke und viele Grüße


    Andreas

  • Schritt für Schritt zum Roboterprofi!
  • Hi Andreas,


    nach einer Lösung für ein ähnliches Problem habe ich auch schon gesucht, muss dir leider Sagen das ich es Momentan auch nur über das Teachen von Zwei Zwischenpunkten realisiert habe. Bei mir ist es Jedoch leichter, da ich im nur am Programmende zurückdrehen lassen muss. Da du viele Möglichkeiten in deiner Applikation hast, wirst du wohl bisschen Arbeit reinstecken müssen.


    Vielleicht kann dir ja ein Anderer Weiterhelfen, i kann dir leider nichts Positives sagen. :denk:


    Viel Glück
    GutschiPK

    Kuka ist eine Echte Herrausforderung!<br />Aber ,kommt Zeit kommt Rat!

  • Hi GutschiPK,


    hm, danke erstmal, aber das muss doch eigentlich einfacher gehen... Das ist ja nun kein seltener Anwendungsfall, da sollten die doch von Kuka aus direkt was vorgesehen haben?


    Neue Frage: wäre es wohl möglich nur nach jedem Ablagevorgang, (also nachdem ich den Greifer wieder geöffnet habe) nur die Achse 6 wieder auf Null zu drehen und alle anderen so zu lassen wie sie sind? Wenn ich ihm einen Zwischenpunkt angebe in achsspezischen Koordinaten will der immer bei allen 6 Achsen feste Werte haben, ideal wäre es wenn ich einen ausdruck hätte, der die Achsen 1-5 auf den aktuellen Werten lässt und nur eben die Achse 6 auf null dreht. Da ich aber in den Bases mit karteschischen Koordinaten arbeite, kann ich nicht einfach die aktuellen Koordinaten per Variable übernehmen....


    Kann doch nicht so schwer sein?!? :denk:


    Viele Grüße


    Andreas

  • Man könnte auch nach jeder Ablage so etwas einbauen:


    Code
    WHILE  $axis_act.A6>=(XHOME.A6+90)
      PTP_rel {a6 -90} c_ptp
    ENDWHILE
    WHILE  $axis_act.A6<=(XHOME.A6-90)
     PTP_REL  {A6 90} C_PTP
    ENDWHILE


    Kannst du auf deine Bedürfnisse anpassen, muss ja nicht +/-90° sein
    Ebenso musst du nicht XHOME als Ausgangspunkt nehmen

  • Hi Allerseits,


    ulkig, nun scheint PTP {A6 0.0} mein Problem schonmal recht gut zu lösen. Hatte das schonmal probiert, und da hatte der irgendwie gemeckert...


    Werde aber vermutlich dennoch weitere Zwischenpunkte definieren müssen, da mir gerade mal aufgefallen ist, dass ich in meinem Programm nur mit Lastfahrten arbeite, d.h. der Robi bei meinen Leerfahrten ohne Kenntniss seiner aktuellen Position einfach zum nächsten Aufnahmepunkt fährt. Aufgrund der Anordnung der Anlage passt das bis jetzt und da ist auch nix im Weg, aber eigentlich sollte man doch auch die Leerfahrten etwas genauer definieren, oder?


    Danke jedenfalls!


    Gruß
    Andreas

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