FB_BARSunblindThermoAutomatic

FB_BARSunblindThermoAutomatic 1:

Dieser Baustein steuert die Jalousie bei Nicht-Belegung des Raumes in Abhängigkeit von der Raum-Innentemperatur.
Ziel ist es im Kühlfall Wärmestrahlung abzuhalten und im Heizfall durch Öffnen der Jalousien den Wärmeeintrag zu erhöhen.

Die Thermoautomatik ist nur dann aktiv, wenn genügend Sonneneinstrahlung vorhanden und der betreffende Raum verlassen ist. Dazu muss zum einen der Außenhelligkeitswert uiBrightness [lux] den Aktivierungs-Grenzwert uiBrightnessActivateValue für die Zeit uiActivateDelay (in Sekunden) überschritten haben und der Präsenz-Eingang bPresence auf FALSE stehen. Die Automatik wird dann wieder inaktiv, wenn entweder Präsenz gemeldet wird (bPresence = TRUE) oder für die Zeit uiDeactivateDelay die Außenhelligkeitswert uiBrightness unter den Wert uiBrightnessDeactivateValue absinkt.

Am Eingang stBARSetpointRoom ist eine Struktur vom Typ ST_BARSetpointRoom anzulegen, welche die Informationen über die Temperaturen-Schaltpunkte für die Klimatisierung des Raumes in sich trägt:

TYPE ST_BARSetpointRoom :
STRUCT
     stBARSetpointRoom_ComfortHeat     : REAL:= 21.0;
     stBARSetpointRoom_PreComfortHeat  : REAL:= 19.0;
     stBARSetpointRoom_EconomyHeat     : REAL:= 15.0;
     stBARSetpointRoom_ProtectionHeat  : REAL:= 12.0;
     stBARSetpointRoom_ComfortCool     : REAL:= 24.0;
     stBARSetpointRoom_PreComfortCool  : REAL:= 28.0;
     stBARSetpointRoom_EconomyCool     : REAL:= 35.0;
     stBARSetpointRoom_ProtectionCool  : REAL:= 40.0;
END_STRUCT
END_TYPE

Einmal aktiviert, unterscheidet die Thermoautomatik zwischen 3 Fällen:

Wird einmal der Heiz- oder der Kühlfall erreicht, so merkt sich die Thermoautomatik dies so lange, bis sie selbst durch erneute Präsenzerkennung oder zu niedriger Außenhelligkeit (siehe oben) wieder inaktiv wird.
In beiden Fällen jedoch - Heizen oder Kühlen - arbeitet die Automatik wie ein Zweipunktregler.

Heizfall

Im Heizfall fährt die Jalousie auf die Heizposition uiPositionHeatingMode und iAngleHeatingMode, wenn die Raumtemperatur den unteren Grenzwert unterschreitet. Überschreitet die Raumtemperatur den oberen Grenzwert, so fährt die Jalousie auf Kühlposition uiPositionCoolingMode und iAngleCoolingMode.
Der obere Grenzwert ist durch den Parameter bComfortCoolingAsSwitchPointHeating wählbar, der untere Grenzwert ist nicht wählbar:

 

bComfortCoolingAsSwitchPointHeating = FALSE

bComfortCoolingAsSwitchPointHeating = TRUE

oberer Grenzwert

stBARSetpointRoom_PreComfortCool

stBARSetpointRoom_ComfortCool

unterer Grenzwert

stBARSetpointRoom_ComfortHeat

stBARSetpointRoom_ComfortHeat

Diagrammdarstellung

FB_BARSunblindThermoAutomatic 2:

Kühlfall

Im Kühlfall fährt die Jalousie auf die Kühlposition uiPositionCoolingMode und iAngleCoolingMode, wenn die Raumtemperatur den oberen Grenzwert überschreitet. Unterschreitet die Raumtemperatur den unteren Grenzwert, so fährt die Jalousie auf Heizposition uiPositionHeatingMode und iAngleHeatingMode.
Der untere Grenzwert ist durch den Parameter bComfortHeatingAsSwitchPointCooling wählbar, der obere Grenzwert ist nicht wählbar:

 

