Durchlaufgeschwindigkeit von Programm limitiert ?

  • Schönen guten Abend,

    Habe zurzeit eine Anlage laufen bei dem die KRC4 Steuerung direkt ohne externe SPS einen Servomotor ansteuert, über ein Beckhoff El2809 Modul. Einfach über die Pulsung vom Ausgang. Jetzt ist diese Pulsfrequenz ziemlich hoch, es ist jeweils 0.005s Einschaltdauer, wenn ich diesen Wert verringere, erhöht sich aber nicht die Pulsfrequenz. Bei dieser Anlage funktioniert das gut, da die Drehzahl des Servomotor ziemlich gering ist. Plane aber zurzeit eine neue Anlage, in der der Motor mit einer höheren Drehzahl laufen soll.

    Jetzt ist meine Frage, was genau limitiert mir die Pulsfrequenz, ist es das Outputmodul(El2809) oder die Steuerung, die mir die Durchlaufzeit der Schleife limitiert, wenn es das Outputmodul ist, kann ich einfach ein El2202 verbauen und das Problem wäre gelöst.

    Für jegliche Hilfe wäre ich dankbar

  • Schritt für Schritt zum Roboterprofi!
  • Die Buszykluszeit begrenzt die minimale Pulszeit.

    Die minimal einstellbare dürfte bei 2ms liegen. Macht aber öfter mal Probleme.

    Ansteuerung im Sps.sub begrenzt es auch, da der nur in einem kleinen Zeitschlitz zur Ausführung kommt.

  • Guten Abend,

    als Antwort auf woodys: Das funktioniert, mit der Robotersteuerung über die El2809 Klemme gebe ich die Richtungsinformation (0v gegen Uhrzeigersinn, 24v mit Uhrzeigersinn) und die Pulsefrequenz aus, wobei ein Puls eine Teildrehung ist, an den Servomotorendriver. Dieser übernimmt dann die ganze Regelung. Umso höher sie ausgegebene Frequenz, umso schneller dreht sich der Motor.


    Frage an Hermann: Es ist somit egal welches Outputmodul ich verwende, die Frequenz ist immer durch die Kommunikationszeit auf 0,002 limitiert?

  • Guten Abend,

    als Antwort auf woodys: Das funktioniert, mit der Robotersteuerung über die El2809 Klemme gebe ich die Richtungsinformation (0v gegen Uhrzeigersinn, 24v mit Uhrzeigersinn) und die Pulsefrequenz aus, wobei ein Puls eine Teildrehung ist, an den Servomotorendriver. Dieser übernimmt dann die ganze Regelung. Umso höher sie ausgegebene Frequenz, umso schneller dreht sich der Motor.


    Frage an Hermann: Es ist somit egal welches Outputmodul ich verwende, die Frequenz ist immer durch die Kommunikationszeit auf 0,002 limitiert?

    Okay…

    Und wie hoch ist dann diese Frequenz?


    Du pulst 0,005s ….im nächsten Zyklus nach 2ms pulst du dann wieder mit 0,005s?


    Lässt du das im submit laufen? Da müsste ja dann nur ein Eintrag stehen inklusive der Richtungsgebung…verstehe ich das richtig?

  • macht kein Sin... 0,005s ist 5ms. Pulse jede 2ms geht einfach nicht. auch nicht mit SPS staat KRC da Ausgang wird immer TRUE (5ms>2ms).


    auch 5ms geht nicht. Submit lauft auftretend jede 12ms und Zeitschlitz ist sehr eng.


    und wehn jede 12ms Ausgang is ein und ausgeschaltet, bedeuted ein Zeitraum ist 24ms und max 1000ms/24ms=41.67Hz


    so was ist einsaetzbar fuer zehr langsame dinge... kanst vergessen alles <24ms.


    solche Dinge loest mann mit specialle Klemmen wie EL2521. weiss nicht ob die von KUKA untertuetzt sind.

  • Hallo,

    ich bewege bei dieser Anlage einen Anschlag über eine Spindel. Da der Roboter sowieso nichts machen kann, während der Anschlag sich bewegt, springe ich für die Servomotoren Ansteuerung in ein Unterprogramm, benutze somit nicht den submit.

    Im Unterprogramm benutze ich eine einfache for schleife.

    Schaut ça. so aus


    $OUT[4] = FALSE ; Drehrichtung

    FOR stepsin = 1 TO bewege_anschlag_schritte STEP 1

    $OUT[5] = TRUE ;Ausgang für Bewegung

    WAIT SEC 0.005

    $OUT[5] = False

    WAIT SEC 0.005

    ENDFOR


    Die Schleife läuft die vorher gewünschten Schritte ab und stoppt dann, je nach zu bewegender Distanz sind es mehr oder weniger Schritte.

  • Danke für die Information. Werde mich bezüglich EL2521 Klemme informieren.

  • Ja denke auch dass du eher nach der passenden Klemme suchen solltest…wenn mal die Steuerung abschmiert und $OUT[5] ist dauerhaft true….weiß nicht was das alles für Folgen haben kann….


    Den Ausgang kann man auch pulsieren…. Oder alternativ mit ILF pulse …verkürzt den Code etwas

  • Die Schleife läuft die vorher gewünschten Schritte ab und stoppt dann, je nach zu bewegender Distanz sind es mehr oder weniger Schritte.

    So gehts... aber mag zu langsam sein. Die Frage is wie lange so was wirklich dauert und ob Drehungen kontinuirlich order zerstueckelt sind... Mit PTO Klemme gehts immer schneller. 1000 oder 10000 pulse in ein paar ms ist kein Problem

  • und wehn jede 12ms Ausgang is ein und ausgeschaltet, bedeuted ein Zeitraum ist 24ms und max 1000ms/24ms=41.67Hz

    Aus dem Programminterpreter schreibt die KRC4 $OUT[x] und $ANOUT[x] bei Zuweisungen direkt und ohne einem speziellen Zyklus unterliegenden Takt in den IO-Treiber. Was hier noch dazukommt ist Buszyklus und Schaltzeit des Modules.

    Wenn ich kurz im WoV schaue müsste dies der Standard sein.


    Dass WAIT SEC 0.005 aber wirklich exakt 5ms sind, bezweifle ich eher stark. Da greifen ganz andere Kriterien.


    Darum, dies über eine "Frequenz-Klemme" zu lösen, wäre sicher eine zuverlässigere Lösung.

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

  • genau....


    und da Bus zyklus 4ms ist, schneller schreiben von Ausgang in Programm wird nicht hilfreich da Bus ist Flashenhalls und so werden Pulses verlohren.


    Aber mit 5ms warte instruktionen, Zeitschlitz fuer Submit ist immer ueberschritten und damit 12ms IPO wirkt als Flashenhalls. Das bedeuted Ein/Aus Zeit ist 24ms oder laenger.


    Und wehn Drehung ist kurzer als 24ms, wirds ruckelig mit mehrere Umdrehungen.

  • Es ist alles gesagt, nur noch nicht von jedem :).

    Allerdings würde ich dann doch noch dazu sagen: Solche Dinge erledigt man normalerweise mit einem vernünftigen Antriebsverstärker der auch positionieren kann.

  • Hab mir jetzt die El 2502 und die 2521 Klemmen angeschaut, hab aber nicht verstanden wie genau die Frequenz und die "Schritte" gesteuert werden. Verstand habe ich das es über eine 16Bit Datenübertragung läuft.


    Hat jemand Erfahrungen mit dem Einsatz dieser Klemmen und kann mir erklären wie die Ansteuerung funktioniert?

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