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

[Beantwortet] [3.5.1] Sequenz von Impulsen - benutzerdefinierte Logik

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
Antworten

Ersteller
kirchmkl
Reactions:
Beiträge: 7
Registriert: Mo Jan 17, 2022 8:11 pm
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

[3.5.1] Sequenz von Impulsen - benutzerdefinierte Logik

#1

Beitrag von kirchmkl »

Ich möchte eine Sequenz von Impulsen in einer benutzerdefinierten Logik realisieren. Nach einem ersten Impuls von x Sekunden (-> Output $OB_1), soll die fallende Flanke dieses Impulses den nächsten Impuls starten (-> Output $OB_2), usw. Leider startet der 2. Timer nicht. Alle Impulse sind mit dem Monoflop-Baustein realisiert. Kann mir jemand helfen?

Klaus

Meine Umgebung:
- Timberwolf Server 3500XL
- Timberwolf ID: 655(3500)
KNX Parameter:
- Prog. physiche Adressen: 1
- Progr. Objekte: 531
- verknüpfte Gruppenadressen; 485
- importierte physische Adressen: 224
- importierte Objekte: 531
- importierte Gruppenadressen: 1553
- mit ETS 6.0.6 programmiert

Code: Alles auswählen

{ 
  "Input": [
      ["T1","T1","$II_T1","c"],
      ["T2","T2","$II_T2","c"]
  ],
  "Output": [
      ["S1","S1","$OB_1","a"],
      ["S2","S2","$OB_2","a"]
  ],
  "Level": [
      ["$OB_1","boolean",false],
      ["$OB_2","boolean",false],
      
      ["$II_T1","integer",5],
      ["$II_T2","integer",5],
      
      ["$VB_true","boolean",true],
      ["$VB_false","boolean",false]
  ],
  "Module": [
      ["Monoflop","$VB_true","$VB_false","$OB_1","$II_T1",0],
      ["Monoflop","$OB_1","-$OB_1","$OB_2","$II_T2",4]
  ]
}
Zuletzt geändert von Robert_Mini am Fr Nov 25, 2022 7:06 pm, insgesamt 3-mal geändert.
Klaus

"TWS 3500L ID:655, VPN geschlossen, Reboot nach Rücksprache"

blaubaerli
Reactions:
Beiträge: 2308
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 884 Mal
Danksagung erhalten: 677 Mal

#2

Beitrag von blaubaerli »

Hallo Klaus,

berherzige doch bitte die oben im blauen Kasten referenzierten Forenregeln. Dann wird einer der potentiell wissenden Foristen womöglich gerne helfen.

Danke.
Beste Grüße
Jens
Zuletzt geändert von blaubaerli am Do Nov 24, 2022 12:05 pm, insgesamt 1-mal geändert.
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#3

Beitrag von Robosoc »

Hi Klaus, ich glaube Du hast Deinen Betreff schon geändert, aber was Jens eigentlich meinte ist die Software Versionsnummer. Die fehlt noch.

Und wenn Du dann eh schon den Eintrag noch einmal änderst, nutze gerne die Code-Funktion des Forums...dann kann man den Code leichter kopieren. <code></code> oder den entsprechenden Button beim Texteditor verwenden

Ich schau mir das Problem gerne mal am Wochenende an.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
kirchmkl
Reactions:
Beiträge: 7
Registriert: Mo Jan 17, 2022 8:11 pm
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

#4

Beitrag von kirchmkl »

Firmware Version Version 3.5.1 - Rock The House 🤘
Klaus

"TWS 3500L ID:655, VPN geschlossen, Reboot nach Rücksprache"

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

#5

Beitrag von Robert_Mini »

Hallo Klaus!

Anbei eine funktionierend Lösung.

Aus meiner Sicht musst du noch das Thema Triggerverhalten verstehen lernen.
Grundsätzlich wird eine Logik beim Speichern nicht getriggert. Du hattest am Trigger des Monoflops eine Konstante, das klappt dann nur beim Editieren der Eingänge mit den Laufzeiten, mit ein paar Sondereffekten zB Laufzeit 0 etc.

Zusätzlich hattest du beim 2. Monoflop ein Reset definiert und zugleich Mode=4 fallende Flanke. Das heißt Reset und Start gleichzeitig...

Ich hab das mit einem sauberen Starttrigger getrennt. Dieser startet bei pos. Flanke den 1. Timer, der Ausgang dann bei fallender Flanke den nächsten Timer....

lg
Robert

Code: Alles auswählen

{ 
  "Input": [
      ["Trigger","Trigger","$Trigger","a"],
      ["T1","T1","$II_T1","c"],
      ["T2","T2","$II_T2","c"]
  ],
  "Output": [
      ["S1","S1","$OB_1","a"],
      ["S2","S2","$OB_2","a"]
  ],
  "Level": [
      ["$Trigger","boolean",false],
      
      ["$OB_1","boolean",false],
      ["$OB_2","boolean",false],
      
      ["$II_T1","integer",5],
      ["$II_T2","integer",5],
      
      ["$VB_true","boolean",true],
      ["$VB_false","boolean",false]
  ],
  "Module": [
      ["Monoflop","$Trigger","$VB_false","$OB_1","$II_T1",2],
      ["Monoflop","$OB_1","$VB_false","$OB_2","$II_T2",4]
  ]
}
Zuletzt geändert von Robert_Mini am Fr Nov 25, 2022 7:53 pm, insgesamt 1-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

blaubaerli
Reactions:
Beiträge: 2308
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 884 Mal
Danksagung erhalten: 677 Mal

#6

Beitrag von blaubaerli »

Hi @Robert_Mini ,

das hier:
Robert_Mini hat geschrieben: Fr Nov 25, 2022 7:32 pm Grundsätzlich wird eine Logik beim Speichern nicht gespeichert.
wäre aber schon doof, oder ;-) :confusion-scratchheadyellow: ? Du meintest sicher "Grundsätzlich wird eine Logik beim Speichern nicht automatisch getriggert."

Bete Grüße
Jens
Zuletzt geändert von blaubaerli am Fr Nov 25, 2022 7:41 pm, insgesamt 1-mal geändert.
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung

Ersteller
kirchmkl
Reactions:
Beiträge: 7
Registriert: Mo Jan 17, 2022 8:11 pm
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

#7

Beitrag von kirchmkl »

Hallo Robert

Danke vielmals für die Lösung. Sie funktioniert gut. Das mit dem Triggern ist tatsächlich nicht ganz so einfach. Ich möchte meine Impulssequenz beispielsweise alle 5 Minuten triggern. Jetzt kann ich einen entsprechenden Timer1 definieren, welcher mir das Triggersignal für meine Impulssequenz generiert und diese Triggerlogik mit meiner Impulslogik verbinden - funktioniert bestens. Gäbe es auch eine Möglichkeit, dass ich in meiner Impulssequenzlogik selbst einen Trigger hinzufüge (durch das Clicken auf das entsprechende + Symbol), so dass ich nicht 2 Logiken brauche?

lg Klaus
Klaus

"TWS 3500L ID:655, VPN geschlossen, Reboot nach Rücksprache"

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

#8

Beitrag von Robert_Mini »

Hallo Klaus!
Zu deiner Frage:
kirchmkl hat geschrieben: Sa Nov 26, 2022 3:56 pm Gäbe es auch eine Möglichkeit, dass ich in meiner Impulssequenzlogik selbst einen Trigger hinzufüge (durch das Clicken auf das entsprechende + Symbol), so dass ich nicht 2 Logiken brauche?
Ja da geht. Du warst mit der Konstante "True" am 1. Timer auf der richtigen Fährte, nur führt das eben dazu, dass der 1. Timer bei jedem Aufruf neu gestartet wird. In Kombination mit dem Reset hat das nicht funktioniert.

Hier die Lösung dafür: Im wesentlichen ein zusätzliches ODER welches beim Ausführen der Logik (durch externen Trigger oder Ablauf eines Timers) überprüft, ob gerade ein Timer läuft. Wenn ja (d.h. Sequenz aktiv), dann liefert das ODER "false" und triggert den 1. Timer nicht. Wenn nein, dann kommt dieser Trigger vom "Externen Trigger" der Logik und die Sequenz startet.

Hinweis: Um ein unabsichtliches Triggern zu vermeiden sollten die Eingänge für die Zeiten als fixer Parameter oder mit dem Triggerverhalten "u" verwendet werden!

Eigentlich ein super Beispiel, mit dem man das Triggerverhalten verstehen lernen kann!!
Hier die Links ins Wiki:
- https://elabnet.atlassian.net/wiki/spac ... ogik-Zelle
- https://elabnet.atlassian.net/wiki/spac ... +Eing+ngen

lg
Robert

Code: Alles auswählen

{ 
  "Input": [
      ["Trigger","Trigger","$Trigger","a"],
      ["T1","T1","$II_T1","c"],
      ["T2","T2","$II_T2","c"]
  ],
  "Output": [
      ["S1","S1","$OB_1","a"],
      ["S2","S2","$OB_2","a"]
  ],
  "Level": [
      ["$Trigger","boolean",false],
      
      ["$OB_1","boolean",false],
      ["$OB_2","boolean",false],
      ["$TimerActive","boolean",true],
      
      ["$II_T1","integer",5],
      ["$II_T2","integer",5],
      
      ["$VB_true","boolean",true],
      ["$VB_false","boolean",false]
  ],
  "Module": [
      // Timerstatus für den nächsten Aufruf merken
      ["Or" , ["$OB_1","$OB_2"], "$TimerActive"],
      ["Monoflop","-$TimerActive","$VB_false","$OB_1","$II_T1",0],
      ["Monoflop","$OB_1","$VB_false","$OB_2","$II_T2",4]
  ]
}
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Ersteller
kirchmkl
Reactions:
Beiträge: 7
Registriert: Mo Jan 17, 2022 8:11 pm
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

#9

Beitrag von kirchmkl »

Super und danke
Klaus

"TWS 3500L ID:655, VPN geschlossen, Reboot nach Rücksprache"
Antworten

Zurück zu „Logikengine & Logik-Editor“