Produktion eines HSHL-Getränkeuntersetzers: Montage (Station 3)
- zurück zur Seite: Praktikum Produktionstechnik
- zurück zur Seite: Mechatronisches Produktionssystem zur Produktion eines HSHL-Getränkuntersetzers
- zum Artikel: Delta-Roboter Omron
- zum Seitenende

Einführung
Im Modul "Global Production Engineering III" des Schwerpunkts "Global Production Engineering" wird ein Praktikum im Bereich Produktionstechnik durchgeführt. Das Ziel dieses Praktikums besteht darin, praxisorientierte Projekte an der im Labor befindlichen Produktionsanlage anhand einer systematischen Vorgehensweise umzusetzen. Diese Produktionsanlage setzt sich aus verschiedenen Stationen zusammen, welche und von Studierenden im Rahmen von Projekten bearbeitet werden. Während des Praktikums werden sich also praktische Kenntnisse angeeignet, welche die Bereiche Robotik, Speicherprogrammierbare Steuerung (SPS), Sensorik, Aktorik und Pneumatik umfassen.
- Station 03: Montage
Die dritte Station der Produktionsanlage stellt die Montagestation des Systems dar. Innerhalb dieser Station sollen Einzelteile des HSHL-Untersetzers von einem Parallelroboter "Quattro 650 (H/HS)" der Firma Adept von einem Werkstückträger entnommen und auf die Grundplatte des Untersetzers bestückt werden. Auf der linken Seite von Abbildung 2 sind die einzelnen Bauteile des Untersetzers vor der Montage zu sehen, welche durch die Montage zusammengefügt werden. Das fertige Endprodukt ist auf der rechten Seite zu betrachten.
Originaldatei von Abbildung 2: Zusammenbaudarstellung.
Vorgehensweise nach V-Modell
Zur Durchführung des Projekts sind die Studierenden systematisch nach dem V-Modell vorgegangen, welches in Abbildung 3 dargestellt ist.
Eine Vorgehensweise nach dem V-Modell bietet den Vorteil, dass das Projekt deutlich strukturierter bearbeitet werden kann. Zuerst wurden dabei die Entwicklungsphasen absolviert. Bei jedem Schritt, der im V-Modell durchlaufen wird, ist eine anschließende Verifizierung der vorherigen Schritte notwendig. Es muss überprüft werden, ob die nachfolgenden Schritte zum aktuell erreichten Projektstand umsetzbar sind.
Der Schritt "Entwicklung" im V-Modells ist sehr zeitaufwendig. In dieser wurde Hardware wie bspw. ein Vakuumsaugkopf konstruiert und verdrahtet, sowie ein Bestückprogramm in der ACE-Software zum Ansteuern des CX-Smart Controllers, des Parallelroboters und der Haupt-SPS erstellt.
Anforderungen
Als erster Schritt nach Vorgehensweise des V-Modells wurden Anforderungen definiert, welche während der Arbeiten am Projekt der Montagestation erfüllt werden sollen.
Die Anforderungen wurden in folgende Kapitel untergliedert:
- Einleitung
- Komponententest
- Optimierung
- Software
- Programmierung
- Dokumentation
| ID | Typ (I = Info, A = Anforderung) | Kapitel | Inhalt | Ersteller | Datum | Status Auftragnehmer |
| 0000 | I | 0 | Einleitung | |||
| 0001 | A | An der Roboter-Montagestation soll ein Bestückprogramm implementiert werden, welches auf einem Werkstückträger befindliche Bauteile mittels Pick&Place bestückt. Anschließend soll das Bestückprogramm um eine Kamera erweitert und durch diese gesteuert werden. | Engelhardt | 17.10.2024 | ||
| 0010 | I | 1 | Komponententest | |||
| 0011 | A | Die Verdrahtung der Station und SPS muss überprüft werden | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0012 | A | Eine Verbindung muss zum Roboter Quattro S650H Controller und SPS hergestellt werden | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0013 | A | Die Funktion des Vakuumsaugers und Stopper-Zylinders muss geprüft werden | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0014 | A | Eine Verbindung zur Kamera muss hergestellt werden | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0020 | I | 2 | Optimierungen | Engelhardt | 17.10.2024 | Akzeptiert |
| 0021 | A | Der Vakuumsauger muss optimiert werden (Versetzung der Sauger verhindern, bessere Führung) | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0022 | A | Die neuen Pick & Place-Positionen müssen aufgenommen werden | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0030 | I | 3 | Software | Engelhardt | 17.10.2024 | Akzeptiert |
| 0031 | A | Die Programmierung des Roboters muss durch die ACE Software erfolgen | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0032 | A | Eine Kalibrierung der Kamera muss durchgeführt werden | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0040 | I | 4 | Programmierung | Engelhardt | 17.10.2024 | Akzeptiert |
| 0041 | A | Ein Bestückungs-Programm muss erstellt werden | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0042 | A | Eine Implementierung der Kamera muss in der ACE Software erfolgen | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0043 | A | Die Implementierung der Kamera in den Montageprozess muss erfolgen | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0050 | I | 5 | Dokumentation | Engelhardt | 17.10.2024 | Akzeptiert |
| 0051 | A | Die erforderlichen Betriebsanweisungen, Datenblätter und Programmdaten müssen dokumentiert werden | Engelhardt | 17.10.2024 | Akzeptiert | |
| 0052 | A | Ein Wiki-Artikel muss nach Anleitung erstellt werden | Engelhardt | 17.10.2024 | Akzeptiert |
Originaldatei von Tabelle 1: [1].
Funktionaler Systementwurf
Die Abbildung 4 zeigt den Programmablaufplan des funktionalen Systementwurf der Montagestation. Mit dem funktionalen Systementwurf wird der grobe Ablauf des Montagevorgangs deutlich. Rot gezeichnete Kästchen beschreiben die Ein- und Ausgänge der Station. Grüne Kästchen sind ein Symbol eines Vorgangs, z.B. Schlitten positionieren. Beide gelbe Kästchen bilden den Rahmen einer Schleife, in der die Einzelteile in Reihenfolge montiert werden. Die gelbe Raute stellt eine Verzweigung dar, welche überprüft, ob der Werkstückträger an der Station angekommen ist.
In Abbildung 5 wird die Unterfunktion des Ablaufplans der Montagestation dargestellt, welche zum besseren Verständnis der Funktion dient. Dort wird sichtbar, wie die einzelnen Vorgänge der Bestückung ablaufen. Der Schlitten, auf dem der Warenträger transportiert wird, ist in einer bestimmten Lage positioniert. Die Einzelteile A, B und C (A=HSHL-Schriftzug, B=HSHL-Logo-Links, C=HSHL-Logo-Rechts) werden anschließend nacheinander montiert. Nach der Montage wird mit einer Kamera überprüft, ob die Einzelteile richtig auf der Grundplatte platziert wurden. Ist dies der Fall, dann wird der Schlitten mit dem fertigen Untersetzer an die Station Verpackung übergeben. Sind die Einzelteile allerdings nicht richtig platziert, so wird der Untersetzer aussortiert.
Originaldateien von Abbildung 4 und 5: [2].


