Motion Control à la PLCopen

Das Erstellen und Verändern von komplexen Bewegungsabläufen mittels Servoantrieben und SPS erfordert einen hohen Programmieraufwand. Funktionsbausteine nach PLCopen Teil 1 und 2...

Das Erstellen und Verändern von komplexen Bewegungsabläufen mittels Servoantrieben und SPS erfordert einen hohen Programmieraufwand. Funktionsbausteine nach PLCopen Teil 1 und 2, veröffentlicht im Jahr 2001 beziehungsweise 2005, vereinfachen dem Anwender schon seit längerem diese Arbeit und machen die Programme übersichtlicher. Der neue Teil 4 geht noch einen Schritt weiter und bietet dieselbe Funktionsvielfalt jetzt auch bei Bahnbewegungen.

Neben einfacheren Antrieben für drehzahlvariabel ausgelegte Pumpen, Lüfter, Transportbänder und andere Maschinenteile erfordern viele Maschinen koordinierte und präzise Bewegungsabläufe. Bei Werkzeugmaschinen sorgen elektronisch geregelte Antriebe seit vielen Jahren für komplexe und von mehreren Achsen durchgeführte Bewegungen. In anderen Anwendungen sind allerdings vielfach noch mechanische Lösungen mit Getrieben, mechanischen Kurvenscheiben, Hebeln und anderen mechanischen Elementen im Einsatz. Zwar zeichnen sich derartige Lösungen durch ihre Konstanz beziehungsweise Robustheit aus; in einer Zeit, in der häufige Produktwechsel und Produktvariationen immer mehr den Fertigungsablauf bestimmen, wirken sich die mit solchen Lösungen verbundenen hohen Umrüstzeiten beziehungsweise die häufig erforderlichen Wartungsarbeiten negativ auf die Produktivität einer Anlage aus.

Moderne Servotechnik schafft hier die notwendige Flexibilität hinsichtlich der durchzuführenden Anpassungen innerhalb der Maschine: Vormals mechanisch über Kurvenscheiben und Hebel erzeugte Bewegungen werden durch Software beziehungsweise programmierbare Funktionen ersetzt; die Synchronität der Abläufe untereinander realisiert die elektrische Welle, welche das Gebersignal der Master-Achse an die Folge-Achsen weitergibt und somit einen „festen Verbund“ wie bei der mechanischen Königswelle herstellt. Bei Produkt- oder Formatwechseln sind lediglich die Programme oder die Parameter in den Antrieben entsprechend zu verändern.

Im Vergleich zur mechanischen Lösung verschiebt sich der Aufwand zur Einrichtung der Maschine dabei stark in die SPS-Programm-Erstellung. Hier sind neben der reinen Logik die einzelnen Bewegungen unabhängig in den einzelnen Antrieben zu parametrieren oder zu programmieren und anschließend diese beiden Funktionseinheiten miteinander zu verbinden. Neben der Definition der notwendigen Schnittstellen und der Verwendung unterschiedlicher Werkzeuge gilt es, weitere Herausforderungen zu bewältigen – etwa wenn bestimmte Funktionen während der Laufzeit der Maschine anzupassen sind und die Parametrierung der verwendeten Antriebe durch die Steuerung während des Maschinenbetriebes verändert werden muss, um beispielsweise den Produktvorschub im Einrichtbetrieb anzupassen.

Funktionsbausteine sorgen für Übersicht

Eine deutliche Vereinfachung ergibt sich bei Verwendung der Funktionsbausteine für Motion Control nach PLCopen. Mit ihnen lassen sich unterschiedlichste Bewegungsfunktionen in einer standardisierten Form direkt und verständlich aus dem SPS-Programm aufrufen. Auf diese Weise entfällt nicht nur die Definition von eigenen Schnittstellen; die aufwendige Antriebsparametrierung und das SPS-Programm gewinnen auch an Übersichtlichkeit.

Bei kartesischen Maschinenaufbauten, deren Achsen direkt den Richtungen X, Y und Z zugeordnet sind, ist dies sehr einfach. In der CNC-Welt nennt man eine solche Gruppe von Achsen „Kanal“. Die PLCopen fand den Begriff „Achsgruppe“ geeigneter und definierte somit den Bezeichner „AxesGroup“. Dieser generiert aus Achsreferenzen (Typ: AXIS_REF) eine Achsgruppenreferenz vom Typ AXES_GROUP_REF, über die dann das Bewegungskommando erfolgt. Nachdem mit einer gültigen AXES_GROUP_REF ein Bezugskoordinatensystem vorhanden ist, lassen sich Bewegungsaufträge formulieren. Für die einfachste Bewegungsform im Raum, die geradlinige Bewegung, wurde der Baustein MC_MoveLinearAbsolute entworfen. Eine einfache Kreisbewegung zwischen zwei kartesischen Achsen lässt sich mit dem FB MC_MoveCircularAbsolute realisieren. Analog zum Axis-State-Diagramm gibt es in PLCopen Teil 4 – auch „Coordinated Motion“ genannt – ein AxesGroup-State-Diagramm. Die einzelnen Zustände beziehen sich darin auf die gesamte Gruppe (zum Beispiel GroupStandby, GroupMoving, Group-Stopping, GroupErrorStop).

