Beschleunigung Asynchrone Achse

  • Werte Robotergemeinde,


    ich habe folgendes Problem: (KRC4)


    Eine externe asynchrone Achse treibt ein Drehfutter an. Der Achse wird ein Ziel vorgegeben, die Geschwindigkeit soll während der Bewegung geändert werden können.


    Das Ganze ist eine Schweißanwendung, bei der der Roboter nur die Pistole über das gedrehte Rohr hält und wahlweise auch während der Schweißung pendeln muss.
    Es müssen während der Schweißung sämtliche Parameter on the fly änderbar sein. (Pendelendpunkte - in sämtlichen Koordinaten, Pendelgeschwindigkeit, Drehgeschwindigkeit des Rohres ohne Änderung der Pendelgeschwindigkeit etc.)
    Rohrdurchmesser sind unterschiedlich, Drehung umfasst mehr als 360°.


    Die Programmierung erfolgt nur über Parametrierung und darf keine Benutzung des SmartPads erfordern.


    Nun ist das Problem, dass die Achse viel zu langsam beschleunigt. Der Witz an der Sache ist, dass die Beschleunigung nur bis zum erreichen der "ersten" Zielgeschwindigkeit gering ist.
    Sobald die Achse die Zielgeschwindigkeit erreicht hat, wird jeder Overrideänderung unmittelbar gefolgt.
    z.B. (exakte Angaben der Befehl nicht garantiert, da ich aktuell keine Unterlagen da habe.....)


    Code
    $OV_EXTAX[1] = 100
    $OV_SYNC       = 1
    ASYPTP {E1 10000}


    Fährt in ca. 3 Sekunden auf 1% der Maximalgeschwindigkeit, beschleunigt also sehr langsam.


    anschließendes:

    Code
    $OV_SYNC       = 100


    beschleunigt die Achse in Nullkommagarnix auf die Maximalgeschwindigkeit.


    auch umschalten des Overrides im Bereich von 1% auf 2% beschleunigt die Achse unmittelbar.


    Achsbeschleuingung ist auf 100% eingestellt.
    Hochlaufzeit der Achse in WorkVisual auf 300ms eingestellt, Änderungen ohne spürbaren Einfluss.


    Die Drehachse ist als Linearache konfiguriert, 1° entspricht 1mm.
    Was auffällt ist, dass die Beschleunigung je länger dauert, je höher


    $OV_EXTAX[1] gewählt wird.


    Stelle ich diesen Wert auf 1, ist die Beschleunigung wieder einwandfrei. Habe deshalb spaßeshalber die maximale Drehgeschwindigkeit des Motors in den Madas um Faktor 100 erhöht, $OV_EXTAX[1] von 100% auf 1% gesenkt - und siehe da, Achse beschleunigt wie gewünscht.
    Mit dieser Änderung könnte ich ja leben, nur funktioniert so der Bremsentest (hab nen SafeRobot) nicht mehr... :cry:


    Warum beschleunigt die Achse bis zum erreichen des ersten Geschwindigkeitsziels so langsam? Gibts da noch irgendwo in den Maschinendaten Parameter, an denen man drehen kann?

  • Schritt für Schritt zum Roboterprofi!
  • Pragmatische Lösung: 7. Achse aus dem Bremsentest rausnehmen.
    Sollte vermutlich sicherheitstechnisch kein Problem darstellen, wenn die 7. Achse nicht durch die Schutzumhausung fahren kann.

  • @ Ser-G
    Meinst du, dass die Achse erst langsam beschleunigt auf die Home Position fährt?


    Ich habe da schon mal versucht, erst mit OVR=1 auf eine Position xyz zu fahren, und dann mit einer erneuten ASYPTP Fahrt dann ordentlich zu beschleunigen. War nix.
    Aber ich werde da mal ein wenig herumspielen, vielleicht muss ich ja doch vorher eine PTP HOME ausführen. (Aktuell PTP $POS_ACT) Denn eine Homeposition muss ja auch E1 haben.



    Hermann
    Habe ich auch schon gedacht. Wenn alle Stricke reissen, könnte das die allerletzte Lösung sein. Allerdings könnte ja theoretisch irgendein Bauteil eingespannt sein, welches den DAU in die Maschine einzieht.


    Vielleicht hat ja jemand noch einen MADA Wert, mit dem die Geschwindigkeit für den Bremstest definiert wird. Die scheint wohl von der maximalen Drehzahl abhängig zu sein, welche nun statt 2000U/min 200000U/min ist. Deshalb funktioniert auch der Bremsentest nicht mehr.



    Trotzdem geht es mir nicht in den Kopf, dass eine externe asynchrone Achse mit einer nicht näher definierten Beschleunigung losfährt.


    Aber erst einmal schon mal vielen Dank für zwei Vorschläge an einen Sonntagmittag :danke:

  • Das will ich wohl versuchen, sofern es denn hilft.
    Nur, was wäre die Verbesserung an der Stelle?


    Vorteil bei Linearachse ist, dass ich kein Problem mit Moduloproblematik habe.


    Ich starte einfach die Achse mit meiner Zielposition und muss mich um nichts mehr kümmern.
    Je nach Position kann ich andere Pendel, Geschwindigkeits oder was-auch-immer-Einstellungen einstellen.


    Was würde bei einer Rundachse besser laufen und warum sollte diese dann besser beschleunigen :huh:

  • hmmm,


    versuchmal so:


    ; achse asynchron
    PTP home
    ; achse synchron
    ptp $pos_act
    ; achse asynchron


    ; programmablauf .....



    weil: theoretisch hat ja die achse ja keine defenierte stellung beim einschalten ....
    , dann braucht die ja eine sak fahrt


    hatte glaube ich auch mal das problem

  • Nö, auch die Home Fahrt hat nichts gebracht.


    Habe den OV jetzt auf 1% stehen und die Zeit gemessen, die die Achse zum Hochlaufen braucht.


    Dauert geschlagenen 10 Sekunden.


    Noch jemand Ideen? :nocheck:

  • Problem ist gelöst (mehr oder minder jedenfalls)


    Ich hatte eben einen wirklich schlauen KUKA Mann am Telefon, der mir dann folgendes erklärt hat:


    Beschleunigung bei Async Bewegungen abhängig von Endgeschwindigkeit. Je langsamer, desto geringer die Beschleunigung.


    $Raise_Time ist der Parameter, der bei 100% Acc die Zeit der Beschleunigung auf Nenngeschwindigkeit des Motors bestimmt.
    Habe ich nur 1% Nenngeschwindigkeit, habe ich theoretisch auf eine 100 mal so lange Beschleuigungszeit.


    Vielleicht hilft diese Angabe ja diversen Leidensgenossen...

  • Hallo Grubba,


    bei der KRC4 gibt es meines Wissens nach $RAISE_TIME[] in der R1/$machine.dat nicht mehr. Du musst stattdessen auf RampUpTimeUnderLoad in E<n>.xml schauen (n aus {1,...6} je nachdem welche Achse deine Asynchrone Zusatzachse ist).


    Fubini

  • Aargh, stimmt ja.


    Habe die Werte aber schon angepasst, nur RAISE_TIME war noch auf der KRC2 der entsprechende Parameter.


    Du hast vollkommen Recht, auf der KRC4 ist -RampUpTimeUnderLoad- der korrekte Parameter.


    Danke für die Korrektur, hab schon vor lauter Freude über das gelöste Problem die Werte durcheinandergeworfen... :oops:

  • Entweder in WorkVisual direkt in der Achskonfiguration einstellen oder (eh ich es jetzt selber die Verzeichnisse suche....)
    in WorkVisual nach "RampUpTimeUnderLoad" suchen lassen. Dann listet er die alle Stellen in den Dateien auf, wo die Variable vorkommt.

  • Hello Grubba,


    As far as I know, the KRC4 no longer has $RAISE_TIME[] in R1/$machine.dat. You have to look at RampUpTimeUnderLoad in E<n>.xml instead (n from {1,...6} depending on which axis is your asynchronous additional axis).


    fubini

    Hello everyone!
    I have a question about the brake test. How can I perform an active brake test? As in the image below, the brake test status is now disabled

    Code
    There is some information about my robot


    Thanks Pro !

  • You do not seem to have any Safe Package like SafeOperation installed. It only gets configurable/activated if you have a safety technology package.


    Btw. Why do you ask in English. This is a German forum. You could ask in the english forum as well.


    Btw. Your request has nothing to do with the above discussion in this thread so why do you ask here and did not open a new thread.


    Fubini

  • You do not seem to have any Safe Package like SafeOperation installed. It only gets configurable/activated if you have a safety technology package.


    Fubini

    Code
    Wow
    Vielen Dank für Ihren Kommentar!
    Ich habe einen sicheren Betrieb wie auf dem Bild
    Wie installiere ich es für Robot?
  • Setup.exe. Hast du denn auch alle nötige Hardware? Z.B. eine SafeRDC


    Falls du Safety benutzen willst brauchst du die entsprechende Zusatzausbildung und Zertifikate. Welche das sind hängt von dem Land ab in dem du die Anlage betreiben willst.


    Fubini

  • Mit KRC4 ist jeder RDC SafeRDC


    Eigentlich ist bei KRC4 alles mit FSoE ausgestattet (RDC, KPP, KSP, CIB, smartPad...)


    BrakeTest ist auch beim KRC4 Standard (auch ohne SafeOp).


    Wenn SafeOp aktiviert ist, BrakeTest ist erforderlich.


    Ohne SafeOp ist BrakeTest auch nutzbar, aber nicht erfordert. Und in diesem Fall erfolgt die Aktivierung/Deaktivierung nicht in der Safety Config. Dies kann für Diagnosezwecke nützlich sein (nach dem Austausch des Motors oder wenn die Achse ohne KRC bewegt wurde).

  • Mit KRC4 ist jeder RDC SafeRDC


    Eigentlich ist bei KRC4 alles mit FSoE ausgestattet (RDC, KPP, KSP, CIB, smartPad...)


    BrakeTest ist auch beim KRC4 Standard (auch ohne SafeOp).


    Wenn SafeOp aktiviert ist, BrakeTest ist erforderlich.


    Ohne SafeOp ist BrakeTest auch nutzbar, aber nicht erfordert. Und in diesem Fall erfolgt die Aktivierung/Deaktivierung nicht in der Safety Config. Dies kann für Diagnosezwecke nützlich sein (nach dem Austausch des Motors oder wenn die Achse ohne KRC bewegt wurde).

    Code
    Wow!
    
    Leider verlangt mein Kunde, dass das Robotersystem den Bremstest einmal täglich manuell über eine Taste auf der HMI durchführen muss
    
    Abschließend: Kann ich den Bremstest durchführen, ohne den Sicherheitsbetrieb zu installieren?
    
    Aber ich habe es versucht und es war nicht erfolgreich

    Ich habe die Kommentarzeile in „motion drv.ini“ ignoriert und „Force Brake Test“ aktiviert und Punkte zu den Programmen hinzugefügt, die sich in /R1/TP/Brake Test befinden

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