Technischer Systementwurf
Mit Hilfe des technischen Systementwurfes wird die Montagestation detailliert beschrieben. Der technische Systementwurf besteht aus einer Skizze des Systems und einem Signalschaltplan.
Abbildung 6 zeigt eine Skizze des Systementwurfs der Station 03 der Montagestation abgebildet. Dieser zeigt detailliert alle Komponenten der Station sowie deren digitalen Ein- und Ausgänge und Verbindungstypen der jeweiligen Komponenten untereinander dargestellt.

Originaldatei der Abbildung 6: Systementwurf Station 03.pptx.
Komponentenspezifikation
Nach dem Erstellen der Systementwürfe ist es wichtig festzulegen, wie die Anforderungen an das Projekt umgesetzt werden sollen und welche Komponenten für die Umsetzung am besten geeignet sind. Dazu wurden die folgenden Auftragsschritte definiert:
1. Erstellen und Fertigen eines angepassten CAD-Modells für einen stabileren Vakuumsauggreifer (höhere Wandstärke) mit weniger Spiel (Bohrungsdurchmesser 11,2mm) anhand der vorhandenen CAD-Modelle mit anschließendem Einbau.
2. Kalibrieren der Basler A601fc-2 Kamera unter Einsatz der Omron ACE Software und des Punktkalibriermusters, ggf. ist eine Neuausrichtung mit Anfertigung eines Distanzstücks für eine mittige Montage über dem Werkstückträger notwendig.
3. Aufnahme der Bestückungspositionen und Erstellung eines Bestückprogramms nach vorhandener Anleitung, dieses soll von der Station 01 Siemens SPS mit einem digitalen 24VDC Freigabesignal gesteuert werden und ein 24V DC Bereit-Signal zurück senden.
4. Durchführen des Kamera-zu-Roboter Kalibrierungswizards und Kalibrierungstests unter Omron ACE Software mit 4 bis 10 Kalibrierungsschritten bzw. Positionen .
5. Erweiterung des Omron ACE Bestückprogramm-Codes um Kamerasteuerung.
Originaldatei der Komponentenspezifikation: [3].
Entwicklung
Hardware

Der Anschluss XDIO ist einer von mehreren Peripheriemodulen, welche der SmartController CX aufweist. Über diesen Anschluss kann der CX SmartController 12 digitale Eingänge lesen und 8 digitale Ausgänge steuern. Außerdem hat er mehrere Pins für Masse und Versorgungsspannung 24 VDC. Die Ein- und Ausgänge werden in unserer Station für die Kommunikationen zwischen dem Roboter und der Siemens Haupt-SPS benötigt. Die Abbildung 9 zeigt, wie der Anschluss mit den gelöteten und geschilderten Drähten aussieht. Der digitalen Eingang 01 des CX SmartControllers wurden dabei direkt mit dem digitalen Ausgang Q0.5 und der digitale Ausgang 28 mit dem digitalen Eingang I0.4 der Haupt-SPS der Gesamtanlage verbunden, wie dem Schaltplan auf Abbildung 10.1 dargestellt. Wichtig zu beachten, dass alle Geräte eine gemeinsame Masse haben müssen.
Auf der Abbildung 10.2 sind die Pin-Nummern des XDIO-Anschlusses vom CX SmartController gezeigt. Die Pinbelegung sowie Anwendungsbeispiele sind im CX SmartController Guide auf den Seiten 61 bis 66 zu finden.