bComfortHeatingAsSwitchPointCooling = FALSE

bComfortHeatingAsSwitchPointCooling = TRUE

oberer Grenzwert

stBARSetpointRoom_ComfortCool

stBARSetpointRoom_ComfortCool

unterer Grenzwert

stBARSetpointRoom_PreComfortHeat

stBARSetpointRoom_ComfortHeat


Diagrammdarstellung
FB_BARSunblindThermoAutomatic 3:

Durch die Wahl des Precomfort Cool-Wertes statt des Comfort Cool-Wertes als oberen Hysteresepunkt erreicht man eine durchschnittlich tiefere Raumtemperatur. Dieses könnte beim Wiederbetreten des Raumes als angenehmer empfunden werden.

VAR_INPUT

eDataSecurityType    : E_HVACDataSecurityType;
bEnable              : BOOL;
uiBrightness         : UINT;
bPresence            : BOOL;
lrActRoomTemperature : LREAL;
stBARSetpointRoom    : ST_BARSetpointRoom;

eDataSecurityType:Wenn eDataSecurityType:= eHVACDataSecurityType_Persistent ist, werden die persistenten VAR_IN_OUT-Variablen des Funktionsbausteins bei einer Wertänderung im Flash des Rechners abgelegt. Dafür ist es zwingend erforderlich den Funktionsbaustein FB_HVACPersistentDataHandling einmalig im Hauptprogramm, das zyklisch aufgerufen wird, zu instanziieren. Ansonsten wird der instanziierte FB intern nicht freigegeben.

Eine Wertänderung kann vom Gebäudeleitsystem, einem lokalen Bediengerät oder von einem Schreibzugriff von TwinCAT aus erfolgen. Beim Neustart des Rechners werden die gesicherten Daten automatisch vom Flash in den RAM zurück gelesen.

Anwendungsbeispiel: example_persistent.zip

Bei eDataSecurityType:= eHVACDataSecurityType_Idle werden die persistent deklarierten Variablen nicht spannungsausfallsicher gespeichert.

Hinweis

Eine sich zyklisch ändernde Variable darf niemals mit der IN_OUT-Variablen eines Funktionsbausteins verbunden werden, wenn eDataSecurityType:= eHVACDataSecurityType_Persistent ist. Es würde zu einem frühzeitigen Verschleiß des Flashspeichers führen.

bEnable : Steht dieser Eingang auf FALSE, so ist der Baustein ohne Funktion. Im Positioniertelegramm stSunblind werden für Position und Winkel jeweils 0 ausgegeben und bActive steht auf FALSE. Das bedeutet, dass über die Prioritätssteuerung eine andere Funktionalität die Jalousieansteuerung übernimmt.

uiBrightness: Außenhelligkeit in lux.

bPresence: Die Automatik ist auch nur dann aktiv, wenn der Raum unbelegt ist, da anderenfalls der Sonnenschutz Vorrang hätte. Ist dieser Eingang FALSE, gilt der Raum als nicht belegt und die Thermoautomatik ist aktiv. Ein TRUE-Signal an bPresence deaktiviert die Thermoautomatik unmittelbar.

lrActRoomTemperature: Eingang für die Raumtemperatur in °C.

stBARSetpointRoom: Struktur vom Typ ST_BARSetpointRoom, welche die Informationen über die Temperaturen-Schaltpunkte für die Klimatisierung des Raumes innehat, siehe oben.

VAR_OUTPUT

stSunblind                    : ST_BARSunblind;
bActive                       : BOOL;
uiRemainingTimeActivate       : UINT;
uiRemainingTimeDeactivate     : UINT;
bHeating                      : BOOL;
bCooling                      : BOOL;
lrUpperSwitchPointHeating     : LREAL;
lrLowerSwitchPointHeating     : LREAL;
lrUpperSwitchPointCooling     : LREAL;
lrLowerSwitchPointCooling     : LREAL;
bError                        : BOOL;
udiErrorId                    : UDINT;

