Seite 2 von 3

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: So Jul 07, 2019 5:45 pm
von Robert_Mini
@danik
Kannst du den Letztstand nochmal Posten?

Lg
Robert

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: So Jul 07, 2019 9:29 pm
von danik
Robert_Mini hat geschrieben: So Jul 07, 2019 5:45 pm @danik
Kannst du den Letztstand nochmal Posten?

Lg
Robert
Hi

Hier die finale Version, die bei mir soweit läuft.

Dauer: Bewässerungsdauer, bei mir als Minuten (Wert muss Float sein, bei mir dpt 9.010)
Faktor: rechnet die Werte von DauerX um in Sekunden für den Timer-Baustein (erwartet Sekunden als Input)
Pause: Wert in Sekunden, bis der nächste Kreislauf gestartet wird.

Hier die Version für 2 Kreisläufe

Bild

Code: Alles auswählen

{
    "Level":[
        ["$trigger","bool",false],
        ["$trigger_o","bool",false],
        ["$state_a","bool",false],
        ["$state_ab","bool",false],
        ["$period_a","float",0],
        ["$period_a_i","float",0],
        ["$state_b","bool",false],
        ["$period_b","float",0],
        ["$period_b_i","float",0],
        ["$A0","float",0],
        ["$faktor_x","float",60],
        ["$pause_x","float",5],
        ["$VAR<Inhibit?>","bool",false]
    ],
    "Module":[
        ["Break",["$VAR<Inhibit?>"]],
        ["Polynomial", "$faktor_x", "$period_a",["$A0", "$period_a_i"]],
        ["Monoflop","$trigger","-$trigger","$state_a","$period_a",2],
        ["Monoflop","$state_a","-$trigger","$state_ab","$pause_x",4],
        ["Polynomial", "$faktor_x", "$period_b",["$A0", "$period_b_i"]],
        ["Monoflop","$state_ab","-$trigger","$state_b","$period_b",4],
        ["Or",["$state_a","$state_ab","$state_b"],"$trigger"],
        ["Or",["$state_a","$state_ab","$state_b"],"$trigger_o"]
    ],
    "Input":[
        ["Start/Stop","Startet/Beendet den Zyklus","$trigger","c"],
        ["Dauer1","1.Bewässerungsdauer","$period_a_i","c"],
        ["Dauer2","2.Bewässerungsdauer","$period_b_i","c"],
        ["Faktor","Faktor Dauer","$faktor_x","c"],
        ["Pause","Pause in s","$pause_x","c"],
        ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
    ],
    "Output":[
        ["Ventil1","Schaltausgang 1.Ventil","$state_a","c"],
        ["Ventil2","Schaltausgang 2.Ventil","$state_b","c"],
        ["SchaltKO","Schalt-KO","$trigger_o","c"]  
    ]
}

Und hier eine Version mit 4 Kreisläufen

Bild

Code: Alles auswählen

