TIA Auswertung von Array of Bool

Vermis

Level-2
Beiträge
20
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus,
ich habe 4x Array of Bool (0...15). Diese bilden 4 Meldewörter (64 Meldebits). Jetzt würde ich gerne eine Sammelstörung aus den Arrays bilden. Sobald ein Wert TRUE ist, soll ein Merkerbit auf TRUE gesetzt werden. Das ganze am Besten in FUP (Notfalls auch in SCL).

Beispiel: ("Array1" OR "Array2" OR "Array3" OR "Array4") kleiner "0" = dann soll %M0.0 den Wert "1" haben

Kann mir hier jemand unkompliziert weiterhelfen?
Danke
 
Du könntest mit GATHER die BOOL-Arrays in WORDs packen und dann die WORDs verodern und auf ungleich 0 prüfen.

Du könntest die Arrays auch mit einem Array vergleichen, wo alle Bools = FALSE sind ( #result := MyArray <> FalseArray; ), und wenn ein Array ungleich dem FALSE-Array ist, dann ist da irgendein BOOL TRUE. Vielleicht hat dafür der Compiler eine effizientere Übersetzung als für die GATHER-Variante.

PS:
Beispiel: ("Array1" OR "Array2" OR "Array3" OR "Array4") kleiner "0" = dann soll %M0.0 den Wert "1" haben
Das ist aber keine korrekte Lösung. Das Ergebnis der Veroderung muß auf "ungleich 0" verglichen werden (nicht auf "kleiner 0" ! ).

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Du könntest mit GATHER die BOOL-Arrays in WORDs packen und dann die WORDs verodern und auf ungleich 0 prüfen.

Du könntest die Arrays auch mit einem Array vergleichen, wo alle Bools = FALSE sind ( #result := MyArray <> FalseArray; ), und wenn ein Array ungleich dem FALSE-Array ist, dann ist da irgendein BOOL TRUE. Vielleicht hat dafür der Compiler eine effizientere Übersetzung als für die GATHER-Variante.

PS:

Das ist aber keine korrekte Lösung. Das Ergebnis der Veroderung muß auf "ungleich 0" verglichen werden (nicht auf "kleiner 0" ! ).

Harald
Danke. So funktioniert es.
 
Zurück
Oben