ForecastOutsideTemp

ForecastOutsideTemp (FB)

FUNCTION_BLOCK ForecastOutsideTemp

Kurzbeschreibung

Vorhersage der Außentemperatur (Vorhersagezeitraum und Funktion einstellbar) Voraussetzung: FB ‘WeatherForecast’ aus der Weather Forecast Library Randbedingung: Die Wettervorhersagedaten müssen mindestens alle 12 Stunden aktualisiert werden Index _FC: Wetter-Vorhersagedaten extern

Index _Int: Wetter-Vorhersagedaten intern | Typische Anwendung: Berechnung der Außentemperatur einer Heiz-/Kühlkurve

Darstellung

Schnittstellen

Eingänge

Name
Datentyp
Wertebereich
Initialwert
Funktion

xEn

BOOL

FALSE

Freigabe - Wettervorhersage (FALSE = Aus, TRUE = Ein)

*rOutsideTemp_In’

REAL

-10.0

Ersatzwert für die Aussentemperatur

xOutsideTempError_In

BOOL

FALSE

Fehlerzustand - Ersatzwert für die Aussentemperatur (FALSE = kein Fehler, TRUE = Fehler)

rFixedValue

REAL

0.0

Festwert für die Aussentemperatur

xError_FC

BOOL

FALSE

Fehlerzustand - Wetter-Vorhersagedaten (FALSE = kein Fehler, TRUE = Fehler)

xDone_FC

BOOL

FALSE

Signal nach dem erfolgreichen Abschluss der Übertragung der Wetter-Vorhersagedaten (ansteigende Flanke)

arData_FC

ARRAY[*] OF WEATHER_FORECAST.WeatherData

Array mit den Wetter-Vorhersagedaten (Ausgang ‘aForecast’ vom FB ‘WeatherForecast’)

Ausgänge

Name
Datentyp
Wertebereich
Initialwert
Funktion

*eMode’

eForecastOutsideTempMode

eForecastOutsideTempMode.Invalid_Mode

Betriebsart (0 = keine, 1 = Vorhersage, 2 = Außentemperatur, 3 = Festwert)

*eFBPeriod_Int’

eForecastOutsideTempPeriod

eForecastOutsideTempPeriod.Invaild_Period

Rückmeldung - Vorhersagebereich - Interne Wetter-Vorhersagedaten (0 = keine, 1 = 3 Stunden, 2 = 6 Stunden, 3 = 9 Stunden, 4 = 12 Stunden, 5 = 24 Stunden, 6 = 36 Stunden, 7 = 48 Stunden, 8 = 72 Stunden, 9 = 96 Stunden)

*eFBFunction_Int’

eForecastOutsideTempFunction

eForecastOutsideTempFunction.Ivalid_Function

Rückmeldung - Funktion - Interne Wetter-Vorhersagedaten (0 = keine, 1 = Minimalwert 2 = Maximalwert, 3 = Durchschnittswert)

*rOutsideTemp_Out’

REAL

Berechnete Aussentemperatur

xError

BOOL

FALSE

Fehlerzustand (FALSE = kein Fehler, TRUE = Fehler)

Sollwerte / Parameter

Name
Datentyp
Wertebereich
Initialwert
Funktion

**eFBPeriod_Int’*

eForecastOutsideTempPeriod

eForecastOutsideTempPeriod.Time_24_Hours

Vorhersagebereich - Interne Wetter-Vorhersagedaten (0 = keine, 1 = 3 Stunden, 2 = 6 Stunden, 3 = 9 Stunden, 4 = 12 Stunden, 5 = 24 Stunden, 6 = 36 Stunden, 7 = 48 Stunden, 8 = 72 Stunden, 9 = 96 Stunden)

**eFBFunction_Int’*

eForecastOutsideTempFunction

eForecastOutsideTempFunction.Average

Funktion - Interne Wetter-Vorhersagedaten (0 = keine, 1 = Minimalwert 2 = Maximalwert, 3 = Durchschnittswert)

Funktionsbeschreibung

Der Ausgang rOutsideTemp_Out wird in Abhängigkeit vom Zustand am Eingang ‘xEn’ berechnet / festgelegt: xEn = FALSE: Der Ausgang rOutsideTemp_Out nimmt den Zustand des Ersatzwerts (rOutsideTemp_Out = rOutsideTemp_In) an, falls der Ersatzwert fehlerfrei (xOutsideTempError_In = FALSE) ist. Der Ausgang rOutsideTemp_Out nimmt den Zustand des Festwerts (rOutsideTemp_Out = rFixedValue) an, falls der Ersatzwert fehlerhaft (xOutsideTempError_In = TRUE) ist.