Originaldatei der Abbildung 10.1: CX Smartcontroller - User Guide, S. 66

Originaldatei der Abbildung 10.2: [4]
Saugkopfhalterung und Werkstückträger
In Abbildung 11 und 12 sind die SolidWorks erstellten CAD-Modelle abgebildet, welche anschließend durch additive Fertigung mittels 3D Druck hergestellt wurden. Der Vakuumsauger besteht dabei aus Oberteil und Unterteil, welche durch mit dem Lötkolben eingelassene Gewindebuchsen miteinander verschraubt wurden.
Der originale Werkstückträger wurde ebenfalls angepasst, um eine ebene Fläche in z-Richtung sicherzustellen. Da die Basler Kamera nicht in der Lage ist, Höhenunterschiede zu erkennen, können daher bei einer automatisierten Bauteilerkennung auch kleine Höhenunterschiede von wenigen Millimetern dazu führen, dass die Bauteile nicht vernünftig angesaugt werden.
-
Abbildung 11: CAD-Modell Vakuumsaugkopf Oberteil
-
Abbildung 12: CAD-Modell Vakuumsaugkopf Unterteil
-
Abbildung 13: Montierter Vakuumsaugkopf
-
Abbildung 14: Überarbeiteter Werkstückträger
Originaldateien:
- Werkstückträger: Datei:Werkstückträger überarbeitet.sldprt
- Vakuumsauger Oberteil: Datei:Saugkopfhalterung neu.sldprt
- Vakuumsauger Unterteil: Datei:Saugkopfhalterung .sldprt
In der nachfolgenden Tabelle 2 sind die für den Vakuumsaugkopf verwendendeten Komponenten aufgelistet.
Tabelle 2: Komponentenliste:
Software
Um den Signaltransfer zwischen den verschiedenen Komponenten zu steuern, wird die Softwares ACE 3.8 der Firma Omron verwendet, welche eine Integration aller Systemkomponenten ermöglicht.
Ein Adept SmartController dient zur Ansteuerung des Parallelroboters. Mithilfe der ACE Software werden die digitalen Ein- und Ausgangssignale des SmartControllers und die Basler Kamera gesteuert.
Der CX SmartController kann die digitalen Eingänge 1001 bis 1012 abgreifen und die digitalen Ausgänge 1 bis 8 ansteuern, welche sich am XDIO-Anschluss des Controllers befinden.
Ein Tutorium zum Erstellen eines Pick-&-Place-Programmes, zu den wichtigsten Befehlen der Software ACE und der Bedienung des Roboters Quattro 650(H/HS) finden Sie in unserem Lernbrief.
Einbindung der Kamera mit der ACE-Software
Die ACE-Softaware bietet einige Optimierungsfunktionen. Eine mögliche Optimierung ist beispielsweise die Einbindung einer Kamera, welche Bauteilpositionen erkennt und diese dann in Roboterkoordinaten umrechnet. Anschließend können diese im Bestückprogramm genutzt werden, um die einzelnen Bauteile des Untersetzers auf dem Werkstückträger zu positionieren.
Um ein Verständnis zu bekommen, wie eine solche Kameraeinbindung funktioniert, wird innerhalb dieses Unterkapitels eine Übersicht der Programmoberfläche gezeigt. In dieser Oberfläche muss dem Projekt zuerst ein Kameraobjekt hinzugefügt werden. Auf der nachfolgenden Abbildung 15 ist die Ace Programmoberfläche abgebildet.

Bei hinzufügen der Basler Kamera wird automatisch eine zugehörige Virtuelle Kamera angelegt. Um diese in der Software nutzen zu können, wird der Benutzer aufgefordert, zuerst eine Kalibrierung der Kamera durchzuführen. Dazu muss die Virtuelle Kamera ausgewählt und anschließend der Kalibrierungsschalter ausgewählt werden, wie in Abbildung 16 dargestellt.

