-> Hier kostenlos registrieren
Hallo liebe Gemeinde,
ich bitte Euch um eine Idee für folgende Aufgabe:
Ich habe 5 Präsenzmelder, welche mir einen Wert BOOL (TRUE/FALSE) liefern. Diese schreibe ich in ein Array:
aPrasenzFlurRechts : ARRAY[1..5] OF BOOL; // Array aus allen Präsenzmeldungen der Flurseite
Ich habe eine Variable Präsenz Gesamt für die Flurseite im GVL-Bereich:
xGesPrasenzFlurRechts : BOOL := FALSE; // Gesamtpräsenz aus allen Meldern zum Flurabschnitt
Aufgabe: Sobald nur ein Eintrag im Array aPrasenzFlurRechts = TRUE => xGesPrasenzFlurRechts = TRUE (Wenn alle Einträge TRUE, dann auch die Variable TRUE, der Vollständigkeit halber) Das bekomme ich mit folgendem Code erledigt:
// Flur Rechts
FOR iFlurOben := 1 TO 5 BY 1 DO
GVL.xGesPrasenzFlurRechts := GVL.xGesPrasenzFlurRechts OR aPrasenzFlurRechts[iFlurRechts];
END_FOR
Wofür ich noch keine Lösung gefunden habe:
Sobald ALLE Einträge des Arrays wieder FALSE sind, setze xGesPrasenzFlurRechts = False. Aber nur dann, wenn es kein TRUE mehr im Array gibt.
Hintergrund ist ein langer Flur mit mehreren Präsenzmeldern. Sobald einer von denen anspricht, soll der ganze Flur Licht haben. Erst wenn alle Präsenzmelder FALSE (Keine Präsenz) melden, darf das Licht wieder ausgehen. Ich würde das gerne in einem Array lösen, da die Anzahl variabel sein soll. Sicherlich könnte ich auch alles Zeile für Zeile ausprogrammieren.
Vielen Dank Euch
Grüße
Faolan
ich bitte Euch um eine Idee für folgende Aufgabe:
Ich habe 5 Präsenzmelder, welche mir einen Wert BOOL (TRUE/FALSE) liefern. Diese schreibe ich in ein Array:
aPrasenzFlurRechts : ARRAY[1..5] OF BOOL; // Array aus allen Präsenzmeldungen der Flurseite
Ich habe eine Variable Präsenz Gesamt für die Flurseite im GVL-Bereich:
xGesPrasenzFlurRechts : BOOL := FALSE; // Gesamtpräsenz aus allen Meldern zum Flurabschnitt
Aufgabe: Sobald nur ein Eintrag im Array aPrasenzFlurRechts = TRUE => xGesPrasenzFlurRechts = TRUE (Wenn alle Einträge TRUE, dann auch die Variable TRUE, der Vollständigkeit halber) Das bekomme ich mit folgendem Code erledigt:
// Flur Rechts
FOR iFlurOben := 1 TO 5 BY 1 DO
GVL.xGesPrasenzFlurRechts := GVL.xGesPrasenzFlurRechts OR aPrasenzFlurRechts[iFlurRechts];
END_FOR
Wofür ich noch keine Lösung gefunden habe:
Sobald ALLE Einträge des Arrays wieder FALSE sind, setze xGesPrasenzFlurRechts = False. Aber nur dann, wenn es kein TRUE mehr im Array gibt.
Hintergrund ist ein langer Flur mit mehreren Präsenzmeldern. Sobald einer von denen anspricht, soll der ganze Flur Licht haben. Erst wenn alle Präsenzmelder FALSE (Keine Präsenz) melden, darf das Licht wieder ausgehen. Ich würde das gerne in einem Array lösen, da die Anzahl variabel sein soll. Sicherlich könnte ich auch alles Zeile für Zeile ausprogrammieren.
Vielen Dank Euch
Grüße
Faolan