Man kann es auch unnütze kompliziert machen.
Das erste Programm war doch bis auf Kleinigkeiten ganz ok.
Wenn noch alle Schrittmerker aus sind, entspricht das ja einer Grundstellung = "Schritt 0".
Da sich Deine Zylinder von alleine zurück stellen, mußt Du hier (noch) nicht über einen Initialisierungsschritt erst alles bewußt in eine Ausgangslage bringen. Die Transitionen von Schritt 1 sorgen auch richtigerweise dafür, dass es nicht vorher los geht.
Was Godi Dir sagen wollte - es ist nicht so üblich, eine Schrittkette im letzten Schritt stehen zu lassen.
Von der Sache her entsprach der Schritt 5 einer Grundstellung und damit einem "Schritt 0" (Zustand beim Start der SPS). Somit hattest Du 2 Programmschritte für den gleichen Betriebszustand.
Wenn Du die Transition zum Setzen des Schrittes 5 direkt zu Rücksetzen des Schrittes 4 verwendest (anstatt Schritt 5 zu setzen und damit erst den Schritt 4 zu beenden), wird die Schrittkette bereits nach Schritt 4 sauber beendet und Du befindest Dich auch ohne irgendeine Intialisierung wieder in Deinem Ausgangszustand (= kein Schrittmerker gesetzt).
Wenn die Schrittmerker nicht remanent eingestellt sind, trifft das auch für jeden Neustart wieder zu.
Dann das Problem des Starttasters:
Wie eben gesagt, befindet sich das Programm nach dem kompletten Durchlauf der Schrittkette wieder in der Ausgangslage. Wenn zu diesem Zeitpunkt der Taster (noch) gedrückt ist, würde die Schrittkette bei Dir sofort wieder starten. Dies kann man durch eine Flankenabfrage des Tasters verhindern. Die (positive) Flanke des Tasters ist immer nur genau einen Zyklus aktiv, auch wenn der Taster gedrückt bleibt. Sie muss also durch (erneutes) Drücken des Tasters erzeugt werden, wenn die Schrittkette sich im Grundzustand befindet.
Und dann der noch wichtigere Tip von Godi, den Du zum Teil schon befolgt hast:
Immer, und wirklich immer, die Netzwerke aussagekräftig benennen und kommentieren. Du wirst schnell merken, in welch kurzer Zeit Du sonst vergisst, was Du Dir beim Programmieren gedacht hast.
Und zum Schluß noch ein Lob. Ich finde es sehr gut, dass Du die Ausgänge für die Zylinder durch Zuweisung außerhalb der Schrittkette ansteuerst. :s12:
Viele machen das leider durch Setzen bzw. Rücksetzen in den jeweiligen Schritten, was man m.M.n. nur in Ausnahmefällen machen sollte.