CrossVentilation_Sulzer

CrossVentilation_Sulzer (FB)

FUNCTION_BLOCK CrossVentilation_Sulzer

Kurzbeschreibung

Steuerung der Querlüftung mittels Fensterelementen durch vier getrennt einstellbare Kennlinien Kennlinie 1: Öffnungszeit in Abhängigkeit von der Aussentemperatur Kennlinie 2: Öffnungsgrad in Abhängigkeit von der Aussentemperatur Kennlinie 3: Öffnungsgrad in Abhängigkeit von der Windgeschwindigkeit Kennlinie 4: Wartezeit in Abhängigkeit von der Aussentemperatur Typische Anwendung: Steuerung der Querlüftung durch den Raum-CO2-Istwert\

Darstellung

Schnittstellen

Eingänge

Name
Datentyp
Wertebereich
Initialwert
Funktion

xStartCrossVentilation

BOOL

FALSE

Beginn der Querlüftung ( bei jeder ansteigenden Flanke )

xAbortCrossVentilation

BOOL

FALSE

Abbruch der Querlüftung ( bei jeder ansteigenden Flanke )

xEn_WT

BOOL

FALSE

Freigabe / Sperrung der Wartezeit ( TRUE = Freigabe )

xEnComplete_OT

BOOL

FALSE

Freigabe / Sperrung des Eingangs ‘xComplete_OT’ ( FALSE = Sperrung ) ( _OT = Opening Time )

xComplete_OT

BOOL

FALSE

Freigabe / Sperrung des manuellen Abbruchs der Öffnungsdauer ( bei jeder ansteigenden Flanke, falls xEnComplete_OT = TRUE ) ( z.B. Abbruch über CO2-Gehalt nach Ablauf der Öffnungsdauer )

rOutsideTemp

REAL

0.0

Aussentemperatur

rOutsideWindSpeed

REAL

0.0

Windgeschwindigkeit

xResError

BOOL

FALSE

Rücksetzung der Ausgänge ‘xError’ und ‘sErrorCode’ ( bei jeder ansteigenden Flanke )

xValidData_OT

BOOL

FALSE

Gültigkeit der Daten der Kurve ‘Öffnungsdauer - Aussentemperatur’ ( _OT = Opening Time ) ( TRUE = Gültig )

xValidData_WDOO_OT

BOOL

FALSE

Gültigkeit der Daten der Kurve ‘Fensteröffnungsgrad - Aussentemperatur’ ( _WDOO = Windows Degree Of Opening, _OT = OutsideTemp ) ( TRUE = Gültig )

xValidData_WDOO_WS

BOOL

FALSE

Gültigkeit der Daten der Kurve ‘Fensteröffnungsgrad - Windgeschwindigkeit’ ( _WDOO = Windows Degree Of Opening, _WS = Wind Speed ) ( TRUE = Gültig )

xValidData_WT

BOOL

FALSE

Gültigkeit der Daten der Kurve ‘Wartezeit - Aussentemperatur’ ( _WT = Waiting Time ) ( TRUE = Gültig )

Ein- und Ausgänge

Name
Datentyp
Wertebereich
Initialwert
Funktion

arData_OT

stCurve_Real_Time

Array mit den Stützstellen für die Kurve ‘Öffnungsdauer - Aussentemperatur’ ( _OT = Opening Time )

arData_WDOO_OT

stCurve_Real_Real

Array mit den Stützstellen für die Kurve ‘Fensteröffnungsgrad - Aussentemperatur’ ( _WDOO = Windows Degree Of Opening, _OT = OutsideTemp )

arData_WDOO_WS

stCurve_Real_Real

Array mit den Stützstellen für die Kurve ‘Fensteröffnungsgrad - Windgeschwindigkeit’ ( _WDOO = Windows Degree Of Opening, _WS = Wind Speed )

arData_WT

stCurve_Real_Time

Array mit den Stützstellen für die Kurve ‘Wartezeit - Aussentemperatur’ ( _WT = Waiting Time )

Ausgänge

Name
Datentyp
Wertebereich
Initialwert
Funktion

