Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 49332

TIA Alternierungsbaustein beliebig vieler pumpen

$
0
0
Hallo community das hier ist mein erster Beitrag. Ich würde gerne ein Baustein bauen der mir beliebig viele pumpen alterniert.

Mein Ansatz ist ein array von Beispiel 5 pumpen zu nehmen, pumpen[0..4].
Ein pumpensortiert[0..4] und ein freigaben[0..4] die Freigabe ist je nach Wasserstand. Alle pumpen sind gleich. Und sollen nach max. Laufzeit z. B. 10min wechseln solange nicht alle 5 laufen müssen weil Freigaben[4] = 1 ist.

Ich initialisieren das pumepnsortiert mit pumpen und dann sortiere ich mit einem selection sort das pumepnsortiert array nach Anläufe oder Betriebsstunden. So dass in pumpensortiert[0] der index der Pumpe steht mit den wenigsten Betriebsstunden/Anläufen.

Beispiel Pumpe 3
Pumepnsortiert[0] =2

Dann gehe ich in einer for Schleife pumpen durch setze die Freigabe :

For Index := 0 to 4 do
Pumpen[pumpensortiert[Index]] := freigaben[index];
End_for;

Das klappt auch soweit. Aber wenn die Pumpe ihre maximale Laufzeit von 10min erreicht hat soll diese stoppen und die nächst freie anlaufen. Doch wenn Beispiel 2 laufen darf die 2. Die ihre Zeit noch nicht um ist nicht ausschalten. Also muss ich die Pumpen sortieren nur wenn alle pumpen aus sind oder eine gestört oder ausgeht.

Beim initialisieren der Betreibstunden im array pumpensortiert schreibe ich eine 7ffffff rein wenn die gestört oder gesperrt ist, damit sie nicht am Anfang sortiert wird.

Mein Problem ist dass wenn ich die for Schleife mit Haltepunkt beobachte ist der Index nicht immer der gleiche.

Ich hoffe das war verständlich. Würdet ihr auch Arrays nehmen oder einen total anderen Ansatz wählen?

Viewing all articles
Browse latest Browse all 49332


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>