[NEUHEIT] Zeitlicher Mittelwert für Tages und Monatsmittelwerte

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.
Antworten

Ersteller
Robert_Mini
Reactions:
Beiträge: 2048
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 474 Mal
Danksagung erhalten: 888 Mal

Zeitlicher Mittelwert für Tages und Monatsmittelwerte

#1

Beitrag von Robert_Mini » So Feb 09, 2020 5:33 pm

Hallo zusammen!

Wie angekündigt ein weiterer Baustein zur Mittelwertberechnung für die Auswertung klassischer Mittelwerte wie mittlere Tagestemperatur oder mittlere Monatstemperatur.

Funktion:
Der Baustein berechnet kontinuierlich die Mittelwerte aus den Daten am Eingang, zB aktuelle Temperatur die zyklisch auf den Bus gesendet wird.
Der Tagesmittelwert wird um Mitternacht zurückgesetzt, der Monatsmittelwert um Mitternacht am 1. des Monats.
Hinweis: Persistenz muss aktiviert sein, damit nach einem Reboot o.ä. der Mittelwert korrekt weiter berechnet wird.

Anwendungsbeispiele:
Tagesmittelwert verschiedener Temperaturen, o.ä.

Eingänge:
  • Eingang: Messgröße, die gemittelt werden soll zB ein Temperaturwert.
Ausgänge:
  • Mittelwert Tag aktuell: Laufender Mittelwert des aktuellen Tages, der aus allen empfangenen Werten seit Mitternacht gebildet wird.
  • Mittelwert Vortag: Mittelwert des Vortages, wird nur 1x beim Reset gesetzt und kann zB zum Abspeichern oder Anzeige in der Visu (zB. Vortag) verwendet werden.
  • Mittelwert Monat aktuell (optional über + einblendbar): Laufender Mittelwert des aktuellen Monats, der aus allen empfangenen Werten seit Monatswechsel gebildet wird.
  • Mittelwert Vormonat (optional über + einblendbar): Mittelwert des Vormonats, wird nur 1x beim Reset gesetzt und kann zB zum Abspeichern oder Anzeige in der Visu (zB. Vormonat) verwendet werden.
  • Counter Tag (optional über + einblendbar): Anzahl der Messwerte, aus der der aktuelle Tagesmittelwert gebildet wird.
  • Counter Monat (optional über + einblendbar): Anzahl der Messwerte, aus der der aktuelle Monatsmittelwert gebildet wird.
  • Reset (optional über + einblendbar): Sendet beim Reset 1, danach wieder 0.
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.

Falls wer einen freiwilligen Beitrag zur Motivation leisten will: Klick

Viel Spaß damit und gerne Rückmeldung, wenn was fehlt oder euch die Sache gefällt.
Robert


Der Baustein:

Minimal:
Bild

Mit allen Ausgängen:
Bild

Code: Alles auswählen

/**===========================================================
Zeitliche Mittelwerte mit Reset bei Tages und Monatswechsel 
und Möglichkeit zur Speicherung/Senden des letzten Wertes 
vor dem Reset 
============================================================*/

{
  "Input": [
        ["Eingang","Messgröße","$I_Input","a"]
  ],
  "Output": [
	["Mittelwert Tag aktuell","aktueller Mittelwert seit Tagesreset","$Avg","ct"],
	["Mittelwert Vortag","Mittelwert vor letztem Tagesreset","$Avg_Vortag","ct"],
	["Mittelwert Monat aktuell","Mittelwert seit Monatswechsel","$Avg_Monat?","c"],
	["Mittelwert Vormonat","Mittelwert vor letztem Monatsreset","$Avg_Vormonat?","c"],
	["Counter Tag","Anzahl Werte","$Counter?","c"],
	["Counter Monat","Anzahl Werte","$Counter2_?","c"],
	["Reset","Reset","$Reset?","c"]
  ],
  "Level": [
	["$I_Input","float",0.0],
	["$I_Reset","bool",false],
	["$Sum","float",0.0],
	["$Sum_Monat","float",0.0],
	["$Sum_MonatNeu","float",0.0],
	["$Avg","float",0.0],
	["$Avg_Vortag","float",0.0],
	["$Avg_Monat","float",0.0],
	["$Avg_Vormonat","float",0.0],
	["$Counter","integer",0],
	["$Counter2_","integer",0],
	["$Counter2Neu","integer",0],
	["$Reset","bool",false],
	["$ResetTagTrigger","bool",false],
	["$ResetMonatTrigger","bool",false],
	["$ResetTag","string","30 0 0 2-31 * *"],
	["$ResetMonat","string","30 0 0 1 * *"],
	["$KonstTrue","bool",true],
	["$Konst0","float",0.0],
	["$Konst1","float",1.0],
	["$KonstFalse","bool",false]
  ],
  "Module": [
	// Trigger für Reset
	["Cron","$KonstTrue","$ResetTagTrigger",0,"$ResetTag"],
	["Cron","$KonstTrue","$ResetMonatTrigger",0,"$ResetMonat"],
	["Or" , ["$ResetTagTrigger" , "$ResetMonatTrigger"], "$Reset"],
		
	// Wert auf Vortag speichern
	["Latch","$Avg","$Avg_Vortag","$Reset",0],
		
	// Summe und Counter für Tagmittelwert zurücksetzen
	["Multiplexer",["$Counter","$Konst0"],"$Counter","$Reset"],
	["Multiplexer",["$Sum","$Konst0"],"$Sum","$Reset"],
		
	// Wert auf Vortag speichern
	["Latch","$Avg_Monat","$Avg_Vormonat","$ResetMonatTrigger",0],
		
	// Summe und Counter für Monatsmittelwert zurücksetzen
	["Multiplexer",["$Counter2_","$Konst0"],"$Counter2_","$ResetMonatTrigger"],
	["Multiplexer",["$Sum_Monat","$Konst0"],"$Sum_Monat","$ResetMonatTrigger"],
		
	// Summe um aktuellen Mittelwert erhöhen + Counter+1
	["Polynomial","$Konst1","$Sum",["$Sum","$I_Input"]],
	["Polynomial","$Konst1","$Counter",["$Counter","$Konst1"]],
	// Mittelwert aktualisieren 
	["Ratio", "$Sum", "$Avg", "$Counter"],
	//
	// Wert für Monatsmittel addieren, wenn nicht ResetTag getriggert wurde
	["Polynomial","$Konst1","$Sum_MonatNeu",["$Sum_Monat","$I_Input"]],
	["Polynomial","$Konst1","$Counter2Neu",["$Counter2_","$Konst1"]],
	["Multiplexer",["$Sum_Monat","$Sum_MonatNeu"],"$Sum_Monat","-$ResetTagTrigger"],
	["Multiplexer",["$Counter2_","$Counter2Neu"],"$Counter2_","-$ResetTagTrigger"],
	// Mittelwert aktualisieren 
	["Ratio", "$Sum_Monat", "$Avg_Monat", "$Counter2_"]
  ]
}

/** 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. */
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan

Antworten

Zurück zu „Zusätzliche Logikbausteine“