Seite 3 von 4
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Di Nov 05, 2019 10:28 pm
von Matze76
Matthias (Matze67), bitte entschuldige dass ich Dich mit einem Fehler korrigiert habe.
Überhaupt kein Problem! So etwas hilft ja auch um Missverständnisse aufzuklären. Hätte ja auch sein können, dass ich etwas falsch gesehen habe.
Und ich entschuldige mich, dass ich Dein "else gibt es nicht" zitiert habe. Du hast ja damit recht. Ich wollte nur eine Alternative zum Multiplexer (den ich auch gerne nutze) aufzeigen, die von der Struktur her für den einen oder anderen vielleicht etwas näher am gewohnten "IF / ELSE" ist.
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Di Nov 05, 2019 10:31 pm
von Robosoc
S. Kolbinger hat geschrieben: ↑Di Nov 05, 2019 10:11 pm
Grundsätzlicher Ablauf der Berechnung einer Logik-Zelle:
- Ein Trigger (entsprechend der Trigger-Optionen an den Eingängen) löst die Ausführung/Abarbeitung der Logik-Zelle aus.
- Alle Module werden der Reihenfolge nach ausgeführt.
- Alle Ausgänge werden entsprechend der Sende-Option an den Dispatcher(DOS) gesendet
Aber das heißt doch auch, dass ein Monoflop hier eine Ausnahme ist, oder habe ich da auch noch ein Missverständnis? Ein Monoflop, in dem man direkt den Ausgang einer Logik beschaltet kann doch diesen Ausgang einmal true und einmal false schalten, obwohl die Logik nur 1x getriggert wurde und somit die Ausgänge eigentlich nur einmal mit dem Endergebnis beschrieben werden... ich hoffe ich bin jetzt nicht voll verwirrt.
Kann man die Ausführung einer Logik verzögern (quasi Delay)?
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Di Nov 05, 2019 10:36 pm
von Matze76
... bleibt für mich noch die Frage an Meister Kolbinger, ob meine "ELSE"-ähnliche Alternative (also eigentlich, am Anfang dem Ausgang per Latch einen festen Wert zuzuweisen, der später ggf. übersteuert wird) im Sinne des Logik-Codes ein "sauberer" Ansatz ist, oder einfach schlechter Stil mit gewissen Risiken?
Code: Alles auswählen
// Zuerst kommt das ELSE:
[ "Latch", "$Wert3", "$Ausgang", "$KonstanteTrue", 0 ] => Schiebt grundsätzlich $Wert3 auf den Ausgang
// Dann folgen die IF / ELSE IF Bedingungen. => "And" prüft die Bedingung und setzt bei Erfüllung die jeweilige Hilfs-Variable ($Bedingung..) auf true. Der zugehörige "Latch" schiebt dann den gewünschten Wert auf den Ausgang und übersteuert damit den grundsätzlichen Wert.
[ "And", [ "$Eingang1", "$Eingang2" ], "$Bedingung1" ],
[ "Latch", "$Wert1", "$Ausgang", "$Bedingung1", 0 ],
[ "And", [ "-$Eingang1", "$Eingang2","$Eingang3" ], "$Bedingung2" ],
[ "Latch", "$Wert2", "$Ausgang", "$Bedingung2", 0 ],
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Di Nov 05, 2019 10:37 pm
von Robosoc
Ich finde inzwischen, dass ist ein Assreines Else, aber für beide And+Latch (global Else

), bin jetzt auch mal gespannt auf die Antwort.
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Di Nov 05, 2019 10:42 pm
von Robosoc
Robosoc hat geschrieben: ↑Di Nov 05, 2019 10:21 pm
Danke, dass Du mich hier gleich korrigierst. Da habe ich ganz offensichtlich ein ziemliches Missverständnis im Kopf gehabt, was aus folgendem Threat kam:
viewtopic.php?f=24&t=1232&p=12455&hilit=SPS#p12455
Matthias (Matze67), bitte entschuldige dass ich Dich mit einem Fehler korrigiert habe.
Ich werde für heute Schluss machen und mir in Ruhe morgen anschauen, was ich damals falsch verstanden habe bzw. was an dem Beispiel damals anders war so dass meine Behauptung da gestimmt hat.
Habe jetzt auch den Unterschied zu der damaligen Problematik erkannt. Damals wurde eine Logik zweimal getriggert, in unserem Beispiel hier geht es um das Verhalten während der Abarbeitung innerhalb einer Logik nach einem einzigen Triggerevent. Aber meine Erklärung damals war nicht ganz korrekt. Sollte ich die dort noch einmal korrigieren?
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Di Nov 05, 2019 10:44 pm
von S. Kolbinger
Robosoc hat geschrieben: ↑Di Nov 05, 2019 10:31 pm
Aber das heißt doch auch, dass ein Monoflop hier eine Ausnahme ist, oder habe ich da auch noch ein Missverständnis? Ein Monoflop, in dem man direkt den Ausgang einer Logik beschaltet kann doch diesen Ausgang einmal true und einmal false schalten, obwohl die Logik nur 1x getriggert wurde und somit die Ausgänge eigentlich nur einmal mit dem Endergebnis beschrieben werden... ich hoffe ich bin jetzt nicht voll verwirrt.
Kann man die Ausführung einer Logik verzögern (quasi Delay)?
ein Monoflop ist keine Ausnahme von dieser Regel.
Entscheidend ist hier vielmehr, was der auslösende Trigger für die Logik-Zelle war.
Nur wenn der Trigger der Ablauf des Timers (des Monoflops) war, wird auch der Ausgang des Monoflops auf
true gehen.
Bei einer anschließenden Neuberechnung der LogIk-Zelle durch einen anderen Trigger geht der Ausgang wieder auf
false
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Di Nov 05, 2019 11:15 pm
von S. Kolbinger
Hallo Matthias,
Matze76 hat geschrieben: ↑Di Nov 05, 2019 10:36 pm
... bleibt für mich noch die Frage an Meister Kolbinger, ob meine "ELSE"-ähnliche Alternative (also eigentlich, am Anfang dem Ausgang per Latch einen festen Wert zuzuweisen, der später ggf. übersteuert wird) im Sinne des Logik-Codes ein "sauberer" Ansatz ist, oder einfach schlechter Stil mit gewissen Risiken?
... erst mal, habe ich vor langer Zeit gelernt: "Guter/Schlechter Stil" ist Geschmackssache, ähnlich der Rocklänge in den Modemagazinen.
Am Schluss bleibt eigentlich nur
richtig oder
falsch, bzw. funktioniert der Algorithmus oder nicht. Danach kann man sich fragen: "Geht das noch besser?"
Was du dir aber unbedingt klar machen solltest: "Jeder Änderung/Überschreiben eines Levels ändert entsprechend den Zustand von
Changed". Und der letzte Zustand hat damit Auswirkung auf das Sendeverhalten (zumindest bei "on Change").
Ehrlich gesagt, habe ich mir vor dieser Diskussion gar nicht die Frage gestellt, "wie bilde ich ein IF_THEN_ELSE oder ein SWITCH_CASE_DEFAULT , etc. ab?".
Mein Ansatz war eher angelehnt an meinen ersten Elektronik-Baukasten

Daher fiel die Logic-Engine auch ein bisschen hardwarelastig aus.
Aber wenn ich einen Tipp geben müsste dann folgenden:
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Mi Nov 06, 2019 7:24 am
von Robert_Mini
Das finde ich eine super Zusammenfassung => für die KB notiert.
Viele wie auch ich denken eher in Hochsprache als in Elektronik-Schaltungen.
DANKE
Robert
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Mi Nov 06, 2019 8:18 am
von Robosoc
Aber das heißt doch auch, dass ein Monoflop hier eine Ausnahme ist, oder habe ich da auch noch ein Missverständnis? Ein Monoflop, in dem man direkt den Ausgang einer Logik beschaltet kann doch diesen Ausgang einmal true und einmal false schalten, obwohl die Logik nur 1x getriggert wurde und somit die Ausgänge eigentlich nur einmal mit dem Endergebnis beschrieben werden... ich hoffe ich bin jetzt nicht voll verwirrt.[/quote]
Jetzt habe ich gerade bei einer Logik das Gefühl, dass ein Monoflop nach Ablauf der eingestellten Zeit die Logik neu triggert...Ich mache da mal einen eigenen Threat raus, dass passt ja hier nicht wirklich zum Thema.
Re: Binärausgänge abhängig vom Zahlenwert
Verfasst: Mi Nov 06, 2019 8:17 pm
von Matze76
Danke Stefan @S.Kolbinger für deine Hinweise!
Ehrlich gesagt, habe ich mir vor dieser Diskussion gar nicht die Frage gestellt, "wie bilde ich ein IF_THEN_ELSE oder ein SWITCH_CASE_DEFAULT , etc. ab?".
Mein Ansatz war eher angelehnt an meinen ersten Elektronik-Baukasten

Mir gefällt dieser Schaltungs-basierte Ansatz immer besser und ich halte ihn für den Anwendungszweck und eure Intention mit dem LE auch für "runder" als die an eine Programmier-/Scriptsprache angelehnten Editoren! Meine bis jetzt übertragenen Logiken sind auf jeden Fall insgesamt sauberer geworden als sie das vorher mit dem Wiregate-Logikprozessor waren.
Wenn man tiefer in die Custom-Logiken einsteigen will, Ist es für viele hier (mich eingeschlossen) wahrscheinlich in etwa wie das Erlernen einer Fremdsprache. Wenn man nicht schon in der Fremdsprache bzw. zweisprachig aufgewachsen ist, ist das Gehirn immer erstmal in der Struktur der "Muttersprache" und versucht 1:1 zu übersetzen. Ist natürlich holprig, aber irgendwie muss man ja hineinkommen. Dafür finde ich diese "Übersetzungshilfen" sehr hilfreich.
Mein Ziel ist es aber schon, irgendwann mit viel Übung so weit zu sein, auch ohne im Kopf zu übersetzen sofort in der Struktur der neuen "Fremdsprache" denken zu können.