{
    "Level":[
        ["$trigger","bool",false],
        ["$trigger_o","bool",false],
        ["$state_a","bool",false],
        ["$state_ab","bool",false],
        ["$period_a","float",0],
        ["$period_a_i","float",0],
        ["$state_b","bool",false],
        ["$state_bb","bool",false],
        ["$period_b","float",0],
        ["$period_b_i","float",0],
        ["$state_c","bool",false],
        ["$state_cb","bool",false],
        ["$period_c","float",0],
        ["$period_c_i","float",0],
        ["$state_d","bool",false],
        ["$period_d","float",0],
        ["$period_d_i","float",0],
        ["$A0","float",0],
        ["$faktor_x","float",60],
        ["$pause_x","float",5],
        ["$VAR<Inhibit?>","bool",false]
    ],
    "Module":[
        ["Break",["$VAR<Inhibit?>"]],
        ["Polynomial", "$faktor_x", "$period_a",["$A0", "$period_a_i"]],
        ["Monoflop","$trigger","-$trigger","$state_a","$period_a",2],
        ["Monoflop","$state_a","-$trigger","$state_ab","$pause_x",4],
        ["Polynomial", "$faktor_x", "$period_b",["$A0", "$period_b_i"]],
        ["Monoflop","$state_ab","-$trigger","$state_b","$period_b",4],
        ["Monoflop","$state_b","-$trigger","$state_bb","$pause_x",4],
        ["Polynomial", "$faktor_x", "$period_c",["$A0", "$period_c_i"]],
        ["Monoflop","$state_bb","-$trigger","$state_c","$period_c",4],
        ["Monoflop","$state_c","-$trigger","$state_cb","$pause_x",4],
        ["Polynomial", "$faktor_x", "$period_d",["$A0", "$period_d_i"]],
        ["Monoflop","$state_cb", "-$trigger","$state_d","$period_d",4],
        ["Or",["$state_a","$state_ab","$state_bb","$state_cb","$state_b","$state_c","$state_d"],"$trigger"],
        ["Or",["$state_a","$state_ab","$state_bb","$state_cb","$state_b","$state_c","$state_d"],"$trigger_o"]
    ],
    "Input":[
        ["Start/Stop","Startet/Beendet den Zyklus","$trigger","c"],
        ["Dauer1","1.Bewässerungsdauer","$period_a_i","c"],
        ["Dauer2","2.Bewässerungsdauer","$period_b_i","c"],
        ["Dauer3","3.Bewässerungsdauer","$period_c_i","c"],
        ["Dauer4","4.Bewässerungsdauer","$period_d_i","c"],
        ["Faktor","Faktor Dauer","$faktor_x","c"],
        ["Pause","Pause in s","$pause_x","c"],
        ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
    ],
    "Output":[
        ["Ventil1","Schaltausgang 1.Ventil","$state_a","c"],
        ["Ventil2","Schaltausgang 2.Ventil","$state_b","c"],
        ["Ventil3","Schaltausgang 3.Ventil","$state_c","c"],
        ["Ventil4","Schaltausgang 4.Ventil","$state_d","c"],
        ["SchaltKO","Schalt-KO","$trigger_o","c"]  
    ]
}
Fehlt nur noch die von Dir erwähnte Möglichkeit der "Restzeit".

Gruss
Dani

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: So Jul 07, 2019 9:45 pm
von Robert_Mini
Super Sache!
Was mir noch fehlt (oder ich nicht gesehen habe), ist ein Ausgang der solange 1 ist, wie irgendein Kreis aktiv ist (Sequenz aktiv).
Oder ist das das $SchaltKO?

Und wenn ich schon genau bin:
- ein Sperreingang und
- Freigabe-Eingang
- Globaler Faktor als Eingang der auf jede Dauer multipliziert wird

Damit hätten wir den ersten massentauglichen Bewässerungsbaustein für den TWS :clap: :clap: :clap: !

lg
Robert

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: So Jul 07, 2019 10:02 pm
von danik
Robert_Mini hat geschrieben: So Jul 07, 2019 9:45 pm
Was mir noch fehlt (oder ich nicht gesehen habe), ist ein Ausgang der solange 1 ist, wie irgendein Kreis aktiv ist (Sequenz aktiv).
Oder ist das das $SchaltKO?
Ja genau. Ev. braucht es einen besseren Namen.
Robert_Mini hat geschrieben: So Jul 07, 2019 9:45 pm
Und wenn ich schon genau bin:
- ein Sperreingang und
- Freigabe-Eingang
- Globaler Faktor als Eingang der auf jede Dauer multipliziert wird
Sperreingang über (+) Inhabit, jedoch nicht getestet (wobei ich meinte dass es da noch ein Sortierungsproblem gibt in der aktuellen Beta). Das und verstehe ich nicht ganz was gemeint ist. Ev. mit einem zweiten Inhabt, invertiert?

