Steuerung der automatischen Legostein-Montieranlage: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 354: Zeile 354:
*Oberhalb von 80 km/h wird ausgefahren, untere Linie auf der Hysteresekurve.
*Oberhalb von 80 km/h wird ausgefahren, untere Linie auf der Hysteresekurve.
*Unterhalb von 60 km/h wird eingefahren, obere 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
Dieses Prinzip wird ebenfalls hier angewendet

Version vom 12. Februar 2018, 17:05 Uhr

Hauptartikel: Automatische Legostein Montieranlage

In Bearbeitung

Autor: Philip Strümper, Marcel Mertens

Betreuer: Prof. Dr. Mirek Göbel

Einleitung

Dieser Artikel ist eine Vorlage für einen Wiki-Artikel. Tipp: Kopieren Sie den gesamten Quelltext und ändern Sie ihn so, dass er Ihr Projekt beschreibt.

Dieser Artikel ist aus der Kategorie "How-To". 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

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:

Vibrationswendelförderer

  • Eingänge
  1. Spannzylinder/Sensor für "Förderband voll"
  • Ausgänge
  1. Ansteuerung Vibrationswendelförderer

Förderung und Rückführung der Legosteine

  • Eingänge
  1. Endlage Schrottposition
  2. Endlage Position Vibrationswendelförderer
  3. Endlage Greifer oben/unten
  4. Farbsensor
  5. Lichtschranke
  • Ausgänge
  1. Ansteuerung Motor Förderband

Sortierung/ Pufferung/ Übergabe an den Roboter

  • Eingänge
  1. Erkennung Legostein auf dem "Hubschrauber-Landeplatz"
  • Ausgänge
  1. Ansteuerung Linearachse (Rutschen)
  2. Ansteuerung Linearachse (Übergabe Roboter)
  3. Spannzylinder (1x pro Rutsche)

UR3 Roboter

  1. Eingänge
  • Farbanfrage des Roboters
  1. Ausgänge
  • Aktuelle Farbe (1x pro Farbe)

Variablendefinition

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.









Programmablaufplan

Grafcet Plan

Um den Programmablauf grafisch darzustellen wurde ein sog. Grafcet Plan erstellt.






















































Relais Schaltungen

Grundlage SPS

Geschichte der SPS

Ursprünglich wurden Steuerungen von Maschinen und Anlagen mit Relaisschaltungen erstellt. Dabei wurden die Kontakte in Reihe oder parallel geschaltet, um so die gewünschte Steuerung zu realisieren. Vorwiegend wurden dabei binäre und boolesche Signale verarbeitet.

Es entstand der Begriff "Programmierbare Steuerung" durch die amerikanische Bezeichnung für "Programmable Computer" oder abgekürzt PC. Mittlerweile wird die Abkürzung PC für "Personal Computer" verwendet. So musste man einen neuen Namen erfinden. Daraus entstand die Abkürzung SPS und steht für "Speicher Programmierbare Steuerung".

Entstanden ist die Idee der programmierbaren Steuerungen 1968 von General Motors. Man suchte nach anderen Möglichkeiten als die verbindungsprogrammierten (festverdrahteten) Relais-, Schütz- oder Elektroniksteuerungen. Folgende Kriterien sollten ausschlaggebend für die neue Art von Steuerungen sein:


  • Eine Steuerung sollte bei Veränderungen möglichst rasch umprogrammierbar sein, beispielsweise wenn die Anlagen umgebaut werden.
  • Die Kosten für die Entwicklung einer Steuerung sollte den anderen bekannten Steuerungstypen überlegen sein. Auch sollte die Steuerung zuverlässiger arbeiten.


Die Forderung der "Speicherprogrammierbaren Steuerungen" konnte durch die fortschreitende Technologie erfüllt werden. Eine SPS besteht aus einem bit- oder wortorientiertem Prozessor mit verschiedenen Speichermedien. Es gibt auch spezielle Software um komplexe Steuerungsprogramme in einer anwenderorientierten Programmiersprache zu programmieren (FUP, KOP, AWL, Graph).

Nach und nach wurden fest verdrahtete Relaissteuerungen durch Mikroprozessoren ersetzt. Steuerungsprogramme konnten schnell erstellt und verändert werden. Damit die Techniker bei ihrer Denkweise bleiben konnten, wurde die Programmierung mit Kontaktplan (KOP) entwickelt. Ein Kontaktplan lehnt sich ganz stark an Stromlaufplänen an. Somit wurde den Technikern ein einfacher Umstieg ermöglicht. Später wurde die maschinenorientierte Anweisungsliste (AWL) sowie der grafische Funktionsplan (FUP) entwickelt.

