Hallo Kollegen,
ich bin neu hier- also bitte nicht gleich in die Offensive, sollte ich unbemerkt irgendwelche Reglen brechen
Ich benötige für einen LBR 4+ eine Rückzugstrategie, die es mir (bzw. dem Bediener) nach einem Fehler am Roboter ermöglicht, aus allen Lagen mit dem Robi in eine sichere Home- Position zu gelangen.
Da der Leichbauroboter noch so eine Art Vorserienmodell ist und es oft zu unerklärlichen Ausfällen kommt, die teilweise von KUKA auch nicht erklärt/beseitigt werden können, benötigen wir solch eine Funktion dringend an unseren produktiven Bestückungs- LBRs.
Ich hab schon mal begonnen, die Strategie in zwei Teile zu gliedern:
Teil 1- der Robi ist in der Vorwärtsbewegung zum Werkstück bzw. zur Anlage, die er bestücken soll
Teil 2- Der Robi ist in der Rückwärtsbewegung zu seiner Ausgangspos. (Home usw...)
So- Teil 2 bereitet mir aber Probleme!
Ich muss ab diesem "Point of no Return" das Programm vorwärts abfahren. Da dieses Programm aber bei einem Fehlerfall abgewählt wird, muss ich nach initialisieren der "SaveReturn" Funktion genau an diesem Punkt im Programm/Unterprogramm fortfahren. Das Auslesen des Caller Stacks ($PRO_IP) gibt mir zwar Hinweise, wo das passiert ist, aber leider kann ich diesen Stack nicht beschreiben- dem Roboter sozusagen vorlügen, er habe alle Funktionen bis dahin beretis abgearbeitet und soll einfach hier weitermachen.
Leider müssen die Funktionen oft händisch ab- und wieder angewählt werden, damit es wieder funktioniert. Ist so eine dumme Eigenheit des LBR. Das Bedienpanel ist in unserer Produktionslinie verbaut/versteckt- die Anlagenbediener sollen keinen Zugriff darauf haben. Die SaveReturn- Funktion wird über eine Visualisierung initiiert.
Hat irgendwer eine Idee, wie ich diese Herausforderung am elegantesten löse. Dabei ist zu beachten, das diese Roboter mobil auf einem Shuttle montiert sind und mehrere, verschiedene Anlagen bestücken. Somit ist eine definition eines Arbeitsraumes oder sonstige Auswertungen der kart. Ist/Sollpositionen leider nicht möglich. Des Weitern sollen zukünftige Robis mit der selben Funktion ausgerüstet werden, also keine speziell für einen Anlagentyp programmierte Funktion. Es soll tatsächlich das unterbrochene Programm an der Unterbrechungsstelle fortgesetzt werden. Aus dem Cell- Programm heraus werden derzeit etwa über hundert Unterprogramme aufgerufen, diese wiederrum rufen globale Funktionen auf (z.B. Greifer öffnen, Greifer drehen, Steifigkeitsregler, usw...). Der Greifer am Robi darf auch nicht in einer x-beliebigen Bahn zurück zum Start, denn es fallen sonst die Teile aus dem "Werkstück" heraus. Deshalb das notwendige Fortsetzten des Programms...
Sollten noch einige Details benötigt werden- bitte einfach drauf los fragen!!
Ich bedanke mich schon mal im Voraus für die kreativen Lösungsansätze!!
LG Stups