-> Hier kostenlos registrieren
Hallo an alle Tüftler und Mathematik Freaks,
meine Aufgabenstellung sieht auf den ersten Blick recht easy auf, ich komme aber gerade mal auf keinen grünen Zweig. Vielleicht denke ich aber einfach nur zu kompliziert...
Mein Kunde hat Kompressoren mit unterschiedlichen Luftleistungen. (160 bis 450 kW) Er will nun, da der Luftbedarf bekannt ist und dieser mir auch übergeben wird, dass nur die absolut notwendigen Kompressoren in Betrieb gehen. Erschwerend hinzukommt, dass nicht immer alle Kompressoren verfügbar sind, bzw. nicht gestartet werden können oder dürfen.
Damit es jetzt nicht zu einfach wird, muss mein (Standard) FB zusätzlich mehrere gleichartige (derzeit bis zu max. 4 Kompressoren) verwalten können. Das ergibt dann 16 Kompressoren und entsprechende Kombinationsmöglichkeiten.
Eingänge in den Baustein:
* Angeforderte gesamte Luftmenge
* Luftmenge eines Kompressors der Einheit 1
* Zum Start verfügbare Kompressoren von Einheit 1 (0..4)
* Luftmenge eines Kompressors der Einheit 2
* Zum Start verfügbare Kompressoren von Einheit 2 (0..4)
* Luftmenge eines Kompressors der Einheit 3
* Zum Start verfügbare Kompressoren von Einheit 3 (0..4)
* Luftmenge eines Kompressors der Einheit 4
* Zum Start verfügbare Kompressoren von Einheit 4 (0..4)
Ausgänge:
* Anzahl zu startender Kompressoren der Einheit 1
* Anzahl zu startender Kompressoren der Einheit 2
* Anzahl zu startender Kompressoren der Einheit 3
* Anzahl zu startender Kompressoren der Einheit 4
Es sollen so wenig Kompressoren als möglich gestartet werden, beginnend mit den kleinsten. Ein 400 kW Kompressor muss Vorrang gegenüber zwei 200 kW Kompressor haben. Wird mehr Kompressorleistung angefordert als zur Verfügung steht, müssen alle angefordert werden.
Ich will hier nun keine ausprogrammierten Vorschläge, sondern vielleicht hat hier irgendwer so was ähnliches schon gemacht, und kann mir eine bloße Idee geben. Derzeit bin ich bei verschachtelten Schleifen angelangt, und zig Programmzeilen... Jede Lösung die ich bis jetzt hatte, funktionierte nur eingeschränkt, und fängt nicht alle Möglichkeiten und Kombinationen ab.
Entweder bin ich zu blöde, oder es ist nicht so einfach wie es aussieht.
Programmiert wird's letztendlich in ST unter TwinCAT-PLC. Spielt jedoch eigentlich keine Rolle.
Ich hoffe die Aufgabenstellung ist einigermaßen klar, und würde mich über Eure Anregungen sehr freuen. Sollte ich das Problem irgendwie lösen können, stelle ich den Baustein natürlich gerne zur Verfügung.
Schönes WE
meine Aufgabenstellung sieht auf den ersten Blick recht easy auf, ich komme aber gerade mal auf keinen grünen Zweig. Vielleicht denke ich aber einfach nur zu kompliziert...
Mein Kunde hat Kompressoren mit unterschiedlichen Luftleistungen. (160 bis 450 kW) Er will nun, da der Luftbedarf bekannt ist und dieser mir auch übergeben wird, dass nur die absolut notwendigen Kompressoren in Betrieb gehen. Erschwerend hinzukommt, dass nicht immer alle Kompressoren verfügbar sind, bzw. nicht gestartet werden können oder dürfen.
Damit es jetzt nicht zu einfach wird, muss mein (Standard) FB zusätzlich mehrere gleichartige (derzeit bis zu max. 4 Kompressoren) verwalten können. Das ergibt dann 16 Kompressoren und entsprechende Kombinationsmöglichkeiten.
Eingänge in den Baustein:
* Angeforderte gesamte Luftmenge
* Luftmenge eines Kompressors der Einheit 1
* Zum Start verfügbare Kompressoren von Einheit 1 (0..4)
* Luftmenge eines Kompressors der Einheit 2
* Zum Start verfügbare Kompressoren von Einheit 2 (0..4)
* Luftmenge eines Kompressors der Einheit 3
* Zum Start verfügbare Kompressoren von Einheit 3 (0..4)
* Luftmenge eines Kompressors der Einheit 4
* Zum Start verfügbare Kompressoren von Einheit 4 (0..4)
Ausgänge:
* Anzahl zu startender Kompressoren der Einheit 1
* Anzahl zu startender Kompressoren der Einheit 2
* Anzahl zu startender Kompressoren der Einheit 3
* Anzahl zu startender Kompressoren der Einheit 4
Es sollen so wenig Kompressoren als möglich gestartet werden, beginnend mit den kleinsten. Ein 400 kW Kompressor muss Vorrang gegenüber zwei 200 kW Kompressor haben. Wird mehr Kompressorleistung angefordert als zur Verfügung steht, müssen alle angefordert werden.
Ich will hier nun keine ausprogrammierten Vorschläge, sondern vielleicht hat hier irgendwer so was ähnliches schon gemacht, und kann mir eine bloße Idee geben. Derzeit bin ich bei verschachtelten Schleifen angelangt, und zig Programmzeilen... Jede Lösung die ich bis jetzt hatte, funktionierte nur eingeschränkt, und fängt nicht alle Möglichkeiten und Kombinationen ab.
Entweder bin ich zu blöde, oder es ist nicht so einfach wie es aussieht.
Programmiert wird's letztendlich in ST unter TwinCAT-PLC. Spielt jedoch eigentlich keine Rolle.
Ich hoffe die Aufgabenstellung ist einigermaßen klar, und würde mich über Eure Anregungen sehr freuen. Sollte ich das Problem irgendwie lösen können, stelle ich den Baustein natürlich gerne zur Verfügung.
Schönes WE