Beiträge von Grubba

    Auch wenn ich noch immer nicht weiß, wo $drive_load herkommt :denk::


    Wenns wirklich so ist, dass beim Zugriff erst Achsdaten ausgelesen werden müssen, geht die Zeit dann doch beim internen Zugriff auf die Achsregler etc. verloren und nicht beim Umkopiervorgang auf Steuerungsebene.


    Vielleicht mal versuchen, alles auf einmal mit SWRITE umzukopieren ?


    Was sagt denn KUKA dazu?

    Was ist denn "$drive_load" ?


    Habe mal die Doku durchsucht, in Work visual gesucht, aber nirgendwo was gefunden.


    Wenn es aber wirklich eine Systemvariable ist, könnte es aber sein, dass die bei jedem Zugriff aktualisiert wird um immer die aktuellen Daten zur Verfügung zu stellen. Vielleicht geht dann intern bei der Abfrage der Ist-Motordaten die Zeit verloren.

    Dafür musst du dann wohl erst einmal deine Buskonfiguration überprüfen. Bei einer Profibus Konfiguration ist beispielsweise ein Watchdog von 30ms eingestellt. Somit sollten zumindest über den Bus alle 30ms Daten über den Bus eintrudeln. Das hat aber weniger mit der KRC4 zu tun als mit der Buskonfiguration. Die ist genormt.


    Und so wie ich es verstanden habe, sollten nach dem Empfang der Daten diese auch zur Verabeitung bereit stehen.


    Ansonsten:


    Ein Produkt mit unterschiedlichen Geschwindigkeiten suchen lassen und die Ergebnisse vergleichen. Daraus kannst du dann auch Rückschlüsse über die Geschwindigkeit der Verabeitungskette ziehen.

    Zitat

    Wenn du ihn selber programmiert hast, dann verstehe ich nicht ganz was es da für rechtliche Probleme geben kann.


    - Arbeitgeber
    - SDK evtl. nur Lite-Version, d.h. nicht für kommerzielle Zwecke nutzbar
    - keine Freigabe von KUKA, damit nicht jeder "Nerd" Software für die KRC4 verbreitet, die evtl. ins System eingreift und zu Crashes führt, für die KUKA verständlicherweise nicht geradestehen will


    und und und....

    Alles klar. Ich hatte schon alle Optionen durchgesehen und war mir schon fast sicher, da irgendwas übersehen zu haben.


    Danke für die prompte Antwort :supi:

    Mal eine (hoffentlich) nicht ganz doofe Frage:


    wie kann ich ein komplettes KRC4 Projekt laden?


    Die Projektsicherungsdateien haben ja die Änderung .wvs


    Wie öffne ich ein Projekt? Oder wie öffne ich ein einzelnes Modul ohne voriges exportieren unter WoV?

    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.

    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:

    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...

    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:

    @ 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:

    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?