stSunblind: Ausgabestruktur der Jalousiestellungen, siehe ST_BARSunblind.

bActive : Entspricht dem BOOL´schen Wert bActive im Jalousie-Telegramm ST_BARSunblind und dient zur reinen Anzeige, ob der Baustein ein aktives Telegramm sendet.

uiRemainingTimeActivate: Die Thermoautomatik ist aktiv, wenn keine Präsenz erkannt wird UND die Helligkeit für die Zeit uiActivateDelay (Schaltverzögerung) über dem Grenzwert uiBrightnessActivateValue liegt. Dieser Ausgang zeigt die verbleibende Dauer der Schaltverzögerung in Sekunden an. Solange kein Herunterzählen der Zeit stattfindet, steht dieser Ausgang auf 0.

uiRemainingTimeDeactivate: Die Thermoautomatik ist nicht aktiv, wenn Präsenz erkannt wird ODER die Helligkeit für die Zeit uiDeactivateDelay (Schaltverzögerung) unter dem Grenzwert uiBrightnessDeactivateValue liegt. Dieser Ausgang zeigt die verbleibende Dauer der Schaltverzögerung in Sekunden an. Solange kein Herunterzählen der Zeit stattfindet, steht dieser Ausgang auf 0.

bHeating: Zeigt an, ob der Heizfall aktiv ist.

bCooling: Zeigt an, ob der Kühlfall aktiv ist.

lrUpperSwitchPointHeating: Zeigt den gewählten oberen Umschaltpunkt im Heizbetrieb an, bei der die Jalousie zum Kühlen auf die Position uiPositionCoolingMode gefahren wird. Dies ist je nach Vorwahl entweder stBARSetpointRoom_ComfortCool oder stBARSetpointRoom_PreComfortCool (siehe Diagramme oben).

lrLowerSwitchPointHeating: Zeigt den unteren Umschaltpunkt im Heizbetrieb an, bei der die Jalousie zum Heizen auf die Position uiPositionHeatingMode gefahren wird. Dies ist fest eingestellt der Wert stBARSetpointRoom_ComfortHeat (siehe Diagramme oben).

lrUpperSwitchPointCooling: Zeigt den oberen Umschaltpunkt im Kühlbetrieb an, bei der die Jalousie zum Kühlen auf die Position uiPositionCoolingMode gefahren wird. Dies ist fest eingestellt der Wert stBARSetpointRoom_ComfortCool (siehe Diagramme oben).

lrLowerSwitchPointCooling: Zeigt den gewählten unteren Umschaltpunkt im Kühlbetrieb an, bei der die Jalousie zum Heizen auf die Position uiPositionHeatingMode gefahren wird. Dies ist je nach Vorwahl entweder stBARSetpointRoom_ComfortHeat oder stBARSetpointRoom_PreComfortHeat (siehe Diagramme oben).

bError: Dieser Ausgang wird auf TRUE geschaltet, wenn die eingetragenen Parameter fehlerhaft sind.

udiErrorId: Enthält den Fehlercode, sollten die eingetragenen Werte fehlerhaft sein. Siehe Fehlercodes.

FB_BARSunblindThermoAutomatic 4:

Sollte ein Fehler anstehen, so wird diese Automatik deaktiviert und Position und Winkel auf 0 gesetzt. Das bedeutet, dass bei Verwendung einer Prioritätssteuerung automatisch eine andere Funktion niedrigerer Priorität (siehe Übersicht) die Steuerung der Jalousie übernimmt. Bei direkter Beschaltung hingegen wird die Jalousie auf Position/Winkel 0 fahren.

VAR_IN_OUT

Damit die eingetragenen Parameter über einen Steuerungsausfall hinweg erhalten bleiben ist es erforderlich, sie als In-Out-Variablen zu deklarieren. Im Programm wird ihnen dann eine Referenz-Variable zugewiesen. Jede Änderung des Wertes dieser Referenz-Variablen wird im Funktionsbaustein persistent gespeichert und nach einem Steuerungsausfall und -wiederanlauf zurück in die Referenz-Variable geschrieben. Wären die Parameter nur als Eingangsvariablen deklariert, so könnten sie eine Referenzvariable nicht beschreiben.
Anwendungsbeispiel: example_persistent.zip.

