NEU! UPGRADE IP 10 verfügbar!
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Frage] Modul "Zustandsautomat" Bewässerung für Gardena Wasserverteiler

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.
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

Ersteller
NetFritz
Reactions:
Beiträge: 121
Registriert: Sa Okt 13, 2018 4:23 pm
Hat sich bedankt: 12 Mal
Danksagung erhalten: 23 Mal

Modul "Zustandsautomat" Bewässerung für Gardena Wasserverteiler

#1

Beitrag von NetFritz »

Hallo
Gibt es schon für das Zustandsmodul im Knowledge Base schon eine Beschreibung?

Ich möchte mit dem Mudul einen Gardena automatik Wasservereiler weiterschalten.
Vielleicht kann ja jemand da weiter Helfen.

Dieser Verteiler wird über den Wasserdruck weiter geschaltet.
Schaltet man das EIN dann wird das Magnetventil angesteuert und bleibt für die Sprenglerzeit eingeschaltet.
Soll weiter geschaltet werden wird das Magnetventil für ein kurze Zeit abgeschaltet, so das sich der Wasserdruck abbaut.
Ist der Wasserdruck abgebaut dann schaltet der Verteiler auf den nächsten Kreis, danach wir das MV wieder geöffnet und der nächte
Sprenger ist iB.
Der Verteiler hat 6 Anschlüsse. Für einen Duchlauf muss man ihn 6 mal EIN und wieder ausschalten.
Man braucht für einen voll belegten Verteiler 12 Zeiteinstellungen, 6 für EIN und 6 für AUS.
Eine GA zum starten und stoppen.
Eine GA zum schlten des MV.
Wie setze ich das jetzt um ?
Gruß NetFritz
TWS 2400 #109 VPN offen, Reboot jederzeit

MiniMaxV2
Reactions:
Beiträge: 274
Registriert: Sa Jan 12, 2019 8:41 pm
Wohnort: Bremen
Hat sich bedankt: 342 Mal
Danksagung erhalten: 151 Mal

#2

Beitrag von MiniMaxV2 »

Ich würde das mit einem Zähler lösen. Ein Monoflop macht dir das Taktsignal und die Wartezeit. Beim Überlauf des Zählers hörst wieder auf weiter zu schalten. Die Zeit fütterst du über einen Switch, ob grade Impuls Zeit oder Wasser Zeit gilt.

Fang doch einfach an, dir deine Eingänge und Ausgänge zu definieren und dann stück für Stück weiter. Z.b. Zuerst der Zähler mit Überlauf. So würde ich da ran gehen :)
LG
Hans Martin
timberwolf413 (950Q) - VPN offen - reboot erlaubt / timberwolf610 (950Q) - VPN offen - reboot erlaubt

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#3

Beitrag von Robosoc »

NetFritz hat geschrieben: Mo Apr 27, 2020 8:04 pm Gibt es schon für das Zustandsmodul im Knowledge Base schon eine Beschreibung?
Am Ende des Abschnitts zur Statemachine in der KB ist ein Link zur ausführlicheren Erklärung.

KB:
app.php/kb/viewarticle?a=115#Statemachine

Ausführliche Beschreibung Statemachine
viewtopic.php?f=65&t=2019

Aber bedenke, dass es den Custim Baustein erst ab Version 1.6 gibt... Also aktuell nur in den Insider Preview Versionen.

Deine Aufgabe klingt für mich aber auch erstmal nicht unbedingt nach der Statemachine, weil Du ja nur linear nacheinander, durch die Zustände gehen kannst. Ich würde es wohl auch eher mit diversen Monoflop nacheinander lösen, sofern Du unterschiedliche Zeiten je Abschnitt einstellen möchtest.
Zuletzt geändert von Robosoc am Di Apr 28, 2020 7:15 am, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#4

Beitrag von Robosoc »

Hab hier mal was vorbereitet...eigentlich dachte ich das würde laufen, aber irgendwie muss ich einen Fehler eingebaut haben. Ich habe jetzt aber keinee Zeit mehr mich mehr damit zu beschäftigen...Vielleicht kann jemand - oder Du selber "NetFritz" - ja hier weitermachen.

Code: Alles auswählen

