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

[Hinweis] Zählerlogik mit Nulldurchgangserkennung und Wertvorgabe

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
Antworten

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

Zählerlogik mit Nulldurchgangserkennung und Wertvorgabe

#1

Beitrag von Robosoc »

Logik aus der Diskussion: viewtopic.php?f=9&t=2762

Ich nutze für einige Verbrauchs-Zähler einen recht einfachen ABB-KNX-Eingang, der zählen kann, aber nicht viel mehr.
Den Rest mache ich mit folgender Logik und das Ergebnis schreibe ich in eine Zeitserie

Senden per C = on change oder T=Timer (Triggereingang setzen)
Ich empfehle für diese Logik unbedingt Persistenz zu aktivieren!

Der Zähler zählt immer weiter nach oben und übernimmt im Fall, dass der eingehende Zählerwert kleiner ist als der zuvor, automatisch den letzten Ausgangswert der Logik als Startwert (3ter Eingang). Das ist für die Fälle wichtig, wenn Dein KNX-Zähler bei einer Neuprogrammierung den Wert verliert oder wenn der KNX-Zählerbereich beschränkt ist und er irgendwann bei 0 anfängt...

Code: Alles auswählen

/**
* Zählerlogik mit Nulldurchgangserkennung und Wertvorgabe
*
* Nutzungsrechte:
* 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.
*/
{
  "Input":[
    ["ext. Zähler","Wert des externen Impuls-Zählers","$CountExt","c"],
    ["Teiler","Teiler zum Herstellen des korrekten Zählerwertes. Beispiel: Wenn ein Impuls = 0,01 Zählerwerte sind, dann ist der Teiler 100","$Teiler","u"],
    ["Startwert","Startwert für den Zähler","$CountInit","c"]
  ],
  "Output":[
    ["Zählerwert","Wert des Zählers","$Value","c"]
  ],
  "Level":[
    ["$CountExt", "integer", 0],
    ["$CountInit", "float", 0.0],
    ["$lastCountExt", "integer", 0],
    ["$Reset", "bool", false],
    ["$Value", "float", 0.0],
    ["$ValueAdder", "float", 0.0],
    ["$constTrue", "bool", true],
    ["$const1", "integer", 1],
    ["$Teiler", "integer", 100]
  ],
  "Module":[
    ["Comparator" , "$lastCountExt" , "$Reset" , "$CountExt"], 
    ["Latch","$Value","$CountInit","$Reset",0],
    ["Latch","$CountExt","$lastCountExt","$constTrue",0],
    ["Ratio","$CountExt","$ValueAdder", "$Teiler"],
    ["Polynomial", "$const1", "$Value",["$CountInit", "$ValueAdder"]]
  ]
}
Bild
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
Antworten

Zurück zu „Zusätzliche Logikbausteine“