Kalibrierung der Kamera in ACE
Zunächst beginnt man die Kamerakalibrierung mit den Dot Pitches Abbildung 17.
-
Abbildung 17: Dot Pitch Kalibrierung 10mm
In Abbildung 18 werden die Kameraeinstellungen wie Helligkeit etc. eingestellt. Außerdem kann die Bildverarbeitung mit Bauteilmodellen geteacht werden, wie in Abbildung 19 und 20 ersichtlich. Nach einer erfolgreichen Kalibrierung der Kamera muss eine Kamera-zu-Roboter-Kalibrierung mithilfe der ACE-Sight Kamera-Kalibrierung geteacht werden.
-
Abbildung 18: Kamera Einstellungen
-
Abbildung 19:Teachen des Bauteilmodells
-
Abbildung 20:Teachen der Bildverarbeitung
Um eine Roboter zu Kamera Kalibrierung zu beginnen, muss dem ACE Projekt ein neues Objekt mit dem Namen ACE Sight Kamera-Kalibrierung hinzugefügt, ausgewählt und anschließend der Kalibrierwizard gestartet werden. Es muss anschließend ein zu teachendes Modell sowie der Suchbereich festgelegt werden. Dann muss eine Bildaufnahmeposition festgelegt und angefahren werden. Im nächsten Schritt wird ein Kamerabild aufgenommen, auf dem die Bildverarbeitung das Teachmodell finden soll. Ist dieses gefunden, soll die Roboterposition manuell durch den Nutzer angefahren und geteacht werden. Im letzten Schritt wird erneut die Bildposition angefahren und ein Foto aufgenommen, um die vom Benutzer geteachte Position mit der Position des Teachmodells auf dem Foto abzugleichen. Diese Schritte müssen anschließend für insgesamt mindestens vier Teachpositionen durchgeführt werden. Aus dem Abgleich der Bildpositionen und geteachten Roboterpositionen wird eine Transformation der Kalibrierung berechnet, welche die ermittelten Koordinaten aus der Bildverarbeitung in Roboterkoordinaten umrechnet.
-
Abbildung 21: Erstellung der ACE-Sight-Kalibrierung
-
Abbildung 22: Durchlauf des Ace-Sight-Kalibrierungwizards
-
Abbildung 23:Testen der berechneten Position der Kalibrierung
Nach einer erfolgreichen Kamerakalibrierung sowie der ACE-Sight (Kamera zu Roboter)-Kalibrierung kann die Bauteilerkennung getestet werden. Dazu wird ein ausgewähltes Bauteil durch die Bildverarbeitung auf dem Kamerabild erkannt und die Positionen des Bauteile berechnet. Diese kann testweise angefahren werden, wobei zuerst überprüft und sichergestellt werden sollte, dass keine Kollisionen vorliegen.
Aktueller Stand der Kameraeinbindung in ACE
Der aktuelle Stand der Kameraeinbindung in der Software beläuft sich auf eine erfolgreiche Kamera und ACE-Sight (Kamera zu Roboter)-Kalibrierung. Dank einer Neupositionierung der Basler Kamera, der Problembehebung des Achsenversatzes in z-Richtung sowie der Anfertigung eines neuen Vakuumsaugers und Werkstückträgers kann die Bildverarbeitung die jeweiligen Bauteilmodelle durch die Kamera korrekt erkennen und Positionen (mit minimalem Versatz von ca. 0.5mm) anfahren, wie in Abbildung 23 ersichtlich ist.
Um die Kamera in einem finalen Schritt in das Bestückprogramm einbinden zu können, muss dem Programm noch ein Locator und die den Bauteilen entsprechenden Locator-Modelle angelegt werden, wie in Abbildung 24.1 und 24.2 gezeigt.


In einem letzten Schritt wird noch eine ACE-Sight-Sequenz eingefügt, welche die zu benutzende Kamera, die Kamera-zu-Roboter Kalibrierung und den Locator definiert. Auf diese ACE-Sight-Sequenz kann dann mit den Befehlen VRESULT und VLOCATION zugegriffen werden. Mithilfe dieser Programmierung kann dann innerhalb des Bestückprogramms auf Bildverarbeitung der Kamerabilder zugegriffen werden. Auf Abbildung 25 wird dargestellt, wie die ACE-Sight-Sequenz erstellt wird. Es muss anschließend noch der zu verwendende Locator und die Kamera-zu-Roboter Kalibrierung ausgewählt werden.

ACE-Bestückprogramm
Im folgendem wird das erstellte Bestückprogramm erläutert. Wichtig ist zu erwähnen, dass man die unter ACE erstellten Programme entweder in den verschiedenen "Tasks" starten kann, in der jede Zeile Code einzeln durchgeführt wird, oder das ganze main-Programm ausführt, um die einzelnen Tasks nacheinander abzuarbeiten. Die Reihenfolge der Pick & Place-Positionen während des Programmablaufs wurde anhand der folgenden Abbildung 26 festgelegt:

