Kapitel 7: Fragen und Antworten

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.

Zunächst werden die Fertigungsschritte identifiziert und ihre Ablaufreihenfolge in Vorranggrafen dargestellt. Sie geben an, welcher Schritt Vorrang vor dem nächsten hat. Der Vorranggraf unten zeigt die Ablaufreihenfolge der Fertigungsschritte sowie die Abhängigkeiten der Schritte voneinander. Beispielsweise kann Schritt s3 in dem skizzierten Beispiel erst ausgeführt werden, wenn die Vorgängerschritte s7 und s2 beendet sind.
Weitere Abhängigkeiten ergeben sich, indem man Parallelisierungen ermöglicht. Parallel ablaufende Tätigkeiten werden an einer Montagestation gesammelt ausgeführt. Um die Austaktung der Anlage zu optimieren, können Tätigkeiten von einer Montagestation zu einer anderen verschoben werden, wenn der Vorrang das erlaubt. 

 

Für die im Vorranggraf gefundenen Bearbeitungszyklen ist jeweils eine Schrittkette als Petri-Netz zu entwerfen. Da die Werkstücke oft von einem Betriebsmittel zum nächsten übergeben werden, das dann auch zur richtigen Zeit bereitstehen muss, sind vor jedem dieser Schritte Warteschritte vorzusehen. Dadurch wartet die Schrittkette, bis das Betriebsmittel, z. B. das Fahrzeug im Schritt s2, auch am Hochregallager steht, damit der
Roboter die Rohteile darauf ablegen kann.

Zur Verknüpfung der Montagestationen werden die Warteschritte verwendet. Beispielsweise muss das Fahrzeug am Lager sein (sW7), damit Roboter 1 im Schritt s8 Teile aufnehmen oder im Schritt s2 Teile abgeben kann. Außerdem muss das Fahrzeug an der Werkzeugmaschine sein (sW3), damit Roboter 2 im Schritt s4 Teile der Werkzeugmaschine zuführen und im Schritt s6 Teile abführen kann. Auch hier genügt es, sich zu überlegen, zu welchen Transitionen die Pfeile der Schritte sW7 bzw. sW3 geführt werden müssen und nach welchen Transitionen sie die Markierung zurückerlangen.

Es gibt drei mögliche Strukturen von Motion-Control-Systemen: Neben der hardwarebasierten Variante kann die Software auch auf einem PC laufen, oder sie ist antriebsnah im Mikrocontroller des Umrichters implementiert. Diese dezentrale, antriebsnahe Variante ist besonders für zeitkritische Regelungen von vielen Motoren interessant, weil die Busübertragungszeiten zwischen Motion-Control-System und Umrichter entfallen.
Für die zentrale, PC-basierte Variante ist jedoch ein schneller Datenaustausch im Bereich von 100 µs erforderlich. Dies erreicht ein Industrial Ethernet wie z. B. Sercos III, EtherCAT oder ProfiNet-IRT, das eine nahezu zeitgleiche (isochrone) Datenübertragung aller Umrichter mit der SPS ermöglicht. 

Die Hardware des Motion-Control-Systems muss im Programmiersystem bekannt gemacht werden. Hierzu wählt der Benutzer in der Hardware-Konfiguration die Ressourcen, d. h. Hardwarekomponenten wie CPU, Bussystem, Umrichterbaugruppen etc., die er in seinem Motion-Control-System einsetzt, aus dem Gesamtkatalog des Herstellers aus.
Wenn Hardwarekomponenten anderer Hersteller verwendet werden, werden eine Gerätestammdatei (GSD) oder Electronic Device Description (EDD) in das Motion-Control-System geladen, die die Eigenschaften des Feldgeräts beschreibt ebenso wie die Daten, die es mit dem Motion-Control-System austauscht.

Die Programmierung erfolgt mit standardisierten Funktionsbausteinen für Einzel- und Multiachsen nach PLCopen. Für jeden Motor-
typ bieten die Hersteller spezifische Umrichterbaugruppen oder Motorsteuerkarten an, die aber für diese einheitliche Schnittstelle der PLCopen konfiguriert werden können. Unterschiedliche Antriebe und Umrichter werden so auf eine allgemeine Schnittstelle
abgebildet.

Wenn sich eine Bewegungsachse von einer Startposition zu einer Zielposition bewegen soll, muss sie zunächst bis zu einer gewünschten Geschwindigkeit beschleunigen, dann mit dieser konstanten Geschwindigkeit fahren, bis sie 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 Sollwerte für den von der AChse zurückzulegenden Weg vor.

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.

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.

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

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.

Der Zusammenhang zwischen Master-Position α(t) und der korrespondierenden Slave-Position y(t) kann auch durch eine elektronische Kurvenscheibe im CAM-Editor eines Motion-Control-Systems vorgegeben werden. 