In manchen Fällen ist die Bewegung einer Achsgruppe auf die Bewegung einer Einzelachse, wie im obigen Beispiel gezeigt, oder auf die Bewegung einer anderen Achsgruppe im Sinne einer „Synchronized Motion“ abzustimmen. Dafür hat PLCopen die Funktionsbausteine „MC_SyncAxisToGroup“, „MC_MovePath-Synchronized“ und weitere zum Teil recht applikationsnahe Funktionsbausteine definiert. Das Einsatzgebiet solcher komplexen „Muliple-Axes-Bausteine“ sind das „Pick-and-Place“ vom Band, die fliegende Lastübergabe oder kooperierende Handhabungssysteme.

Eine kartesische Achsanordnung, bei der die Koordinatenachsen des Bezugskoordinatensystems deckungsgleich zu den Maschinenachsen liegen, ist aber nicht die Regel. Bei Scara-, Knickarm-, oder Stabkinematik-Konstruktionen bilden die physikalischen Achsen ebenfalls die Achsgruppe. Allerdings haben sie ein nichtkartesisches Koordinatensystem – auch Achsen-Koordinaten-System (ACS) genannt. Die Bewegungsdefinition findet hingehen im Maschinen-Koordinaten-System (MCS) statt. Beide Koordinatensysteme sind über die so genannte „Kinematische Transformation“ verbunden.

Soll eine Bewegung unabhängig von der Aufstellsituation der Maschine (MCS) beschrieben werden, geschieht dies im „Programmierer-Koordinaten-System“ – üblicherweise ebenfalls ein kartesisches, oder ein zylindrisches Koordinatensystem. Beide Koordinatensysteme sind durch eine weitere Transformation verbunden. PLCopen Teil 4 stellt für solche Transformationen einen Bausteinrahmen bereit, der dem SPS-Programmierer die Komplexität der Transformationen in der täglichen Arbeit verbirgt.

Eine weitere Vereinfachung für die SPS-Programmierer wird sich mit der Bereitstellung von Applikationsbausteinen in PLCopen Teil 3 ergeben. In diesen „User Guidelines“, mit deren Veröffentlichung im Laufe des Jahres zu rechnen ist, werden die elementaren PLCopen-Funktionsbausteine gekapselt und für die jeweilige Anwendung zugeschnittene Schnittstellen definiert. Am Beispiel der Tortenbeschriftung wäre somit ein „MC_WriteLetter“ denkbar, mit welchem sich auf einfache Weise ein per Input-Pin vorgegebener Buchstabe abfahren lässt. (Gerd Herkommer)

Nähere Informationen:

www.plcopen.org

Mit den bisherigen PLCopen-Bausteinen aus Teil 1 und 2 (Function blocks for motion control + extensions) ist die Beschreibung derartiger Bewegungen jedoch nur eingeschränkt realisierbar, da sich mit ihnen nur einzelne Achsen beauftragen lassen.

Was damit gemeint ist, verdeutlicht das in Bild 2 dargestellte Applikationsbeispiel: Die Aufgabe besteht darin, Torten auf einem Förderband mit einem Schriftzug zu versehen. Dazu ist die 2-Achs-Kinematik mit dem Förderband zu synchronisieren und dann überlagert ein Programm zu starten, um die Buchstaben aufzuspritzen. Derzeitige Lösungsansätze für solche Aufgabenstellungen sind in der Regel steuerungsbasiert und enthalten Roboter oder CNC-basierte Systeme. Die Schwierigkeit ist, dass diese zwar die jeweiligen Anforderungen bezüglich der Funktionalität erfüllen, hinsichtlich der SPS-basierten Bewegungsprogrammierung und des Engineering jedoch noch keine Standards verfügbar sind und nicht zuletzt unterschiedliche Systeme – SPS und CNC – zusammenarbeiten müssen.

Ein praktischer Lösungsansatz für die aufgezeigte Problematik ist die Verwendung handlungsorientierter Funktionsbausteine der Teile 1 und 2 von PLCopen, ergänzt um bahnorientierte Bewegungsfunktionen. Ein SPS-Programmierer versteht schnell, was er mit einem Baustein machen kann und was passiert, wenn er ihn aktiviert und in einer Sequenz mit anderen Bausteinen verwendet. Bahnorientierte Bewegungen werden hingegen mit Roboter-Programmiersprachen oder dem „G-Code“ nach DIN 66025 in Verbindung gebracht. Diese Sprachen kennt zwar nur ein kleiner Anwenderkreis; sie sind aber genau das, was im aufgezeigten Beispiel wünschenswert ist. Ergo bestand die Aufgabe für die Mitglieder der PLCopen darin, die aus der Roboter- und CNC-Welt bekannten Funktionen so zu übersetzen, dass sie in die Welt von PLCopen passen.