Bestückprogramm über Positionen
Der folgende Programmcode ist das Hauptprogramm rob.main zur vollständigen Montage sowie zur Kommunikation mit der Hauptstations-SPS. Dieser kann in die folgenden Schritte unterteilt werden:
- Im ersten Schritt wird in Zeile 06 die Sicherheitsposition angefahren.
- Anschließend wird von Zeile 10 bis 38 eine Endlosschleife ausgeführt: Es wird zuerst abgefragt, ob ein digitales Eingangssignal vom induktiven Sensor über die MPS 500 am Eingang 1001 eintrifft. Solange dies nicht der Fall ist und somit kein Warenträger an der Station steht, wartet das Programm (Zeile 13 bis 15).
- Wenn ein Warenträger in der Station eintrifft, läuft das Programm weiter und ein Timer mit einer Laufzeit von 2 Sekunden startet. Dieser Timer wird dafür benötigt, damit der Roboter mit der Montage erst dann beginnt, wenn der Warenträger vom Zylinderkolben gestoppt wurde und er sich in der definierten Position befindet (Zeile 18 bis 19).
- Der Montagevorgang wird von Zeile 22 bis 27 durchgeführt. Für den Montagevorgang werden Unterfunktionen wie zum Beispiel "rob.picka()" (Zeile 22) und "rob.placea()" (Zeile 23) aufgerufen. Das Unterprogramm "rob.picka()" ist dafür zuständig, dass der Roboter die Position "picka.loc" anfährt, um das Einzelteil A (HSHL-Schriftzug) aus dem Warenträger zu entnehmen. Zusätzlich wird der Ausgang 1 aktiviert, um die Vakuumansaugdüse einzuschalten und das Einzelteil anzusaugen. Mit dem Unterprogramm "rob.placea()" wird die Position "placea.loc" angefahren, wo das Einzelteil in die Grundplatte des Untersetzers eingesetzt werden soll. Nach dem Anfahren dieser Position wird der Ausgang 1 wieder deaktiviert, wodurch die Vakkumansaugdüse wieder ausgeschaltet wird. Diese Vorgange geschehen ebenfalls mit den für die Einzelteile B (HSHL-Logo links) und C(HSHL-Logo rechts).
- Nach der Montage fährt der Roboter wieder in die Sicherheitsposition (Zeile 29). Die Bewegungsgeschwindigkeit des Roboters für den Montagevorgang wird in dem Unterprogramm rob.init() festgelegt. Hierfür wird der Syntax "SPEED v ALWAYS" verwendet. Die Bewegungsgeschwindigkeit v ist eine reele Zahl aus dem Interval von 0 bis 100.
- Abschließend wird über einen Zeitraum von 5 Sekunden ein Signal über den digitalen Ausgang 2 an die Siemens ET 200SP gesendet. Dieses Signal wird an das Druckluftventil weitergegeben, sodass nach vollendeter Montage der Zylinderkolben für 5 Sekunden eingefahren ist, um den Warenträger auf dem Förderband zur nächsten Station weiterzuleiten (Zeile 33 bis 36).
01 .PROGRAM rob.main() 02 03 GLOBAL REAL run.rob 04 CALL rob.init() 05 CALL err.init() 06 CALL rob.move.safe() 07 08 09 ;Endlosschleife 10 WHILE (rob.run) DO 11 12 ;es wird gewartet bis ein digitales Eingangssignal von der SPS gesendet wird 13 WHILE NOT SIG(1001) DO 14 WAIT 15 END 16 17 ;Warten bis der Zylinderkolben ausgefahren ist 18 TIMER (1) = 0 19 WAIT TIMER(1) > 2 20 21 ;die Montage wird durchgeführt 22 CALL rob.picka() 23 CALL rob.placea() 24 CALL rob.pickb() 25 CALL rob.placeb() 26 CALL rob.pickc() 27 CALL rob.placec() 28 29 CALL rob.move.safe() 30 31 ;ein digitales Signal wird am Ausgang 2 ausgegeben 32 ;es wird 5 Sekunden lang gesendet, sodass der Schlitten genug Zeit hat, die Station zu verlassen 33 SIGNAL 2 34 TIMER (1) = 0 35 WAIT TIMER(1) > 5 36 SIGNAL -2 37 38 END 39 40 RETURN 41 .END
Programmcode für die Station Montage in der Software ACE [3]
Aktuelle Originaldatei vom ACE-Programm: Datei:Montage Version 07 01 2025.zip
Ermittung der Koordinaten
Um den Montagevorgang auszuführen ist es notwendig, die Aufnahme- und Ablagepositionen der jeweiligen Bauteile zu ermitteln, welche angefahren werden müssen. Die einzelnen Positionen können im ACE Programm über die Welt-Koordinaten mithilfe des Jog-Controllers angefahren und die Position notiert werden. Dazu muss ACE mit dem Controller verbunden werden und die Antriebsleistung des Roboters aktiviert werden. Außerdem kann so direkt überprüft werden, ob der Vakuumsauger die Bauteile an den so ermittelten Positionen ansaugen kann. Dieses Vorgehen ist auch im Tutorial auf der Abbildung 27 beschrieben.