Faktor macht doch genau das was Du meinst mit "Globaler Faktor als Eingang der auf jede Dauer multipliziert wird", oder verstehe ich dies falsch?

lg
Dani

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: Mo Jul 08, 2019 8:17 pm
von Robert_Mini
Hallo Dani!

SchaltKO würde ich durch "Sequenz aktiv" ersetzen als Bezeichnung für den Ausgang ersetzen.

Das Sortierungsproblem bezieht sich auf das hinzufügen zusätzlicher Eingänge mit dem "+"-Zeichen.
Du kannst einen Inhibit Eingang auch gleich manuell in der Custom Logik erstellen => KB (Inhibit ist nur ein zufälliger Name, das Modul dazu heißt break...).

Ich bin aber kein Freund davon. Warum? Ein Break bei aktiver Bewässerung würde das Schließen des Ventils unterbinden :naughty: !!!

Ich verwende daher einen UND-Baustein in meinen Logiken mehreren Eingängen (1x Ein/Aus, 1x als Freigabe, 1x Sperre als invertierten Eingang).
So wird die Logik nach Umschalten von Freigabe = 1 auf =0 auch korrekt abgebrochen und der Zustand gesendet, der zur ausgeschalteten Logik gehört.

Wie man das im Zusammenspiel mit dem Monoflop macht, weiß ich aber grad auch nicht.

Zum Abschluss:
die 60min würde ich fix als rein interne Variable belassen und zusätzlich eine Variable Faktor als Eingang vorsehen, dann reden wir immer von Minuten und der zusätzlichen Möglichkeit, die Standardzeiten (zB an besonders heißen Tagen) mit einem Faktor skalieren zu können.

lg
Robert

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: Mo Jul 08, 2019 8:59 pm
von DeLaDope
Zwischenstand gefällt mir schon einmal sehr gut! Die Idee mit dem fixen Faktor ist natürlich auch sehr hilfreiche...weiter so. Danke! VG

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: Mo Jul 08, 2019 10:12 pm
von danik
Hallo Robert

Danke für die guten Inputs. Ich habe die Logik jetzt mal so umgebaut, im Moment mit 2 Kreisen. Wenn dies mal jemand anders noch getestet hat kann ich falls gewünscht noch die Logik mit den 4 Kreisen umbauen.
Robert_Mini hat geschrieben: Mo Jul 08, 2019 8:17 pm SchaltKO würde ich durch "Sequenz aktiv" ersetzen als Bezeichnung für den Ausgang ersetzen.
gemacht.
Robert_Mini hat geschrieben: Mo Jul 08, 2019 8:17 pm Das Sortierungsproblem bezieht sich auf das hinzufügen zusätzlicher Eingänge mit dem "+"-Zeichen.
Du kannst einen Inhibit Eingang auch gleich manuell in der Custom Logik erstellen => KB (Inhibit ist nur ein zufälliger Name, das Modul dazu heißt break...).

Ich bin aber kein Freund davon. Warum? Ein Break bei aktiver Bewässerung würde das Schließen des Ventils unterbinden :naughty: !!!

Ich verwende daher einen UND-Baustein in meinen Logiken mehreren Eingängen (1x Ein/Aus, 1x als Freigabe, 1x Sperre als invertierten Eingang).
So wird die Logik nach Umschalten von Freigabe = 1 auf =0 auch korrekt abgebrochen und der Zustand gesendet, der zur ausgeschalteten Logik gehört.

Wie man das im Zusammenspiel mit dem Monoflop macht, weiß ich aber grad auch nicht.
habe ich gemacht mit dem Eingang "Freigabe", der auf 1 sein muss. Beim Ändern auf 0 werden auch die Ausgänge auf 0 gesetzt (wie auch wenn bei Start/Stop auf 0 gewechselt wird). Break habe ich entfernt.
Robert_Mini hat geschrieben: Mo Jul 08, 2019 8:17 pm Zum Abschluss:
die 60min würde ich fix als rein interne Variable belassen und zusätzlich eine Variable Faktor als Eingang vorsehen, dann reden wir immer von Minuten und der zusätzlichen Möglichkeit, die Standardzeiten (zB an besonders heißen Tagen) mit einem Faktor skalieren zu können.
Auch das ist nun drin mit Faktor.

