Steuerung der automatischen Legostein-Montieranlage: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(325 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Hauptartikel:''' [ | '''Hauptartikel:''' [https://wiki.hshl.de/wiki/index.php/Automatische_Legostein-Montieranlage Automatische Legostein Montieranlage] | ||
''' | '''Autoren:''' [[Benutzer:Philip Struemper|Philip Strümper]], [[Benutzer:Marcel Mertens|Marcel Mertens]] | ||
'''Betreuer:'''[[Benutzer:Mirekgoebel| Prof. Dr. Mirek Göbel]] | '''Betreuer:'''[[Benutzer:Mirekgoebel| Prof. Dr. Mirek Göbel]] | ||
[[Datei:Phönix_SPS.jpg|thumb|1000px|Abbildung 1: Steuerung der automatischen Legostein-Montieranlage]] | |||
== Einleitung == | == Einleitung == | ||
Dieser Artikel ist | Dieser Artikel ist im Rahmen des Praktikums "Produktionstechnik" im 7. Semester MTR WS 17/18 entstanden. Der Artikel dient zur Dokumentation der Arbeitsergebnisse des Praktikums zum Thema "Steuerung der automatischen Legostein-Montieranlage" und soll einer schnellen Einarbeitung in das Thema dienen. | ||
Wir bedanken uns hiermit ganz besonders bei PHOENIXCONTACT für die großzügige Spende der SPS-Komponenten! | |||
Das Ziel dieser Gruppe ist es, die einzelnen Komponenten der Legostein-Montieranlage mithilfe einer SPS zum Leben zu erwecken. Der Artikel dokumentiert die hierzu notwendigen Vorbereitungen und Schritte. | |||
Dieser Artikel ist Teil des Hauptartikels | |||
[http://193.175.248.52/wiki/index.php/Automatische_Legostein-Montieranlage Automatische Legostein Montieranlage] | |||
== Vorbereitung== | == Vorbereitung== | ||
Vor Beginn der Programmierung müssen Vorbereitungen getroffen werden, um die Programmstruktur festzulegen bzw. den Arbeitsablauf beim programmieren zu vereinfachen. Hierbei ist eine gute Kommunikation mit den weiteren Gruppen entscheidend, um Schnittstellen bzw. Ein- und Ausgänge der einzelnen Module und Komponenten zu definieren. Nach Rücksprache mit den Gruppen entstand der Funktionsplan. | Vor Beginn der Programmierung müssen Vorbereitungen getroffen werden, um die Programmstruktur festzulegen bzw. den Arbeitsablauf beim programmieren zu vereinfachen. Hierbei ist eine gute Kommunikation mit den weiteren Gruppen entscheidend, um Schnittstellen bzw. Ein- und Ausgänge der einzelnen Module und Komponenten zu definieren. Nach Rücksprache mit den Gruppen, entstand der Funktionsplan. | ||
---- | ---- | ||
===Funktionsplan=== | ===Funktionsplan=== | ||
[[Datei:Funktionsplan.jpg|500px|thumb|Funktionsplan der Lego-Montieranlage ]] | [[Datei:Funktionsplan.jpg|500px|thumb|Abbildung 2: Funktionsplan der Lego-Montieranlage ]] | ||
Der Funktionsplan ist eine schematische Darstellung der gesamten Lego-Montieranlage. Innerhalb des Funktionsplans sind alle benötigten Ein- und Ausgänge auf der SPS und deren zugeordnete Position in der Anlage aufgetragen. Dabei sind die Eingänge in Blau und die Ausgänge in Rot eingefärbt. Für die Anlage werden folgende Ein- und Ausgänge benötigt: | Der Funktionsplan ist eine schematische Darstellung der gesamten Lego-Montieranlage. Innerhalb des Funktionsplans sind alle benötigten Ein- und Ausgänge auf der SPS und deren zugeordnete Position in der Anlage aufgetragen. Dabei sind die Eingänge in Blau und die Ausgänge in Rot eingefärbt. Für die Anlage werden folgende Ein- und Ausgänge benötigt: | ||
{| class="mw-datatable" | |||
! style="font-weight: bold;" | Station | |||
! style="font-weight: bold;" | Eingänge | |||
! style="font-weight: bold;" | Ausgänge | |||
|- | |||
| [http://193.175.248.52/wiki/index.php/Zuf%C3%BChrung_der_Legosteine_mittels_Vibrationswendelf%C3%B6rderer Vibrationswendelförderer] | |||
| Sensor "Förderband voll" | |||
| Ansteuerung [http://193.175.248.52/wiki/index.php/Vibrationswendelf%C3%B6rderer_mit_PiCo_Regelger%C3%A4t_NA/B.4/65.3-bi-V1 Vibrationswendelförderer] | |||
|- | |||
| [http://193.175.248.52/wiki/index.php?title=F%C3%B6rderung_der_Legosteine_und_R%C3%BCcktransport_in_den_Vibrationswendelf%C3%B6rderer&action=edit&redlink=1 Förderung und Rückführung der Legosteine] | |||
| Endlage Schrottposition | |||
| Ansteuerung Motor Förderband | |||
|- | |||
| | |||
|Endlage Position Vibrationswendelförderer | |||
| | |||
|- | |||
| | |||
|Endlage Greifer oben/unten | |||
| | |||
|- | |||
| | |||
|Farbsensor | |||
| | |||
|- | |||
| | |||
|Lichtschranke | |||
| | |||
|- | |||
|[http://193.175.248.52/wiki/index.php/Sortierung/Pufferung_der_Legosteine_und_%C3%9Cbergabe_an_den_Roboter Sortierung/ Pufferung/ Übergabe an den Roboter] | |||
|Erkennung Legostein auf dem "Hubschrauber-Landeplatz" | |||
|Ansteuerung Linearachse (Rutschen) | |||
|- | |||
| | |||
| | |||
|Ansteuerung Linearachse (Übergabe Roboter) | |||
|- | |||
| | |||
| | |||
|Spannzylinder (1x pro Rutsche) | |||
|- | |||
|[http://193.175.248.52/wiki/index.php/Montage_der_Legosteine_mit_dem_UR3-Roboter UR3 Roboter] | |||
|Farbanfrage des Roboters | |||
|Aktuelle Farbe (1x pro Farbe) | |||
|- | |||
|} | |||
Zeile 78: | Zeile 95: | ||
---- | ---- | ||
=== | ===Variablendefinition=== | ||
[[Datei:Variablendefinition.jpg|800px|thumb|Abbildung 3: Variablendefinition der Lego-Montieranlage]] | |||
Um den Funktionsplan im Programm der SPS abbilden zu können, müssen entsprechende Variablen für jede Funktion deklariert werden. Für eine bessere Übersicht wurden diese nach Ein- und Ausgängen angeordnet. Zu beachten ist, dass die Variablennamen auf eine Länge von maximal 16 Zeichen beschränkt sind. Aus diesem Grund wurde darauf verzichtet, den Variablentyp im Namen zu verwenden. Der Variablentyp wird bei Deklaration der Variablen festgelegt und ist im späteren Programm einsehbar. | |||
Zeile 99: | Zeile 119: | ||
---- | |||
===Programmablaufplan=== | |||
[[Datei:Grafcet.jpg|300px|thumb|Abbildung 4: GRAFCET Plan ]] | |||
Der Begriff GRAFCET stammt aus dem Französischen und ist eine Abkürzung, welche für: GRAphe Fonctionnel de Commande Etape Transition. Ins Deutsche | |||
übersetzt bedeutet dies: Darstellung der Steuerungsfunktion mit Schritten und | |||
Weiterschaltbedingungen. GRAFCET ist die neue | |||
Norm für Ablaufbeschreibungen, Nachfolger der Ablaufbeschreibung "Funktionsplan". | |||
Die internationale DIN EN 60848 (GRAFCET) | |||
ersetzt in Deutschland die nationale DIN 40719, Teil 6 (Funktionsplan). Die | |||
Übergangsfrist, in der beide Normen angewendet werden dürfen, endet am 31. März | |||
2005. | |||
<ref> | |||
[http://www.festo-didactic.com/ov3/media/customers/1100/grafcet_kompakt_2008_1.pdf Aus für den Funktionsplan - Jetzt gilt GRAFCET] </ref> | |||
Beim GRAFCET Plan wird zwischen Schritten und Transitionen unterschieden. Dabei beschreiben die Transitionen die Bedingungen, welche eintreten müssen, damit ein Schritt (Änderung des Ausgangs) erfolgen kann. Zum Beispiel kann die "Ausgangsbedingung" (Schritt) erst verlassen werden, sobald der Schalter zum Starten (Transition) umgelegt wurde. In der Abbildung 4 sieht man einen GRAFCET Plan für die Gruppe [http://193.175.248.52/wiki/index.php?title=F%C3%B6rderung_der_Legosteine_und_R%C3%BCcktransport_in_den_Vibrationswendelf%C3%B6rderer&action=edit&redlink=1 Förderung und Rückführung der Legosteine]. Der GRAFCET Plan dient dazu, den Programmablauf zu strukturieren und einen "Roten Faden" für das Programm zu erstellen. Die Benennungen der Schritte und Transitionen orientieren sich an der Variablendefinition, um eine einfache Zuordnung im Programm zu schaffen. Bei dem abgebildeten GRAFCET Plan handelt es sich um eine vereinfachte Darstellung, welche nur die Station [http://193.175.248.52/wiki/index.php?title=F%C3%B6rderung_der_Legosteine_und_R%C3%BCcktransport_in_den_Vibrationswendelf%C3%B6rderer&action=edit&redlink=1 Förderung und Rückführung der Legosteine] beinhaltet. Im Dateiverzeichnis findet sich ein vollständiger GRAFCET Plan der gesamten Anlage. | |||
Zeile 141: | Zeile 177: | ||
---- | |||
===Relaisschaltungen=== | |||
[[Datei:Relaisschaltung Umpolung.jpg|400px|thumb|Abbildung 5: Relaisschaltung Umpolung ]] | |||
Da die anzusteuernden Motoren eine zu hohe Last für die SPS hat, werden zusätzliche Relaisschaltungen benötigt. Der Motor des Förderbandes der Gruppe [http://193.175.248.52/wiki/index.php?title=F%C3%B6rderung_der_Legosteine_und_R%C3%BCcktransport_in_den_Vibrationswendelf%C3%B6rderer&action=edit&redlink=1 Förderung und Rückführung der Legosteine] benötigt ein Relais als Schließer, um eine separate Stromversorgung zu realisieren. | |||
===Relaisschaltung zum Umpolen eines Gleichstrommotors=== | |||
=== | Um das Greiferportal der Gruppe [http://193.175.248.52/wiki/index.php?title=F%C3%B6rderung_der_Legosteine_und_R%C3%BCcktransport_in_den_Vibrationswendelf%C3%B6rderer&action=edit&redlink=1 Förderung und Rückführung der Legosteine] in beide Richtungen anzusteuern, wird eine weitere Relaisschaltung benötigt. Bei dem Greiferportal handelt es sich um einen zweiphasigen Gleichstrommotor. Die Schaltung wurde innerhalb des Schaltschrankes mit vier Relais aufgebaut. Zum Ansteuern in die jeweilige Richtung werden entweder die Relais A1 oder A2 für die entgegengesetzte Richtung geschlossen. Um die Schaltung zukünftig mit zwei Relais realisieren zu können, wurden zuästlich zwei neue Relais mit zwei Wechslern auf die Einkaufsliste gesetzt | ||
== Programmierung Legostein-Montieranlage== | |||
Die Programmierung wird mit einer [http://193.175.248.52/wiki/index.php/Speicherprogrammierbare_Steuerung_SPS SPS] durchgeführt. Für die Programmierung wird mit einer [http://193.175.248.52/wiki/index.php/Phoenix_Contact_AXC_Trainer_1050_PN Phoenix Contact AXC Trainer 1050 PN] gearbeitet. In den folgenden Schritten wird auszugsweise das Programm erläutert. | |||
---- | |||
=== Farbsensor === | |||
Die Programmierung startet mit der Abfrage des Farbwertes. Hierzu wird bei jedem Zyklus die aktuelle Farbe abgefragt. Sollte der Farbsensor eine Farbe erkennen, speichert er die Farbe durch ein SR-Glied ab. Der SR-Baustein ist solange aktiv bis eine neue Farbe erkannt wird. Auf dem nachfolgenden Bild ist ein Ausschnitt aus der Programmierung zu sehnen. So ist sichergestellt, dass immer nur eine Farbe aktiv ist (Farbe_xy = 1). | |||
[[Datei:Farbsensor.jpg|gerahmt|zentriert|Abbildung 6: Programmierung Farbsensor]] | |||
[ | |||
===Ablaufsteuerung=== | |||
Die Grundlage der Programmierung ist eine Ablaufsteuerung. Eine Ablaufsteuerung (englisch: sequential control) oder auch Schrittkette ist eine Steuerung, die schrittweise abläuft. Dieser Ablauf erfolgt zwangsläufig, wobei das Weiterschalten von Schritt A zu Schritt B durch Weiterschaltbedingungen (Transitionen) erfolgt, z. B. ein Zylinder fährt aus, transportiert ein Werkstück, dieses wird dann gespannt. | |||
[ | Der Entwurf von Ablaufsteuerungen kann nach DIN EN 60848 mit GRAFCET erfolgen, die Implementierung nach IEC 61131-3 mit Sequential Function Chart (SFC). Wird eine Ablaufsteuerung durch eine SPS realisiert, dann bietet sich zur Programmierung die Ablaufsprache an. | ||
<ref> | |||
[https://de.wikipedia.org/wiki/Ablaufsteuerung Ablaufsteuerung] </ref>. | |||
Um die Ablaufsprache zu implementieren, werden interne Schritte gesetzt. Dies geschiet mit der FUP-Programmiersprache Angefangen wird mit dem Initaialschritt 0. Auf der folgenen Abbildung ist der Auszug aus dem Programm zu sehen. Die erste Transition die erfüllt werden muss ist eine große UND-Verknüpfung. Wenn diese erfüllt ist, wird der Motor von dem Greifer =1 gesetzt. Somit fährt der Greifer in Rictung Aufnahmeposition. Erreicht der Greifer diese, wird der SR-Baustein für den Motor (Aufnahme_Band) wieder deaktiviert. Intern wird der Schritt 1 gesetzt. | |||
Wenn Schritt 1 aktiviert worden ist, kann der Greifer nun nach unten fahren. Auch dies wird mit einer UND-Verknüfung durchgeführt. Erreicht der Greifer die Endlage unten, läuft eine Zeit ab. Um Zeitfunktionen zu nutzen wird ein TON-Baustein verwendet. Dies ist eine Zeitverzögerung. In dem Parameter Time_Greifer kann die Wartezeit in der unteren Endlage definiert werden. In dieser Wartezeit greift der Greifer unten den Legostein. Nach Ablauf der Wartezeit wird intern der Schritt 2 gesetzt. | |||
[[Datei: | [[Datei:Schritt1.jpg|gerahmt|zentriert|Abbildung 7: Schrittsteuerung Schritt 1]] | ||
Nach dem intern setzten des zweiten Schrittes, erfolgt nun die Rückführung der Legosteine. Wenn der Greifer in der oberen Endlage ist, entscheidet sich das Programm zu welcher Position der Greifer fahren soll. Zur Auswahl stehen zwei Möglichkeiten. Die erste Möglichkeit ist die " Schlechtteile " und die andern " Gutteile ". In dem Probelauf wurden die blauen, gelben und roten Legosteine als Gutteile betrachtet. Die schwarzen Legosteine sind in diesm Fall die Schlechtteile. | |||
Nach der Entscheidung der Farbe wird der Motor nun in die Gegenseitige Richtung bewegt. Dies passiert wieder durch ein SR-Glied. Ist die korrekte Position erreicht, so bleibt der Motor stehen und der Greifer öffnet sich. Nun kan der Greifer den nächsten Legostein aufsammeln. | |||
[[Datei:Schritt2.jpg|gerahmt|zentriert|Abbildung 8: Schrittsteuerung Schritt 2]] | |||
=== Ansteuerung Greifer === | |||
Die Ansteuering des Greifers erfolgt in einem Zwischenschritt zwischen zwei und drei. Dieser ist sehr simpel aufgebaut. Auch dies ist ein SR-Grundstein. Dieser wird gesetzt wenn der Hubarm des Greifers sich in der unteren Endlage befindet. Dieser bleibt solange geschlossen, bis sich der Greifer über der richtigen Abwurfstelle befindet. Der Greifer lässt im ersten Fall über der Schrottposition los, falls er ein Schwarzen Stein hat. Bei jeder anderen Farbe fährt das Portal bis zum Vibrationswendelförderer. | |||
[[Datei:Greifer Lego.png|gerahmt|zentriert|Abbildung 9: Programmierung Greifer]] | |||
=== Ansteuerung Förderband === | |||
Das Förderband startet durch den Start-Taster. Dies Fördert so lange, bis sich ein Legostein in der Endlage befindet. Eine Sonderbedingung zur Demonstration der Anlage ist mit eingeflossen. Blaue Steine werden nicht erkannt und werden weitergefördert. | |||
[[Datei:Förderband Lego.png|gerahmt|zentriert|Abbildung 10: Programmierung Förderband]] | |||
=== Ansteuerung Vibrationswendelförderer === | |||
Um den Vibrationswendelförder abschalten zu können, wird dieser ebenfalls in die Programmierung mit einbezogen. Da sich am Auslass des Wendelförderers eine Lichtschranke befindet, wird diese eingelesen. Um den Wendelförderer nicht immer einzuschalten wird mit einer Hysterese gearbeitet. | |||
Der [https://de.wikipedia.org/wiki/Hysterese#Zweipunktregler Zweipunktregler] ist ein typisches Beispiel. Trägt man die Ursache (Eingangsgröße) auf einer horizontalen Achse auf, sowie die Wirkung (Ausgangsgröße) auf der vertikalen Achse, so weist die Kurve zwei waagerechte Level auf. Der Übergang vom oberen auf den unteren Level findet bei einem niedereren x-Achsen-Punkt statt als der Übergang von unten nach oben, wodurch eine Hysterese erkennbar wird. | |||
Als Beispiel dient das Ausklappen des Heckspoilers bei einem Auto: Diese „Luftklappe“ soll bei geringer Geschwindigkeit eingefahren und oberhalb von 80 km/h ausgefahren sein, um den Anpressdruck der Hinterräder zu erhöhen. Wenn das Auto in einer Kolonne fährt, deren Geschwindigkeit ständig zwischen 78 km/h und 83 km/h schwankt, würde das ständige Ein- und Ausfahren die Spoiler-Mechanik unnötig beanspruchen. Das wird durch ein hysteresebehaftetes Schaltverhalten vermieden: | |||
*Oberhalb von 80 km/h wird ausgefahren, untere Linie auf der Hysteresekurve. | |||
*Unterhalb von 60 km/h wird eingefahren, obere Linie auf der Hysteresekurve.<ref> | |||
[https://de.wikipedia.org/wiki/Hysterese#Zweipunktregler Zweipunktregler] </ref>. | |||
Dieses Prinzip wird ebenfalls hier angewendet. Die Ein-und Ausschalthyterese liegt bei 2 Sekunden. | |||
[[Datei: | [[Datei:Vibrationswendelförderer.png|gerahmt|zentriert|Abbildung 11: Programmierung Vibrationswendelförderer]] | ||
=== | === Ansteuerung Schrittmotor === | ||
Zum Ansteuern des Schrittmotors benötigt dieser eine Signalflanke. Bei Digitalsignalen sind Signalflanken die Übergänge zwischen den Signalzuständen high (H) und low (L), bezeichnet als steigende und fallende Flanke.<ref> | |||
[https://de.wikipedia.org/wiki/Signalflanke Signalflanke] </ref>. | |||
[[Datei: | Durch die beiden Zeitverzögerungen wird ein Flankensignal in Form einer Rechteckspannung generiert. Abbildung 13 zeigt schematisch den generierten Spannungsverlauf über die Zeit. Der Parameter Zeit1 beschreibt die jeweilige Länge der high und low Signale. Der Zähler gibt vor, wie viele Flanken er generiern soll. Je nach Farbe wird ein neuer Wert in den Zähler geschrieben. Der verwendete Zähler ist ein Abwärtszähler. Erreicht der Zähler null so werden keine Flanken mehr generiert. Die Variabel Testausgang wird auf den [http://193.175.248.52/wiki/index.php/Geckodrive_Schrittmotortreiber GeckoDrive] gelegt. | ||
[[Datei:Signalflanke.png|gerahmt|zentriert|Abbildung 12: Programmierung Schrittmotor]] | |||
[[Datei:Rechteckspannung.png|gerahmt|zentriert|Abbildung 13: Rechtecksignal]] | |||
== | == Schaltschrankbau == | ||
===Schaltschrankmontage=== | |||
Ein weiterer Meilenstein ist der Schaltschrank. Hierzu wurde ein Schaltschrank in den Maßen 600mm x 500mm x 210mm beschafft. Dieser wurde auf einer Holzplatte direkt am Tisch montiert. Die Abbildung 14 zeigt die Anbringung des Schaltschrankes direkt am Tisch. Um die Spannungsversorgung im Notfall zu unterbrechen ist ein Not-Aus Schalter montiert. Um das Programm zu starten ist auf dem Schaltschrank ein An-Aus Wippschalter montiert. | |||
[[Datei:Schaltschrank Montage.jpg|gerahmt|zentriert|Abbildung 14: Schaltschrank Montage]] | |||
===Schaltschrankausbau=== | |||
In der folgenden Abbildung 15 ist der fertige Schaltschrank von innen zu sehen.Die SPS wurde auf Hutschienen montiert. Der Analog-Baustein ist ebenfalls montiert, da ansonsten ein "Bus-Fehler" entsteht. Auf den untenliegenden Reihenklemmen gibt es jeweils zehn Steckplätze für die Versorgungsspannung +24V und zehn weitere für 0V. Die folgenden 21 Reihenklemmen bilden elf Ausgänge und zehn Eingänge der [http://193.175.248.52/wiki/index.php/Phoenix_Contact_AXC_Trainer_1050_PN SPS] ab und dienen als Schnittstelle zu den einzelnen Komponenten. Für die Spannungsversorgung ist ein Netzteil im Schaltschrank verbaut. Links neben dem Netzteil finden sich die Relais für die Relaisschaltungen des Greiferportals und des Förderbandes. | |||
[[Datei: | [[Datei:Schaltschrank innen.jpg|gerahmt|zentriert|Abbildung 15: Schaltschrank Innenansicht]] | ||
===Belegung der Reihenklemmen=== | |||
Die im unteren Bereich des Schaltschranks befindlichen Reihenklemmen bieten die Schnittstelle zwischen den einzelnen Modulen und Komponenten und der SPS. Der Belegungsplan trägt die Reihenklemmen von links nach rechts aufsteigend nummeriert mit deren Funktionen auf. Klemmen 1-20 dienen der Spannungsversorgung der Module. Abbildung 16 zeigt den Belegungsplan der Reihenklemmen für die Ein- und Ausgänge der SPS. Ein vollständiger Belegungsplan findet sich unter "Dateien". Abbildung 17 und Abbildung 18 zeigen jeweils die Variablenbelegung für die Ein- und Ausgänge der SPS. | |||
[[Datei:Belegung_SPS.jpg|gerahmt|zentriert|Abbildung 16: Belegung der Reihenklemmen]] | |||
[[Datei:Belegung_Ausgänge.png|gerahmt|zentriert|Abbildung 17: Belegung der Ausgänge der SPS]] | |||
[[Datei:Belegung_Eingänge.png|gerahmt|zentriert|Abbildung 18: Belegung der Eingänge der SPS]] | |||
== Zusammenfassung == | |||
Im Praktikum geleistete Themen: | |||
*Inbetriebnahme der [http://193.175.248.52/wiki/index.php/Phoenix_Contact_AXC_Trainer_1050_PN Phoenix Contact AXC Trainer 1050 PN] | |||
*Programmierung der einzelnen Stationen und Module der automatischen Legostein-Montiernanlage | |||
*Bereitstellung von Schnittstellen für noch fehlende Komponenten (Bsp. Farbsensor) | |||
*Anbringung des Schaltschranks | |||
*Ausbau des Schaltschranks | |||
*Dokumentation der Arbeitsergebnisse | |||
== Ausblick == | == Ausblick == | ||
Weitere Schritte zur Vervollständigung des Projektes: | |||
* Einbindung des [http://193.175.248.52/wiki/index.php/Montage_der_Legosteine_mit_dem_UR3-Roboter UR3 Roboter] | * Einbindung des [http://193.175.248.52/wiki/index.php/Montage_der_Legosteine_mit_dem_UR3-Roboter UR3 Roboter] | ||
* Ansteuerung der Zahnriemenachse mithilfe des [http://193.175.248.52/wiki/index.php/Geckodrive_Schrittmotortreiber GeckoDrive] | * Ansteuerung der Zahnriemenachse mithilfe des [http://193.175.248.52/wiki/index.php/Geckodrive_Schrittmotortreiber GeckoDrive] | ||
* Auswahl und Einbindung eines geeigneten Farbsensors | * Auswahl und Einbindung eines geeigneten Farbsensors | ||
==Schnittstellen zu anderen Gruppen== | |||
*[[Zuführung der Legosteine mittels Vibrationswendelförderer]] | |||
*[[Förderung der Legosteine und Rücktransport in den Vibrationswendelförderer]] | |||
*[[Sortierung/Pufferung der Legosteine und Übergabe an den Roboter]] | |||
*[[Montage der Legosteine mit dem UR3-Roboter]] | |||
==Dateien== | |||
[[Datei:Funktionsplan_PDF.pdf]] | |||
[[Datei:Funktionsplan_VSDX.vsdx]] | |||
[[Datei:Variablendefinition_XLSX.xlsx]] | |||
[[Datei:GRAFCET_PDF.pdf]] | |||
[[Datei:GRAFCET_VSDX.vsdx]] | |||
[[Datei:Reihenklemmenbelegung_Schaltschrank_XLSX.xlsx]] | |||
[[Datei:Programm_SPS.zip]] | |||
'''Hinweis zum Einbinden des SPS Programms:''' | |||
# .zip Archiv herunterladen | |||
# .zip Archiv entpacken | |||
# gesamten Ordner in [https://www.phoenixcontact.com/online/portal/de?1dmy&urile=wcm:path:/dede/web/main/products/subcategory_pages/Programming_P-19-05/8b777145-e7f2-4eaa-ae5e-4dacdce30223/8b777145-e7f2-4eaa-ae5e-4dacdce30223 PC WORX] einbinden | |||
'''Editierte Bilder:''' | |||
[[Datei:Schaltschrank_Montage_Original_PDF.pdf]] | |||
[[Datei:Schaltschrank_innen_Original_PDF.pdf]] | |||
== Literaturverzeichnis == | == Literaturverzeichnis == | ||
<references /> | <references /> | ||
'''Hauptartikel:''' [http://193.175.248.52/wiki/index.php/Automatische_Legostein-Montieranlage Automatische Legostein Montieranlage] | '''Hauptartikel:''' [http://193.175.248.52/wiki/index.php/Automatische_Legostein-Montieranlage Automatische Legostein Montieranlage] |
Aktuelle Version vom 22. Oktober 2019, 14:40 Uhr
Hauptartikel: Automatische Legostein Montieranlage
Autoren: Philip Strümper, Marcel Mertens
Betreuer: Prof. Dr. Mirek Göbel
Einleitung
Dieser Artikel ist im Rahmen des Praktikums "Produktionstechnik" im 7. Semester MTR WS 17/18 entstanden. Der Artikel dient zur Dokumentation der Arbeitsergebnisse des Praktikums zum Thema "Steuerung der automatischen Legostein-Montieranlage" und soll einer schnellen Einarbeitung in das Thema dienen.
Wir bedanken uns hiermit ganz besonders bei PHOENIXCONTACT für die großzügige Spende der SPS-Komponenten!
Das Ziel dieser Gruppe ist es, die einzelnen Komponenten der Legostein-Montieranlage mithilfe einer SPS zum Leben zu erwecken. Der Artikel dokumentiert die hierzu notwendigen Vorbereitungen und Schritte.
Dieser Artikel ist Teil des Hauptartikels Automatische Legostein Montieranlage
Vorbereitung
Vor Beginn der Programmierung müssen Vorbereitungen getroffen werden, um die Programmstruktur festzulegen bzw. den Arbeitsablauf beim programmieren zu vereinfachen. Hierbei ist eine gute Kommunikation mit den weiteren Gruppen entscheidend, um Schnittstellen bzw. Ein- und Ausgänge der einzelnen Module und Komponenten zu definieren. Nach Rücksprache mit den Gruppen, entstand der Funktionsplan.
Funktionsplan
Der Funktionsplan ist eine schematische Darstellung der gesamten Lego-Montieranlage. Innerhalb des Funktionsplans sind alle benötigten Ein- und Ausgänge auf der SPS und deren zugeordnete Position in der Anlage aufgetragen. Dabei sind die Eingänge in Blau und die Ausgänge in Rot eingefärbt. Für die Anlage werden folgende Ein- und Ausgänge benötigt:
Station | Eingänge | Ausgänge |
---|---|---|
Vibrationswendelförderer | Sensor "Förderband voll" | Ansteuerung Vibrationswendelförderer |
Förderung und Rückführung der Legosteine | Endlage Schrottposition | Ansteuerung Motor Förderband |
Endlage Position Vibrationswendelförderer | ||
Endlage Greifer oben/unten | ||
Farbsensor | ||
Lichtschranke | ||
Sortierung/ Pufferung/ Übergabe an den Roboter | Erkennung Legostein auf dem "Hubschrauber-Landeplatz" | Ansteuerung Linearachse (Rutschen) |
Ansteuerung Linearachse (Übergabe Roboter) | ||
Spannzylinder (1x pro Rutsche) | ||
UR3 Roboter | Farbanfrage des Roboters | Aktuelle Farbe (1x pro Farbe) |
Variablendefinition
Um den Funktionsplan im Programm der SPS abbilden zu können, müssen entsprechende Variablen für jede Funktion deklariert werden. Für eine bessere Übersicht wurden diese nach Ein- und Ausgängen angeordnet. Zu beachten ist, dass die Variablennamen auf eine Länge von maximal 16 Zeichen beschränkt sind. Aus diesem Grund wurde darauf verzichtet, den Variablentyp im Namen zu verwenden. Der Variablentyp wird bei Deklaration der Variablen festgelegt und ist im späteren Programm einsehbar.
Programmablaufplan
Der Begriff GRAFCET stammt aus dem Französischen und ist eine Abkürzung, welche für: GRAphe Fonctionnel de Commande Etape Transition. Ins Deutsche übersetzt bedeutet dies: Darstellung der Steuerungsfunktion mit Schritten und Weiterschaltbedingungen. GRAFCET ist die neue Norm für Ablaufbeschreibungen, Nachfolger der Ablaufbeschreibung "Funktionsplan". Die internationale DIN EN 60848 (GRAFCET) ersetzt in Deutschland die nationale DIN 40719, Teil 6 (Funktionsplan). Die Übergangsfrist, in der beide Normen angewendet werden dürfen, endet am 31. März 2005. [1]
Beim GRAFCET Plan wird zwischen Schritten und Transitionen unterschieden. Dabei beschreiben die Transitionen die Bedingungen, welche eintreten müssen, damit ein Schritt (Änderung des Ausgangs) erfolgen kann. Zum Beispiel kann die "Ausgangsbedingung" (Schritt) erst verlassen werden, sobald der Schalter zum Starten (Transition) umgelegt wurde. In der Abbildung 4 sieht man einen GRAFCET Plan für die Gruppe Förderung und Rückführung der Legosteine. Der GRAFCET Plan dient dazu, den Programmablauf zu strukturieren und einen "Roten Faden" für das Programm zu erstellen. Die Benennungen der Schritte und Transitionen orientieren sich an der Variablendefinition, um eine einfache Zuordnung im Programm zu schaffen. Bei dem abgebildeten GRAFCET Plan handelt es sich um eine vereinfachte Darstellung, welche nur die Station Förderung und Rückführung der Legosteine beinhaltet. Im Dateiverzeichnis findet sich ein vollständiger GRAFCET Plan der gesamten Anlage.
Relaisschaltungen
Da die anzusteuernden Motoren eine zu hohe Last für die SPS hat, werden zusätzliche Relaisschaltungen benötigt. Der Motor des Förderbandes der Gruppe Förderung und Rückführung der Legosteine benötigt ein Relais als Schließer, um eine separate Stromversorgung zu realisieren.
Relaisschaltung zum Umpolen eines Gleichstrommotors
Um das Greiferportal der Gruppe Förderung und Rückführung der Legosteine in beide Richtungen anzusteuern, wird eine weitere Relaisschaltung benötigt. Bei dem Greiferportal handelt es sich um einen zweiphasigen Gleichstrommotor. Die Schaltung wurde innerhalb des Schaltschrankes mit vier Relais aufgebaut. Zum Ansteuern in die jeweilige Richtung werden entweder die Relais A1 oder A2 für die entgegengesetzte Richtung geschlossen. Um die Schaltung zukünftig mit zwei Relais realisieren zu können, wurden zuästlich zwei neue Relais mit zwei Wechslern auf die Einkaufsliste gesetzt
Programmierung Legostein-Montieranlage
Die Programmierung wird mit einer SPS durchgeführt. Für die Programmierung wird mit einer Phoenix Contact AXC Trainer 1050 PN gearbeitet. In den folgenden Schritten wird auszugsweise das Programm erläutert.
Farbsensor
Die Programmierung startet mit der Abfrage des Farbwertes. Hierzu wird bei jedem Zyklus die aktuelle Farbe abgefragt. Sollte der Farbsensor eine Farbe erkennen, speichert er die Farbe durch ein SR-Glied ab. Der SR-Baustein ist solange aktiv bis eine neue Farbe erkannt wird. Auf dem nachfolgenden Bild ist ein Ausschnitt aus der Programmierung zu sehnen. So ist sichergestellt, dass immer nur eine Farbe aktiv ist (Farbe_xy = 1).
Ablaufsteuerung
Die Grundlage der Programmierung ist eine Ablaufsteuerung. Eine Ablaufsteuerung (englisch: sequential control) oder auch Schrittkette ist eine Steuerung, die schrittweise abläuft. Dieser Ablauf erfolgt zwangsläufig, wobei das Weiterschalten von Schritt A zu Schritt B durch Weiterschaltbedingungen (Transitionen) erfolgt, z. B. ein Zylinder fährt aus, transportiert ein Werkstück, dieses wird dann gespannt.
Der Entwurf von Ablaufsteuerungen kann nach DIN EN 60848 mit GRAFCET erfolgen, die Implementierung nach IEC 61131-3 mit Sequential Function Chart (SFC). Wird eine Ablaufsteuerung durch eine SPS realisiert, dann bietet sich zur Programmierung die Ablaufsprache an. [2].
Um die Ablaufsprache zu implementieren, werden interne Schritte gesetzt. Dies geschiet mit der FUP-Programmiersprache Angefangen wird mit dem Initaialschritt 0. Auf der folgenen Abbildung ist der Auszug aus dem Programm zu sehen. Die erste Transition die erfüllt werden muss ist eine große UND-Verknüpfung. Wenn diese erfüllt ist, wird der Motor von dem Greifer =1 gesetzt. Somit fährt der Greifer in Rictung Aufnahmeposition. Erreicht der Greifer diese, wird der SR-Baustein für den Motor (Aufnahme_Band) wieder deaktiviert. Intern wird der Schritt 1 gesetzt.
Wenn Schritt 1 aktiviert worden ist, kann der Greifer nun nach unten fahren. Auch dies wird mit einer UND-Verknüfung durchgeführt. Erreicht der Greifer die Endlage unten, läuft eine Zeit ab. Um Zeitfunktionen zu nutzen wird ein TON-Baustein verwendet. Dies ist eine Zeitverzögerung. In dem Parameter Time_Greifer kann die Wartezeit in der unteren Endlage definiert werden. In dieser Wartezeit greift der Greifer unten den Legostein. Nach Ablauf der Wartezeit wird intern der Schritt 2 gesetzt.
Nach dem intern setzten des zweiten Schrittes, erfolgt nun die Rückführung der Legosteine. Wenn der Greifer in der oberen Endlage ist, entscheidet sich das Programm zu welcher Position der Greifer fahren soll. Zur Auswahl stehen zwei Möglichkeiten. Die erste Möglichkeit ist die " Schlechtteile " und die andern " Gutteile ". In dem Probelauf wurden die blauen, gelben und roten Legosteine als Gutteile betrachtet. Die schwarzen Legosteine sind in diesm Fall die Schlechtteile.
Nach der Entscheidung der Farbe wird der Motor nun in die Gegenseitige Richtung bewegt. Dies passiert wieder durch ein SR-Glied. Ist die korrekte Position erreicht, so bleibt der Motor stehen und der Greifer öffnet sich. Nun kan der Greifer den nächsten Legostein aufsammeln.
Ansteuerung Greifer
Die Ansteuering des Greifers erfolgt in einem Zwischenschritt zwischen zwei und drei. Dieser ist sehr simpel aufgebaut. Auch dies ist ein SR-Grundstein. Dieser wird gesetzt wenn der Hubarm des Greifers sich in der unteren Endlage befindet. Dieser bleibt solange geschlossen, bis sich der Greifer über der richtigen Abwurfstelle befindet. Der Greifer lässt im ersten Fall über der Schrottposition los, falls er ein Schwarzen Stein hat. Bei jeder anderen Farbe fährt das Portal bis zum Vibrationswendelförderer.
Ansteuerung Förderband
Das Förderband startet durch den Start-Taster. Dies Fördert so lange, bis sich ein Legostein in der Endlage befindet. Eine Sonderbedingung zur Demonstration der Anlage ist mit eingeflossen. Blaue Steine werden nicht erkannt und werden weitergefördert.
Ansteuerung Vibrationswendelförderer
Um den Vibrationswendelförder abschalten zu können, wird dieser ebenfalls in die Programmierung mit einbezogen. Da sich am Auslass des Wendelförderers eine Lichtschranke befindet, wird diese eingelesen. Um den Wendelförderer nicht immer einzuschalten wird mit einer Hysterese gearbeitet.
Der Zweipunktregler ist ein typisches Beispiel. Trägt man die Ursache (Eingangsgröße) auf einer horizontalen Achse auf, sowie die Wirkung (Ausgangsgröße) auf der vertikalen Achse, so weist die Kurve zwei waagerechte Level auf. Der Übergang vom oberen auf den unteren Level findet bei einem niedereren x-Achsen-Punkt statt als der Übergang von unten nach oben, wodurch eine Hysterese erkennbar wird.
Als Beispiel dient das Ausklappen des Heckspoilers bei einem Auto: Diese „Luftklappe“ soll bei geringer Geschwindigkeit eingefahren und oberhalb von 80 km/h ausgefahren sein, um den Anpressdruck der Hinterräder zu erhöhen. Wenn das Auto in einer Kolonne fährt, deren Geschwindigkeit ständig zwischen 78 km/h und 83 km/h schwankt, würde das ständige Ein- und Ausfahren die Spoiler-Mechanik unnötig beanspruchen. Das wird durch ein hysteresebehaftetes Schaltverhalten vermieden:
- Oberhalb von 80 km/h wird ausgefahren, untere Linie auf der Hysteresekurve.
- Unterhalb von 60 km/h wird eingefahren, obere Linie auf der Hysteresekurve.[3].
Dieses Prinzip wird ebenfalls hier angewendet. Die Ein-und Ausschalthyterese liegt bei 2 Sekunden.
Ansteuerung Schrittmotor
Zum Ansteuern des Schrittmotors benötigt dieser eine Signalflanke. Bei Digitalsignalen sind Signalflanken die Übergänge zwischen den Signalzuständen high (H) und low (L), bezeichnet als steigende und fallende Flanke.[4].
Durch die beiden Zeitverzögerungen wird ein Flankensignal in Form einer Rechteckspannung generiert. Abbildung 13 zeigt schematisch den generierten Spannungsverlauf über die Zeit. Der Parameter Zeit1 beschreibt die jeweilige Länge der high und low Signale. Der Zähler gibt vor, wie viele Flanken er generiern soll. Je nach Farbe wird ein neuer Wert in den Zähler geschrieben. Der verwendete Zähler ist ein Abwärtszähler. Erreicht der Zähler null so werden keine Flanken mehr generiert. Die Variabel Testausgang wird auf den GeckoDrive gelegt.
Schaltschrankbau
Schaltschrankmontage
Ein weiterer Meilenstein ist der Schaltschrank. Hierzu wurde ein Schaltschrank in den Maßen 600mm x 500mm x 210mm beschafft. Dieser wurde auf einer Holzplatte direkt am Tisch montiert. Die Abbildung 14 zeigt die Anbringung des Schaltschrankes direkt am Tisch. Um die Spannungsversorgung im Notfall zu unterbrechen ist ein Not-Aus Schalter montiert. Um das Programm zu starten ist auf dem Schaltschrank ein An-Aus Wippschalter montiert.
Schaltschrankausbau
In der folgenden Abbildung 15 ist der fertige Schaltschrank von innen zu sehen.Die SPS wurde auf Hutschienen montiert. Der Analog-Baustein ist ebenfalls montiert, da ansonsten ein "Bus-Fehler" entsteht. Auf den untenliegenden Reihenklemmen gibt es jeweils zehn Steckplätze für die Versorgungsspannung +24V und zehn weitere für 0V. Die folgenden 21 Reihenklemmen bilden elf Ausgänge und zehn Eingänge der SPS ab und dienen als Schnittstelle zu den einzelnen Komponenten. Für die Spannungsversorgung ist ein Netzteil im Schaltschrank verbaut. Links neben dem Netzteil finden sich die Relais für die Relaisschaltungen des Greiferportals und des Förderbandes.
Belegung der Reihenklemmen
Die im unteren Bereich des Schaltschranks befindlichen Reihenklemmen bieten die Schnittstelle zwischen den einzelnen Modulen und Komponenten und der SPS. Der Belegungsplan trägt die Reihenklemmen von links nach rechts aufsteigend nummeriert mit deren Funktionen auf. Klemmen 1-20 dienen der Spannungsversorgung der Module. Abbildung 16 zeigt den Belegungsplan der Reihenklemmen für die Ein- und Ausgänge der SPS. Ein vollständiger Belegungsplan findet sich unter "Dateien". Abbildung 17 und Abbildung 18 zeigen jeweils die Variablenbelegung für die Ein- und Ausgänge der SPS.
Zusammenfassung
Im Praktikum geleistete Themen:
- Inbetriebnahme der Phoenix Contact AXC Trainer 1050 PN
- Programmierung der einzelnen Stationen und Module der automatischen Legostein-Montiernanlage
- Bereitstellung von Schnittstellen für noch fehlende Komponenten (Bsp. Farbsensor)
- Anbringung des Schaltschranks
- Ausbau des Schaltschranks
- Dokumentation der Arbeitsergebnisse
Ausblick
Weitere Schritte zur Vervollständigung des Projektes:
- Einbindung des UR3 Roboter
- Ansteuerung der Zahnriemenachse mithilfe des GeckoDrive
- Auswahl und Einbindung eines geeigneten Farbsensors
Schnittstellen zu anderen Gruppen
- Zuführung der Legosteine mittels Vibrationswendelförderer
- Förderung der Legosteine und Rücktransport in den Vibrationswendelförderer
- Sortierung/Pufferung der Legosteine und Übergabe an den Roboter
- Montage der Legosteine mit dem UR3-Roboter
Dateien
Datei:Variablendefinition XLSX.xlsx
Datei:Reihenklemmenbelegung Schaltschrank XLSX.xlsx
Hinweis zum Einbinden des SPS Programms:
- .zip Archiv herunterladen
- .zip Archiv entpacken
- gesamten Ordner in PC WORX einbinden
Editierte Bilder:
Datei:Schaltschrank Montage Original PDF.pdf
Datei:Schaltschrank innen Original PDF.pdf
Literaturverzeichnis
Hauptartikel: Automatische Legostein Montieranlage