State Machine im Logikeditor

Informationen und Diskussionen über Logik-Engine und Logik-Editor
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

S. Kolbinger
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#11

Beitrag von S. Kolbinger »

Hallo Marc,
Zugschlus hat geschrieben: Do Apr 25, 2019 6:08 pm Vielleicht wäre es doch eine ganz gute Idee, die Statusrückmeldungen der Aktoren zu verwenden, damit die Logik immer weiß, in welchem Zustand die Leuchten wirklich sind.
versuch es mal damit:

Code: Alles auswählen

{
      "Level": [
        ["$Weiter","bool",false],
        ["$Null","integer",0],
        ["$Eins","integer",1],
        ["$Status","integer",0],
        ["$MaxStatus","integer",3],
        ["$ResetStatus","bool",false],
        ["$DeckenLicht","bool",false],
        ["$SchreibtischLicht","bool",false],
        ["$DeckenLichtRueck","bool",false],
        ["$SchreibtischLichtRueck","bool",false]
      ],
      "Module": [
        ["And",["$DeckenLichtRueck"],"$DeckenLicht"],
        ["And",["$SchreibtischLichtRueck"],"$SchreibtischLicht"],
        ["BinaryMultiplexer",["$DeckenLicht","$SchreibtischLicht"],"$Status"],
        ["Polynomial","$Status","$Status",["$Eins","$Eins"]],
        ["Comparator","$Status","$ResetStatus","$MaxStatus"],
        ["Multiplexer",["$Status","$Null"],"$Status","$ResetStatus"],
        ["BinaryDemultiplexer","$Status",["$DeckenLicht","$SchreibtischLicht"]]
      ],
      "Input": [
        ["Taster","Jeder Wert schaltet eins weiter","$Weiter","a"],
        ["DeckeRueck","Rückmeldung Deckenlicht","$DeckenLichtRueck","u"],
        ["TischRueck","Rückmeldung Schreibtischlicht","$SchreibtischLichtRueck","u"]
      ],
      "Output": [
        ["Decke","Schaltzustand für das Deckenlicht","$DeckenLicht","c"],
        ["Tisch","Schaltzustand für das Schreibtischlicht","$SchreibtischLicht","c"]
      ]
}
Ich habe mal der Einfachheit halber, wegen der Binär(de)multiplexer, die Schaltreihenfolge abgeändert:
von: ... [Aus,Aus] -> [Ein,Aus] -> [Ein,Ein] -> [Aus,Ein] ...
nach:...[Aus,Aus] -> [Ein,Aus] -> [Aus,Ein] -> [Ein,Ein] ...

Solltest du unbedingt an deiner ursprünglichen Sequenz festhalten wollen, müsste ich noch zwei XOR einbauen.

viel Spaß beim ausprobieren.
Gruß,
Stefan K.
Zuletzt geändert von S. Kolbinger am Do Apr 25, 2019 8:21 pm, insgesamt 1-mal geändert.
Gruß,
Stefan K.

jockel
Reactions:
Beiträge: 431
Registriert: Mo Aug 13, 2018 6:31 pm
Hat sich bedankt: 198 Mal
Danksagung erhalten: 147 Mal

#12

Beitrag von jockel »

Das wäre sicher der Königsweg. Ersatzweise könnte man den internen Status vielleicht auf den KNX Bus senden und wieder als Input verwenden, quasi von hinten durchs Knie geschossen ;)

Mal was anderes: Die Möglichkeit die Logiken als Textdatei auszutauschen, was ja auch bedeutet, sie z.B. in ein git Repository aufnehmen zu können, gefällt mir extrem gut!
TWS 2500 ID: 145 + 1x TP-UART + 2x DS9490R, VPN geschlossen, Reboot nach Absprache / wiregate198 (im Ruhestand)
Antworten

Zurück zu „Logikengine & Logik-Editor“