ForecastOutsideTemp
ForecastOutsideTemp (FB)
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
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
*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
**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:
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