tTimeCurve_OT

TIME

T#0s

Aktuelle Öffnungszeitdauer aus der Kurve ( _OT = Opening Time )

tRemainingTime_OT

TIME

T#0s

Restzeit der aktiven Öffnungszeitdauer ( _OT = Opening Time )

xActive_OT

BOOL

FALSE

Rückmeldung - Aktive Öffnungszeitdauer ( TRUE = Aktiv ) ( _OT = Opening Time )

rDegreeCurve_WDOO_OT

REAL

0.0

Aktueller Fensteröffnungsgrad [ % ] in Abhängigkeit von der Aussentemperatur aus der Kurve ( _WDOO = Windows Degree Of Opening, _OT = OutsideTemp )

rDegreeCurve_WDOO_WS

REAL

0.0

Aktueller Fensteröffnungsgrad [ % ] in Abhängigkeit von der Windgeschwindigkeit aus der Kurve ( _WDOO = Windows Degree Of Opening, _WS = Wind Speed )

rDegree_WDOO

REAL

0.0

Aktueller Fensteröffnungsgrad [ % ] ( _WDOO = Windows Degree Of Opening )

xActive_WDOO

BOOL

FALSE

Rückmeldung - Aktive Fensteröffnung ( TRUE = Aktiv ) ( _WDOO = Windows Degree Of Opening )

tTimeCurve_WT

TIME

T#0s

Aktuelle Wartezeit aus der Kurve ( _WT = Waiting Time )

tRemainingTime_WT

TIME

T#0s

Restzeit der aktiven Wartezeit ( _WT = Waiting Time )

xActive_WT

BOOL

FALSE

Rückmeldung - Aktive Wartezeit ( TRUE = Aktiv ) ( _WT = Waiting Time )

xError

BOOL

FALSE

Fehlerzustand ( FALSE = kein Fehler, TRUE = Fehler )

sErrorCode

STRING

‘’

String mir den Nummern der aktiven Fehler

Sollwerte / Parameter

Name
Datentyp
Wertebereich
Initialwert
Funktion

rOutsideTempLimit

REAL

-15

Aussentemperatur-Grenzwert, bei dessen Unterschreitung keine Fensteröffnung mehr gestartet wird.

Funktionsbeschreibung

Kennlinien

Die insgesamt vier frei einstellbaren Kennlinien ( mit jeweils 10 Stützpunkten, FB ‘Curve_10XY_Reaö_Real’ oder FB ‘Curve_10XY_Real_Time’ ) werden mit den zugehörigen Dateneingängen ( arData_XX ) verbunden, ebenso die Ausgänge der Kennlinien, die die Gültigkeit der Daten signalisieren ( xValidData_XX ). Die Zuordnung der Kennlinien zu den Eingängen ist dabei fest vorgegeben:\

  1. Index _OT ( Opening Time ): Kennlinie ‘Öffnungszeit in Abhängigkeit von der Aussentemperatur’

  2. Index _WDOO_OT ( _WDOO = Windows Degree Of Opening, _OT = Outside Temp ): Kennlinie ‘Öffnungszeit in Abhängigkeit von der Aussentemperatur’

  3. Index _WDOO_WS ( _WDOO = Windows Degree Of Opening, _WS = Wind Speed ): Kennlinie ‘Öffnungszeit in Abhängigkeit von der Aussen-Windgeschwindigkeit

  4. Index _WT ( Waiting Time ): Kennlinie ‘Wartezeit in Abhängigkeit von der Aussentemperatur’

Wird einer Kennlinie ein Eingangswert ( = X-Wert ) ausserhalb des durch die Stützstellen 1 und 10 vorgegebenen Bereichs übergeben, so wird der Y-Wert der nächstliegenden Stützstelle zurück gegeben ( Beispiel: Stützstelle 1 ( 1, 10 ), Stützstelle 10 ( 10, 100 ), X-Wert = -5 — Y-Wert = 10 )

Ablauf