{
  "Level": [
    ["$start","bool",false],
    ["$out","bool",false],
    ["$next","bool",false],
    ["$state","integer",0],
    ["$factor","integer",0],
    ["$delay","integer",1],
    ["$time_1","integer",1],
    ["$time_2","integer",2],
    ["$time_3","integer",3],
    ["$time_4","integer",4],
    ["$time_5","integer",5],
    ["$time_6","integer",6],
    ["$gate_1","bool",false],
    ["$gate_2","bool",false],
    ["$gate_3","bool",false],
    ["$gate_4","bool",false],
    ["$gate_5","bool",false],
    ["$gate_6","bool",false],
    ["$const_1","integer",1],
    ["$const_2","integer",2],
    ["$VAR<Inhibit?>","bool",false]
  ],
  "Module": [
    ["Break", ["$VAR<Inhibit?>"]],
    // Startbedingung und Ventil weiterschalten
    ["Multiplexer",[0,"$const_2"],"$factor","$next"],
    ["Polynomial", "$factor", "$state",[0, "$state"]],
    ["Latch","$const_1","$state","$start",1],
    ["BinaryDemultiplexer","$state",["$gate_1","$gate_2","$gate_3","$gate_4","$gate_5","$gate_6",0]],
    ["Latch",0,"$state","$gate_6",2],
    //
    // Ventillaufzeiten werden im folgenden Abschnitt abgearbeitet
    ["Monoflop","$gate_1",0,"$out","$time_1",2],
    ["Monoflop","$gate_2",0,"$out","$time_2",2],
    ["Monoflop","$gate_3",0,"$out","$time_3",2],
    ["Monoflop","$gate_4",0,"$out","$time_4",2],
    ["Monoflop","$gate_5",0,"$out","$time_5",2],
    ["Monoflop","$gate_6",0,"$out","$time_6",2],
    //
    // Pausenzeiten werden im folgenden Abschnitt geregelt
    ["Monoflop","-$out",0,"$next","$delay",2]
  ],  
  "Input": [
    ["Start","Startet dies Bewässerung bei positivier Flanke","$start","c"],
    ["Verzögerung Ventilwechsel","Pausenzeit in dem das Ventil umgeschaltet wird","$delay","u"],
    ["Bewässerungzeit 1","Bewässerungszeit für den Kreis 1","$time_1","u"],
    ["Bewässerungzeit 2","Bewässerungszeit für den Kreis 1","$time_2","u"],
    ["Bewässerungzeit 3","Bewässerungszeit für den Kreis 1","$time_3","u"],
    ["Bewässerungzeit 4","Bewässerungszeit für den Kreis 1","$time_4","u"],
    ["Bewässerungzeit 5","Bewässerungszeit für den Kreis 1","$time_5","u"],
    ["Bewässerungzeit 6","Bewässerungszeit für den Kreis 1","$time_6","u"],
    ["Inhibit","Inhibit","$VAR<Inhibit?>","u"]
  ],
  "Output": [
    ["Aktorausgang","Schaltet den Ventilaktor","$out","ct"]
  ]
}
NetFritz, es ist irgendwie netter Dich bei einem echten Vornamen anzusprechen...schreibe den doch gerne in Deine Signatur, so wie ich.



Bei der Gelegenheit ist mir aufgefallen, dass wir den CustomCode "BinaryDemultiplexer" noch garnicht in der KB beschrieben haben...Holen wir nach.
Zuletzt geändert von Robosoc am Di Apr 28, 2020 10:01 am, insgesamt 2-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
NetFritz
Reactions:
Beiträge: 121
Registriert: Sa Okt 13, 2018 4:23 pm
Hat sich bedankt: 12 Mal
Danksagung erhalten: 23 Mal

#5

Beitrag von NetFritz »

Hallo vielen Dank für die Auskunft.
Ich werde mal mit deiner Logig auseinandersetzen.
Gruß Fritz
TWS 2400 #109 VPN offen, Reboot jederzeit

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#6

Beitrag von Robosoc »

so läuft jetzt...es waren zwei Fehler in meiner Logik. Viel Erfolg und immer gut Wasser :-)

Code: Alles auswählen

