Spline Bewegung am Ende des Programms wird nicht zu Ende gefahren

  • Servus,


    folgendes Problem:

    - mehrere Programme werden in einer Loop-Schleife ausgeführt. Die Programme werden über IF-Anweisungen aufgerufen.


    Habe jetz folgendes Problem: Roboter steht im Programm an der letzten Stelle Spline-Bewegung mit CONT, aber es ist kein neues Unterprogramm bereit => es kann daher nicht

    der letzte punkt nicht überschliffen werden.

    Der Roboter fährt dann die Spline Bewegung nicht zu Ende sondern bleibt vorher stehen. Auch die Trigger werden nicht geschalten.

    Das Ganze funktioniert nur wenn ich die letzte Bewegung nicht mit CONT mache.

    Das will ich aber nicht da sonst der Roboter jedesmal stehen bleibt.


    Fehler: Überschleifen nicht möglich: => ist ja auch klar weil keine anderes UP im Moment ausgeführt werden kann.

    Kann ein weiteres Programm ausgeführt werden dann funktioniert es.

    Warum fährt dann der Roboter den Punkt nicht mit Genauhalt wie bei PTP?

    Warum werden die Trigger nicht geschalten?


    KSS 8.6.6




    LOOP


    IF irgendwas

    UP1

    ENDIF


    IF irgendwas

    UP2

    ENDIF




    Endloop



    UP1 ()



    letzte Zeile Spline Bewegung mit CONT


    end

  • Schritt für Schritt zum Roboterprofi!
  • Nah Martl hast schon wieder Spaß mit der Augsburger Puppenkiste?


    Wir hatten so eine ähnliche Thematik mal bei den VW Kollegen, wir haben dann halt zwei unterschiedliche letzte Bewegungsinstruktionen am Ende erstellt und diese je nach Situation bedingt verwendet.


    Manchmal hilft für eine Krücke nur eine Krücke. :D


    Gruß

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Also Grundsätzlich würde ich sagen, dass man die SLIN und SPTP Befehle nur nutzen sollte wenn man SPLINE nutzt. Sonst gibts da irgendwie nur Ärger.


    Zum Problem:

    Du hast ja Bedingungen, nach denen du weißt ob du CONT fahren willst oder nicht. Nutze diese doch.

    Also bei der Bewegung:

    IF BLABLA == TRUE THEN

    SLIN P1 CONT ....

    ELSE

    SLIN P1 ....

    ENDIF

  • Servus,


    Danke an alle.

    Ist nicht das Erste mal das ich Probs mit Spline hatte. Beim ertsen mal wars eine ext. Achse. Da lief der Roboter nur noch sehr langsam. mit normalen PTP und LIN liefs dann wie geschmiert.


    Schön ist was anderes. Unten im Programm die gleichen Abfragen nochmal machen. :thumbdown:


    Da sollten die Herren bei Kaffee und Kuchen Augsburg mal a bisserl nachbessern.


    Gruß

    Martl


  • Dann lass ihn lieber über einen "Spline bedingten Stop" definiert auf der Bahn "halten", wenn Bedingung nicht erfüllt.

    Hat den Vorteil, dass, wenn während der Bremsphase die Bedingung sich wechselt, beschleunigt er gleich wieder.

    Wenn Du diese Bedingung verknüpfst nicht auf den letzten Punkt im UP, wirst Du auch keine Probleme mehr haben mit dem Überschleifen.


    Spline braucht ein generelles Umdenken im Setzen der Bahnpunkte. Vorausdenken das A-O.

    Vorlaufstop bei PTP/LIN führt zu Bahnänderung. Dass will man bei Spline verhindern.


    Ob es wirklich immer sinnvoll ist, es anzuwenden, ist jedem selber überlassen.

    KUKA macht aber schon mit dem ersten Satz dazu ein klares Statement, wozu es angedacht ist.



    Werde selbst sicher auch nie ein Fan davon werden. Aber ein Blick in die Doku über neue Features dazu lohnt sich.

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

  • Hallo Ihr KUKA Bändiger,


    ich hatte exakt gleiche Problem wie Martl, dass der Robi beim Anfang des Überschleifbogens bereits anhält, wenn bis dann der Vorlauf nicht schon genug weit ist.

    Das ist ziemlich ungünstig, wenn man den seltenen Fall hat, dass der Roboter in einer Zelle verschieden Stationen bedienen muss, die jeweils über Signale freigegeben werden. Und auch noch schnelle Fahrbewegungen gemacht werden sollen und für SPTP grosse Überschleifradien definiert werden... dann stockt die Roboterbewegung regelmässig.


    Leider war es bei dieser Anlage (Softwarestand?) so, dass der Roboter immer einen Genauhalt machte bei PTP-LIN (oder war es LIN-PTP?), deshalb war ich gezwungen alles auf SLIN und SPTP umzubauen. Jetzt habe ich keine Genauhalte mehr, dafür Ruckler und spastische Bewegungen. ;)


    Nun das von euch bereits beschriebene Verhalten, verursacht mir aber noch ein anderes Problem. Falls die SPS einen "Stop bei Zyklusende" auslöst, dann wird die letzte "Stations-Home" Bewegung nicht fertig ausgeführt, sondern der Roboter bleibt beim Anfang des Überschleifbogens stehen. Weil ja die Überschleifbewegung (noch) nicht abgeschlossen werden kann. In meinem Freifahr/Grundstellungsfahr-Programm werte ich zuerst $POS_ACT aus um, fest zustellen wo ich gerade bin und welchen Weg ich nehmen muss. Hier liegt das Problem! In $POS_ACT steht die Position vom Anfang des Überschleifbogens. Ich bräuchte hier aber die (überschliffene) Zielposition. Denn wenn ich jetzt SPTP $POS_ACT mache, bewegt sich der Roboter zuerst zu dieser Zielposition und dann wieder zurück zum Anfang des Überschleifbogens. Ich habe $POS_RET, $POS_INT und $POS_FOR angeschaut, aber die bieten mir keine Lösung.


    Weiss jemand einen Befehl um den Angefangenen Fahrbefehl abzubrechen und zum Zielpunkt zu fahren? Oder eine Variable in der ich den zu überschleifenden Zielpunkt finde?


    gruss Drudge

  • Servus,


    deinen Eingang oder die Variable für den "Stop bei Zyklusende" im Programm abfragen (mit IF-Anweisung )und in dieser dann mit PTP oder LIN anfahren. Vorher schön Continue.

    Bei mir hats so geklappt.


    BTW.

    Bei PTP auf LIN mache ich immer eine PTP-Bewegung in die selbe Richtung der LIN, dann funktioniert es auch ohne SPTP.


    Bin immer noch nicht glücklich mit dieser Programmierung. Ist halt so => Stand der Technik.


    Gruss Martl

  • Hallo Martl,


    ja diesen Ansatz hatte ich auch schon überlegt. Aber weil ich ja die Positionen überschleifen will, gibt es keine Vorlaufstops und die Bahnplanung wird im Vorlauf gemacht. Dadurch kommt es oft vor, dass eben schon der überschliffene Endpunkt eingelesen wurde und erst dann das Signal für Zyklusstop kommt.


    Bei PTP auf LIN zuerst eine PTP in Richtung wie LIN, funktioniert wirklich ohne einen Genauhalt? (PTP und LIN nicht SPTP und SLIN) ... müsste ich bei Gelegenheit mal testen.


    gruss Drudge

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