4.6.7.7 CUSTOM: IF-THEN (ELSE) Lösungen

Beschreibung: CUSTOM: IF-THEN (ELSE) Lösungen

Kategorie: Logiken

Link zu diesem Beitrag: Alles auswählen

[url=https://forum.timberwolf.io/app.php/kb/viewarticle?a=116&sid=fb4c5f7cb4f65e6cfa718aa37c1b5068]Knowledge Base - 4.6.7.7 CUSTOM: IF-THEN (ELSE) Lösungen[/url]

Der Logikeditor des Timberwolfservers ist stark an die bekannten Bausteine in der Schaltungstechnik angelehnt und hier gibt es keine Wenn-Dann-
Sonst Blöcke. Dennoch lassen sich solche Konstrukte, die aus Hochsprachen oder so manchen graphischen Logikeditoren bekannt sind, im Timberwolflogikeditor sehr leicht und zum Teil sogar mit weniger Aufwand realisieren.

Wenn es sich nicht um rein binäre Logiken handelt muss jedoch zwischen Standard-Logiken und Custom-Logiken unterschieden werden. In diesem Beitrag wird der Ersatz einer IF-THEN (ELSE) / Wenn-Dann (Sonst) Logik mit einem Standardbaustein erklärt. Für Standard-Logiken schlagen Sie bitte in Kapitel 4.6.1 IF-THEN (ELSE) Lösungen nach.

Die Module innerhalb einer Custom-Logik kennen keine Eingangs-Schwellwerte oder Ausgangs-Mappings, daher müssen innerhalb einer Custom-Logik unterschiedliche Bausteine verwendet werden, wenn es sich um binäre oder numerische Vergleiche und Zuweisungen geht:

Binär lässt sich vermutlich immer eine AND-Logik verwenden. Numerisch kann man die Aufgaben mit folgenden Modulen sinnvoll lösen:
KonstruktRealisierung
IF THEN"Latch"
IF THEN ELSE"Multiplexer" (mit bool Switch, aber nicht verwechseln mit BinärMultiplexer)
SWITCH CASE DEFAULT"Limiter", siehe viewtopic.php?f=24&t=1585&p=16639#p16639
Weitere Details können hier entnommen werden:
viewtopic.php?f=24&t=1585




Hier einmal ein Beispiel:
Ich möchte bei mir wegen Fensteranzeigen 4 Binärausgänge abhängig vom Zahlenwert (0-3) schalten.
$In ist ein Integer-Eingang mit möglichen Werten von 0 bis 3.
$Offen, $Gekippt, $Geschlossen, $Störung sind boolsche Ausgänge.

Die folgende Logik schaltet immer alle 4 Ausgänge true oder false (überlege mal wieviele Zeilen Code das bei If-then wären, da ist das hier schneller getippt.

Code: Alles auswählen

["Multiplexer",["$true", 0, 0, 0],"$Offen","$In“],
["Multiplexer",[0, "$true", 0, 0],"$Gekippt","$In“],
["Multiplexer",[0, 0, "$true", 0],"$Geschlossen","$In“],
["Multiplexer",[0, 0, 0, "$true"],"$Stoerung","$In“]