Kapitel 6: Fragen und Antworten

Für Handhabungssysteme bietet ein Motion-Control-System i.d.R. folgende vier Komponenten:

  • Bahnplanung: Der Bediener gibt durch Vorgabe von Zielpunkten abschnittsweise die vom Werkzeug oder Greifer abzufahrende Bahn in einer Bedienoberfläche vor.
  • Interpolation: Innerhalb eines Bahnabschnitts erzeugt der Interpolator Sollwerte für den vom Werkzeug oder Greifer zurückzulegenden Weg s(t). Die Sollwerte werden dabei so berechnet, dass das Werkzeug oder der Greifer auf seinem Weg zunächst beschleunigt, dann mit konstanter Geschwindigkeit fährt und schließlich rechtzeitig vor dem Ziel wieder abbremst.
  • Koordinatentransformation: Die Bahnvorgaben des Interpolators sind nun zunächst in kartesische Positionsvorgaben p(t) bezüglich der x-, y- und z-Achsen eines festen Weltkoordinatensystems umzurechnen. Da aber z.B. ein Roboterarm meist aus rotatorischen Achsen besteht, müssen diese Positionssollwerte dann in Winkelsollwerte q(t) für die Roboterachsen transformiert werden.
  • Lageregelung: Um die Winkelsollwerte der Roboterachsen ausreichend genau anzufahren und auftretende Störungen zu kompensieren, werden die Antriebe durch Kaskadenregelkreise geregelt. Der Lageregler bildet die äußerste Kaskade und wird als Software im Motion-Control-System implementiert. Die Geschwindigkeits- und Beschleunigungsregler sind als mittlere bzw. innere Kaskade in der Hardware des Umrichters realisiert.

Für Gleichlaufsysteme stehen noch folgende Komponenten zur Verfügung:

  • Kurvenscheiben im CAM-Editor zur Koordination mehrerer Achsen. Dabei kann der Bediener vorgeben, wie eine Slaveachse einer Masterachse folgen soll.

Aufgabe der Lageregelung ist es, die Antriebe so anzusteuern, dass die vom Interpolator vorgegebene Strecke ausreichend genau abgefahren wird und auftretende Störungen ausgeregelt werden. Hierfür wird der in nachfolgend skizzierte Lageregelkreis aufgebaut, der aus drei Kaskaden besteht.

Die äußere Kaskade regelt die Position auf den vorgegebenen Lagesollwert xsoll. Der Ausgang des Lagereglers bildet den Sollwert für die mittlere Kaskade, die die Motordrehzahl n(t) regelt. Diese ist proportional zur Geschwindigkeit der Achse, weshalb diese Kaskade auch als Geschwindigkeitsregelung bezeichnet wird.

Die innere Kaskade regelt den Motorstrom I, der proportional zum Drehmoment des Motors und somit zur Beschleunigung der Achse ist. Der Sollwert des Stromregelkreises wird vom Ausgang des Drehzahlreglers bestimmt. Der Ausgang des Stromreglers ist schließlich der Wert für die Spannung U, die vom Umrichter an den Motor gelegt wird.

Im Allgemeinen werden Strom- und Drehzahlregler in der Umrichter-Elektronik realisiert. Diese Elektronikeinheit ist meistens über einen Feldbus an das Motion-Control-System angekoppelt. Vom Motion-Control-System werden dann Drehzahlsollwert und Reglerparameter an den Umrichter übertragen.

Wenn sich ein Werkzeug oder ein Greifer von einer Startposition zu einer Zielposition bewegen soll, muss er zunächst bis zu einer gewünschten Geschwindigkeit beschleunigen, dann mit dieser konstanten Geschwindigkeit fahren, bis er rechtzeitig vor dem Ziel wieder abbremst. Im einfachsten Fall entspricht dies dem trapezförmigen Geschwindigkeitsverlauf  mit abschnittsweise konstanter Beschleunigung.