uiBrightnessActivateValue           : UINT;(*lux*)
uiBrightnessDeactivateValue         : UINT;(*lux*)
uiActivateDelay                     : UINT;(*sec*)
uiDeactivateDelay                   : UINT;(*sec*)
bComfortHeatingAsSwitchPointCooling : BOOL;
bComfortCoolingAsSwitchPointHeating : BOOL;
uiPositionHeatingMode               : UINT;
iAngleHeatingMode                   : INT;
uiPositionCoolingMode               : UINT;
iAngleCoolingMode                   : INT;

uiBrightnessActivateValue / uiActivateDelay : Aktivierungsgrenzwert. Die Thermoautomatik ist nur bei genügend Außenhelligkeit aktiv. Anderenfalls wäre keine Wärmestrahlung durch die Sonne gegeben die entweder nutzbar gemacht werden kann oder abgehalten werden muss. Überschreitet die Außenhelligkeit uiBrightness [lux] den Wert uiBrightnessActivateValue [lux] für die Zeit uiActivateDelay [s] , so wird die Automatik bei zusätzlich erkannter Nicht-Präsenz (bPresence = FALSE) aktiv.

uiBrightnessDeactivateValue / uiDeactivateDelay : Deaktivierungsgrenzwert der Helligkeit: Unterschreitet die Außenhelligkeit uiBrightness [lux] den Wert uiBrightnessDeactivateValue [lux] für die Zeit uiDeactivateDelay [s] , so wird die Automatik inaktiv. Der Wert uiBrightnessDeactivateValue muss kleiner sein als der Wert uiBrightnessActivateValue. Anderenfalls wird ein Fehler ausgegeben.

bComfortHeatingAsSwitchPointCooling : Steht dieser Eingang auf TRUE, so gilt der Wert stBARSetpointRoom_ComfortHeat als unterer Wert im Kühlmodus, ab dem die Jalousien wieder geöffnet werden. Ist der Eingang auf FALSE gesetzt, so ist der Wert stBARSetpointRoom_PreComfortHeat gültig (siehe einleitende Beschreibung).

bComfortCoolingAsSwitchPointHeating : Steht dieser Eingang auf TRUE, so gilt der Wert stBARSetpointRoom_ComfortCool als oberer Wert im Heizmodus, ab dem die Jalousien wieder geschlossen werden. Ist der Eingang auf FALSE gesetzt, so ist der Wert stBARSetpointRoom_PreComfortCool gültig (siehe einleitende Beschreibung)

uiPositionHeatingMode : Höhenposition der Jalousie in % im Heizfall (gewollte Wärmeeinstrahlung). Für die Höhenposition gilt: 0% = ganz geöffnet, 100% = ganz geschlossen.

iAngleHeatingMode : Lamellenwinkel der Jalousie in Grad im Heizfall (gewollte Wärmeeinstrahlung).

uiPositionCoolingMode : Höhenposition der Jalousie in % im Kühlfall (Sonnenschutz). Für die Höhenposition gilt: 0% = ganz geöffnet, 100% = ganz geschlossen. Der Wert der Höhenposition muss höher sein als die im Heizfall, d.h. die Jalousie muss im Kühlfall weiter geschlossen sein als im Heizfall. Ansonsten könnte die Wärmezufuhr durch die Sonne nach obiger Beschreibung nicht sinnvoll geregelt werden. In diesem Fall wird ein Fehler ausgegeben.

iAngleCoolingMode : Lamellenwinkel der Jalousie in Grad im Kühlfall (Sonnenschutz).

Voraussetzungen

Entwicklungsumgebung

erforderliche Bibliothek

Erforderliche Function

TwinCAT 3.1 ab Build 4022.16

Tc2_HVAC V3.3.1.0

TF8000 | TC3 HVAC V1.0.0.0