Seite 1 von 1

[3.5.1] Sequenz von Impulsen - benutzerdefinierte Logik

Verfasst: Do Nov 24, 2022 11:45 am
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]
  ]
}

Re: Sequenz von Impulsen

Verfasst: Do Nov 24, 2022 12:05 pm
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

Re: Sequenz von Impulsen - benutzerdefinierte Logik

Verfasst: Fr Nov 25, 2022 4:22 pm
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.

Re: Sequenz von Impulsen - benutzerdefinierte Logik

Verfasst: Fr Nov 25, 2022 4:32 pm
von kirchmkl
Firmware Version Version 3.5.1 - Rock The House 🤘

Re: [3.5.1] Sequenz von Impulsen - benutzerdefinierte Logik

Verfasst: Fr Nov 25, 2022 7:32 pm
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]
  ]
}

Re: [3.5.1] Sequenz von Impulsen - benutzerdefinierte Logik

Verfasst: Fr Nov 25, 2022 7:41 pm
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

Re: [3.5.1] Sequenz von Impulsen - benutzerdefinierte Logik

Verfasst: Sa Nov 26, 2022 3:56 pm
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

Re: [3.5.1] Sequenz von Impulsen - benutzerdefinierte Logik

Verfasst: So Nov 27, 2022 10:44 am
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]
  ]
}

Re: [3.5.1] Sequenz von Impulsen - benutzerdefinierte Logik

Verfasst: So Nov 27, 2022 10:50 am
von kirchmkl
Super und danke