{
  "Level": [
    ["$start","bool",false],
    ["$out","bool",false],
    ["$next","bool",false],
    ["$state","integer",0],
    ["$factor","integer",0],
    ["$delay","integer",1],
    ["$time_1","integer",1],
    ["$time_2","integer",2],
    ["$time_3","integer",3],
    ["$time_4","integer",4],
    ["$time_5","integer",5],
    ["$time_6","integer",6],
    ["$gate_1","bool",false],
    ["$gate_2","bool",false],
    ["$gate_3","bool",false],
    ["$gate_4","bool",false],
    ["$gate_5","bool",false],
    ["$gate_6","bool",false],
    ["$state_1","bool",false],
    ["$state_2","bool",false],
    ["$state_3","bool",false],
    ["$state_4","bool",false],
    ["$state_5","bool",false],
    ["$state_6","bool",false],
    ["$const_1","integer",1],
    ["$const_2","integer",2],
    ["$VAR<Inhibit?>","bool",false]
  ],
  "Module": [
    ["Break", ["$VAR<Inhibit?>"]],
    // Ventil weiterschalten
    ["Multiplexer",["$const_1","$const_2"],"$factor","$next"],
    ["Polynomial", "$factor", "$state",[0, "$state"]],
    ["Latch","$const_1","$state","$start",1],
    ["BinaryDemultiplexer","$state",["$gate_1","$gate_2","$gate_3","$gate_4","$gate_5","$gate_6",0]],
    ["Latch",0,"$state","$gate_6",2],
    //
    // Ventillaufzeiten werden im folgenden Abschnitt geregelt
    ["Monoflop","$gate_1",0,"$state_1","$time_1",2],
    ["Monoflop","$gate_2",0,"$state_2","$time_2",2],
    ["Monoflop","$gate_3",0,"$state_3","$time_3",2],
    ["Monoflop","$gate_4",0,"$state_4","$time_4",2],
    ["Monoflop","$gate_5",0,"$state_5","$time_5",2],
    ["Monoflop","$gate_6",0,"$state_6","$time_6",2],
    //
    // Pausenzeiten werden im folgenden Abschnitt geregelt
    ["Or",["$state_1","$state_2","$state_3","$state_4","$state_5","$state_6"],"$out"],
    ["Monoflop","$out",0,"$next","$delay",4]
  ],  
  "Input": [
    ["Start","Startet dies Bewässerung bei positivier Flanke","$start","c"],
    ["Verzögerung Ventilwechsel","Pausenzeit in dem das Ventil umgeschaltet wird","$delay","u"],
    ["Bewässerungzeit 1","Bewässerungszeit für den Kreis 1","$time_1","u"],
    ["Bewässerungzeit 2","Bewässerungszeit für den Kreis 1","$time_2","u"],
    ["Bewässerungzeit 3","Bewässerungszeit für den Kreis 1","$time_3","u"],
    ["Bewässerungzeit 4","Bewässerungszeit für den Kreis 1","$time_4","u"],
    ["Bewässerungzeit 5","Bewässerungszeit für den Kreis 1","$time_5","u"],
    ["Bewässerungzeit 6","Bewässerungszeit für den Kreis 1","$time_6","u"],
    ["Inhibit","Inhibit","$VAR<Inhibit?>","u"]
  ],
  "Output": [
    ["Aktorausgang","Schaltet den Ventilaktor","$out","ct"]
  ]
}
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
NetFritz
Reactions:
Beiträge: 121
Registriert: Sa Okt 13, 2018 4:23 pm
Hat sich bedankt: 12 Mal
Danksagung erhalten: 23 Mal

#7

Beitrag von NetFritz »

Hallo
Klasse läuft.
Gruß NetFritz
TWS 2400 #109 VPN offen, Reboot jederzeit

StefanW
Elaborated Networks
Reactions:
Beiträge: 9752
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4869 Mal
Danksagung erhalten: 7766 Mal
Kontaktdaten:

#8

Beitrag von StefanW »

Hallo zusammen, tolle Lösung.

Wäre es möglich, nochmal eine kurze Zusammenfassung zu geben, was damit nun genau funktioniert für alle Mitleser?

Sven: Wäre es möglich, dass Du noch Angaben zur Lizensierung machst, also insofern ob jeder das frei benutzen darf? Bitte am Besten im Footer Deines Codes unter Angabe der Lizenz. Wir haben für sowas die sehr einfache TOLL gemacht. Steht alles hier: viewtopic.php?f=65&t=1583


lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#9

Beitrag von Robosoc »

Jo, danke und sorry, mach ich:

Ziel des Codes: Ansteuerung eines Aktors für den Gardena Wasserverteiler "automatic Bewässerungssystem" zum Beispiel Gardena Artikel 1197-20

Der Wasserverteiler hat 6 Stellungen, jeweils ist nur eine Stellung aktiv. Die Stellungen werden automatisch vom Verteiler weitergeschaltet (vermutlich durch den Wasserdruck), wenn der Verteiler vom Stromnetz getrennt wird.