Die ermittelten Positionen, welche in der unten abgebildeten Tabelle zu finden sind, müssen in dem ACE-Programm als "Location" unter dem Tab "V+ Benutzervariablen" abgespeichert werden. Die Locations, oder auch Positionen genannt, weisen die Endung ".loc" auf, wie beispielsweise "safe.loc" oder "picka.loc".[4]
Anschließend wurden die ermittelten Koordinaten der Pick & Place Positionen in Tabelle 3 festgehalten.
| Location | X-Achse | Y-Achse | Z-Achse |
| safe | -230 | -230 | -770 |
| picka | -157,8 | -507,1 | -855,6 |
| pickb | -171,2 | -458,0 | -855,6 |
| pickc | -174,5 | -409,1 | -855,6 |
| placea | -97,0 | -405,1 | -855,6 |
| placeb | -77,0 | -449,4 | -855,6 |
| placec | -114,2 | -449,4 | -855,6 |
Bestückprogramm über Bildverarbeitung
Der Unterschied zwischen einem Bestückprogramm über Bildverarbeitung besteht auf einem ähnlichen Aufbau, jedoch werden Funktionen rob.camerapick() mit den Befehlen VRESULT und VLOCATION zur Positionsbestimmung statt den Funktionen zum Anfahren vorgegebener Positionen wie rob.picka() verwendet. Die Place-Positionen werden aus der Positionstabelle mit geringfügigen Anpassungen übernommen, um einen Positionierungsversatz der Bildverarbeitung auszugleichen. Mithilfe des Befehls VRESULT kann ein mit der Kamera aufgenommenes Bild ausgewertet werden, mit VLOCATION wird die Position der vorgegebenen Modelle innerhalb des Fotos bestimmmt und ausgewertet, um mithilfe der Kamera-zu-Roboter Kalibrierung in Roboterkoordinaten umzuwandeln. Diese Befehle sind im folgenden Quellcode dargestellt.
.PROGRAM rob.camerapicka()
; ABSTRACT: Perform a pick operation at a fixed- or arm- camera location
;
; INPUTS: None
;
; OUTPUTS: None
;
GLOBAL $sv.client_ip
AUTO REAL inst.count
AUTO LOC loc
; Move to the picture position, take a picture,
; and wait for an instance to be available.
CALL rob.move.safe()
BREAK
DO
VRUN $sv.client_ip, 1
VWAITI (1) $sv.client_ip, 0
inst.count = VRESULT($sv.client_ip, 1, 2, 1, 1310, 1, 1)
IF (inst.count == 0) THEN
WAIT.EVENT , 1
END
UNTIL inst.count > 0
SET loc = VLOCATION($sv.client_ip, 1, 2, 1, 1311, 1, 1)
; Approach and move to the location
APPROS loc, 25
MOVES loc
BREAK
; Actuate the gripper and depart
CALL rob.grip(FALSE)
APPROS loc, 25
RETURN
.END
Programmcode der Bildverarbeitungsfunktion
Komponententest
Um die in der Entwicklung erstellte Programmierung anwenden zu können, ist es wichtig, dass alle benötigten Komponenten einwandfrei funktionieren. Daher wurde in der folgenden Tabelle 4 eine Auflistung der Komponenten durchgeführt und diese im nächsten Schritt getestet.
| Komponente | Status | Datum | getestet von |
| Software ACE | betriebsbereit | 07.01.2025 | Engelhardt |
| Bestückprogramm | betriebsbereit | 07.01.2025 | Engelhardt |
| 4-Achsen Parallel-Roboter Quattro 650 (H/HS) | betriebsbereit | 07.01.2025 | Engelhardt |
| Vakuumsauger | betriebsbereit | 07.01.2025 | Engelhardt |
| CX SmartController | betriebsbereit | 07.01.2025 | Engelhardt |
| Basler Kamera | betriebsbereit | 07.01.2025 | Engelhardt |
| Werkstückträger | betriebsbereit | 07.01.2025 | Engelhardt |
Originaldatei: Datei:Komponententest Station 3.xlsx
Integrationstest
Zum Testen der Integration zwischen der Siemens Haupt-SPS und dem Parallel-Roboter wurde das Bestückprogramm mit der Software ACE erstellt. In diesem Programm sollen die beiden genannten Komponenten miteinander interagieren. Das Zusammenspiel der beiden dafür erstellten Programme, welche wir in Abbildung 17 und dem darauffolgendem Programmcode in ACE sehen, kann wie folgt beschrieben werden:
Zu Beginn wird auf ein Freigabesignal über den digitalen Ausgang der Haupt-SPS an den digitalen Eingang 1001 des SmartController gewartet. Sobald dieses Eingangssignal registriert wird, läuft das ACE-Programm nach einem 2-Sekunden delay ab und der Montageablauf erfolgt. Das ACE-Programm schickt nach fertiger Bearbeitung ein Signal "Bearbeitung abgeschlossen" über den digitalen Ausgang 2 des CX SmartControllers an die SPS, nachdem die Montage vollständig durchgeführt wurde. Dieses Signal wird von dem digitalen Eingang der SPS mit der Eingangsadresse 8.1 entgegengenommen. Nun läuft das Programm der Haupt-SPS weiter, der Pneumatikzylinder fährt herunter und es kann ein neuer Werkstückträger an die Station fahren.
.PROGRAM rob.main()
GLOBAL REAL run.rob
CALL rob.init()
CALL err.init()
CALL rob.move.safe()
;Endlosschleife
WHILE (rob.run) DO
;es wird gewartet bis ein digitales Eingangssignal "Freigabe" von der SPS gesendet wird
WHILE NOT SIG(1001) DO
WAIT
END
;Warten bis der Zylinderkolben ausgefahren ist
TIMER (1) = 0
WAIT TIMER(1) > 2
;die Best�ckungspositionen werden angefahren
CALL rob.camerapicka()
CALL rob.placea()
CALL rob.camerapickb()
CALL rob.placeb()
CALL rob.camerapickc()
CALL rob.placec()
;Die Safeposition wird angefahren
CALL rob.move.safe()
;ein digitales Signal "Bearbeitung abgeschlossen" wird am Ausgang 2 ausgegeben
;es wird 5 Sekunden lang gesendet, sodass der Schlitten genug Zeit hat, die Station zu verlassen
SIGNAL 2
TIMER (1) = 0
WAIT TIMER(1) > 1
SIGNAL -2
END
RETURN
.END
Programmcode des Bestückprogramms für den Integrationstest mit der ACE-Software [6]
Systemtest
In dem nachfolgenden Video wird der Montagevorgang des HSHL-Untersetzers durchlaufen. Zuerst fährt der Roboter die Sicherheitsposition (safe.loc). Anschließend beginnt der Montagevorgang bei dem die Einzelteile entnommen und auf der Grundplatte platziert werden. Zum Abschluss der Montage fährt der Roboter wieder in die Sicherheitsposition. Die Roboterbewegungen werden in diesem Video mit einer Geschwindigkeit von v = 0.75 ausgeführt. Mit diesem Roboter sind aber auch weitaus höhere Geschwindigkeiten möglich. Die Bewegungsgeschwindigkeit v kann aus einem Intervall von 0 bis 100 ausgewählt werden.
Originaldatei vom Video: Montage eines HSHL-Untersetzers.
Weiterhin wurde ein Systemtest anhand der folgenden Tabelle 5 durchgeführt. Aufbauend auf der erstellten Anforderungsdefinition ist dieser durchgeführt worden.
| ID | Typ (I = Info, A = Anforderung) | Kapitel | Inhalt | Kommentar Auftraggeber | Status | Prüfer | Kommentar | |
| 001 | I | 1 | Komponententest | |||||
| 0011 | A | Bestehende Verdrahtung überprüfen | i.O. | KE | ||||
| 0012 | A | Funktion des Vakuumsaugers und Stopper-Zylinders prüfen | i.O. | KE | ||||
| 0013 | A | Initialisierung der Peripheriemodule überprüfen | i.O. | KE | ||||
| 0014 | A | Verbindung zur Kamera herstellen | i.O. | KE | ||||
| 0020 | I | 2 | Optimierungen der Station | |||||
| 0021 | A | Optimierung des Vakuumsaugers (Versetzung der Sauger verhindern, bessere Führung) | i.O. | KE | ||||
| 0022 | A | Aufnahme der neuen Pick & Place-Positionen | i.O. | KE | ||||
| 0030 | I | 3 | Software | |||||
| 0031 | A | Programmierung des Roboters durch ACE Software | i.O. | KE | ||||
| 0032 | A | Kalibrierung der Kamera durchführen | i.O. | KE | ||||
| 0040 | I | 4 | Programmierung | |||||
| 0041 | A | Erstellung eines Bestückungs-Programms | i.O. | KE | ||||
| 0042 | A | Implementierung der Kamera in ACE Software | i.O. | KE | Einfügen und Teachen der Bildverarbeitung bzw. Ace-Sight-Kalibrierung (Kamera-zu-Roboter) erfolgreich abgeschlossen | |||
| 0043 | A | Implementierung der Kamera in Montageprozess | i.O. | KE | Einbindung der V+-Befehle und Modelle zur Nutzung der Bildverarbeitung im Bestückprogramm | |||
| 0050 | I | 5 | Dokumentation | |||||
| 0051 | A | Dokumentation der erforderlichen Betriebsanweisungen, Datenblätter und Programmdaten | i.O. | KE | ||||
| 0052 | A | Anfertigung eines Wiki-Artikel nach Anleitung | i.O. | KE |
Originaldokumentation: Datei:Systemtest Station 3.xlsx
Eine passende Programmierung der erfolgreich kalibrierten Bildverarbeitung zur Steuerung des Roboters über die Basler-Kamera war aus zeitlichen Gründen und fehlenden Wissen über die benötigten Befehle der V+-Programmierung nicht möglich. Eine Recherche im Internet sowie der ACE-Programmierungsanleitung führte bisher zu keinem zielführenden Ergebnis.
Abnahmetest
Einleitung
Dieser Artikel beschreibt den Inbetriebnahmeprozess der Montage des HSHL Getränkeuntersetzers. Der Abnahmetest besteht aus den folgenden Inhalten:
- Verwendete Daten
- Testfall im Detail
Verwendete Daten
Für die Inbetriebnahme der Station Montage sind folgende Dateien notwendig:
- ACE Bestückprogramm: neuste Version des Montageprogramms; SVN-Archiv: trunk/Fachthemen/MPS_HSHL_Untersetzer/3_Montage/V-Modell/05_Entwicklung/Bestückprogramm
- Tutorium WS:2023/2024 V+ Programmierung: Zu finden unter dem nachfolgenden Kapitel Tutorium
- Abbildung 28: Taskleiste Öffnen:

Testfall im Detail
Bezeichnung: Inbetriebnahme der Montagestation
Durchführung von: Hilgers
Durchführung am: 16.02.25
Die unten dargestellte Tabelle lässt sich in insgesamt acht verschiedene Parameter einteilen.
Diese lauten:
- Schritt Nummer
- Beschreibung
- Ausgangszustand
- Aktion
- Erwartetes Ergebnis
- Ergebnis
- Bewertung
- Bemerkung
Der Inbetriebnahmeprozess wurde mittels dieser Parameter beschrieben und evaluiert.
| Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung |
|---|---|---|---|---|---|---|---|
| Precondition 1 | PC einschalten | PC ist aus | PC einschalten und anmelden | PC fährt hoch | PC ist betriebsbereit | i.O. | |
| Precondition 2 | Roboter einschalten | Roboter ist ausgeschaltet | Einschalten des Roboters über den Hauptschalter, Schlüsselstellung auf Computer-Symbol, Not-Ausschalter inaktiv | Roboter ist hochgefahren | Roboter ist einsatzbereit | i.O. | |
| Precondition 3 | ACE-Software starten | PC betriebsbereit, Software noch nicht ausgeführt, , ggf. IP-Addresse des Controllers überprüfen | Starten des ACE 3.8 Programms und Auswahl des gewünschten Programms | Programm ist gestartet und Verbindung zum Controller wird automatisch hergestellt, Controller ist betriebsbereit | Roboter ist betriebsbereit | i.O. | |
| Testschritt 1 | Inbetriebnahme des Roboters | Verbindung zum Controller hergestellt | Antriebsleistung des Roboters auf der entsprechenden Schaltfläche aktivieren | Antriebsleistung des Roboters aktiviert | Antriebsleistung aktiviert | i.O. | |
| Testschritt 2 | Inbetriebnahme der Jog Control/Programmieroberfläche | Antriebsleistung des Roboters aktiviert | Jog Control und Programmieroberfläche nach Tutorium WS2023/24 betätigen | Roboter kann über Jog Control gesteuert werden, Programmoberfläche geöffnet | Roboter kann gesteuert werden, Programmoberfläche geöffnet | i.O. | |
| Testschritt 3 | Inbetriebnahme des Montageprozesses | Anlage ist betriebsbereit | Tasks des gewünschten Bestückprogramms mithilfe der entsprechenden Schaltfläche in ACE in die Taskliste des Roboters übertragen (Abbildung 28) | Ablauf des gewünschten Tasks | Roboter führt die Tasks aus | i.O. | |
| Postcondition 1 | Verbindung des Controllers trennen | Verbindung des Controllers ist vorhanden | Controller Schaltfläche im ACE Programm betätigen | Verbindung von ACE zum SmartController ist beendet | Roboter ist nicht länger betriebsbereit | i.O. | |
| Postcondition 2 | Roboter ausschalten | Roboter ist eingeschaltet | Hauptschalter des Roboters ausschalten | Roboter ist aus | Anlage ist ausgeschaltet | i.O. | |
| Postcondition 3 | PC herunterfahren | PC läuft | Software schließen, PC herunterfahren | PC ist aus | PC ist heruntergefahren | i.O. |
Tutorials
Tutorium WS:2024/2025: Präsenzaufgabe an der Montagestation
Im Rahmen des Praktikums Produktionstechnik im WS24/25 wurde Anleitung zum Bewegen und Teachen des Roboters sowie einer Kalibrierung der Kamera und der Bildverarbeitung erstellt.

