Motion Control

Task-Konzept

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

Diese Trennung bietet eine Reihe von Vorteilen im Hinblick auf die 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, Entschei­dungsfindung 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 Echtzeit­prozess 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 Geschwin­digkeits- 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 Echtzeit­zyklus 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, statt 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 ein Axis_Ref als Eingang für Funktionsbausteine der Bewegungssteuerung verwendet, um die Achse anzugeben, die als Masterachse oder Slaveachse 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:

oAntriebsachse

Eine vom LXM32S-Antrieb oder dem generischen Sercos Drive-Geräteobjekt zur Verfügung gestellte Antriebsachse. Der Zugang darauf kann beispielsweise über DRV_X.Axis erfolgen. Eine Antriebsachse kann als Masterachse oder als Slaveachse 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 Homing-Vorgangs, 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 Geschwin­digkeit/Beschleunigung wird basierend auf der Rückführposition berechnet. Eine Slaveachse kann weiterhin einer Masterachse folgen, auch wenn die Masterachse zurzeit nicht vom Modicon M262 Motion Controller gesteuert wird.

oVirtuelle Achse

Eine virtuelle Achse stellt beispielsweise eine Welle einer virtuellen Maschine oder eine andere Zwischenachse für komplexe Beziehungen zwischen Master- und Slaveachsen dar. Eine virtuelle Achse kann durch Deklaration eines VAR vom Typ FB_ControlledAxis an beliebiger Stelle in der Anwendung deklariert werden. Eine virtuelle Achse kann als Masterachse oder als Slaveachse 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 der CPU des Modicon M262 Motion Controller hat, die mit der einer Antriebsachse vergleichbar ist.

oGebereingangsachse

Eine Gebereingangsachse wird vom integrierten Gebereingang des Modicon M262 Motion Controller bereitgestellt. Eine Gebereingangsachse kann nur als Masterachse, nicht als Slaveachse verwendet werden. Wenn sie als Masterachse verwendet wird, werden die vom Geber bereitgestellten Rückführwerte als Position der Masterachse verwendet.

Wenn eine Masterachse nicht verfügbar ist (z. B. Geber ist getrennt oder außer Betrieb), geht jede Slaveachse 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 Masterachse 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.

Achsenkonfiguration

Der Modicon M262 Motion Controller unterstützt beide durch PLCopen implizierte Achsentypen:

oModulo-Achse

oLineare/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 Achsenzustand 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 unter der Beschreibung des Funktionsbausteins.

Die Referenzposition und die tatsächliche Position befinden sich auf der gleichen Seite des Modulo-Sprungs. Das bedeutet, dass z. B. bei einer Achse, die mit Modulo 360 vorwärts fährt, die Istposition einen Wert von -2 (statt 358) haben kann, wenn die Referenzposition 1 ist.

Absolute Position, Homing 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 ausgeführt wurde oder das Flag isHomed von der SPS-Anwendung auf TRUE gesetzt wurde.

Warning_Color.gifWARNUNG

UNBEABSICHTIGTER GERÄTEBETRIEB

oVergewissern Sie sich, dass die Achse nach jedem Aus- und Wiedereinschalten und nach jedem manuellen Eingriff richtig referenziert wurde, bevor Sie andere Bewegungen ausführen.

oVergewissern Sie sich, dass die Achse korrekt referenziert wurde, bevor Sie irgendwelche absoluten Bewegungen durchführen.

oSetzen Sie das Flag isHomed in der SPS-Anwendung erst dann auf TRUE, wenn Sie durch geeignete Mittel positiv sichergestellt und bestätigt haben, dass die wiederhergestellte absolute Position korrekt ist.

oSie 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 Achsenposi­tionen. 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 reale Zahlen (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 Gleitkom­maauflösung noch ausreichend ist.

Warning_Color.gifWARNUNG

UNBEABSICHTIGTER GERÄTEBETRIEB

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

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