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