-> Hier kostenlos registrieren
Hallo allerseits.
Ich setze an einem Wago 750-841 Controller analoge Eingangsklemmen 4-20 mA (750-455)ein.
Zu diesen Klemmen heisst es in der DOKU:
Prozessabbild
Die analoge Eingangsklemme 750-455 liefert je Kanal 16 Bit Messwerte und
8 Statusbits.
Der digitalisierte Messwert wird in einem Datenwort (16 Bit) als
Eingangsbyte 0 (low) und Eingangsbyte 1 (high) in das Prozessabbild des
Kopplers / Controllers ¸bertragen.
Dieser Wert ist mit einer Auflˆsung von 12 Bit auf Bit B3 ... B14 abgebildet.
In den zwei niederwertigen Bits (B0 und B1) sind Statusinformationen
enthalten, die im Fehlerfall ausgewertet werden kˆnnen. Dabei sind im Falle
eines Leitungsbruchs, einer Messbereichsunter- oder -¸berschreitung Bit B0
und B1 = 1 gesetzt.
Bit B2 ist nicht definiert und wird nicht ausgewertet. In der Tabelle ist dieses
deshalb mit ëXë dargestellt.
Nun möchte ich Bit B0 und B1 auswerten um einen Fühlerbruch zu erkennen. Da das Signal ständig (wie bereits bei meinem Thema mit dem Glätten eines Signals) "pendelt" erscheinen ab und an beide Bits als TRUE.
Hierdurch kommt es zu Fehlalarmen.
Wie löse ich dieses Problem?
Sollte ich hier ein TON mit 1 Minute statt nur 1 Sekunde hinterschalten, um Fehlalarme zu vermeiden? Oder gibt es einen eleganteren/besseren Weg?
Folgendes habe ich bereits erstellt:
Deklaration:
FUNCTION_BLOCK S_Fehler
VAR_IN_OUT
IN: WORD; (* input value*)
END_VAR
VAR_OUTPUT
Error_S: BOOL; (*Sensorstoerung*)
END_VAR
VAR
Verz:TON;
END_VAR
Anweisungsteil:
IF IN.00
AND IN.01
(*
AND IN1.13
AND IN1.12
AND IN1.11
AND IN1.10
AND IN1.09
AND IN1.08
AND IN1.07
AND IN1.06
AND IN1.05
AND IN1.04
AND IN1.03
AND IN1.02
AND IN1.01
AND IN1.00
*)
THEN
Verz(IN:=TRUE,PT:=t#1s);
Error_S :=Verz.Q;
END_IF
Vielen Dank schon mal jetzt.
McNugget
Ich setze an einem Wago 750-841 Controller analoge Eingangsklemmen 4-20 mA (750-455)ein.
Zu diesen Klemmen heisst es in der DOKU:
Prozessabbild
Die analoge Eingangsklemme 750-455 liefert je Kanal 16 Bit Messwerte und
8 Statusbits.
Der digitalisierte Messwert wird in einem Datenwort (16 Bit) als
Eingangsbyte 0 (low) und Eingangsbyte 1 (high) in das Prozessabbild des
Kopplers / Controllers ¸bertragen.
Dieser Wert ist mit einer Auflˆsung von 12 Bit auf Bit B3 ... B14 abgebildet.
In den zwei niederwertigen Bits (B0 und B1) sind Statusinformationen
enthalten, die im Fehlerfall ausgewertet werden kˆnnen. Dabei sind im Falle
eines Leitungsbruchs, einer Messbereichsunter- oder -¸berschreitung Bit B0
und B1 = 1 gesetzt.
Bit B2 ist nicht definiert und wird nicht ausgewertet. In der Tabelle ist dieses
deshalb mit ëXë dargestellt.
Nun möchte ich Bit B0 und B1 auswerten um einen Fühlerbruch zu erkennen. Da das Signal ständig (wie bereits bei meinem Thema mit dem Glätten eines Signals) "pendelt" erscheinen ab und an beide Bits als TRUE.
Hierdurch kommt es zu Fehlalarmen.
Wie löse ich dieses Problem?
Sollte ich hier ein TON mit 1 Minute statt nur 1 Sekunde hinterschalten, um Fehlalarme zu vermeiden? Oder gibt es einen eleganteren/besseren Weg?
Folgendes habe ich bereits erstellt:
Deklaration:
FUNCTION_BLOCK S_Fehler
VAR_IN_OUT
IN: WORD; (* input value*)
END_VAR
VAR_OUTPUT
Error_S: BOOL; (*Sensorstoerung*)
END_VAR
VAR
Verz:TON;
END_VAR
Anweisungsteil:
IF IN.00
AND IN.01
(*
AND IN1.13
AND IN1.12
AND IN1.11
AND IN1.10
AND IN1.09
AND IN1.08
AND IN1.07
AND IN1.06
AND IN1.05
AND IN1.04
AND IN1.03
AND IN1.02
AND IN1.01
AND IN1.00
*)
THEN
Verz(IN:=TRUE,PT:=t#1s);
Error_S :=Verz.Q;
END_IF
Vielen Dank schon mal jetzt.
McNugget
Zuletzt bearbeitet: