UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

LE: Umsetzung einer Ein- und Ausschaltverzögerung

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 558 Mal

#11

Beitrag von S. Kolbinger »

Robert_Mini hat geschrieben: Mi Jul 10, 2019 10:06 am Danke!
So ähnlich habe ich mir das auch gedacht.Ist der Unterschied zwischen:
  • 0 ... Nicht re-triggerbar, Pegelgesteuert
  • 6 ... Nicht re-triggerbar, Timer wird bei beiden Flanken getriggert

dann, dass pegelgesteuert bei jedem Telegramm neu getriggert wird und beiden Flanken nur wenn sich der Wert tatsächlich ändert - oder?

Danke und lg
Robert
Exakt! Genau das ist der Unterschied! :handgestures-thumbupright:
Gruß,
Stefan K.

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#12

Beitrag von Robert_Mini »

Ok, wird ergänzt.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Ersteller
paralan
Reactions:
Beiträge: 264
Registriert: Mi Sep 05, 2018 11:49 pm
Hat sich bedankt: 287 Mal
Danksagung erhalten: 102 Mal

#13

Beitrag von paralan »

Hallo Stefan,

ich habe gerade deinen Code getestet. Leider funktioniert die Ausschaltverzögerung nicht ganz richtig.
Wenn ich den Eingang auf True lege, schaltet die Einschaltverzögerung nach 5s durch. Dann Eingang auf False und der Ausgang geht nach 10s aus.
Wenn ich aber den Eingang (nachdem er schon durchgeschaltet hat), nur ca. 5s wegnehme und dann wieder drauf gebe, geht der Ausgang kurz auf Aus und dann wieder An. Der Ausgang sollte aber doch dauernd An bleiben!? Wenn der Eingang kleiner 5s kurz weggenommen wird, bleibt der Ausgang aktiv.

Oder mache ich noch was falsch? :confusion-scratchheadyellow:

Bild

Bild

Grüße Alan
Gruß Alan

TWS 2600 ID:190; VPN offen; Reboot nach Absprache, da Beschattung über Logikeditor aktiv!

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7632 Mal
Kontaktdaten:

#14

Beitrag von StefanW »

Es ist mir wirklich eine Freude, euch beim Umgang mit der Logikengine zu sehen.

Mit welcher Leichtigkeit Ihr Customlogiken konfiguriert und mit dem Doktormodus arbeitet und die Oszillosgrafen rausläßt und damit arbeitet ist einfach wunderbar. Es ist einfach schön zu sehen, wie unsere Ideen auch angewendet werden.

Jetzt müssen nur noch genug neue Kunden und Interessenten bemerken, welche tollen Leistungsmerkmal es hier im Timberwolf Server gibt!

lg

Stefan
Zuletzt geändert von StefanW am Mi Jul 10, 2019 7:09 pm, insgesamt 1-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#15

Beitrag von Robert_Mini »

StefanW hat geschrieben: Mi Jul 10, 2019 3:28 pm Es ist mir wirklich eine Freude, euch beim Umgang mit der Logikengine zu sehen.
Macht auch Spaß (mit manchmal ein wenig Frust) zu sehen, wie einfach manche Dinge gehen, die in Perl doch aufwendig gewesen sind. Gerade diese Themen Ein-/Ausschaltverzögerungen war doch oft ein Krampf.
StefanW hat geschrieben: Mi Jul 10, 2019 3:28 pm Jetzt müssen nur noch genug neue Kunden und Interessenten bemerken, welche tollen Leistungsmerkmal es hier im Timberwolf Server gibt!
Ich denke (hoffe) ihr seit beim Endspurt im Bug-Fix und Finish. Das beste Marketing ist das Release.

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 558 Mal

#16

Beitrag von S. Kolbinger »

Hallo Alan,
paralan hat geschrieben: Mi Jul 10, 2019 12:57 pm Hallo Stefan,

