AverageTimeCal (FB)

FUNCTION_BLOCK AverageTimeCal

Kurzbeschreibung

Durchschnittswertbildung eines Analogwertes über vier verschiedene Zeiträume
Mittelwertbildung: Gewichteter Mittelwert ( siehe untenstehende Formel )
Typische Anwendung: Zeitliche Mittelung der Außentemperatur

Darstellung

../_images/AverageTimeCal_FB.png

Schnittstellen

Eingänge

Name Datentyp Wertebereich Initialwert Funktion
rIn REAL     Analogwerteingang

Ausgänge

Name Datentyp Wertebereich Initialwert Funktion
rOutCH0 REAL     Durchschnittswert Zeitraum 1
rOutCH1 REAL     Durchschnittswert Zeitraum 2
rOutCH2 REAL     Durchschnittswert Zeitraum 3
rOutCH3 REAL     Durchschnittswert Zeitraum 4
rOutMin REAL     Minimalwert aller Messwerte
rOutMax REAL     Maximalwert aller Messwerte
dtLastNewValue DATE_AND_TIME     Speicherzeitpunkt des letzten Messwertes
sErr STRING     Aktueller Fehlertext

Sollwerte / Parameter

Name Datentyp Wertebereich Initialwert Funktion
xCalculation BOOL   TRUE Freigabe / Sperrung der Datenaufzeichnung
xResetOnInput BOOL   FALSE Initialisierung der Messwertspeicherung und der Durchschnittswertausgänge mit rIn
rInitValue REAL   10 Initialisierungswert für den Messwertespeicher und die Durchschnittswertausgänge bei eInitial = eInit2.InitValue.
tInitDelay TIME   5s Verzögerungszeit für die Messwertspeicherung bei eInitial = eInit2.InputValueDelayed.
eInitial eInit2   eInit2.LastValue Festlegung der Art der Initialisierung
wCH3Time WORD   48 Festlegung des Zeitraums 4 in Stunden
wCH2Time WORD   36 Festlegung des Zeitraums 3 in Stunden
wCH1Time WORD   24 Festlegung des Zeitraums 2 in Stunden
wCH0Time WORD   12 Festlegung des Zeitraums 1 in Stunden
wInterval WORD   15 Festlegung des Aufzeichnungsintervalls in Minuten

Funktionsbeschreibung

Allgemeines

Mittelwertbildung

Der Wert am Analogwerteingang rIn wird Aufzeichnungsintervall iInterval ( Voreinstellung = 15 Minuten ) erfasst.
zur Berechnung des Mittelwerts eines Zeitraums X ( X = 0 ... 3 ) werden nun jeweils drei Faktoren ermittelt.


Faktor 1 - Zeitraum X: Gesamtanzahl der zu berücksichtigenden Messwerte

Faktor 1 = ( iCHXTime * 60 ) / iInterval


Faktor 2 - Zeitraum X: Faktor für den gespeicherten Durchschnitt

Faktor 2 = ( Faktor 1 - 1 ) / Faktor 1


Faktor 3 - Zeitraum X: Faktor für den aktuellen Wert am Analogwerteingang rIn

Faktor 3 = 1 - Faktor 2


Der Mittelwert jedes Zeitraums wird im Aufzeichnungsintervall iInterval gemäß nachfolgender Formel berechnet und auf die
Durchschnittswertausgänge übertragen:


Mittelwert = ( Alter Mittelwert * Faktor 2 ) + ( rIn * Faktor 3 )


Legende: X = 0 ... 3

Beispiel

iInterval = 15 Minuten, wCH0Time = 12 Stunden, Alter Mittelwert = 20.0, rIn = 22.0

Faktor 1 = 48

Faktor 2 = 47 / 48

Faktor 3 = 1 / 48

Mittelwert = 20.041

Durchschnittswertausgänge rOutCHX ( X = 0 ... 3 )

Am Durchschnittswertausgang rOutCHX ( X = 0 ... 3 ) steht erstmalig nach der Zeitdauer iCHXTime der Mittelwert der erfassten Eingangswerte zur Verfügung.

Minimalwertausgang rOutMin