Nach dem Empfang einer psoitiven Flanke am Start-Eingang schaltet der Logikbaustein den einen Ausgang abhängig von vorgegebenen Bewässerungszeiten (6 individuelle Eingäge) jeweils für die eingestellte Zeit ein, anschließend aus und wartet zwischen den Bewässerungszeiten eine vorgegebene Zeit (in der der Wasserverteiler dann das Ausgangsventil wechseln kann.

Eine positive Flanke auf dem Start-Eingang erzeugt also beispielsweise folgendes Ausgangsbild, bei nachfolgenden Parametereinstellungen:
Anmerkung 2020-04-30 152938.jpg
Anmerkung 2020-04-30 153222.jpg

Code: Alles auswählen

// Logik für Gardena Wasserverteiler
// Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.

{
  "Level": [
    ["$start","bool",false],
    ["$out","bool",false],
    ["$next","bool",false],
    ["$state","integer",0],
    ["$factor","integer",0],
    ["$delay","integer",1],
    ["$time_1","integer",1],
    ["$time_2","integer",2],
    ["$time_3","integer",3],
    ["$time_4","integer",4],
    ["$time_5","integer",5],
    ["$time_6","integer",6],
    ["$gate_1","bool",false],
    ["$gate_2","bool",false],
    ["$gate_3","bool",false],
    ["$gate_4","bool",false],
    ["$gate_5","bool",false],
    ["$gate_6","bool",false],
    ["$state_1","bool",false],
    ["$state_2","bool",false],
    ["$state_3","bool",false],
    ["$state_4","bool",false],
    ["$state_5","bool",false],
    ["$state_6","bool",false],
    ["$const_1","integer",1],
    ["$const_2","integer",2],
    ["$VAR<Inhibit?>","bool",false]
  ],
  "Module": [
    ["Break", ["$VAR<Inhibit?>"]],
    // Ventil weiterschalten
    ["Multiplexer",["$const_1","$const_2"],"$factor","$next"],
    ["Polynomial", "$factor", "$state",[0, "$state"]],
    ["Latch","$const_1","$state","$start",1],
    ["BinaryDemultiplexer","$state",["$gate_1","$gate_2","$gate_3","$gate_4","$gate_5","$gate_6",0]],
    ["Latch",0,"$state","$gate_6",2],
    //
    // Ventillaufzeiten werden im folgenden Abschnitt geregelt
    ["Monoflop","$gate_1",0,"$state_1","$time_1",2],
    ["Monoflop","$gate_2",0,"$state_2","$time_2",2],
    ["Monoflop","$gate_3",0,"$state_3","$time_3",2],
    ["Monoflop","$gate_4",0,"$state_4","$time_4",2],
    ["Monoflop","$gate_5",0,"$state_5","$time_5",2],
    ["Monoflop","$gate_6",0,"$state_6","$time_6",2],
    //
    // Pausenzeiten werden im folgenden Abschnitt geregelt
    ["Or",["$state_1","$state_2","$state_3","$state_4","$state_5","$state_6"],"$out"],
    ["Monoflop","$out",0,"$next","$delay",4]
  ],  
  "Input": [
    ["Start","Startet dies Bewässerung bei positivier Flanke","$start","c"],
    ["Verzögerung Ventilwechsel","Pausenzeit in dem das Ventil umgeschaltet wird","$delay","u"],
    ["Bewässerungzeit 1","Bewässerungszeit für den Kreis 1","$time_1","u"],
    ["Bewässerungzeit 2","Bewässerungszeit für den Kreis 1","$time_2","u"],
    ["Bewässerungzeit 3","Bewässerungszeit für den Kreis 1","$time_3","u"],
    ["Bewässerungzeit 4","Bewässerungszeit für den Kreis 1","$time_4","u"],
    ["Bewässerungzeit 5","Bewässerungszeit für den Kreis 1","$time_5","u"],
    ["Bewässerungzeit 6","Bewässerungszeit für den Kreis 1","$time_6","u"],
    ["Inhibit","Inhibit","$VAR<Inhibit?>","u"]
  ],
  "Output": [
    ["Aktorausgang","Schaltet den Ventilaktor","$out","ct"]
  ]
}
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#10

Beitrag von Robosoc »

@NetFritz : Kannst Du vielleicht noch einen Tipp für eine Mindest-Pausenzeit (erster Timer-Wert) angeben, den Du brauchst, damit der Verteiler auch sicher weiterschaltet? Vermutlich reichen 1-2 Sekunden, oder?
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
Antworten

Zurück zu „Zusätzliche Logikbausteine“