Bild

Code: Alles auswählen

{
    "Level":[
        ["$trigger","bool",false],
        ["$trigger_o","bool",false],
        ["$state_a","bool",false],
        ["$state_ab","bool",false],
        ["$period_a","float",0],
        ["$period_a_i","float",0],
        ["$state_b","bool",false],
        ["$period_b","float",0],
        ["$period_b_i","float",0],
        ["$A0","float",0],
        ["$faktor_m2s","float",60],
        ["$faktor_i","float",1],
        ["$faktor_c","float",1],
        ["$pause_x","float",5],
        ["$freigabe","bool",true],
        ["$reset","bool",false]
    ],
    "Module":[
        ["And",["$freigabe","$trigger"],"$reset"],
        ["Polynomial", "$faktor_m2s", "$faktor_c",["$A0", "$faktor_i"]],
        ["Polynomial", "$faktor_c", "$period_a",["$A0", "$period_a_i"]],
        ["Monoflop","$trigger","-$reset","$state_a","$period_a",2],
        ["Monoflop","$state_a","-$reset","$state_ab","$pause_x",4],
        ["Polynomial", "$faktor_c", "$period_b",["$A0", "$period_b_i"]],
        ["Monoflop","$state_ab","-$reset","$state_b","$period_b",4],
        ["Or",["$state_a","$state_ab","$state_b"],"$trigger"],
        ["Or",["$state_a","$state_ab","$state_b"],"$trigger_o"]
    ],
    "Input":[
        ["Start/Stop","Startet/Beendet den Zyklus","$trigger","c"],
        ["Dauer1","1.Bewässerungsdauer min.","$period_a_i","c"],
        ["Dauer2","2.Bewässerungsdauer min.","$period_b_i","c"],
        ["Faktor","Faktor Dauer","$faktor_i","c"],
        ["Pause","Pause in s","$pause_x","c"],
        ["Freigabe","Freigabe der Bew.Logik","$freigabe","c"]
    ],
    "Output":[
        ["Ventil1","Schaltausgang 1.Ventil","$state_a","c"],
        ["Ventil2","Schaltausgang 2.Ventil","$state_b","c"],
        ["Sequenz aktiv","Sequenz aktiv","$trigger_o","c"]
    ]
}
Viel spass beim Testen
Robert_Mini hat geschrieben: So Jul 07, 2019 9:53 pm PS: Irgendwie müssen wir die Diskussion zum Bug und Bewässerung noch auftrennen, denn unter diesem Titel sucht keiner nach Bewässerungslogik...
Ja das wäre gut, wenn dies ein mod hinbekommt.

ld
Dani

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: Mo Jul 08, 2019 10:20 pm
von Robert_Mini
Super! :clap: :clap:
Sehr schöne Sache - werde das baldigst in die KB übernehmen.
danik hat geschrieben: Mo Jul 08, 2019 10:12 pm
Robert_Mini hat geschrieben: So Jul 07, 2019 9:53 pm PS: Irgendwie müssen wir die Diskussion zum Bug und Bewässerung noch auftrennen, denn unter diesem Titel sucht keiner nach Bewässerungslogik...
Ja das wäre gut, wenn dies ein mod hinbekommt.
Mache ich gleich noch nach bestem Wissen und Gewissen.

4 Kreise? Ich bräuchte 7 :confusion-scratchheadyellow: .

In jedem Fall eine tolle Arbeit!

lg
Robert

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: Mo Jul 08, 2019 10:37 pm
von danik
So, die LE mit 4 Kreisen haben ich jetzt noch kurz gemacht, ging schneller als gedacht.

Erweiterung auf mehr ist ja dann eine Fleisarbeit.