Nachdem man zuerst vorwiegend mit Binärsignalen gearbeitet hatte, entwickelten die Hersteller auch die Möglichkeit, Zeiten, Zahlen oder Gleitkommazahlen zu verarbeiten. Somit war es möglich, auch mit Analogwerten zu arbeiten.

1992 wurde die internationale Norm IEC 61131 definiert. Diese Norm soll eine herstellerunabhängige und einheitliche Programmiersprache für SPS darstellen. Die meisten SPS-Systeme können heutzutage mit dieser internationalen Norm programmiert werden. Als Programmiersprachen werden weitgehend die maschinenorientierten Sprachen AWL, KOP und FUP verwendet. [1].

Vorstellung Phoenix Contact AXC Trainer 1050 PN

Nach der Definition der Ein- und Ausgänge kann die Hardware dementsprechend ausgesucht werden. Durch die Vorgaben des Praktikums wird sich für eine Steuerung der Firma Phönix entschieden. Jede SPS besitzt eine Recheneinheit. Diese bildet das Fundament der gesamten Steuerung. Das Grundelement der SPS bildet in diesem Fall die Axiocontrol zur direkten Steuerung von Axioline I/Os von der Firma Phönix mit 2 Ethernet-Schnittstellen und einen integrierten Bus-System. An diesem Bus-System sind verschiedene Baugruppen angeschlossen. Durch diese modulare Bauweise kann sich die SPS auf verschiedene Situationen anpassen.

Auf der folgenen Abbildung ist eine Phönix SPS zu erkennen. Links im Bild befindet sich die Steuereinheit AXC 1050. In der Mitte befindet sich dann ein Eingangsbaustein mit 16 Eingängen. Dieser ist mit dem Internen I/O Bus mit der Steuereeinheit verbunden. Rechts ist der Ausgangsbaustein mit 16 Ausgängen zu sehen. Verbunden ist die Baugruppe mit einem zusätzlichen Analog Baustein. Die Kommunikation der beiden Blöcke findet mit dem Ethernetkabel statt.


Vorstellung Programmiersprachen

Die Programmierung der SPS findet am Computer statt. Um dort die Logik in einen Maschinencode zu kompilieren muss eine Schnittstelle mit einem Softwareprogramm erfolgen. Mit unterschiedlichen Programmiersprachen kann dies erfolgen. Nachfolgend werden die wichtigsten und meist verwendete Programmiersprachen dargestellt.


AWL

Die Anweisungsliste AWL nach der Norm IEC DIN EN 61131-3 ist eine maschinennahe textbasierende Programmiersprache. In der Programmiersprache Anweisungsliste AWL werden einzelne Anweisungen in der Reihenfolge geschrieben wie die CPU diese dann abarbeiten soll. Die Programmiersprache AWL ist Bestandteil der Basissoftware der meisten Speicher Programmierbaren Steuerungen. Mit Hilfe von inkrementellen Editoren können in AWL die Bausteine bearbeitet werden. Mit einem quellorientierten Editor können AWL-Quellen erstellt und in Bausteine übersetzt werden. [2].


KOP

Mit der Darstellungsart KOP haben SPS-Programmierer eine Möglichkeit, die Programme grafisch zu erstellen und darzustellen. Damit Elektrikern ein Einstieg oder Umstieg in die SPS-Programmierung erleichtert wird, ist die Programmdarstellung ähnlich wie bei Stromlaufplänen. So wurde eine Brücke für Elektriker geschaffen, die bisher nur mit Verbindungsprogrammierten Steuerungen vertraut waren, bei der eine Steuerung durch Verdrahtung von Schützen und Relais realisiert wird. Die Darstellungsart KOP wurde in der Programmiernorm 61131-3, neben weiteren wie AWL und FUP, als eine Standardprogrammiersprache festgelegt.

Bei der Programmierung in KOP werden Symbole wie Öffner, Schließe, Spulen oder Lampen benutzt, die auch in Stromlaufplänen verwendet werden. In einem Netzwerk bilden sie durch Zusammenfassung zu logischen Strukturen einen Teil des gesamten Programms, das in der Regel aus mehreren Netzwerken besteht. Nachfolgend eine Übersicht in einer Bildergalerie mit den verschiedenen Darstellungsarten FUP, KOP und AWL zum Vergleich. [3].


FUP

