Seite 1 von 2

MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: So Jan 19, 2020 9:26 pm
von Eraser
Hallo,

ich hab mir mal die Arbeit gemacht und eine Auflistung aller Monoflop-Varianten erstellt, sodass diese übersichtlich dargestellt werden.

Timberwolf - Monoflop.pdf

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.

Re: MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: So Jan 19, 2020 9:29 pm
von Robert_Mini
Sehr gute Zusammenfassung. So tief musste ich bisher nicht einsteigen, aber DANKE dafür!!

lg
Robert

Re: MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: So Jan 19, 2020 10:19 pm
von eib-eg
Das wäre doch was für die KB

Re: MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: Do Aug 20, 2020 8:52 pm
von adimaster
Hi,
Eraser hat geschrieben: So Jan 19, 2020 9:26 pm In der angehängten PDF sieht man oben die Eingangsimpulse von Set und Reset und unten dann alle Timer-Varianten mit dem Output.
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

Re: MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: Fr Aug 21, 2020 6:13 am
von Eraser
adimaster hat geschrieben: Do Aug 20, 2020 8:52 pm Das ist mit Excel erstellt oder? Und die Flanken über schräge Rahmenlinien oder?
Ja korrekt.
adimaster hat geschrieben: Do Aug 20, 2020 8:52 pm Kann es sein, dass man die Triggeroption 0...7 nicht über eine Integer-Variable setzen kann? :(
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.
adimaster hat geschrieben: Do Aug 20, 2020 8:52 pm Zumindest kam bei mir was anderes raus (im Bsp. Option 3 --> Reaktion auf fallende, statt steigende Flanke).
Du meinst wenn du die Variable dafür verwendest?
Mit direkt einer Zahl anstatt der Variable funktioniert es richtig?

Re: MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: Fr Aug 21, 2020 7:28 am
von adimaster
Hallo Wolfgang,

Danke für die Rückmeldung!
Eraser hat geschrieben: Fr Aug 21, 2020 6:13 am 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.
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"]
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.
Eraser hat geschrieben: Fr Aug 21, 2020 6:13 am Du meinst wenn du die Variable dafür verwendest?
Mit direkt einer Zahl anstatt der Variable funktioniert es richtig?
Korrekt.

Grüße
Adi

Re: MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: Fr Aug 21, 2020 8:35 am
von Eraser
Verstehe, wie die #DEFINE bei C.
Da muss S. Kolbinger was dazu sagen.

Re: MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: So Aug 23, 2020 2:15 pm
von S. Kolbinger
Hallo Wolfgang, hallo Adi,

erst mal herzlichen Dank für die tolle Zusammenfassung:
Eraser hat geschrieben: So Jan 19, 2020 9:26 pm Timberwolf - Monoflop.pdf
Die Unterschiede der einzelnen Varianten sind hier super herausgearbeitet. Top :bow-yellow:

So bleibt mir nur noch diese Frage zu beantworten:
adimaster hat geschrieben: Do Aug 20, 2020 8:52 pm Kann es sein, dass man die Triggeroption 0...7 nicht über eine Integer-Variable setzen kann? :(
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.
  1. Für jede Option ein eigenes Modul
  2. Ein binäre Matrix (Bit kodiert)
    1. Kodierung fix, nicht dynamisch änderbar
    2. Kodierung dynamisch änderbar über einen Level
Variante 1. hatte nach meinem Geschmack zuviel Overhead da der Großteil der Funktionalität identisch ist. Zudem ist das auch schlechter zu warten.
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
Falls keine Triggerung durch Flanke (Bit1=0 und Bit2=0) -> dann Level-Triggerung

ACHTUNG:
Hier gibt es noch eine versteckte Falle:
adimaster hat geschrieben: Fr Aug 21, 2020 7:28 am ["Monoflop", "$bLeTriggerNightLight", "$bReset", "$bOutSetNightLight", "$iInFollowUpTime", "$icLeTriggerOption"]
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"

Re: MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: So Aug 23, 2020 3:03 pm
von adimaster
Danke für die ausführliche Erklärung, Stefan! :D
S. Kolbinger hat geschrieben: So Aug 23, 2020 2:15 pm Übrigens: Die Optionen 0-7 setzen sich zusammen aus drei Bits:
  • Bit0: retriggerbar
  • Bit1: triggert bei steigender Flanke
  • Bit2: triggert bei fallender Flanke
Falls keine Triggerung durch Flanke (Bit1=0 und Bit2=0) -> dann Level-Triggerung
...musste ich gleich mal prüfen und komme auf das gleiche Ergebnis :whistle: . Leichter zu merken, wenn etwas logisch gegliedert ist!
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.
Ok, das erklärt dann, wieso es so aussah, als würde prinzipiell alles funktionieren.
Danke für den Hinweis, verstanden!

Grüße
Adi

Re: MONOFLOP - Auflistung aller Varianten und Verhaltensweisen

Verfasst: So Aug 23, 2020 3:07 pm
von adimaster
Die Info ist aus meiner Sicht noch wichtig für die Knowledge Base.
Kann das jmd. ergänzen?