Bild

Code: Alles auswählen

{
    "Level":[
        ["$trigger","bool",false],
        ["$trigger_o","bool",false],
        ["$state_a","bool",false],
        ["$state_ab","bool",false],
        ["$period_a","float",0],
        ["$period_a_i","float",0],
        ["$state_b","bool",false],
        ["$state_bb","bool",false],
        ["$period_b","float",0],
        ["$period_b_i","float",0],
        ["$state_c","bool",false],
        ["$state_cb","bool",false],
        ["$period_c","float",0],
        ["$period_c_i","float",0],
        ["$state_d","bool",false],
        ["$period_d","float",0],
        ["$period_d_i","float",0],
        ["$A0","float",0],
        ["$faktor_m2s","float",60],
        ["$faktor_i","float",1],
        ["$faktor_c","float",1],
        ["$pause_x","float",5],
        ["$freigabe","bool",true],
        ["$reset","bool",false]
    ],
    "Module":[
        ["And",["$freigabe","$trigger"],"$reset"],
        ["Polynomial", "$faktor_m2s", "$faktor_c",["$A0", "$faktor_i"]],
        ["Polynomial", "$faktor_c", "$period_a",["$A0", "$period_a_i"]],
        ["Monoflop","$trigger","-$reset","$state_a","$period_a",2],
        ["Monoflop","$state_a","-$reset","$state_ab","$pause_x",4],
        ["Polynomial", "$faktor_c", "$period_b",["$A0", "$period_b_i"]],
        ["Monoflop","$state_ab","-$reset","$state_b","$period_b",4],
        ["Monoflop","$state_b","-$reset","$state_bb","$pause_x",4],
        ["Polynomial", "$faktor_c", "$period_c",["$A0", "$period_c_i"]],
        ["Monoflop","$state_bb","-$reset","$state_c","$period_c",4],
        ["Monoflop","$state_c","-$reset","$state_cb","$pause_x",4],
        ["Polynomial", "$faktor_c", "$period_d",["$A0", "$period_d_i"]],
        ["Monoflop","$state_cb", "-$reset","$state_d","$period_d",4],
        ["Or",["$state_a","$state_ab","$state_bb","$state_cb","$state_b","$state_c","$state_d"],"$trigger"],
        ["Or",["$state_a","$state_ab","$state_bb","$state_cb","$state_b","$state_c","$state_d"],"$trigger_o"]
    ],
    "Input":[
        ["Start/Stop","Startet/Beendet den Zyklus","$trigger","c"],
        ["Dauer1","1.Bewässerungsdauer min.","$period_a_i","c"],
        ["Dauer2","2.Bewässerungsdauer min.","$period_b_i","c"],
        ["Dauer3","3.Bewässerungsdauer min.","$period_c_i","c"],
        ["Dauer4","4.Bewässerungsdauer min.","$period_d_i","c"],
        ["Faktor","Faktor Dauer","$faktor_i","c"],
        ["Pause","Pause in s","$pause_x","c"],
        ["Freigabe","Freigabe der Bew.Logik","$freigabe","c"]
    ],
    "Output":[
        ["Ventil1","Schaltausgang 1.Ventil","$state_a","c"],
        ["Ventil2","Schaltausgang 2.Ventil","$state_b","c"],
        ["Ventil3","Schaltausgang 3.Ventil","$state_c","c"],
        ["Ventil4","Schaltausgang 4.Ventil","$state_d","c"],
        ["Sequenz aktiv","Sequenz aktiv","$trigger_o","c"]
    ]
}

Re: Bewässerungssteuerung als Custom-Logik

Verfasst: Di Jul 09, 2019 8:19 am
von StefanW
Sehr gute Arbeit Danik!

Und ein schönes Beispiel, was man mit der Timberwolf Logik Engine und de Logik Editor vor allem in Verbindung mit den Custom Logiken anstellen kann!

Wunderbar

Stefan