Ein SPS-Programm kann mit Graph und KOP grafisch erstellt und dargestellt werden. Die Möglichkeit, die Programmierung grafisch vorzunehmen, gibt es auch mit dem Funktionsplan, kurz FUP genannt. Hierbei werden Bausteine mit Symbolen benutzt, die aus der booleschen Algebra bekannt sind und in Blockdarstellung abgebildet. So wird auch bei komplexen Funktionen der logische Aufbau eines SPS-Programms übersichtlich dargestellt.

Besonders Anfänger beginnen die ersten Programmierschritte mit FUP, da das Verhalten von Ein- und Ausgängen so am besten nachvollziehbar ist. Die Programmierung mit FUP ist in der Programmiernorm 61131-3, neben weiteren als ein Standard festgelegt. Für die Erstellung des Programms wird ein inkrementeller Editor benutzt.

In FUP werden keine Symbole für Öffner wie in KOP benutzt. Stattdessen erfolgt die Darstellung des Öffnerverhaltens durch die Negation der Eingänge. In der nachfolgenden Bildergalerie ist eine Übersicht mit den verschiedenen Darstellungsarten AWL, KOP und FUP zum Vergleich. [4].


STL

Als Standard Template Library (STL) werden verschiedene in der Programmiersprache C++ geschriebene Bibliotheken bezeichnet. Diese Programmiersprache basiert aus der rein textbasierten Programmiersprache von C++. Erfahrende Programmierer nutzen diese Sprache um komplexe Schaltungen oder Abläufe zu programmieren.


Programmierung Legostein-Montieranlage

Der folgende Artikel beschäftigt sich mit der Programmierung der SPS. Zunächst werden die Grundlagern der verwendeten Funktionsbausteine erleutert, um die nachfolgende Programmierung besser nachvollziehen zu können.

Grundlagen FUP & Funkltionsbausteine

Der Funktionsplan (FUP) wurde als Programmsprache für das Programm genutzt. Diese Programmierung ist sehr benutzerfreundlich und leicht zu verstehen. Im Funktionsplan gibt es Funktionsbausteine die unterschiedlichste Funktionen besitzten. Nachfolgend sind die wichtigsten Bausteine genauer erleutert:

AND-Baustein

Der AND-Baustein ist in der elektrotechnik eine Reihenschaltung. Alle Aktionen müssen ausgeführt werden damit der nächste Schritt gesetzt wird. Auf der nachfolgen Abbildung ist die gut durch die angefügte Wahrheitstabelle zur erkennen. Dieser Baustein ist mit einem Kaufmänischen UND zu kennzeichnen. &

OR-Baustein

Der OR-Baustein ist in der elektrotechnik eine Parallelschaltung. Nur eine Bedingung muss erfüllt werden, damit der Ausgang gesetzt wird. In der nachfolgenden Abbildung ist dieser genauer beschrieben. Auch hier wird das Verhalten der Funktion mit einer Wahrheitstabelle dargestellt.


SR-Glied

Mit der Operation "Flipflop setzen rücksetzen" können Sie das Bit eines angegebenen Operanden abhängig vom Signalzustand an den Eingängen S und R setzen oder rücksetzen. Wenn der Signalzustand am Eingang S "1" und am Eingang R "0" ist, wird der angegebene Operand auf "1" gesetzt. Wenn der Signalzustand am Eingang S "0" und am Eingang R "1" ist, wird der angegebene Operand auf "0" zurückgesetzt.

Der Eingang R dominiert den Eingang S. Bei einem Signalzustand "1" an beiden Eingängen S und R wird der Signalzustand des angegebenen Operanden auf "0" zurückgesetzt. Bei einem Signalzustand "0" an beiden Eingängen S und R wird die Operation nicht ausgeführt. Der Signalzustand des Operanden bleibt in diesem Fall unverändert. Der aktuelle Signalzustand des Operanden wird auf den Ausgang Q übertragen und kann an diesem abgefragt werden. [5].


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

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. [6].


Um die Ablaufsprache zu implementieren, werden interne Schritte gesetzt. Abgefangen 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 bestromt. Somit fährt der Greifer in Rictung Aufnahmeposition. Erreicht der Greifer diese, wird der SR-Baustein für den Motor wieder deaktiviert. Intern wird der Schritt 1 gesetzt.

Im 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 sind 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.

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

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

[7].

Dieses Prinzip wird ebenfalls hier angewendet

Schaltschrankbau

Ausblick

  • Einbindung des UR3 Roboter
  • Ansteuerung der Zahnriemenachse mithilfe des GeckoDrive
  • Auswahl und Einbindung eines geeigneten Farbsensors

Literaturverzeichnis

Hauptartikel: Automatische Legostein Montieranlage