Am Minimalwertausgang rOutMin steht erstmalig nach einem Aufzeichnungsintervall iInterval der absolute Minimalwert aller erfassten Eingangswerte
zur Verfügung.

Maximalwertausgang rOutMax

Am Maximalwertausgang rOutMax steht erstmalig nach einem Aufzeichnungsintervall iInterval der absolute Maximalwert aller erfassten Eingangswerte
zur Verfügung.

Zeitstempel dtLastNewValue

Am Zeitstempelausgang dtLastNewValue steht erstmalig nach einem Aufzeichnungsintervall iInterval der Zeitstempel der letzten Ablage im Messwertespeicher
zur Verfügung.

Fehlertext sErr

Am Ausgang für den aktuellen Fehlertext sErr steht im Fehlerfall ein beschreibender Text zur Verfügung. Bei Fehlerfreiheit wird ein Leerstring ausgegeben.

Art der Initialisierung eInitial

Mit diesem Sollwert / Parameter wird die Art der Initialisierung des Messwertspeichers und der Durchschnittswertausgänge festgelegt. Folgende Optionen sind möglich:
Art Wert der Initialierung Hinweis
eInit2.InitValue rInitValue Einstellbarer Initialwert
eInit2.InputValue rIn Eingangswert
eInit2.InputValueDelayed rIn Verzögerter Eingangswert
eInit2.LastValue Durchschnitt - Messwertespeicher ( Messwertespeicher gefüllt ) Letzter Wert
eInit2.LastValue rIn ( Messwertespeicher leer ) Letzter Wert

Freigabe / Sperrung der Datenaufzeichnung xCalculation

Mit diesem Sollwert / Parameter wird die Datenaufzeichnung freigegeben ( = TRUE ) bzw. gesperrt ( = FALSE )

Rücksetzung des Messwertespeichers / der Durchschnittswertausgänge xResetOnInput

Mit diesem Sollwert / Parameter werden der Meswertespeicher / die Durchschnittswertausgänge auf den Wert ‘rIn’ zurück gesetzt ( = TRUE ).

Visualisierung




Information

Element Autoren Datum Version Anmerkungen
Funktion Adam Bartod 06.2016 1.0 Ursprungsversion
Programmierung Adam Bartod 06.2016 1.0 Ursprungsversion
Test   12.2016 1.0 Ursprungsversion
Dokumentation Jochen Reu 11.2017 1.0 Ursprungsversion

Codesys

InOut:
Scope Name Type Initial Comment
Input rIn REAL   Analogwerteingang
xCalculation BOOL TRUE Freigabe / Sperrung der Datenaufzeichnung
xResetOnInput BOOL FALSE Initialisierung der Messwertspeicherung und der Durchschnittswertausgänge mit rIn
rInitValue REAL 10 Initialisierungswert für den Messwertespeicher und die Durchschnittswertausgänge bei eInitial = eInit2.InitValue.
tInitDelay TIME TIME#5s0ms Verzögerungszeit für die Messwertspeicherung bei eInitial = eInit2.InputValueDelayed.
eInitial eInit2 eInit2.LastValue Festlegung der Art der Initialisierung
wCH3Time WORD 48 Festlegung des Zeitraums 4 in Stunden
wCH2Time WORD 36 Festlegung des Zeitraums 3 in Stunden
wCH1Time WORD 24 Festlegung des Zeitraums 2 in Stunden
wCH0Time WORD 12 Festlegung des Zeitraums 1 in Stunden
wInterval WORD 15 Festlegung des Aufzeichnungsintervalls in Minuten
Output rOutCH0 REAL   Durchschnittswert Zeitraum 1
rOutCH1 REAL   Durchschnittswert Zeitraum 2
rOutCH2 REAL   Durchschnittswert Zeitraum 3
rOutCH3 REAL   Durchschnittswert Zeitraum 4
rOutMin REAL   Minimalwert aller Messwerte
rOutMax REAL   Maximalwert aller Messwerte
dtLastNewValue DT   Speicherzeitpunkt des letzten Messwertes
sErr STRING   Aktueller Fehlertext