Außer der Kurvenscheibe werden oft auch Nockenscheiben vom Master mitgedreht. Eine Nockenscheibe besitzt Ausstanzungen, die einen elektrischen Kontakt schließen. Überfährt das Werkzeug auf der Kurvenscheibe eine solche Nocke (engl. Tappet), wird im Motion-Control-System eine vorgegebene Boole’sche Variable auf TRUE gesetzt und damit ein Ereignis aktiviert. Dies kann in der Praxis auch zur Aktivierung einer Drehrichtungsumkehr oder zum Ein- und Ausschalten von Achsen genutzt werden.

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.

Der Funktionsbaustein MC_CamIn koppelt die Slaveachse an die Bewegung des Masters entsprechend der durch Baustein MC_CamTableSelect eingelesenen Kurvenscheibe des CAM-Editors.

Master- und Slaveachsen können auch direkt in einem vorgegebenen Drehzahl- oder Geschwindigkeitsverhältnis miteinander gekoppelt werden. Anstatt dies mechanisch, z. B. durch ein Zahnradgetriebe, zu realisieren, bietet die PLCopen die Standard-Funktionsbausteine MC_GearIn und MC_GearOut, die eine elektronische Kopplung zweier Achsen ermöglichen.

Im Funktionsbaustein MC_GearIn werden Zähler (Numinator) und Nenner (Denominator) des Geschwindigkeitsverhältnisses (Ratio) vorgegeben, mit dem der Slave an die Geschwindigkeit des Masters gekoppelt wird

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

Durch eine Vorwärtstransformation  wird die kartesischen Lage des Greifers aus den gemessenen Gelenkstellungen des Roboters im Achskoordinatensystem ACS berechnet.

Bei der Rückwärtstransformation werden für eine gegebene karteische Lage die zugehörigen Gelenkstellungen berechnet, die die Achsen anfahren sollen. 

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, wird eer Funktionsbaustein MC_MoveDirectAbsolute eingesetzt. Darin werden zuerst die einzelnen Gelenkwinkel durch eine Rückwärtstransformation berechnet. 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. Zur Programmierung stehen Bausteine wie MC_MoveLinearAbsolute oder MC_MoveCircularAbsolute zur Verfügung.

Eine Achsgruppe besteht aus einzelnen Achsen, die in der Hardwarekonfiguration definiert sein müssen. Diese Achsen kann man in der SPS durch den Funktionsbaustein MC_GroupEnable zu einer Achsgruppe zusammenfassen. Die Achsgruppe muss zusätzlich im Gerätebaum angelegt werden. Dabei sind die zugehörigen Achsen sowie die Kinematik der Achsgruppe festzulegen.
 

Bisher wurden Machine-Vision-Systeme meist durch PC-basierte Bildverarbeitungssysteme realisiert, die von Experten in Hochsprachen programmiert werden und über eine externe Datenverbindung die Bildmerkmale an die SPS übertragen.

Eine SmartCam besitzt einen leistungsfähigen Rechner in ihrer Elektronik, der die komplette Bildauswertung durchführt und die
extrahierten Merkmale zur SPS überträgt.

In einem sog. Programmable Automation Controller (PAC) werden die Bilder der Digitalkamera direkt an eine PC-basierte SPS mit Motion-Control-Funktionalität übertragen werden. Einige Hersteller bieten auch schon die Anbindung von Kameras und die Programmierung der
Bildverarbeitung in der SPS-Umgebung an.

Die Software eines Bildverarbeitungssystems unterteilt sich im Allgemeinen in folgende 5 Stufen:

  1. Durch die Bildaufnahme wird ein Videobild eingelesen und quantisiert, d. h. es wird wie in Bild 7.29 z. B. in 144 Zeilen und 108 Spalten unterteilt. Die dadurch entstandene Matrix besteht entsprechend aus 144 x 108 Bildelementen, sog. Pixeln, die jeweils einen Helligkeitswert bzw. Grau- oder Farbwert speichern.
  2. Bildaufbereitung: Durch Anwendung von Bildfiltern wird das verrauschte Originalbild aufbereitet, so dass die Objekte farblich homogener und vom Hintergrund besser zu unterscheiden sind.
  3. Bildsegmentierung: Dann werden die Objekte zunächst vom Hintergrund und danach z. B. in einem Silhouettenbild voneinander getrennt.
  4. Merkmalsextraktion: Für die segmentierten Objekte kann nun die Position des Flächenschwerpunkts im Bild berechnet werden.
  5. Positionsermittlung: Aus den Bildkoordinaten der Objektposition werden durch eine inverse perspektivische Transformation die Weltkoordinaten berechnet, die als Zielposition für den Robotergreifer dienen.

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.

Speicherprogrammierbare Steuerungen in der Industrie 4.0

5. Auflage erschienen im Hanser Verlag 2021