Durch Integration des gewünschten trapezförmigen Geschwindigkeitsverlaufs erhält man eine s-förmigen Verlauf für den zurückzulegenden Weg.  Gemäß dieses Verlaufs gibt der Interpolator in äquidistanten Zeitabständen Wegsollwerte vor.

Die Bahn des Werkzeugs kann mit CNC-Befehlen nach DIN 66025 vom Bediener vorgegeben werden. Die vom Werkzeug oder Greifer abzufahrende Bahn wird durch Geraden-, Kreisbogenabschnitte oder Splines approximiert. Der Bediener gibt also die Stützpunkte für die Bahn und die dazwischen abzufahrende Bahnform als Linear- oder Zirkularbewegung vor (durch die Wegfunktionen G01 bzw. G02 oder G03).

Motion-Control-Systeme wie das SoftMotion-Paket in CoDeSys bieten einen sog. CNC-Editor, der alternativ zur DIN-Programmierung eine grafische Bahnvorgabe ermöglicht. Es empfiehlt sich, die abzufahrende Bahn zunächst grob zu zeichnen. Parallel dazu erstellt das System automatisch das CNC-Programm auf Basis der Zeichnung. Der Bediener kann dann die exakten Anfahrpositionen und Geschwindigkeiten im zugehörigen CNC-Programm ergänzen bzw. korrigieren.

Eine andere Möglichkeit der Bahnvorgabe besteht darin, anhand der bekannten Bewegung einer Masterachse die Bewegung der Slave-Achse auf Basis einer Kurvenscheibe zu berechnen.

Welche Schritte sind zum Erstellen eines Ansteuerprogramms für einen Antrieb erforderlich?Mit CoDeSys kann eine Soft-SPS als Motion-Control-System eingesetzt werden. Um die Hardware im Programmiersystem bekannt zu machen, wird wie in Beispiel 3.1 das Steuerungssystem ausgewählt und konfiguriert. Hierzu trägt man im Gerätebaum folgende Ressourcen ein:

Wie abgebildet gibt es im sog. ?General Drive Pool? von CoDeSys SoftMotion auch virtuelle Achsen, mit denen Antriebsachsen simuliert und erprobt werden können, ohne eine Busverbindung konfigurieren
zu müssen.

Für jeden in der Steuerungskonfiguration angelegten virtuellen Antrieb wird
von CoDeSys eine Variable (z. B. Q1 oder Q2) der Struktur AXIS_REF angelegt. Diese
umfasst alle relevanten Antriebsdaten, die bei der Programmierung verwendet werden können.

Eine Werkzeugmaschine ist eine Maschine zur Bearbeitung von Werkstücken. Dabei werden Spezialwerkzeuge, wie z.B. Fräser, Meißel oder Bohrer eingesetzt, um Bearbeitungsverfahren wie Fräsen, Drehen, Bohren oder auch Schleifen und Stanzen auszuführen. Zwei wichtige Typen von Werkzeugmaschinen sind in unten skizziert.

Während bei Drehmaschinen das Werkstück rotiert, ist es bei Fräsmaschinen das Werkzeug, das vom Hauptantrieb in eine schnelle Rotation versetzt wird und dadurch die Schnittkraft aufbringt, um das Werkstück zu bearbeiten. Die für die Bewegungssteuerung jedoch wichtigeren Komponenten sind die Vorschubantriebe. Sie bewirken die Bewegung des Werkzeugs in x-, y- und z-Richtung, um z.B. durch Abfahren der Objektkontur den Grat eines Werkstücks abzufräsen.

Wegfunktionen
Geometriedaten
Technologiedaten
Maschienendaten
G00 Fahre zu Punkt im EilgangX20 Y30 PunktkoordinatenS1000 SpindeldrehzahlM00 HALT
G01 Fahre GeradeI10 J-10 KreismittelpunktF100 VorschubgeschwindigkeitM03 Spindel im Uhrzeigersinn
G02 Fahre Kreisbogen im UhrzeigersinnR30 Radius einer KreisbahnE50 VorschubbeschleunigungM04 Spindel im Gegenuhrzeigersinn
G03 Fahre Kreisbogen im UhrzeigersinnM30 Programmende mit Rücksetzen

