Bewegungssteuerung

Task-Konzept

Die Steuerung führt die Benutzeranwendung aus, in der Funktionsbausteine der Bewegungssteuerung in einer Task getrennt von der Echtzeit-Bewegungstask aufgerufen werden, in der Bewegungsprofile berechnet werden und die Sercos-Kommunikation stattfindet. Diese beiden Tasks können unterschiedliche Zykluszeiten haben. Die Zykluszeit der Anwendungstask beträgt üblicherweise 10 ms, aber kürzere Zykluszeiten bis zu 1 ms sind möglich. Die Echtzeittask arbeitet mit Zykluszeiten von 1 ms, 2 ms oder 4 ms, je nach Sercos-Zykluszeit und Maschinenkonfiguration (Steuerungstyp, Anzahl der Achsen usw.).

Diese Trennung bietet eine Reihe von Vorteilen im Hinblick auf eine verbesserte Leistung. Die Benutzeranwendung kann so langsam wie nötig ausgeführt werden, z. B. um den Betrieb des Dateisystems oder die Netzwerkkommunikation zu ermöglichen. Ereignisbehandlung, Entscheidungsfindung und Befehlsverarbeitung der Anwendung (typischerweise weniger zeitkritisch) können in dieser möglicherweise langsameren Task durchgeführt werden. Änderungen am Bewegungsprofil können jedoch mit maximaler Geschwindigkeit durchgeführt werden, indem die Funktionsbausteine vorzeitig ausgeführt und gepuffert werden.

Diese bewährte Vorgehensweise wird auch von Schneider Electric PacDrive-Systemen genutzt.

Programmierer, die mit Systemen wie SoftMotion (das die Benutzeranwendung im Echtzeitprozess ausführt) und der standardmäßigen PLCopen-Programmierung vertraut sind, müssen eine Reihe von gängigen Verfahren überdenken, um das volle Potenzial dieser Vorgehensweise auszuschöpfen. Eine typische Vorgehensweise bei der PLCopen-Programmierung besteht darin, zu warten, bis ein Funktionsbaustein „beendet“ wird (z. B. Ausgänge Done, inVelocity, EndOfProfile, InGear), und dann die entsprechenden Signale zur Ausführung des nächsten Funktionsbausteins zu verwenden.

Um die erwartete Bewegung ohne plötzliche Sprünge zu erreichen (insbesondere mit Geschwindigkeits- und/oder Beschleunigungswerten ungleich null am Ende eines Fahrauftrags), müssen Funktionsbausteine vorzeigt ausgeführt werden, wobei MC_Buffer_Mode auf Buffered gesetzt ist. Auf diese Weise wird das Bewegungsprofil eines Funktionsbausteins im gleichen Echtzeitzyklus aktiv, in dem ein vorhergehender Funktionsbaustein beendet wird.

Wenn Sie den Start (Execute) des nachfolgenden Funktionsbausteins z. B. über das EndOfProfile-Signal des vorhergehenden Funktionsbausteins auslösen, anstatt ihn zu puffern, ergeben sich ein oder mehrere Verzögerungszyklen, in denen kein Funktionsbaustein aktiv ist und die Achse im Stillstand bleibt, bis der nächste Anwendungstaskzyklus den nachfolgenden Funktionsbaustein startet.

Axis_Ref

Wie von PLCopen definiert, wird Axis_Ref als Eingang für Funktionsbausteine der Bewegungssteuerung verwendet, um die Achse anzugeben, die als Master- oder Slave-Achse für diesen Funktionsbaustein verwendet werden soll.

