NEU! UPGRADE IP 10 verfügbar!
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3
Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074
Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117
NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3
Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074
Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117
NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs
[TIPP] MONOFLOP - Auflistung aller Varianten und Verhaltensweisen
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
-
- Reactions:
- Beiträge: 650
- Registriert: So Aug 12, 2018 1:51 pm
- Wohnort: Amstetten, Österreich
- Hat sich bedankt: 209 Mal
- Danksagung erhalten: 275 Mal
MONOFLOP - Auflistung aller Varianten und Verhaltensweisen
Hallo,
ich hab mir mal die Arbeit gemacht und eine Auflistung aller Monoflop-Varianten erstellt, sodass diese übersichtlich dargestellt werden.
In der angehängten PDF sieht man oben die Eingangsimpulse von Set und Reset und unten dann alle Timer-Varianten mit dem Output.
Die Graphen sind angelehnt an dieselben, welche auch auf elektrischen Zeit-Bausteinen aufgedruckt sind, da hier die komplette Funktionsweise der Signale sofort sichtbar wird.
Die Monoflop-Varianten gehen von 0 bis 7 bei einer Custom-Logik und 1 bis 8 bei Einzel-Timerbausteinen, wobei die Monoflop-Variante 0 bei einer Custom-Logik gleich mit der Einzel-Timerbaustein-Variante 1 ist.
Vielleicht wäre es einfacher, die Einzel-Timerbausteine auch von 0 bis 7 zu nummerieren, damit hier das Schema gleich bleibt.
Zusätzlich sind unten dann noch 3 Varianten hinzugefügt, welche ich zusätzlich schon mal gebraucht habe und im Endeffekt nur eine Kombination eines Monoflops mit einer AND- oder OR-Logik sind.
Falls jemand Fehler findet, die ich übersehen habe, bitte mir mitteilen, sodass die Tabelle aktualisiert werden kann.
Ebenso bei Anregungen und Verbesserungen.
ich hab mir mal die Arbeit gemacht und eine Auflistung aller Monoflop-Varianten erstellt, sodass diese übersichtlich dargestellt werden.
In der angehängten PDF sieht man oben die Eingangsimpulse von Set und Reset und unten dann alle Timer-Varianten mit dem Output.
Die Graphen sind angelehnt an dieselben, welche auch auf elektrischen Zeit-Bausteinen aufgedruckt sind, da hier die komplette Funktionsweise der Signale sofort sichtbar wird.
Die Monoflop-Varianten gehen von 0 bis 7 bei einer Custom-Logik und 1 bis 8 bei Einzel-Timerbausteinen, wobei die Monoflop-Variante 0 bei einer Custom-Logik gleich mit der Einzel-Timerbaustein-Variante 1 ist.
Vielleicht wäre es einfacher, die Einzel-Timerbausteine auch von 0 bis 7 zu nummerieren, damit hier das Schema gleich bleibt.
Zusätzlich sind unten dann noch 3 Varianten hinzugefügt, welche ich zusätzlich schon mal gebraucht habe und im Endeffekt nur eine Kombination eines Monoflops mit einer AND- oder OR-Logik sind.
Falls jemand Fehler findet, die ich übersehen habe, bitte mir mitteilen, sodass die Tabelle aktualisiert werden kann.
Ebenso bei Anregungen und Verbesserungen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
mfg
Wolfgang
Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938
Wolfgang
Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938
-
- Reactions:
- Beiträge: 3744
- Registriert: So Aug 12, 2018 8:44 am
- Hat sich bedankt: 1167 Mal
- Danksagung erhalten: 2076 Mal
Sehr gute Zusammenfassung. So tief musste ich bisher nicht einsteigen, aber DANKE dafür!!
lg
Robert
lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
-
- Reactions:
- Beiträge: 375
- Registriert: So Apr 14, 2019 11:12 am
- Hat sich bedankt: 203 Mal
- Danksagung erhalten: 198 Mal
Hi,
Das ist mit Excel erstellt oder? Und die Flanken über schräge Rahmenlinien oder?
Und noch eine Frage an alle zu den Triggeroptionen/Monoflop-Varianten:
Kann es sein, dass man die Triggeroption 0...7 nicht über eine Integer-Variable setzen kann?
Zumindest kam bei mir was anderes raus (im Bsp. Option 3 --> Reaktion auf fallende, statt steigende Flanke).
Grüße
Adi
OT-Frage:
Das ist mit Excel erstellt oder? Und die Flanken über schräge Rahmenlinien oder?
Und noch eine Frage an alle zu den Triggeroptionen/Monoflop-Varianten:
Kann es sein, dass man die Triggeroption 0...7 nicht über eine Integer-Variable setzen kann?
Zumindest kam bei mir was anderes raus (im Bsp. Option 3 --> Reaktion auf fallende, statt steigende Flanke).
Grüße
Adi
Zuletzt geändert von adimaster am Fr Aug 21, 2020 1:09 am, insgesamt 1-mal geändert.
Grüße, Adi
TWS 2600 ID: 331, VPN geschlossen, Reboot nach Rücksprache
TWS 2600 ID: 331, VPN geschlossen, Reboot nach Rücksprache
-
- Reactions:
- Beiträge: 650
- Registriert: So Aug 12, 2018 1:51 pm
- Wohnort: Amstetten, Österreich
- Hat sich bedankt: 209 Mal
- Danksagung erhalten: 275 Mal
Ja korrekt.
Das habe ich selber noch nie probiert, wüsste auch nicht warum, da der Timer-Typ ja nur einmal eingestellt wird und nicht im laufenden Prozess geändert werden muss. Jedenfalls wüsste ich auf die Schnelle keinen Anwendungsfall.
Vielleicht kann S. Kolbinger dazu etwas sagen, ob dies mit einer Variable auch funktioniert.
Du meinst wenn du die Variable dafür verwendest?
Mit direkt einer Zahl anstatt der Variable funktioniert es richtig?
mfg
Wolfgang
Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938
Wolfgang
Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938
-
- Reactions:
- Beiträge: 375
- Registriert: So Apr 14, 2019 11:12 am
- Hat sich bedankt: 203 Mal
- Danksagung erhalten: 198 Mal
Hallo Wolfgang,
Danke für die Rückmeldung!
Damit die Custom-Logiken für mich lesbarer sind und ich auch noch in Jahren schnell den Code lesen können möchte, würde ich den Code gerne folgendermaßen schreiben:
Der Vorteil ist auch, dass ich alle Konstanten/Variablen an einem Ort im Bereich "Level" sehe und ändern kann. Das ist für mich wesentlich effizienter, übersichtlicher und komfortabler.
Grüße
Adi
Danke für die Rückmeldung!
Richtig, ich wüsste auf Anhieb auch nicht, ob ich jemals den Timer-Typ zur Laufzeit ändern würde. Das ist aber auch nicht der Grund, warum ich eine Variable/Konstante verwenden möchte.
Damit die Custom-Logiken für mich lesbarer sind und ich auch noch in Jahren schnell den Code lesen können möchte, würde ich den Code gerne folgendermaßen schreiben:
Code: Alles auswählen
["Monoflop", "$bLeTriggerNightLight", "$bReset", "$bOutSetNightLight", "$iInFollowUpTime", "$icLeTriggerOption"]
Korrekt.
Grüße
Adi
Grüße, Adi
TWS 2600 ID: 331, VPN geschlossen, Reboot nach Rücksprache
TWS 2600 ID: 331, VPN geschlossen, Reboot nach Rücksprache
-
- Reactions:
- Beiträge: 650
- Registriert: So Aug 12, 2018 1:51 pm
- Wohnort: Amstetten, Österreich
- Hat sich bedankt: 209 Mal
- Danksagung erhalten: 275 Mal
Verstehe, wie die #DEFINE bei C.
Da muss S. Kolbinger was dazu sagen.
Da muss S. Kolbinger was dazu sagen.
mfg
Wolfgang
Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938
Wolfgang
Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938
-
- Elaborated Networks
- Reactions:
- Beiträge: 588
- Registriert: Mi Aug 15, 2018 11:34 am
- Hat sich bedankt: 82 Mal
- Danksagung erhalten: 559 Mal
Hallo Wolfgang, hallo Adi,
erst mal herzlichen Dank für die tolle Zusammenfassung:
So bleibt mir nur noch diese Frage zu beantworten:
Etwas ausführlichere Erklärung:
Ich hatte mir damals überlegt, wie ich die unterschiedlichen Triggeroptionen beim Sigle-Shot-Timer (Monoflop) realisiere.
Ich hatte mich für die Bit kodierte Variante entschieden.
Bei der dynamischen Variante hatte ich höchste Bedenken, dass es hier zu schwer nachvollziehbaren Effekten kommen kann, mit enormen Support-Aufwand. Außerdem konnte ich mir kein realistisches Szenario denken, wo man das sinnvoll einsetzen kann.
Damit machte die Variante mit fixer Kodierung das Rennen.
Übrigens: Die Optionen 0-7 setzen sich zusammen aus drei Bits:
ACHTUNG:
Hier gibt es noch eine versteckte Falle:
Aber was ist hier eigentlich passiert:
Die Übersetzung der (Custom-)Logiken geschieht in zwei Stufen.
Die erste Stufe übernimmt der Logik-Editor und wandelt den Code in die einfachere Syntax der Logik-Engine um. Die Logik-Engine setzt dann diese vereinfachte Syntax in die tatsächlichen Ablaufstrukturen um.
Die vereinfachte Syntax kennt keine Level-Namen ($xyz), sondern benötigt die Position des Levels in der Liste.
Letztendlich wird im obigen Fall die Position (des Levels innerhalb der Level-List) zur Trigger-Option.
Das ist relativ zufällig, zumal ja der Logik-Editor die Level-Liste noch manipuliert, abhängig von eventuellen Ein-/Ausgangs-Modifizierern und zusätzlich angeklickten Triggern.
Lange Rede, kurzer Sinn: "Don't do it"
erst mal herzlichen Dank für die tolle Zusammenfassung:
Die Unterschiede der einzelnen Varianten sind hier super herausgearbeitet. Top
So bleibt mir nur noch diese Frage zu beantworten:
Die Kurzantwort ist NEIN, die Triggeroption muss eine Ganzzahl sein.
Etwas ausführlichere Erklärung:
Ich hatte mir damals überlegt, wie ich die unterschiedlichen Triggeroptionen beim Sigle-Shot-Timer (Monoflop) realisiere.
- Für jede Option ein eigenes Modul
- Ein binäre Matrix (Bit kodiert)
- Kodierung fix, nicht dynamisch änderbar
- Kodierung dynamisch änderbar über einen Level
Ich hatte mich für die Bit kodierte Variante entschieden.
Bei der dynamischen Variante hatte ich höchste Bedenken, dass es hier zu schwer nachvollziehbaren Effekten kommen kann, mit enormen Support-Aufwand. Außerdem konnte ich mir kein realistisches Szenario denken, wo man das sinnvoll einsetzen kann.
Damit machte die Variante mit fixer Kodierung das Rennen.
Übrigens: Die Optionen 0-7 setzen sich zusammen aus drei Bits:
- Bit0: retriggerbar
- Bit1: triggert bei steigender Flanke
- Bit2: triggert bei fallender Flanke
ACHTUNG:
Hier gibt es noch eine versteckte Falle:
Falls man als Option eine Level-Referenz anstatt einer Zahl angibt, dann lässt sich die Logik erst mal ohne Fehlermeldung speichern.
Aber was ist hier eigentlich passiert:
Die Übersetzung der (Custom-)Logiken geschieht in zwei Stufen.
Die erste Stufe übernimmt der Logik-Editor und wandelt den Code in die einfachere Syntax der Logik-Engine um. Die Logik-Engine setzt dann diese vereinfachte Syntax in die tatsächlichen Ablaufstrukturen um.
Die vereinfachte Syntax kennt keine Level-Namen ($xyz), sondern benötigt die Position des Levels in der Liste.
Letztendlich wird im obigen Fall die Position (des Levels innerhalb der Level-List) zur Trigger-Option.
Das ist relativ zufällig, zumal ja der Logik-Editor die Level-Liste noch manipuliert, abhängig von eventuellen Ein-/Ausgangs-Modifizierern und zusätzlich angeklickten Triggern.
Lange Rede, kurzer Sinn: "Don't do it"
Gruß,
Stefan K.
Stefan K.
-
- Reactions:
- Beiträge: 375
- Registriert: So Apr 14, 2019 11:12 am
- Hat sich bedankt: 203 Mal
- Danksagung erhalten: 198 Mal
Danke für die ausführliche Erklärung, Stefan!
Danke für den Hinweis, verstanden!
Grüße
Adi
...musste ich gleich mal prüfen und komme auf das gleiche Ergebnis . Leichter zu merken, wenn etwas logisch gegliedert ist!S. Kolbinger hat geschrieben: ↑So Aug 23, 2020 2:15 pm Übrigens: Die Optionen 0-7 setzen sich zusammen aus drei Bits:Falls keine Triggerung durch Flanke (Bit1=0 und Bit2=0) -> dann Level-Triggerung
- Bit0: retriggerbar
- Bit1: triggert bei steigender Flanke
- Bit2: triggert bei fallender Flanke
Ok, das erklärt dann, wieso es so aussah, als würde prinzipiell alles funktionieren.S. Kolbinger hat geschrieben: ↑So Aug 23, 2020 2:15 pm Letztendlich wird im obigen Fall die Position (des Levels innerhalb der Level-List) zur Trigger-Option.
Danke für den Hinweis, verstanden!
Grüße
Adi
Grüße, Adi
TWS 2600 ID: 331, VPN geschlossen, Reboot nach Rücksprache
TWS 2600 ID: 331, VPN geschlossen, Reboot nach Rücksprache