Re: [V 3.0 RC4] Logik mit Eingabe Parameter | Prüfung gegen Schwellwert | Verzögerung x Minuten
Verfasst: Mo Mai 02, 2022 8:42 am
Noch ein wenig Prosa - und Erklärung warum meine Logik zwar den von Dir ursprünglichen genannten Anwendungsfall zwar löst, aber nicht den eigentlichen Problemfall mit der Waschmaschine:
Der Timer meines Lösungsweges wird ausgelöst, wenn der Verbrauch unter den Wert 8 sinkt und kann erst wieder gestartet werden, wenn er einmal abgelaufen ist (er ist also zur Laufzeit des Timers nicht retriggerbar)! In Deinem Anwendungsfall könnte / wird dies ein Problem sein, weil die Waschmaschine ja vermutlich zur Laufzeit häufiger mal unter den Wert 8 geht, aber nicht 5 min. lang. Somit könnte es passieren, dass die Fertigmeldung auch schon einmal viel zu früh kommt, also zu einem Zeitpunkt, wo die Waschmaschine noch läuft. Daran hatte ich nicht gedacht.
Stelle Dir vor, dass die Trommel stoppt (Timer wird dann gestartet und und läuft nun 5 Minuten), und die Trommel läuft aber nach 1 Minute wieder für 3,5 Minuten und steht dann wieder 1 Minute....dann wäre meine AND-Logik am Ende des 5 Minuten-Timers True und eine Fertigmeldung wird am Multiplexer gemeldet. Aber eventuell läuft dann kurz darauf die Trommel wieder zum Schleudern...
Deshalb hat Robert mit seinem Vorschlag einen retriggerbaren Timer zu nehmen doch völlig recht. Und er hat natürlich auch recht, dass dadruch sogar nur zwei Logiken notwendig sind und das AND entfallen. Es ist also nicht nur die korrektere Lösung für Deinen Anwendungsfall, sondern auch noch die Einfachere ...und noch ein Grund weniger eine Custom-Logik zu verwenden.

Beachte, der Schwellwert ist bewusst auf >8 anstelle <8 gestellt . Der Timer startet also immer, wenn ein Wert >8 empfangen wird und somit ist der Ausgang des Timers immer pos, solange die Maschine läuft. Wenn Dein Stromzähler aber nur bei Wert-Änderung und nicht zyklisch sendet...dann musst Du der Logikzelle den optionalen Triggereingang spendieren.
Beachte auch, dass der Inhibit-Eingang nicht mehr negiert ist. Und immer auf die korrekten A,C,U usw. achten.
Hoffe sehr, dass es jetzt alles richtig ist, aber im Test sah es gut aus. Der Anwendungsfall ist einfach, aber deshalb nicht trivial!
Der Timer meines Lösungsweges wird ausgelöst, wenn der Verbrauch unter den Wert 8 sinkt und kann erst wieder gestartet werden, wenn er einmal abgelaufen ist (er ist also zur Laufzeit des Timers nicht retriggerbar)! In Deinem Anwendungsfall könnte / wird dies ein Problem sein, weil die Waschmaschine ja vermutlich zur Laufzeit häufiger mal unter den Wert 8 geht, aber nicht 5 min. lang. Somit könnte es passieren, dass die Fertigmeldung auch schon einmal viel zu früh kommt, also zu einem Zeitpunkt, wo die Waschmaschine noch läuft. Daran hatte ich nicht gedacht.
Stelle Dir vor, dass die Trommel stoppt (Timer wird dann gestartet und und läuft nun 5 Minuten), und die Trommel läuft aber nach 1 Minute wieder für 3,5 Minuten und steht dann wieder 1 Minute....dann wäre meine AND-Logik am Ende des 5 Minuten-Timers True und eine Fertigmeldung wird am Multiplexer gemeldet. Aber eventuell läuft dann kurz darauf die Trommel wieder zum Schleudern...
Deshalb hat Robert mit seinem Vorschlag einen retriggerbaren Timer zu nehmen doch völlig recht. Und er hat natürlich auch recht, dass dadruch sogar nur zwei Logiken notwendig sind und das AND entfallen. Es ist also nicht nur die korrektere Lösung für Deinen Anwendungsfall, sondern auch noch die Einfachere ...und noch ein Grund weniger eine Custom-Logik zu verwenden.

Beachte, der Schwellwert ist bewusst auf >8 anstelle <8 gestellt . Der Timer startet also immer, wenn ein Wert >8 empfangen wird und somit ist der Ausgang des Timers immer pos, solange die Maschine läuft. Wenn Dein Stromzähler aber nur bei Wert-Änderung und nicht zyklisch sendet...dann musst Du der Logikzelle den optionalen Triggereingang spendieren.
Beachte auch, dass der Inhibit-Eingang nicht mehr negiert ist. Und immer auf die korrekten A,C,U usw. achten.
Hoffe sehr, dass es jetzt alles richtig ist, aber im Test sah es gut aus. Der Anwendungsfall ist einfach, aber deshalb nicht trivial!