Ist das Wasservorkommen zu hoch und Niveau 3 wird erreicht lauft eine weitere Pumpe des jeweiligen anderen Pumpenpaares an, welche die weinigsten Betriebsstunden aufweist.
Eine Störumschaltung der Pumpenpaare soll natürlich auch implementiert werden.
Wie stark soll die "PaarBindung" denn sein und was bezwecken? Ist sie überhaupt sinnvoll/nötig?
Wenn Niveau 3 erreicht wird, wird sie ja ohnehin gelockert: "... läuft 1 weitere Pumpe des anderen PumpenPaares ...", also nicht das komplette andere Paar.
Laut Beitrag #6 sind aus 3 Niveaus plötzlich 10 geworden, 5 für NormalBetrieb und 5 für ReinigungsBetrieb.
Hast Du 10 SchwimmerSchalter oder 1 analoge PegelMessung (ggfs kombiniert mit SchwimmerSchaltern)?
StörUmschaltung: Wodurch? Meldekontakte von Motorschutzschaltern? StörMeldungen von Umrichtern?
Evtl. noch manuelle Vorgaben angedacht, um einen Motor stilllegen zu können?
RichtungsUmkehr: WendeSchützSchaltung? Umrichter? Digitale oder analoge Schnittstelle zum Antrieb?
Die Pumpe kann entweder geregelt sein oder ein Direktantrieb mit einfacher Freigabe.
Und sollte dann auch für andere Zwecke verwendet werden können.
Für andere Zwecke??? Z.B.? Pumpe als "Turbine" und PumpenMotor als Generator?
Welche Strategie soll verfolgt werden, wenn der Einsatz von Pumpen gefordert wird, die (vorübergehend) nicht einsatzfähig sind?
So richtig nennenswerte Reserve für "NotFälle" scheint bisher nicht eingeplant zu sein. In der Variante "paarweiser Betrieb von Pumpen" sind die AusweichMögklichkeiten zudem für meinen Geschmack zu sehr und unnötig eingeschränkt.
Wozu dienen die "ZwangsPausen" zwischen den BetriebsZeiten verschiedener Pumpen?
In welcher GrössenOrdnung liegen diese PausenZeiten?
Wie kritisch ist das Einhalten der vorgegebenen Pegel? Werden die Pausen zu einem unerwünschten/vermeidbaren Überschwingen führen?
Bevor Du Dir Gedanken über Details der eierlegenden WollMilchPumpenSchrittketten machst, solltest Du einmal abklopfen, über welche Schnittstellen das Werk mit der "AussenWelt" verbunden werden soll.
Werden die Pegel (Niveaus) über digitale und/oder analoge Werte gemeldet?
Welche Informationen/RückMeldungen stehen zur Verfügung, z.B. bezüglich der EinsatzFähigkeit der einzelnen Pumpen?
Werden die PumpenMotoren über digitale und/oder analoge Werte angesteuert (Links- und RechtsLauf berücksichtigen)?
Und abklopfen, welche TeilAufgaben die Software bewältigen soll und wie die Schnittstellen zwischen diesen TeilAufgaben aussehen sollten.
Ich sehe folgende TeilAufgaben:
- Bearbeitung der ZeitWerte (BetriebsStunden, aktuelle LaufZeiten, Zeit seit dem letzten Abschalten einer Pumpe, ... , falls keine Timer verwendet werden, hier auch den TimerErsatz verwalten).
- Auswertung der NiveauMeldung[en]. Ermittlung, wieviele Pumpen laufen müssen (für PumpenPaare evtl. die minimale Anzahl Pumpen von 1 auf 2 umbiegen).
- Vergleich des Soll- und Istwertes der Anzahl laufenden Pumpen. Muss eine Pumpe hinzugeschaltet oder abgeschaltet werden?
Der IstWert muss "manipuliert" werden: ist für eine Pumpe ein Einsatz vorgegeben, pausiert sie aber gerade, so muss sie trotzdem als laufend erfasst werden.
- Entscheidung, welche Pumpe hinzugeschaltet/abgeschaltet wird.
- Ansteuerung einer Pumpe. Muss/darf eine LinksLaufPeriode eingefügt werden? Ist eine Einschalt-/AusschaltVerzögerung erforderlich (z.B. für PumpenPaar)?
Eine Anwendung von SchrittKetten sehe ich allenfalls bei entweder der letzten oder vorletzten TeilAufgabe, jenachdem, wo LinksLauf bzw. PausenZeiten realisiert werden.
Auf jeden Fall würde ich es vermeiden, auch solche TeilAufgaben mit Gewalt in die SchrittKetten hineinzuzerren, die dort nichts zu suchen haben und unnötig die Komplexität aufblähen würden.
Eine "StörUmschaltung" als solche separat zu realisieren, halte ich für überflüssig. Diese wird "automatisch" wirksam, wenn durch Ausfall einer BetriebsBereitschaft der Vergleich zwischen Ist- und SollAnzahl der fördernden Pumpen plötzlich verändert wird.
Allenfalls für den Betrieb von PumpenPaaren wird es etwas komplex - darum nochmal die Frage: muss das wirklich sein? Das bringt nur mehr Aufwand für weniger (Ausweich-)Möglichkeiten.