Der Modicon M262 Motion Controller stellt drei Typen von Implementierungen für die Axis_Ref zur Verfügung:

  • Antriebsachse

    Eine z. B. vom LXM32S-Antrieb oder dem generischen Geräteobjekt des Sercos-Antriebs zur Verfügung gestellte Antriebsachse. Der Zugang darauf kann beispielsweise über DRV_X.Axis erfolgen. Eine Antriebsachse kann als Master- oder als Slave-Achse für jeden Funktionsbaustein mit dem entsprechenden Eingang verwendet werden. Die Positions-, Geschwindigkeits- und/oder Beschleunigungswerte einer Antriebsachse sind üblicherweise Zielwerte. Die einzige Ausnahme gibt es in Situationen, in denen der Modicon M262 Motion Controller die Bewegung der Achse nicht steuert (z. B. während des Referenzierungsvorgangs (Homing), bei einem Stopp, der autonom vom Antrieb durchgeführt wird, oder wenn die Endstufe des Antriebs deaktiviert ist). Unter solchen Bedingungen ist die Position der Achse die Rückführposition und die Geschwindigkeit/Beschleunigung wird basierend auf der Rückführposition berechnet. Eine Slave-Achse kann weiterhin einer Master-Achse folgen, auch wenn die Master-Achse zurzeit nicht vom Modicon M262 Motion Controller gesteuert wird.

  • Virtuelle Achse

    Eine virtuelle Achse stellt beispielsweise eine virtuelle Maschinenwelle oder eine andere Zwischenachse für komplexe Beziehungen zwischen Master- und Slave-Achsen dar. Eine virtuelle Achse kann durch Deklaration eines VAR vom Typ FB_ControlledAxis an beliebiger Stelle in der Anwendung erstellt werden. Eine virtuelle Achse kann als Master- oder als Slave-Achse für jeden Funktionsbaustein mit dem entsprechenden Eingang verwendet werden.

    Die Anzahl der virtuellen Achsen sind beim Modicon M262 Motion Controller nicht begrenzt. Beachten Sie jedoch, dass eine virtuelle Achse eine Auswirkung auf die Leistung des Modicon M262 Motion Controller hat, die mit der einer Antriebsachse vergleichbar ist.

  • Gebereingangsachse

    Eine Gebereingangsachse wird vom integrierten Gebereingang des Modicon M262 Motion Controller bereitgestellt. Eine Gebereingangsachse kann nur als Master-Achse, nicht als Slave-Achse verwendet werden. Die vom Geber bereitgestellten Rückgabewerte werden als Position der Master-Achse verwendet.

Wenn eine Master-Achse nicht verfügbar ist (z. B. Geber ist getrennt oder außer Betrieb), geht jede Slave-Achse nach diesem Master in den PLCopen-Betriebszustand ErrorStop über. Wenn Sie in einer solchen Situation die Slaves synchron stoppen lassen möchten, implementieren Sie eine virtuelle Zwischenachse zwischen den Achsen.

Ist die Master-Achse nicht mehr verfügbar, wechselt die virtuelle Zwischenachse in den PLCopen-Betriebszustand ErrorStop. Die der Zwischenachse folgenden Achsen verbleiben im PLCopen-Betriebszustand SynchronizedMotion und folgen weiterhin der virtuellen Zwischenachse während ihrer Verzögerungsrampe.

Achskonfiguration

Der Modicon M262 Motion Controller unterstützt beide von PLCopen definierte Achstypen:

  • Modulo-Achse

  • Lineare/Endliche Achse (mit oder ohne Bewegungsbegrenzungen)

Eine Achse wird durch Aufruf der entsprechenden Methode von Axis_Ref konfiguriert.

Das Modulo einer als Modulo-Achse definierten Achse wird unabhängig vom Auftrag oder Achszustand beobachtet (z. B. auch bei deaktivierter Achse).

Es besteht nicht unbedingt ein Zusammenhang zwischen dem Modulo der Achse und der Kurvenanwendungsperiode (weder in der X- noch in der Y-Richtung), selbst wenn die Kurve im absoluten Modus gestartet wird. Nähere Informationen finden Sie in der Beschreibung des Funktionsbausteins.