ich habe gerade deinen Code getestet. Leider funktioniert die Ausschaltverzögerung nicht ganz richtig.
Wenn ich den Eingang auf True lege, schaltet die Einschaltverzögerung nach 5s durch. Dann Eingang auf False und der Ausgang geht nach 10s aus.
Wenn ich aber den Eingang (nachdem er schon durchgeschaltet hat), nur ca. 5s wegnehme und dann wieder drauf gebe, geht der Ausgang kurz auf Aus und dann wieder An. Der Ausgang sollte aber doch dauernd An bleiben!? Wenn der Eingang kleiner 5s kurz weggenommen wird, bleibt der Ausgang aktiv.
Du machst hier nichts falsch.
Die Ein-/Ausschaltverzögerung "works as designed", zumindest, wie ich es ursprünglich designed habe ;) .
Ehrlich gesagt, habe ich dabei an einen Toilettenlüfter gedacht (für die unter euch, die keinen VOC verbaut haben ;) ). Der soll ja auch erst einschalten, wenn das Licht eine gewisse Zeit an ist. Und nach dem Ausschalten des Lichts soll er noch eine Zeit nachlaufen.

Es sind hier zwei Teilfunktionen (Einschaltverzögerung und Ausschaltverzögerung) hintereinander geschaltet.
  1. Einschaltverzögerung:
    Nach einem Wechsel von 0 auf 1 am Eingang wird die Einschaltverzögerungszeit TE abgewartet, bevor der Ausgang auf 1 wechselt.
    Wenn vor Ablauf der Wartezeit TE das Eingangssignal wieder auf 0 geht, bleibt der Ausgang auf 0.
    Es muss also das Eingangssignal mindestens TE lange auf 1 sein, dass die positive Flanke (0->1) verzögert am Ausgang sichtbar wird.
    Eine negative Flanke (1->0) am Eingang bewirkt unverzüglich eine 0 am Ausgang.
  2. Ausschaltverzögerung:
    Nach einem Wechsel von 1 auf 0 am Eingang wird die Ausschaltverzögerungszeit TA abgewartet, bevor der Ausgang auf 0 wechselt.
    Wenn vor Ablauf der Wartezeit TA das Eingangssignal wieder auf 1 geht, bleibt der Ausgang auf 1.
    Es muss also das Eingangssignal mindestens TA lange auf 0 sein, dass die negative Flanke (1->0) verzögert am Ausgang sichtbar wird.
    Eine positive Flanke (0->1) am Eingang bewirkt unverzüglich eine 1 am Ausgang.
Um mir das besser vorstellen zu können, habe ich mir folgenden Test (TE=4s ; TA=8s) erstellt:
Bild

Es wird als Eingangssignal alle 10 Sekunden ein "1"-Pulse erzeugt. Dabei habe ich die Dauer des Pulses variiert.

Mit 3,9s:
Bild

Mit 4,1s:
Bild

Mit 5s:
Bild

Mit 5,9s:
Bild

Mit 6,1s:
Bild



paralan hat geschrieben: Mi Jul 10, 2019 12:57 pm Wenn ich aber den Eingang (nachdem er schon durchgeschaltet hat), nur ca. 5s wegnehme und dann wieder drauf gebe, geht der Ausgang kurz auf Aus und dann wieder An.
Das entspricht meinem Beispiel mit Dauer = 5,9s

paralan hat geschrieben: Mi Jul 10, 2019 12:57 pm Wenn der Eingang kleiner 5s kurz weggenommen wird, bleibt der Ausgang aktiv.
Das entspricht meinem Beispiel mit Dauer = 6,1s

Viel Spaß beim Grübeln :confusion-scratchheadyellow:
Bei mir hat es auch länger gedauert, daher kommt die Antwort auch so spät :whistle:
Zuletzt geändert von S. Kolbinger am Do Jul 11, 2019 11:17 am, insgesamt 1-mal geändert.
Gruß,
Stefan K.

Ersteller
paralan
Reactions:
Beiträge: 264
Registriert: Mi Sep 05, 2018 11:49 pm
Hat sich bedankt: 287 Mal
Danksagung erhalten: 102 Mal

#17

Beitrag von paralan »

Hallo Stefan,

habe versucht dein Rätsel zu lösen. Aber die heutige Mittagspause hat nicht gereicht den Fehler zu finden.

Grüße Alan
Gruß Alan

TWS 2600 ID:190; VPN offen; Reboot nach Absprache, da Beschattung über Logikeditor aktiv!