Der Funktionsbaustein SMC_Interpolator realisiert die Interpolation kartesischer Bahnpunkte.

Dagegen realisiert der Funktionsbaustein MC_MoveAbsolute die Interpolation in den Maschinenkoordinaten einer Achse und gibt die interpolierten Sollwerte an eine Lagerergelung für diese Achse aus. Die Bewegung der Achse an eine absolute Position erfolgt entsprechend der vorgegebenen Werte für Geschwindigkeit, Bremsen und Beschleunigung.

Für die Rückwärtstransformation gibt es verschiedene Bausteine in Abhängigkeit der jeweiligen Kinematik, z.B.:

  • SMC_TRAFO_Gantry berechnet Rückwärtstransformation für Portalkransysteme
  • SMC_TRAFO_Scara2 berechnet Rückwärtstransformation für zweigelenkige Roboterarme vom Typ SCARA.

Während der Baustein MCMoveAbsolute also Interpolation und Lageregelung etwa für eine PTP-Bewegung umfasst, realisiert der Baustein
SMC_ControlAxisByPos lediglich die Lageregelung  für vorgegebene Sollpositionen und überwacht selbige auf Sprünge.

Eine mechanische Kurvenscheibe ist eine rotierende Scheibe, auf deren Rand das Werkzeug über eine Führungsrolle eine nichtlineare Bewegung ausführt. Die Form der Kurvenscheibe repräsentiert somit die Bahn, die vom Werkzeug ausgeführt wird.

Heutzutage wird der Zusammenhang zwischen Master-Position alfa(t) und der korrespondierenden Slave-Position y(t) elektronisch durch Vorgabe einer nichtlinearen Kennlinie y = f(alfa) realisiert. Hierfür werden in einem sog. CAM-Editor (Computer Aided Manufacturing) einzelne Stützstellen wie unten dargestellt grafisch eingefügt, oder ihre Position wird numerisch in eine Tabelle eingetragen. Zwischen den Stützstellen wird der Kennlinienverlauf beispielsweise linear oder durch Polynome höherer Ordnung (Splines) interpoliert.

Damit die Masterachse mit konstanter Geschwindigkeit fährt, ist in ihrem Ansteuerprogramm (z.B. NCS_1) der Funktionsbaustein MC_MoveVelocity zu instanzieren. Dadurch fungiert die x-Achse der Kurvenscheibe als Zeitachse. Die Bewegung der y-Achse wird durch den Funktionsbaustein MC_CamIn erzeugt. Hierfür ist jedoch zuvor die Kurvenscheibe durch den Funktionsbaustein MC_CamTableSelect einzulesen.

Die in der Kurvenscheibe angegebenen Nocken werden vom Funktionsbaustein MC_CamIn während der Fahrt erkannt. Dabei setzt SMC_GetTappetValue eine Boolesche Variable, die z.B. für das Ein- und Ausschalten des Kühlmittelzuflusses verwendet werden kann.

Der wesentliche Unterschied zwischen Kurvenscheiben und Bahnkurven zur Sollwertgenerierung liegt darin, dass bei Kurvenscheiben die Bewegungen jeder Einzelachse explizit vorgegeben werden, während durch die CNC-Programmierung der Interpolator zunächst die Sollwerte für das Werkzeug entlang der Bahn erzeugt. Diese Bahnvorgaben werden anschließend durch eine Koordinatentransformation in Sollwerte für die Einzelachsen umgerechnet

In industriellen Anwendungen werden Roboterarme mit verschiedenen Geometrien oder Kinematiken eingesetzt. Die häufigsten sind:

  • Vertikal-Knickarm-Roboter vom Typ PUMA (Programmable Universal Machine for Assembly) mit drei rotatorischen Achsen in Rumpf, Schulter, Ellbogen sowie drei Achsen im Handgelenk.
  • SCARA (Selective Compliance Assembly Robot Arm) mit einer translatorischen Schubachse und drei parallel angeordneten rotatorischen Achsen.