Die Sollposition und die Position befinden sich auf derselben Seite des Modulo-Sprungs. Das bedeutet, dass beispielsweise bei einer Achse, die mit Modulo 360 vorwärts fährt, die Position den Wert -2 (anstelle von 358) haben kann, wenn die Referenzposition 1 ist.

Absolute Position, Referenzierung und absolute Bewegungen

Nach Aus- und Wiedereinschalten stellt eine Antriebsachse oder eine Geberachse in der Regel ihre absolute Position aus der gespeicherten Geberposition wieder her. Dies geschieht durch Multiplikation der Geberposition mit der Skalierung des Antriebs und Zuordnung des Werts zur Modulo-Position, wenn eine Modulo-Achse verwendet wird. Die Steuerung kann jedoch nicht überprüfen, ob diese wiederhergestellte absolute Position korrekt ist. Die Position ist möglicherweise nicht korrekt, wenn z. B. die mechanische Position geändert wurde (z. B. Motor, Geber und/oder Getriebe ausgetauscht wurden oder beim Ausschalten manuelle Bewegungen durchgeführt wurden). Darüber hinaus muss der Bewegungsbereich der Achse mechanisch begrenzt werden, um innerhalb von weniger als einem Geberüberlauf zu liegen. Außerdem muss das Übersetzungsverhältnis eines mechanischen Getriebes und/oder der Skalierungsfaktor für den Antrieb so gewählt werden, dass die Geberposition der Geberperiode in ein ganzzahliges Vielfaches der Anwendungsperiode aufgelöst werden kann.

Um Bedingungen mit absoluten falschen Positionen zu vermeiden, stellt der Modicon M262 Motion Controller die absolute Position wieder her, berücksichtigt aber nicht automatisch die zu referenzierende(n) Achse(n). Eine Achse wird erst als referenziert betrachtet, nachdem der Funktionsbaustein MC_Home oder der Funktionsbaustein MC_SetPosition (mit Relative = FALSE) ausgeführt wurde oder das Flag isHomed von der Steuerungsanwendung auf TRUE gesetzt wurde.

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
  • Vergewissern Sie sich, dass die Achse nach jedem Aus- und Wiedereinschalten und nach jedem manuellen Eingriff richtig referenziert wurde, bevor Sie andere Bewegungen ausführen.
  • Vergewissern Sie sich, dass die Achse korrekt referenziert wurde, bevor Sie irgendwelche absoluten Bewegungen durchführen.
  • Setzen Sie das Flag isHomed in der Steuerungsanwendung erst dann auf TRUE, wenn Sie durch geeignete Mittel positiv sichergestellt und bestätigt haben, dass die wiederhergestellte absolute Position korrekt ist.
  • Sie müssen alle relevanten Dokumentationen sämtlicher Software und Geräte, die in Ihrer Anwendung/Ihrem Prozess verwendet werden, vollständig lesen und verstehen.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

Bewegungsbereichs- und Positionsberechnung mit Gleitkommazahlen

Der Modicon M262 Motion Controller verwendet Gleitkommazahlen für absolute Achsenpositionen. Gleitkommazahlen ist es eigen, dass die Auflösung (absolut) abnimmt, je weiter die Zahlen von Null entfernt sind. Die Position eines Antriebs hingegen wird durch Ganzzahlen (Encoder-Inkremente) dargestellt, so dass die Auflösung immer gleich ist, unabhängig davon, wie weit die Zahl von Null entfernt ist. Im Laufe der Zeit für dies zu einer verminderten Regelgenauigkeit und letztlich zu einem Stillstand der Achse infolge eines erkannten Fehlers, auch wenn die Gleitkommaauflösung noch ausreichend ist.

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
  • Verwenden Sie den Achsentyp Modulo für eine Achse, die sich nur in eine Richtung bewegt und ihre Position kontinuierlich erhöht, wie beispielsweise eine Förderachse.
  • Verwenden Sie den Achsentyp Linear/Endlich nur für Achsen mit physikalisch begrenzten Bewegungsbereichen, z. B. über Endschalter.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.