Die Querlüftung wird mit einer ansteigenden Flanke am Eingang ‘xStartCrossVentilation’ gestartet. Die Öffnungszeitdauer wird aus der Kennlinie 1 berechnet. Aus den Kennlinien 2 und 3 wird der Öffnungsgrad bestimmt und ausgegeben. Nach dem Abschluss der Fensteröffnung wird die Wartezeit, errechnet aus Kennlinie 4, gestartet, die temporär eine erneute Querlüftung verhindert.

Start der Querlüftung

Die Querlüftung wird mit einer ansteigenden Flanke am Eingang ‘xStartCrossVentilation’ gestartet, falls alle nachfolgenden Bedingungen erfüllt sind:\

  1. Die Wartezeit ist nicht aktiv ( xActive_WT = FALSE )

  2. Die Öffnungszeit ist nicht aktiv ( xActive_OT = FALSE )

  3. Alle vier Kennlinien enthalten gültige Daten ( xValidData_XX = TRUE )

  4. Die Aussentemperatur überschreitet die absolute Minimal-Grenze ( rOutsideTemp > rOutsideTempLimit )

Öffnungsdauer

Nach dem erfolgreichen Start der Querlüftung wird die Öffnungszeitdauer einmalig aus der Kennlinie 1 in Abhängigkeit von der aktuellen Aussentemperatur errechnet. Während der Öffnungszeitdauer ist die Statusanzeige ‘xActive_OT’ aktiv und am Ausgang ‘tRemainingTime_OT’ wird die verbleibende Restzeitdauer ausgegeben.

Abbruch

Die aktive Querlüftung kann zu jedem beliebigen Zeitpunkt durch eine ansteigende Flanke am Eingang ‘xAbortCrossVentilation’ abgebrochen werden.

Öffnungsgrad

Nach dem erfolgreichen Start der Querlüftung wird der Öffnungsgrad einmalig aus den beiden Kennlinien 2 und 3 in Abhängkeit von der aktuellen Aussentemperatur bzw. der aktuellen Aussen-Windgeschwindigkeit bestimmt: Variable Z = (( Wert aus Kennlinie 2 ) X ( Wert aus Kennlinie 3 )) / 100 Die Variable Z wird nun mit fest vorgegebenen Bereichsgrenzen verglichen und der dem jeweiligen Bereich zugeordnete Öffnungsgrad ausgegeben: 0 <= Z < 15: Öffnungsgrad = 0% 15 <= Z < 25: Öffnungsgrad = 25% 25 <= Z < 50: Öffnungsgrad = 50% 50 <= Z < 75: Öffnungsgrad = 75% Z > 75 : Öffnungsgrad = 100% Der so bestimmte Öffnungsgrad wird am Ausgang ‘rDegree_WDOO’ ausgegeben, der Ausgang ‘xActive_WDOO’ signalisiert dabei eine aktive Fensteröffnung ( = TRUE ).

Wartezeit

Direkt nach dem Abschluss der Öffnungsdauer beginnt eine eventuelle Wartezeit bis zur nächsten Aktivierung der Querlüftung. Hierzu muss die Wartezeitdauer generell freigegeben sein ( xEn_WT = TRUE ). Am Anfang der Wartezeit wird die Zeitdauer einmalig aus der kennlinie 4 in Abhängigkeit von der Aussentemperatur bestimmt. Während der aktiven Wartezeit ist die Statusanzeige ‘xActive_WT’ aktiv und am Ausgang ‘tRemainingTime_WT’ wird die verbleibende Restzeitdauer ausgegeben. Die Wartezeit endet mit dem Ablauf der Zeitdauer oder mit der Sperrung der Wartezeit ( xEn_WT = FALSE ).

Beendigung der Öffnungszeit

Die Öffnungszeit endet unmittlbar mit dem Ablauf der Zeitdauer ( xEnComplete_OT = FALSE ). Die Öffnungszeit endet nach dem Ablauf der Zeitdauer ( xEnComplete_OT = TRUE ), falls am Eingang ‘xComplete_OT’ eine ansteigende Flanke erkannt wurde. Die dient der Verlängerung der Öffnungsdauer bis zum Erreichen eines akzeptablen CO2-Gehalts.

Sperrung der Querlüftung über die Aussentemperatur

Die Querlüftung wird nur dann gestartet, wenn die aktuelle Aussentemperatur zum Startzeitpunkt den einstellbaren Grenzwert ‘rOutsideTempLimit’ überschreitet.

Eingang ‘xResError’

Jede ansteigende Flanke an diesem Eingang setzt die Ausgänge ‘xError’ bzw. ‘sErrorCode’ auf den jeweiligen nicht fehlerhaften Zustand zurück.

Ausgang ‘xError’

Der Ausgang ist aktiv ( = TRUE ), falls mindestens ein Fehler erkannt wurde ( ‘sErrorCode <> ‘’ )

Ausgang ‘sErrorCode’

Dieser Ausgang signalisiert den aktuellen Fehlerstatus. Ein Leerstring ‘’ zeigt an, das kein Fehler vorliet. Aktuell sind folgende Fehlerzustände festgelegt: ‘1’: xValidData_OT = FALSE ( Kennlinie 1 ohne gültige Daten ) ‘2’: xValidData_WDOO_OT = FALSE ( Kennlinie 2 ohne gültige Daten ) ‘3’: xValidData_WDOO_WS = FALSE ( Kennlinie 3 ohne gültige Daten ) ‘4’: xValidData_WT = FALSE ( Kennlinie 4 ohne gültige Daten )

Typische Anwendung

Der Ausgang ‘xActive_WDOO’ ( = TRUE ) signalisiert die Anforderung zur Öffnung der Fenster durch die Querlüftung, der Ausgang ‘rDegree_WDOO’ den Fensteröffnungsggrad im Bereich 0.0 - 100.0% ( 0.0% = geschlossen ). Dieser Funktionsbaustein kann wie folgt angewendet werden:

CODESYS

InOut:

Scope
Name
Type
Initial

Input

xStartCrossVentilation

BOOL

FALSE

Input

xAbortCrossVentilation

BOOL

FALSE

Input

xEn_WT

BOOL

TRUE

Input

xEnComplete_OT

BOOL

FALSE

Input

xComplete_OT

BOOL

FALSE

Input

rOutsideTemp

REAL

0.0

Input

rOutsideWindSpeed

REAL

0.0

Input

xResError

BOOL

FALSE

Input

xValidData_OT

BOOL

FALSE

Input

xValidData_WDOO_OT

BOOL

FALSE

Input

xValidData_WDOO_WS

BOOL

FALSE

Input

xValidData_WT

BOOL

FALSE

Input

arData_OT

POINTER TO stCurve_Real_Time

Input

arData_WDOO_OT

POINTER TO stCurve_Real_Real

Input

arData_WDOO_WS

POINTER TO stCurve_Real_Real

Input

arData_WT

POINTER TO stCurve_Real_Time

Output

tTimeCurve_OT

TIME

TIME#0ms

Output

tRemainingTime_OT

TIME

TIME#0ms

Output

xActive_OT

BOOL

FALSE

Output

rDegreeCurve_WDOO_OT

REAL

0.0

Output

rDegreeCurve_WDOO_WS

REAL

0.0

Output

rDegree_WDOO

REAL

0.0

Output

xActive_WDOO

BOOL

FALSE

Output

tTimeCurve_WT

TIME

TIME#0ms

Output

tRemainingTime_WT

TIME

TIME#0ms

Output

xActive_WT

BOOL

FALSE

Output

xError

BOOL

FALSE

Output

sErrorCode

STRING

‘’

Input Const

rOutsideTempLimit

REAL

-15.0

Methods:

mCalculateCurveSectionValue_Real_Real

mCalculateCurveSectionValue_Real_Time

mCalculateCurveValue_Real_Real

mCalculateCurveValue_Real_Time

mResData

Structure:

  • mCalculateCurveSectionValue_Real_Real (Method)

  • mCalculateCurveSectionValue_Real_Time (Method)

  • mCalculateCurveValue_Real_Real (Method)

  • mCalculateCurveValue_Real_Time (Method)

  • mResData (Method)

Zuletzt aktualisiert