Die PLCopen trägt bereits seit Jahren zur Integration von Steuerung und Motion Control in einer Engineering-Plattform bei. Während der SPS-Teil auf dem weltweiten Standard IEC 61131-3 basiert, baut die Motion Control-Funktionaliät auf deren bekannten Eigenschaften auf, insbesondere auf dem Konzept der Funktionsblöcke. Die PLCopen Motion Control Spezifikation wurde auf einer ganzen Reihe unterschiedlicher Plattformen von unterschiedlichen Herstellern implementiert und eröffnet dem Anwender damit die Möglichkeit, aus einem breiten Angebot an Produkten und Herstellern zu wählen und dabei immer auf das gleiche Know-how zurückzugreifen. Nach dem Update und der Integration der ersten Teile der PLCopen Spezifikationen in Motion Control, war es notwendig, im dritten Teil – den User Guidelines – die neuen Eigenschaften aufzunehmen. Mit dem neuen Release enthält die Reihe der PLCopen Motion Control Spezifikationen nun die folgenden sechs Teile:
- Teil 1 – Basisfunktionen
- Teil 2 – integriert in Teil 1
- Teil 3 – update der User Guidelines
- Teil 4 – für interpolierte Motion Control
- Teil 5 – mit Homing-Prozeduren
- Teil 6 – mit zusätzlichen Funktionalitäten für Hydraulik
Weiterentwicklung der User Guidelines
In der überarbeiteten Fassung der User Guidelines werden Beispiele vorgestellt, die zeigen, wie sich die Motion Control Funktionsblöcke verwenden lassen, um darauf aufbauend, weiterreichende Funktionalitäten zu entwickeln. Diese Funktionalitäten können mit Hilfe unternehmensweiter Bibliotheken für die Wiederverwendung zur Verfügung gestellt werden. Darüber hinaus wird gezeigt, wie sich die Funktionsblöcke mit anderen Spezifikationen wie z.B. der OMAC PackAL, dem Application Layer für Funktionalitäten in Verpackungsmaschinen, verbinden lassen. Dieser Artikel zeigt ein einfaches Beispiel aus diesem Bereich.
Darsstellungsweise des Programms
Für den PLCopen Motion Control Funktionblock wird eine grafische Darstellung zur Verdeutlichung verwendet. Selbstverständlich kann dies auch in Textform geschehen. Das Beispiel in Abb. 1 zeigt, wie dies für den MC_MoveAbsolute Funktionsblock aussehen könnte.
Getting Started
Bevor man eine Achsen-/Antriebs-Kombinaton verwenden kann, muss sie initialisiert werden. Dies kann durch ein einfaches Startverfahren erfolgen, mit einer Kombination aus MC_Power, MC_Home und MC_MoveAbsolute (vgl. Bild 2). Man benötigt einen MC_Power pro Achse um die Achse einzuschalten. Für die Absolut-Positionierung verwendet man MC_Home, um die Home Position zu definieren. (Bitte beachten: MC_Home wird nicht immer gebraucht, beispielsweise bei MC_MoveVelocity und einer rotierenden Achse.) Jetzt lässt sich die Achse positionieren, zum Beispiel durch die Aktivierung von MC_MoveAbsolute. Das folgende Bild zeigt die grafische Darstellung dieser kombinierten Funktionalität. Die bezeichnete Achse ist hier mit Achse1 benannt und mit allen drei Funktionsblöcken verbunden. MC_Power wird durch das Setzen von \’PowerEnable\‘ gestarted. Danach wird wird \’Start\‘ gesetzt, um MC_Home auszuführen. Wenn die Zielposition erreicht ist, wird die \’Done\‘ Ausgabe von MC-Home gesetzt. Dies führt den MC_MoveAbsolute Funktionsblock aus, der sich zur gesetzten Position bewegt. Die Ausgabe \’Ready\‘ wird dann gesetzt, wenn die Position erreicht ist. Der Homing-Teil der oben beschriebenen Vorgehensweise lässt sich durch die Funktionalitäten erweitern, die in Teil 5 \’Homing Procedures\‘ definiert sind. Mit diesem Set von Bausteinen lässt sich eine bestimmte Zielprozedur pro Achse oder pro Maschine definieren. Diese grundlegende Funktion lässt sich schon vorher mit der Verwendung des MC_ReadAxisInfo Funktionsblocks erweitern. Auf diese Weise lässt sich überprüfen ob die Kommunikation mit dem Antrieb hergestellt ist und durch die Ausgabe MC_ReadAxisInfo lässt sich MC_Power starten. Rückmeldung gibt die Ausgabe \’PowerOn\‘ die der Auslöser zum Starten von MC_Home sein kann. Dies zeigt sich dann in der Ausgabe \’IsHomed\‘ und kann verwendet werden, um die absolute Bewegung zu starten.