CalculateAverageTime (Berechen Durchschnitt mit Zeitfilter)

Dieser Baustein gehört zum Paket „Calculate/Time (Berechnung/Zeit)“.

Paket-Preis: 22,50€

Kurzbeschreibung

Diese Funktion berechnet automatisch den Durchschnittswert eines eingehenden Zahlenwerts über eine bestimmte Zeit. Es kann individuell eingestellt werden, wie oft neue Werte einfließen sollen und in welchem Rhythmus das Ergebnis ausgegeben wird. Die Funktion startet erst, wenn sie durch einen Steuerbefehl aktiviert wird. Zusätzlich werden zur Kontrolle Log-Nachrichten ausgegeben, um bei eventuellen Fehlern oder zur Nachverfolgung Hinweise zu erhalten.

Besonderheit

  • Funktionale Flexibilität:

    • Die Aktualisierungszeit (UpdateTime) und die Ausgabefrequenz (OutputTime) sind individuell einstellbar.

    • Die Methode startet und stoppt durch einen Steuerwert (Activate).

    • Der Durchschnittswert berücksichtigt alle Eingänge seit der letzten Ausgabe.

  • Fehlerbehandlung:

    • Fehler beim Starten oder bei der Verarbeitung werden intern aufgezeichnet und über spezielle Ausgänge ausgegeben.

    • Für jede relevante Aktion (Ausführung, Aktualisierung, Ausgabe) gibt es eigene Fehlerprotokolle.

  • Grenzen und Validierungen:

    • Die Berechnung erfolgt nur, wenn ein gültiger Aktivierungswert gesetzt wurde.

    • Eine Division durch Null wird vermieden, indem ein Minimalwert als Teiler verwendet wird.

Diese Funktion ist dafür konzipiert, zyklisch eingehende Zahlenwerte zu sammeln, deren Summe intern zwischengespeichert und später in regelmäßigen Abständen in einen Durchschnittswert umgewandelt wird. Die Berechnung beginnt erst, wenn der Aktivierungswert eingeschaltet ist. Sobald aktiviert, werden zwei Zeitfenster festgelegt:

  1. UpdateTime: Gibt an, in welchen Abständen neue Werte verarbeitet und zur Summe hinzugefügt werden.

  2. OutputTime: Gibt an, in welchen Abständen der aktuelle Durchschnitt berechnet und ausgegeben wird.

Zwischen diesen Zeitpunkten wird die Summe der eingehenden Werte gespeichert. Nach Ablauf der Ausgabezeit wird die gespeicherte Summe durch die Anzahl der Messwerte geteilt. Dadurch entsteht ein geglätteter Durchschnitt, der sich besonders für die Überwachung und Auswertung dynamischer Daten eignet, wie z. B. Temperaturverläufe, Stromverbräuche oder Sensorwerte.

Wird die Funktion deaktiviert, werden sowohl die Terminierung der Verarbeitung gestoppt als auch die Zwischenspeicher zurückgesetzt. Bei einem erneuten Aktivieren beginnt die Berechnung wieder von vorne.

Es wird außerdem sichergestellt, dass bei ungültigen Einstellungen (z. B. wenn das Verhältnis zwischen UpdateTime und OutputTime rechnerisch nicht sinnvoll ist) automatisch ein Minimalwert verwendet wird, damit die Berechnung fehlerfrei durchgeführt werden kann.

Zur besseren Nachvollziehbarkeit sind die letzten Fehlermeldungen oder Systemzustände als Textausgabe sichtbar. Diese Ausgänge liefern Informationen, ob beim Zeitmanagement oder bei der Berechnung ein Problem aufgetreten ist.

  • Activate (bool):
    Aktiviert oder deaktiviert den Baustein.
  • Input (double):
    Der Messwert, der in die Durchschnittsberechnung einfließen soll. Wird regelmäßig eingelesen.
  • UpdateTime (timespan): 
    Gibt an, wie häufig neue Werte eingelesen und verarbeitet werden. Standardwert ist 1 Sekunde.
  • OutputTime (timespan):
    Gibt an, in welchem Rhythmus der Durchschnitt berechnet und ausgegeben wird. Standardwert ist 10 Sekunden.
  • Output (double):
    Hier wird der berechnete Durchschnitt ausgegeben.
  • LogExecute (string):
    Protokolliert Fehler oder Statusmeldungen beim Start oder Stopp der Berechnung.
  • LogScheduleUpdate (string):
    Protokolliert Fehler oder Statusmeldungen beim Einlesen der Werte.
  • LogScheduleOutput (string):
    Protokolliert Fehler oder Statusmeldungen bei der Ausgabe des Durchschnitts.

Beispiel 1 – Temperaturüberwachung in einem Wohnraum:

In einem Wohnzimmer wird regelmäßig die Temperatur gemessen. Die Durchschnittstemperatur der letzten 5 Minuten soll alle 30 Sekunden ausgegeben werden, um Temperaturschwankungen zu glätten.

  • Eingabe:
    • Activate: true
    • Input: 21.4, 21,6, 21.5, ,...
    • UpdateTime: 10s
    • OutputTime: 30s
  • Ausgabe:
    • Output: Durchschnitt der letzten 3 Messungen, z. B. 21.5 °C

Beispiel 1 – Stromverbrauchsauswertung in einem Büro:

Der Stromverbrauch eines Druckers wird sekundengenau erfasst. Alle 60 Sekunden soll der Durchschnitt ausgegeben werden.

  • Eingabe:
    • Activate: true
    • Input: 80.0, 85.0, 90.0,...
    • UpdateTime: 5s
    • OutputTime: 1min
  • Ausgabe:
    • Output: Durchschnittlicher Stromverbrauch der letzten 60 Sekunden
Warum passiert nichts, obwohl ich Werte eingebe?

Stellen Sie sicher, dass der Eingang Activate auf true steht. Nur dann beginnt die Verarbeitung.

Was passiert, wenn ich sehr kleine Werte für UpdateTime oder OutputTime einstelle?

Das System korrigiert automatisch, falls es zu einer ungültigen Teilung kommt, und verwendet dann einen Minimalwert, damit weiterhin ein Ergebnis geliefert werden kann.

Wofür sind die Textausgänge da?

Die Textausgänge LogExecute, LogScheduleUpdate und LogScheduleOutput zeigen an, ob ein interner Fehler aufgetreten ist oder geben Hinweise zum aktuellen Systemzustand. Diese dienen der Fehlersuche und Kontrolle.

  • Version 3.0.10
    • First Release

Baustein-Support

Wenn Sie X1-Logik-Baustein-Support benötigen, senden Sie uns bitte zusätzlich den Log (LogExecute, LogScheduleUpdate und LogScheduleOutput, welcher als Ausgang des Bausteins ausgegeben wird) und eine detaillierte Beschreibung des Problems zu!