Dabei werden wir so vorgehen, dass wir zuerst einfache Aufgabenstellungen lösen und die Schwierigkeit von Aufgabe zu Aufgabe steigern.
Übersicht SPS Übungsaufgabe "Puffer Station" (Buffer Station)
Sehen wir uns aber zuerst an, was wir so alles haben.
Beim Zuführband wären da der bekannte Emitter, welcher Boxen der Größe M erzeugt, und ein Reflexions-Lichttaster, welcher detektiert, ob der Bereich um den Emitter frei ist.
Dieser funktioniert recht ähnlich wie der Lichttaster, nur dass das Licht nicht durch das Bauteil zurückgeworfen wird, sondern durch einen Reflektor.
In diesem Fall bekommen wir solange kein Bauteil den Lichtstrahl zwischen Sender und Reflektor durchbricht ein 1 Signal an die SPS geliefert. Steht hingegen ein Teil drin, dann eben ein 0 Signal.
Für genaue Informationen zu den Sensortypen erstelle ich aber ein eigenes Video.
Aufgabenstellung Übung "Puffer Station"
Diese werden dann bis zum Ende des Zuführbandes gefördert und das Band wird angehalten.
Wenn diese Kiste über die Rutsche abtransportiert wurde und dadurch der Bereich wieder frei ist, dann wird die nächste Kiste vom Zuführ- auf das Abführband gebracht.
Modifizierung der Vorlage
Eine Besonderheit bei der Übung ist eigentlich, dass diese Bänder über analoge Werte unterschiedlich schnell drehen können.
Da ich mir das aber gerne als Steigerung dieser Übung vorbehalten möchte, stelle ich diese erstmal auf rein digitale Motoren um.
Programmvorbereitung
Das SPS Programm - Grundfunktionen
Jetzt lösen wir die Aufgabe Schritt für Schritt und du wirst hoffentlich sehen, dass das gar nicht so schwer ist.
Ganz klar brauchen wir wie im letzten Video auch einen „Merker Start“, um zu wissen wann der Vorgang gestartet werden soll.
Mit dem "Start Taster" wird dieser (wie in der Lektion zuvor) wieder durch einen SR Baustein gesetzt und mit nicht „Stopp Taster“ rückgesetzt, weil es ja ein Öffner Kontakt ist.
Aber was machen wir nun mit dem Merker?
Mit hoher Sicherheit können wir sagen, dass ein Bauteil durch den Emitter erzeugt wird, wenn die Automatik läuft und der Bereich um den Lichttaster frei ist.
Weiters ist anzunehmen, dass das Abführband auch sofort anlaufen kann und den Stopper können wir vorerst auch mit der Flanke vom "Start Merker" ausfahren lassen.
Da ich als Bausteintyp einen Funktionsbaustein gewählt habe, bietet sich an anstatt eines Merkers den "Flankenmerker" von der statischen Variablendeklaration zu nehmen.
(Der Flanken Merker muss unten verschaltet werden und nicht oben)
Prinzipiell kann auch das mit Automatik Start anlaufen.
Gestoppt werden muss es allerdings, wenn sich eine Box bei der Lichtschranke vor dem Stopper befindet UND der Stopper ausgefahren ist.
Erste Tests und Programmerweiterung
Soweit passt das, aber irgendwann sollten wir doch mal wieder den Stopper absteuern, damit die Boxen vom einen zum anderen Band gelangen, wenn das Abführband frei ist.
Normalerweise, wenn die Lichtschranke vor der Rutsche ein Bauteil erkennt.
Beim erstmaligen Start wird da aber keine Box ankommen.
Deswegen nehme ich an, dass das Band auch leer ist, wenn eine Box am Stopper erkannt wird und sich das Band 10 Sekunden gedreht hat.
Somit haben wir beim ersten Start eine kleine Verzögerung, können aber dafür sicher sein, dass immer nur eine Box am Abführband ist und den Stopper absteuern.
Programmerweiterung
Also verschalte ich wie gesagt die Lichtschranke, welche auch wieder ein Öffner ist, und den Timer .
Wichtig ist, dass ich den Timer zusätzlich mit dem Signal der Lichtschranke vom Stopper verknüpfe, weil er sonst einmal 10 Sekunden verzögert und der Stopper im Anschluss daran immer nach unten steuert.
Was wir an dieser Stelle nicht vergessen dürfen, ist den Stopper auch wieder auszufahren, wenn die Kiste das Band wechselt, aber das sollte für uns kein Problem sein.
Das ist so, weil die Lichtschranke nicht den ganzen Bereich um den Stopper abdeckt und damit zu schnell wieder hochfährt.
Und ja, jetzt klappt das schon etwas besser.
Leerfahrt und Meldeleuchten
Vom Vorgehen ist das zwar wieder ziemlich ähnlich zum letzten Video, aber ein wenig Wiederholung schadet mit Sicherheit auch nicht.
Abschließender Test
Dabei werden sich auch wieder ein paar kleine Hürden ergeben, aber ich bin mir sicher, dass wir das gemeinsam schaffen.
4 Comments
Hallo,
ich hätte eine Frage zur Variablendeklaration. Sind die Variablen in der Standard-Variablentabelle alles globale Variablen? Wäre es da nicht sinnvoll, ausschließlich die Variablenzuweisung zu den Ein- und Ausgängen der SPS vorzunehmen, Merker aber ausschließlich in den FBs oder im OB1 direkt zu deklarieren? Die Entscheidung, „wo“ man die Variablen genau deklariert, fällt mir persönlich nicht leicht. Ich habe aber mal gelesen, dass man z.B. Merker wenn möglich nicht global deklarieren sollte, weil man dadurch schnell Programmierfehler machen kann, da man z.B. versehentlich 2 mal den Merker M10.0 nutzt. Gibt es hier leicht verständliche Regeln, nach denen man standardmäßig bei der Deklaration vorgehen kann, um Programmierfehler zu vermeiden und das Projekt so übersichtlich wie möglich zu halten?
Vielen Dank und schöne Grüße!
Hallo Christoph,
mit Ausnahme von den temporären Variablen in einem Baustein sind alle Variablen immer global verfügbar.
Ich empfehle nur die Ein/Ausgänge in der Variablentabelle zu deklarieren und anstatt Merker Datenbausteine zu verwenden.
Das könnte so aussehen, dass du zum Beispiel pro Station einen Stations – DB anlegst.
Zum Thema Mehrfachbenutzung von Variablen:
Durch die „Namen“ der Variablen sollte an dieser Stelle keine Gefahr lauern.
Manchmal kann es auch durchaus Sinn ergeben Variablen doppelt und dreifach zu benutzen.
Du musst dir nur immer die lineare Arbeitsweise in einer ins Gedächtnis rufen.
mit freundlichen Grüßen
Rene
Hallo Rene,
ich konnte die TIA Portal Vorlage nicht herunterladen. Es scheint das ungültig ist. Beim Factory I/O habe kein Problem gehabt.
Beste Grüße
Brahim
Hallo Brahim,
ich habe das Programm gerade heruntergeladen und konnte es ohne Probleme mit der TIA Version V17 entpacken. Nutzt du auch mindestens die V17? Falls nicht, bitte stelle sicher, dass du Version V17 oder eine höhere Version verwendest, um das Projekt zu öffnen. Sollten weiterhin Schwierigkeiten auftreten, lass es mich bitte sofort wissen.
Beste Grüße,
Rene