Während der Vertikal-Knickarm-Roboter universell einsetzbar ist, weil er mit seinem Greifer jede Position und Orientierung im Arbeitsraum einnehmen kann, dient der SCARA-Roboter hauptsächlich für Handhabungsaufgaben, bei denen der Greifer Objekte von oben greift und an einer anderen Stelle ablegt (Pick-and-Place).

Eine Punkt-zu-Punkt Bewegung (Point-to-Point, PTP) führt für jede einzelne Achse eine Interpolation und Lageregelung der Winkelstellung durch.
Um beispielsweise den Greifer eines Roboters durch eine Punkt-zu-Punkt Bewegung an eine gewünschte Position zu fahren, sind jedoch zuerst die einzelnen Gelenkwinkel durch eine Rückwärtstransformation zu berechnen. Danach erfolgt für jede Achse getrennt eine eigene Interpolation der Gelenkwinkel. Somit erreicht man zwar schnelle Verfahrgeschwindigkeiten, die Bewegungsbahn zwischen Start- und Zielpunkt darf jedoch keine Rolle spielen, da sich die Gelenke unabhängig voneinander bewegen. Die resultierende Bahn des Greifers ist so für den Anwender schwer vorherzusehen.

Wenn die Bahn zur Werkstückbearbeitung jedoch durch Geraden- oder Kreisabschnitte vorgegeben werden muss, erfolgt eine kartesische Interpolation für die Bahn des Greifers und danach die Rückwärtstransformation. Nur die Lageregelung wird dann hier für jede Achse einzeln ausgeführt.

Eine Bildverarbeitung kann beispielsweise die Position von Objekten bestimmen, die ein Roboter greifen soll. Aus den Bildkoordinaten der Objektposition werden durch eine Inverse Perspektivische Transformation die Weltkoordinaten berechnet, die als Zielposition für den Robotergreifer dienen.

Die ersten vier Stufen der Bildverarbeitung erzeugen aus dem Originalbild eine Merkmalsliste, die neben den Koordinaten des Flächenschwerpunkts der einzelnen Bildobjekte auch deren Größe und Umfang umfasst.

Aus der Schrittkette kann die Bildverarbeitung durch eine boolesche Variable gestartet werden. Die Bildverarbeitung überträgt daraufhin als Merkmale die Koordinaten des jeweiligen Flächenschwerpunkts (ui | vi) der Objekte an die SPS, dieschließlich die Position p der Schrauben durch eine inverse perspektivische Transformation ermittelt. Diese Position ist jedoch bezogen auf das Kamerasystem. Verlaufen die Achsen von Kamera- und Basiskoordinatensystem jedoch parallel oder antiparallel und ist die Position der Kamera c bezüglich des Basiskoordinatensystems bekannt, so lässt sich die Objektposition o bezüglich des Basiskoordinatensystems leicht ermitteln.

Bei komplexen Anlagen ist jedoch zunächst der gesamte Fertigungsablauf grob zu planen, bevor die Einzelschrittketten entworfen und programmiert werden können. Der Weg von der Fertigungsplanung zur Software erfolgt über die folgenden 6 Stufen:

  1. Identifikation der wesentlichen Fertigungsschritte und der groben Ablaufreihenfolge
  2. Erkennen von Abhängigkeiten
  3. Einteilung in Montagestationen und Parallelisierung von Prozessen
  4. Entwurf eines Petri-Netzes für jede Montagestation
  5. Restriktionen einfügen und Koordination der Petri-Netze
  6. Verknüpfung der Montagestationen

In den Stufen 1-3 wird der Fertigungsablauf noch relativ grob geplant und durch sog. Vorranggrafen beschrieben. Mit Hilfe von Petri-Netzen können anschließend in den Stufen 4-6 die Bewegungsschrittketten entworfen und koordiniert werden.

Speicherprogrammierbare Steuerungen für die Fabrik- und Prozessautomation

4. Auflage erschienen im Hanser Verlag, 2015