Ersteller
paralan
Reactions:
Beiträge: 264
Registriert: Mi Sep 05, 2018 11:49 pm
Hat sich bedankt: 287 Mal
Danksagung erhalten: 102 Mal

#18

Beitrag von paralan »

So, ich glaub ich habe das Problem jetzt erkannt! :idea:

Nochmal die Testeinstellungen:
5s Einschaltverzögerung
10s Ausschaltverzögerung

Wenn man nach durchschalten der Einschaltverzögerung, länger als die Zeit der Einschaltverzögerung (5s) ausschaltet und dann wieder ein, passiert folgendes: Die Einschaltverzögerung startet ihre 5s von vorne und die Ausschaltverzögerung läuft mit kleiner 5s aus.
Dann kann das Oder-Modul (Einschaltverzögerung oder Ausschaltverzögerung) kurzzeitig nicht mehr den Ausgang schalten. Es gibt eine Unterbrechung bis der erste Timer wieder durchgeschaltet hat.

Ich habe mehrere Varianten versucht, um das Verhalten zu ändern. Am Ende habe ich ein RS-Flip Flop eingefügt und speichere damit die Einschaltverzögerung.


Hier meine angepasste Lösung: :dance:

Code: Alles auswählen

{
    "Level":[
        ["$In","bool",false],
        ["$dT_ON","float",0],
        ["$dT_OFF","float",0],
        ["$Out","bool",false],
        ["$Limit_ON","bool",false],
        ["$Delayed_ON","bool",false],
        ["$Delayed_ON_Save","bool",false],
        ["$Extend_ON","bool",false],
        ["$Extend_ON2","bool",false],
        ["$BMultiplex_Erg","int",0],
        ["$Reset_Multiplexer","bool",false],
        ["$DauerFalse","bool",false],
        ["$VAR<Inhibit?>","bool",false]
    ],
    "Module":[
        ["Break",["$VAR<Inhibit?>"]],
        ["Monoflop","$In","-$In","$Limit_ON","$dT_ON",2],
        ["And",["$In","-$Limit_ON"],"$Delayed_ON"],
        ["Monoflop","$Delayed_ON","$Delayed_ON","$Extend_ON","$dT_OFF",4],
        ["And",["-$Delayed_ON","-$Extend_ON","-$In"],"$Reset_Multiplexer"],
        ["BinaryMultiplexer",["$Delayed_ON","$Reset_Multiplexer"],"$BMultiplex_Erg"],
        ["Multiplexer",["$Out","-$DauerFalse","$DauerFalse"],"$Out","$BMultiplex_Erg"]
    ],
    "Input":[
        ["In","Eingang","$In","c"],
        ["dT_Ein","Einschaltverzögerung[s]","$dT_ON","c"],
        ["dT_Aus","Ausschaltverzögerung[s]","$dT_OFF","c"],
        ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
    ],
    "Output":[
        ["Out","Ausgang","$Out","c"]
    ]
}


@S. Kolbinger Hast du da eine elegantere Lösung im Kopf oder kann man das so machen? Möchte hiermit die Helligkeit für die Beschattung entsprechend verzögern.


Viele Grüße

Alan
Gruß Alan

TWS 2600 ID:190; VPN offen; Reboot nach Absprache, da Beschattung über Logikeditor aktiv!

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 558 Mal

#19

Beitrag von S. Kolbinger »

Hi Alan,
paralan hat geschrieben: Do Jul 11, 2019 10:22 pm S@S. Kolbinger Hast du da eine elegantere Lösung im Kopf oder kann man das so machen? Möchte hiermit die Helligkeit für die Beschattung entsprechend verzögern.
Falls du nur schnelle Schwankungen der Helligkeit rausfiltern möchtest, würde ich einen komplett anderen Ansatz vorschlagen.
Die Glättung von stark schwankenden Signalen funktioniert am einfachsten mit dem Tiefpass.
Hinweise zur Einstellung des Tiefpasses findest du hier.

So kann das dann beispielsweise aussehen:
Bild

Übrigens: Der Modifier "Tiefpass" funktioniert mit Der Beta25 auch korrekt.
Bild
Gruß,
Stefan K.
Antworten

Zurück zu „Logikengine & Logik-Editor“