TIA Pumpen-Steuerung

Du solltest dir vielleicht erstmal mittels eines Diagramms oder einer Tabelle aufzeichnen wie deine Priorisierung aussehen soll und welche Extrem-Fälle es geben kann und wie du dann reagieren willst.
Als Beispiel wenn 4 Becken kurz vor dem Überlaufen sind, was passiert dann?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nur mal so eine Idee: Du könntest ein Array erstellen und jeder Pumpe eine Nummer geben. Die Pumpe, welche in Array 0 bis 2 stehen, werden aktiviert. Nun musst du noch noch eine Logik haben, welche die Nummern im Array nach Priorisierung verschieben. Dazu kann man ein Array sortieren. Das geht mit einer Schleife. Möglicherweise geht das auch einfacher aber das ist das Erste was mir eingefallen ist.

 
Welche Sprachen kannst du denn? Auf der 1511 kann man ja die Sprache wählen. Wäre SCL eine Option für dich?
Ja SCL wäre eine Option, bin zwar nicht zu 100% fit darin, aber die Basics sitzen.
Du solltest dir vielleicht erstmal mittels eines Diagramms oder einer Tabelle aufzeichnen wie deine Priorisierung aussehen soll und welche Extrem-Fälle es geben kann und wie du dann reagieren willst.
Als Beispiel wenn 4 Becken kurz vor dem Überlaufen sind, was passiert dann?
Im Prinzip gibt es nur diesen Extrem-Fall dass mehrere Becken am überlaufen sind.. wie ich das löse weiß ich selbst noch nicht genau..
Vermutlich wird es darauf hinauslaufen, dass in dem Fall kurzzeitig mehr als 3 Pumpen laufen müssen..
Nur mal so eine Idee: Du könntest ein Array erstellen und jeder Pumpe eine Nummer geben. Die Pumpe, welche in Array 0 bis 2 stehen, werden aktiviert. Nun musst du noch noch eine Logik haben, welche die Nummern im Array nach Priorisierung verschieben. Dazu kann man ein Array sortieren. Das geht mit einer Schleife. Möglicherweise geht das auch einfacher aber das ist das Erste was mir eingefallen ist.

So etwas in die Richtung hatte ich mir schon überlegt, aber leider scheitert es an er Umsetzung
 
Eher das sortieren an sich, bzw. das zyklische abarbeiten dieser sortierten Liste
Okay, ich habe es auch nicht mehr im Kopf. Aber der gewöhnliche Weg ist über eine Schleife. Sie verschieb den Wert im Array immer um eine Stelle. Alsoz.B. von Array 5 auf Array 6. Das macht sie für alle Arrays in einem Zyklus der SPS. Ob sie verschiebt ist halt von einem Auslöser abhängig.

In der Schulung von Siemens (sitrain) für SCL hat man so ein Beispiel erstellt. In den Unterlagen ist etwas zu dem Thema.
 
Zuletzt bearbeitet:
Ist die Logo Vorgabe in der Hausaufgabe oder weil es nur eine Logo für den konkreten Fall gibt?
Nur 1 LOGO? Nein, ...
Ja alle Becken haben ihre eigene Pumpe ...
Jede dieser Pumpen wird aktuell (offline, nicht vernetzt) durch eine Logo gesteuert.
... deshalb sollen nun alle Logos vernetzt und über eine zentrale SPS (1511-1 PN) gesteuert werden.

Es gibt insgesamt 10 Becken, ...
Also pro Becken 1 LOGO und 1 Pumpe, folglich 10 Becken, 10 Pumpen und 10 LOGOs.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wo gehen denn die Analogwerte der Pegel derzeit rein? Vermutlich in die jeweilige LOGO.
Dann würde ich das verhindern des Überlaufens auch in der jeweiligen LOGO lassen.
An die übergeordnete SPS dann jeweils die Füllstände, und eine RM wenn eine Pumpe im Notbetrieb (überlaufen verhindern) ist.
Dann kannst du in der SPS die Auswertung machen wo gepumpt werden soll, geht ein Behälter ans überlaufen, dann muss die Pumpe mit der dann jeweiligen niedrigsten Priorität (die würde ich dann anhand der jeweiligen Füllstände ermittel) weggeschaltet werden, bei 2 im Notbetrieb die nächste, . . .

Was soll passiern wenn bei einem Becken der Notbetrieb wieder unterschritten wird (also Pegel unter Überlaufgrenze)?
 
Zurück
Oben