TIA TIA V16 SCL Sammelfehler aus DB

STL-Leuthe

Level-2
Beiträge
70
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe in meinem DB ein Struct mit Fehlerbits. Jetzt möchte ich für den Sammelfehler nicht jedes einzelne Bit auswerten.
Gibt es hierzu eine Codevorlage in SCL um dies schön und flexibel zu programmieren?
 
Hier mal ein kleines Beispiel für 1.000 Meldungen.
Code:
VAR
    sammelfehler : BOOL;
    i : INT;
END_VAR

sammelfehler := FALSE;

FOR i := 0 TO 999 DO
    IF deinFehlerbit[i] THEN
        sammelfehler := TRUE;
        EXIT
    END_IF;
END_FOR;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Welche SPS-CPU hast Du? Ist der DB "optimiert"? Wie sieht das "STRUCT" mit den Fehlerbits aus? Was meinst Du mit "schön und flexibel programmieren"?

Wenn die Fehlerbits in einem STRUCT liegen, dann muß man jedes Fehlerbit einzeln anfassen/adressieren.
Wenn die Fehlerbits in einem ARRAY liegen oder durch ein ARRAY überlagert werden können, dann können die Bits in einer Schleife wie im Beitrag #2 ausgewertet werden.
Wenn die Fehlerbits in einem DB mit Standard-Zugriff liegen, dann können die auch anders quick- und vor allem dirty adressiert werden.

Eine Alternative: noch einen zweiten Vergleichs-DB mit dem selben Aufbau und alle Bits = 0 hinterlegen, und mit dem Struct vergleichen, und wenn da ein Unterschied ist, dann muß irgendein Bit = 1 sein. Je nach verwendeter SPS-CPU kann der Vergleich sehr einfach programmiert werden: result := "DB1" <> "DB2";

Harald
 
Zurück
Oben