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