Der Ausgang eMode wird entsprechend aktualisiert. Der Ausgang xError nimmt den Zustand FALSE an. Der Ausgang eFBPeriod_Int nimmt den Zustand eForecastOutsideTempFunction.Ivalid_Function an. Der Ausgang eFBFunction_Int nimmt den Zustand eForecastOutsideTempFunction.Ivalid_Function an xEn = TRUE: Der Ausgang rOutsideTemp_Out wird aufgrund der Parameter ‘ePeriod_Int’ (ePriodInt <> eForecastOutsideTempPeriod.Invalid_Period) und ‘eFunction_Int’ (eFunctionInt <> eForecastOutsideTempFunction.Invalid_Function) festgelegt, falls der Eingang ‘xError_FC’ den Wert FALSE und die interne Fehlervariable ebenfalls den Wert FALSE annehmen. Die Ausgänge eFBPeriod_Int bzw. eFBFunction_Int übernehmen die aktuellen Einstellwerte der Parameter ePeriod_Int bzw. eFBFunction_Int. Der Ausgang rOutsideTemp_Out nimmt den Zustand des Ersatzwerts (rOutsideTemp_Out = ‘rOutsideTemp_In) an, falls der Ersatzwert fehlerfrei (xOutsideTempError_In = FALSE) ist. Der Ausgang eFBPeriod_Int nimmt den Zustand eForecastOutsideTempFunction.Ivalid_Function an. Der Ausgang eFBFunction_Int nimmt den Zustand eForecastOutsideTempFunction.Ivalid_Function an Der Ausgang rOutsideTemp_Out nimmt den Zustand des Festwerts (rOutsideTemp_Out = ‘rFixedValue) an, falls der Ersatzwert fehlerhaft (xOutsideTempError_In = TRUE) ist. Der Ausgang eFBPeriod_Int nimmt den Zustand eForecastOutsideTempFunction.Ivalid_Function an. Der Ausgang eFBFunction_Int nimmt den Zustand eForecastOutsideTempFunction.Ivalid_Function an Der Ausgang eMode wird entsprechend aktualisiert. Der Ausgang xError wird entsprechend aktualisiert.

Aktualisierung des Ausgangs rOutsideTemp_Out

Der Ausgang rOutsideTemp_Out wird (Voraussetung: xEn = TRUE) aktualisiert, falls mindestens eines der folgenden Kriterien zutrifft: Kriterium 1: Aktualisierung der Wetter-Vorhersagedaten (ansteigende Flanke am Eingang xDone_FC) Kriterium 2: Änderung des Startindexes Kriterium 3: Änderung des Vorhersagebereichs (Parameter ePeriod_Int) Kriterium 4: Änderung der Funktion (Parameter eFunction_Int) Kriterium 5: Ansteigende Flanke am Eingang xEn Der Startindex ändert sich, falls der aktuelle Zeitstempel (= Systemzeit) den Zeitstempel des nächsten Elements der Wetter-Vorhersagedaten erreicht. Der Ausgang rOutsideTemp_Out wird daher mindestens alle 3 Stunden aktualisiert. Der Ausgang rOutsideTemp_Out wird stets zeitrichtig berechnet, d.h. es werden alle Elemente der Wetter-Vorhersagedaten zur Berechnung heran gezogen, die sich zwischen dem Zeitpunkt der Aktualisierung und dem Zeitpunkt der Aktualisierung + Vorhersagebereich befinden. Im Falle eines internen Datenfehlers (fehlende Daten, fehlerhafte Daten) wird der Ausgang rOutsideTemp_Out mit einer intern festgelegten Konstante (aktuell: -1000.0) beschrieben und der Zustand der internen Fehlervariable auf TRUE gesetzt.

Typische Anwendung

Dieser Funktionsbaustein kann wie folgt angewendet werden:

CODESYS

InOut:

Scope
Name
Type
Initial

Input

xEn

BOOL

TRUE

Input

rOutsideTemp_In

REAL

Input

xOutsideTempError_In

BOOL

FALSE

Input

rFixedValue

REAL

0.0

Input

xError_FC

BOOL

FALSE

Input

xDone_FC

BOOL

FALSE

Input

arData_FC

POINTER TO WEATHER_FORECAST.WeatherData

Output

eMode

eForecastOutsideTempMode

eForecastOutsideTempMode.Invalid_Mode

Output

eFBPeriod_Int

eForecastOutsideTempPeriod

eForecastOutsideTempPeriod.Invaild_Period

Output

eFBFunction_Int

eForecastOutsideTempFunction

eForecastOutsideTempFunction.Ivalid_Function

Output

rOutsideTemp_Out

REAL

Output

xError

BOOL

FALSE

Input Const

eFunction_Int

eForecastOutsideTempFunction

eForecastOutsideTempFunction.Average

Input Const

ePeriod_Int

eForecastOutsideTempPeriod

eForecastOutsideTempPeriod.Time_24_Hours

Methods:

mApplyFunction_Int

mCalculateOutsideTempOut_Int

mCalculateStartIndex_Int

mResetData_Int

mUpdateData_Int

Structure:

  • mApplyFunction_Int (Method)

  • mCalculateOutsideTempOut_Int (Method)

  • mCalculateStartIndex_Int (Method)

  • mResetData_Int (Method)

    • Rücksetzung aller internen Wetter-Vorhersagedaten auf ungültige Werte ***

  • mUpdateData_Int (Method)

Zuletzt aktualisiert