binäres Signal ein- und ausschaltverzögern

ogaw

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,

ich habe einen kapazitiven Füllstandssensor im Teich, über den ich mit Wago 750-880 die Wassernachspeisung starte.
Ich möchte kurze Wackler dieses Signals durch Ein- und Ausschaltverzögerung "entprellt" wiedergeben.

Code:
_Teich_min := OUT_1 AND OUT_OP;                                        (*Eingang binäre Signale vom Sensor*)
_TON_Teich_min(IN := _Teich_min, PT := t#1m);                          (*Einschaltverzögerung*)
_TOF_Teich_min(IN := _TON_Teich_min.Q, PT := t#1m);                    (*Ausschaltverzögerung des einschaltverzögerten Signals*)
Teich_min := _TOF_Teich_min.Q;                                         (*Ausgang*)

Trotzdem sehe ich in meinem "Log" immer mal Zustandsänderungen welche innerhalb einer Minute stattfinden.
Wo habe ich hier den Denkfehler?


Gruß
ogaw
 
Welche Zustandsänderungen meinst du? Den von Teich_min?
Da kann es zu Signalwechseln unterhalb einer Minute kommen, wenn _TON_Teich_min schon wieder getriggert wird, bevor _TOF_Teich_min abgelaufen ist.
D.h. du wirst bei Teich_min ein 1min langes HIGH Signal haben, dann ein kurzes LOW und dann wieder ein 1min langes HIGH Signal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Welche Zustandsänderungen meinst du? Den von Teich_min?

genau den!

Da kann es zu Signalwechseln unterhalb einer Minute kommen, wenn _TON_Teich_min schon wieder getriggert wird, bevor _TOF_Teich_min abgelaufen ist.
D.h. du wirst bei Teich_min ein 1min langes HIGH Signal haben, dann ein kurzes LOW und dann wieder ein 1min langes HIGH Signal.

Besten Dank - das wird es sein.

aktuell kann ich gerade nicht testen - aber würde nachfolgende Lösung den Fehler beheben?

Code:
_Teich_min := OUT_1 AND OUT_OP;                                                (*Eingang binäre Signale vom Sensor*)
_TON_Teich_min(IN := _Teich_min, PT := t#1m);                                  (*Einschaltverzögerung*)
_TOF_Teich_min(IN := _Teich_min, PT := t#1m);                                  (*Ausschaltverzögerung*)
Teich_min := (Teich_min OR _TON_Teich_min.Q) AND NOT _TOF_Teich_min.Q;         (*Ausgang*)
 
Zuletzt bearbeitet:
Zurück
Oben