Probleme mit LIN Bewegungen

  • Moin,


    bisher arbeite ich bei meiner Positionierung ausschließlich mit PTP Bewegungen.
    Das würde ich jedoch gerne umstellen auf LIN-Bewegungen um den vorhandenen Platz besser auszunutzen.


    Meine kompletten Beschleunigungs- und Geschwindigkeitsdaten sind auf 30% programmiert, $TOOL und $BASE sind gesetzt. Kleines Beispiel:


    Code
    $BASE = $NULLFRAME
    $TOOL = TOOL_DATA[1]
    
    
    $VEL_AXIS[1] = 30
    ... (hier aus reiner Faulheit die anderen rausgelassen! :) )
    $ACC_AXIS[6] = 30
    
    
    LIN POSITION


    Trotz allem wirft er mir hierbei immer den Fehler:
    "Geschwindigkeitsüberhöhung A4 230.27%; Reset oder Satzanwahl erforderlich"


    Per PTP funktioniert es wunderbar.


    Was mache ich falsch? Ich habe theoretisch alle Zeit der Welt, kann man nicht in so einem Fall die Geschwindigkeiten und Beschleunigungen soweit drosseln dass er den Punkt trotzdem anfährt?


    Jegliche Tipps werden gern gesehen! :danke:

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


    ich vermute mal, du fährst linear über (oder zumindest recht nah an) eine Singularität.
    Lies dir mal das hier durch:
    http://www.roboterforum.de/rob….0.html;msg19024#msg19024


    Bei PTP spielt das halt keine Rolle ....


    Im Übrigen werden bei CP-Bewegungen (also auch LIN) die Geschwindigkeiten und Beschleunigungen
    mit $VEL.CP, $ACC.CP usw. bestimmt, aber selbst wenn du mit einer gaaaaanz langsamen Bahngeschwindigkeit
    über eine Singularität fährst, wird die vierte Achse aussteigen: sie kann sich eben nicht beliebig schnell drehen.


    Gruß
    rmac

  • Ok Problem erkannt. Die Bösen Singularitäten mal wieder.
    Laut dem was ich jetzt rausgelesen habe kann man das gar nicht umgehen? :denk:


    Mir ist direkt die Bahngeschwindigkeit ja wurscht, er kann gerne auch kurz vor der Singularität stehen bleiben, seine Achsen korrigieren und dann erst die Bahn fortsetzen, wäre vollkommen in Ordnung für mich. Aber das ist wohl nicht realisierbar oder?


    Oder ein einfacher Programmieraufruf ala:
    if (Geschwindigkeit A4 > 100%)
    GeschwindigkeitA4 = 100%


    oder so (ich weiß Syntax ist nicht korrekt! ;) ).


    Mein Problem ist nur bei folgendem Ablauf:
    "Roboter bekommt Koordinaten -> Roboter testet ob Endkoordinate im Arbeitsraum liegt (via INVERSE) -> Koordinate liegt im Arbeitsraum -> Roboter fährt Koordinate mit PTP an" kommt es dazu dass er während des Verfahrens mit PTP den Arbeitsraum verletzt OBWOHL die Endkoordinate in Ordnung ist. Daher wäre teilweise eine etwas "raumsparendere" Bewegung wünschenswert als sie mir PTP liefert.

  • du könntest die gerade zum Zielpunkt in kleinere Stücke aufteilen und dann wieder PTP C_PTP fahren. Dadurch würde das "Ausschlagen" des Roboters bei der Bewegung verringert. (je kleinere Teilabschnitte desto ähnlicher einer LIN Bewegung, mal abgesehen von den Geschwindigkeiten etc.)


    oder da es vorher vom Platz her gesehen auch mit PTP ging, kannst du es mit dem $ORI_TYPE = #JOINT versuchen.

    Einmal editiert, zuletzt von simeonw ()

  • $CP_VEL_TYPE = #VAR_ALL
    Damit regelt der Roboter selbstständig seine Geschwindigkeit wenn er in Singularitäten kommt, damit kein Fehler auftritt.
    Mehr dazu im Anhang

  • KRC/STEU/Mada/Custom.dat
    DECL CP_VEL_TYPE $CP_VEL_TYPE=#CONSTANT

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • Hallo,


    hab ein ähnliches Problem. Konnte das Problem auch schon mithilfe der hier geschriebenen Antworten etwas eingrenzen.
    Mein Idee ist das ich den TCP auf die Kante meines Werkstückes lege, habe dazu ein neues Tool angelegt und wollte jetzt lediglich um die B Komponente kippen.
    Das passt auch alles soweit TCP verschiebt sich an richtige stelle und das Tool ist auch angewählt.


    Bevor ich die Variable geändert habe stieg ständig A4 aus mit den gleichen Meldungen wie in Beitrag 1.
    Nach der Änderung der Variable weist mich die BOF darauf hin das er die Geschwindigkeit um 99,96% reduziert hat.


    Jetzt ist es aber so das man das Gefühl hat das der Roboter zwei Bewegungen macht. D.h. er bringt erst B Komponente in Stellung ohne den TCP zu beachten. Danach fährt er die Position an.
    $CP_VEL_TYPE = #VAR_ALL.


    Bewegung:
    LIN $POS_ACT:TEST


    Habe einen KR150R3700K KRC04.


    Wäre super wenn einer eine Idee hat warum er nicht über meinen TCP kippt.
    Wenn ich eine Satzanwahl in diesem Fall auf die Bewegung macht funktioniert es, halt nur reduziert SAK Fahrt.

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