-> Hier kostenlos registrieren
Hallo allerseits,
für ein Projekt bräuchte ich ein variables Register.
Sinn und Zweck ist es anhand 10 Bereitmeldungen (bool) 10 Istwerte Eingangswert (int) 10 Sollwerten Ausgangswert (int) nach Prioritäten zuzuweisen.
Wenn ein Ventilator nicht verfügbar ist, also nicht Bereit, soll dieser in der Priorität an letzte Stelle rutschen. Das ganze soll nach möglichkeit Instanzfähig sein und für alle ca 1000 Fälle funktionieren, auch wenn das wenig Sinn macht.
Die Idee beim Ausprogrammieren sieht bisher so aus wenn alle Ventilatoren Bereit sind
Und hier der Ansatz wenn einer ausfällt bzw. nicht bereit ist.
und so weiter....
Natürlich ist es nicht gerade Sinnvoll und vor allem Effizient die fast 1000 Möglichkeiten zu programmieren.
Vielleicht hat ja wer eine brauchbare Idee. Darf auch gerne SCL sein. AWL ist nur der besseren Übersicht wegen.
Danke euch schonmal
Gruss Rosso
für ein Projekt bräuchte ich ein variables Register.
Sinn und Zweck ist es anhand 10 Bereitmeldungen (bool) 10 Istwerte Eingangswert (int) 10 Sollwerten Ausgangswert (int) nach Prioritäten zuzuweisen.
Wenn ein Ventilator nicht verfügbar ist, also nicht Bereit, soll dieser in der Priorität an letzte Stelle rutschen. Das ganze soll nach möglichkeit Instanzfähig sein und für alle ca 1000 Fälle funktionieren, auch wenn das wenig Sinn macht.
Die Idee beim Ausprogrammieren sieht bisher so aus wenn alle Ventilatoren Bereit sind
Code:
// Alle Prio bereit
U(
U #Bereit_Prio_1
U #Bereit_Prio_2
U #Bereit_Prio_3
U #Bereit_Prio_4
U #Bereit_Prio_5
U #Bereit_Prio_6
U #Bereit_Prio_7
U #Bereit_Prio_8
U #Bereit_Prio_9
U #Bereit_Prio_10
)
SPBN Alle_Bereit
L #Wert_Prio_1
T #Befehl_Prio_1
L #Wert_Prio_2
T #Befehl_Prio_2
L #Wert_Prio_3
T #Befehl_Prio_3
L #Wert_Prio_4
T #Befehl_Prio_4
L #Wert_Prio_5
T #Befehl_Prio_5
L #Wert_Prio_6
T #Befehl_Prio_6
L #Wert_Prio_7
T #Befehl_Prio_7
L #Wert_Prio_8
T #Befehl_Prio_8
L #Wert_Prio_9
T #Befehl_Prio_9
L #Wert_Prio_10
T #Befehl_Prio_10
SPA Ende_Ba
Alle_Bereit : NOP 1
Ende_Ba : NOP 1
Und hier der Ansatz wenn einer ausfällt bzw. nicht bereit ist.
Code:
// Prio1 nicht bereit
U(
UN #Bereit_Prio_1
U #Bereit_Prio_2
U #Bereit_Prio_3
U #Bereit_Prio_4
U #Bereit_Prio_5
U #Bereit_Prio_6
U #Bereit_Prio_7
U #Bereit_Prio_8
U #Bereit_Prio_9
U #Bereit_Prio_10
)
SPBN Prio1_nicht_Bereit
L #Wert_Prio_1
T #Befehl_Prio_2
L #Wert_Prio_2
T #Befehl_Prio_3
L #Wert_Prio_3
T #Befehl_Prio_4
L #Wert_Prio_4
T #Befehl_Prio_5
L #Wert_Prio_5
T #Befehl_Prio_6
L #Wert_Prio_6
T #Befehl_Prio_7
L #Wert_Prio_7
T #Befehl_Prio_8
L #Wert_Prio_8
T #Befehl_Prio_9
L #Wert_Prio_9
T #Befehl_Prio_10
L #Wert_Prio_10
T #Befehl_Prio_1
SPA Ende_Ba
Prio1_nicht_Bereit : NOP 1
.
.
.
// Prio1&2 nicht bereit
U(
UN #Bereit_Prio_1
UN #Bereit_Prio_2
U #Bereit_Prio_3
U #Bereit_Prio_4
U #Bereit_Prio_5
U #Bereit_Prio_6
U #Bereit_Prio_7
U #Bereit_Prio_8
U #Bereit_Prio_9
U #Bereit_Prio_10
)
SPBN Prio1und2_nicht_Bereit
L #Wert_Prio_1
T #Befehl_Prio_3
L #Wert_Prio_2
T #Befehl_Prio_4
L #Wert_Prio_3
T #Befehl_Prio_5
L #Wert_Prio_4
T #Befehl_Prio_6
L #Wert_Prio_5
T #Befehl_Prio_7
L #Wert_Prio_6
T #Befehl_Prio_8
L #Wert_Prio_7
T #Befehl_Prio_9
L #Wert_Prio_8
T #Befehl_Prio_10
L #Wert_Prio_9
T #Befehl_Prio_1
L #Wert_Prio_10
T #Befehl_Prio_2
SPA Ende_Ba
Prio1und2_nicht_Bereit : NOP 1
und so weiter....
Natürlich ist es nicht gerade Sinnvoll und vor allem Effizient die fast 1000 Möglichkeiten zu programmieren.
Vielleicht hat ja wer eine brauchbare Idee. Darf auch gerne SCL sein. AWL ist nur der besseren Übersicht wegen.
Danke euch schonmal
Gruss Rosso