Tutorium WS:2023/2024 V+ Programmierung
Im WS23/24 wurde eine Schritt für Schritt Anleitung zur ACE Programmierunng erstellt.
Tutorium:

Tutorium WS:2022/2023 V+ Programmierung
Innerhalb des Praktikum Produktionstechnik wurde eine Schritt für Schritt Anleitung erstellt. Hierbei wird eine Erklärung dargestellt, um eine SPS in das Programm TIA-Portal einzubinden. Zudem wird gezeigt, wie ein FUP Programm erstellt wird und wie ein solches Programm aussehen kann.
Lernbrief: ![]()
Originaldatei: Datei:Präsentation Tutorial SPS TIA FM HL.pptx
Verwendete Software
- SolidWorks: Erstellung des CAD-Modells und Konzipierung der Druckteile
- TIA Portal V15: Einrichtung und Programmierung der SPS
- PapDesigner: Konzipierung des Programms
- Microsoft Office: Dokumentation
- ACE 3.8: Programmierung des Roboters in V+
- Verdrahtungsplan: QElectroTech
Literatur
- ↑ Omron Adept Quattro s650H Robot User’s Guide
- ↑ Betriebsanleitung vom SmartController CX
- ↑ Befehle in der Programmiersprache V+ für ACE-Programme
- ↑ Adept T1 Pendant - User Guide
- ↑ Koordinatenberechnungen
- ↑ Befehle in der Programmiersprache V+ für ACE-Programme
- ↑ Eigenes Video von dem Systemtest zum Montieren des HSHL-Untersetzers
- Alle wichtigen Dateien zum Nachbau des Projektes finden Sie unter Datei:MPS-3 Datensammlung.zip
- zurück zur Seite: Praktikum Produktionstechnik
- zurück zur Seite: Mechatronisches Produktionssystem zur Produktion eines HSHL-Getränkgeuntersetzers
- zurück zum Seitenanfang



