Best Practice: Steuerung EIN / AUS

veryxrv

Level-1
Beiträge
3
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich arbeite gerade an einer einfachen Steuerung für ein kleines Zugangssystem mit Automatiktüren und einem Drehkreuz. Unter welchen Bedingungen sich welche Tür öffnet und ein paar andere Kleinigkeiten möchte ich über eine S7-1200 steuern. Außerdem gibt es zwei Bedienpulte an verschiedenen Stellen, die u.a. Leuchttaster und jeweils ein HMI beinhalten.

Nun stelle ich mir folgende Frage: Die Anlage soll beim Abschalten in einen bestimmten Zustand übergehen und beim Einschalten einen bestimmten Zustand einnehmen. Was wäre nun die "Best Practice" für das Ein- und Ausschalten der Steuerung? Bisher kamen mir zwei Möglichkeiten in den Sinn:

1) Über einen Schlüsselschalter die gesamte Steuerspannung kappen, was jedoch keinen "Endzustand" ermöglichen würde. Außerdem wären die beiden dezentralen Bedienpulte dann noch bestromt, da sie eigene Netzteile besitzen.

2) Über den Schlüsselschalter einen Eingang an der SPS ansteuern, der entsprechende Hoch- und Herunterfahr-Routinen auslöst. Dabei ist mir jedoch aufgefallen, dass ich in diesen Routinen auch interne Zustandsvariablen berücksichtigen müsste und bei einer späteren Programmänderungen immer auch die Initialisierung und das Herunterfahren bearbeiten müsste (weil z.B. neue Variablen hinzugekommen sind, die initialisiert werden müssen).

Gibt es dafür eine saubere Lösung, die gängige Praxis ist?

Vielen Dank schon mal im Voraus!
 
Es sollte einen kontrollierten Start geben nach Netz ein. Mit initialisierung aller Variablen.
Wie ducati schon schrieb, läuft eine SPS normalerweise durch. Außnahmen wären Stromausfall.

Was ich mir denken könnte wäre eine Art Standby. Wobei die eigentliche SPS weiterläuft und nur die E/A und Bedienpulte abgeschaltet werden.
So wären auch Routinen möglich um die Türen usw. in definierte Positionen zu fahren bevor die Leistungskreise abgeschaltet werden.

Holger
 
Besten Dank für die Antworten. Dann bleibt mir wohl nichts weiter übrig, als entsprechende Routinen vorzusehen, auch wenn ich das eher unelegant finde. Besser wäre es, man könnte ganze Datenbausteine mit einer Operation zurücksetzen, aber das geht ja meines Wissens nach nicht...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
das geht schon.
Entweder du möchtest den DB einfach mit 0 initialisieren dann gibt es den Befehl "Fill" oder du möchtest den DB mit bestimmten werten initialisieren dann legst du einen UDT mit deinen Variablen an und fügst diese in deinem DB einmal als Aktuelle Daten ein und einmal als INI-Struktur ein. Beim Durchlaufen des OB100 kopiert du per BlockMove dann den Ini in den aktuellen Datebereich.

Gruß Softi
 
Zurück
Oben