FB_HVACSummerNightCoolingEx

FB_HVACSummerNightCoolingEx 1:

Dieser Funktionsbaustein wird verwendet um nachts mit kühler Außenluft die tags zuvor aufgeheizten Räume herunter zu kühlen. Die Funktion der Sommernachtkühlung dient zur Verbesserung der Luftqualität und Einsparung von elektrischer Energie. In den ersten Stunden des nächsten Sommertages wird elektrische Energie zur Kälteerzeugung gespart.

Durch Parametrierung des Funktionsbausteins FB_HVACSummerNightCooling werden die Startbedingungen für die Sommernachtkühlung definiert. Der Baustein kann verwendet werden, um motorisch betätigte Fenster zu öffnen oder Klimaanlagen außerhalb ihrer normalen Betriebszeiten in den Sommernachtkühlbetrieb zu schalten. Der Sommernachtbetrieb ist aktiv, wenn die Ausgangsvariable bOn TRUE ist.

Folgende Bedingungen müssen für die Aktivierung der Sommernachtkühlung erfüllt sein:
- bEnable = TRUE
- rOutsideTemp
> (rMinimumOutsideTemp + 0.2K); der Wert von 0.2K ist eine interne Konstante des Funktionsbaustein.
- (rRoomTemp - rOutsideTemp) > rDifferOutsideTempRoomTempOn
-(rRoomTemp - rSetpointRoomTemp) > rDifferRoomTempSetpointRoomTempOn
- udiSecRT_MaxRuntime > 0

Es reicht für die Deaktivierung der Sommernachtkühlung bOn = FALSE aus, wenn eine der folgenden Bedingung erfüllt ist:
- bEnable = FALSE
- rOutsideTemp < (rMinimumOutsideTemp - 0.2K); der Wert von 0.2K ist eine interne Konstante des Funktionsbaustein.
- (rRoomTemp - rOutsideTemp) < rDifferOutsideTempRoomTempOff
-udiSecRT_MaxRuntime = 0

FB_HVACSummerNightCoolingEx 2:

Die Sommernachtkühlung kann innerhalb der Zeitangabe udiSecMaxRuntime mehrmals ein- und ausgeschaltet werden. Nach Ablauf von udiSecRT_MaxRuntime kann die Funktion Sommernachtkühlung nur dann wieder aktiviert werden, wenn bEnable mindestens für einen SPS-Zyklus FALSE ist. Die Freigabe des Funktionsbausteins bzw. die Funktion der Sommernachtkühlung kann mittels einer Zeitschaltuhr realisiert werden.

Programmablaufplan

FB_HVACSummerNightCoolingEx 3:

VAR_INPUT

eDataSecurityType   : E_HVACDataSecurityType;
bSetDefault         : BOOL;
bEnable             : BOOL;
rOutsideTemp        : REAL;
rRoomTemp           : REAL;
rSetpointRoomTemp   : REAL;
bReset              : BOOL;

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.

bSetDefault: Wenn die Variable TRUE ist, werden die Default-Werte der VAR_IN_OUT Variablen übernommen.

bEnable: Mit der Eingangsvariablen bEnable wird der Baustein vom SPS-Programm frei gegeben. Nach Ablauf der Zeit udiSecMaxRuntime kann die Funktion Sommernachtauskühlung nur dann wieder aktiviert werden, wenn bEnable mindestens für einen SPS-Zyklus FALSE ist. Die Freigabe des Funktionsbausteins könnte über eine Zeitschaltuhr realisiert werden.
rOutsideTemp: Eingang für die Außentemperatur.

rRoomTemp: Eingang für die Raumtemperatur

rSetpointRoomTemp: Sollwert für die Raumtemperatur

bReset: Quittierungseingang bei einer Störung.

VAR_OUTPUT

bOn                                      : BOOL;
bStateDifferOutsideTempMinOutsideTemp    : BOOL;
rStateDifferOutsideTempMinOutsideTemp    : REAL;
bStateDifferRoomTempOutsideTemp          : BOOL;
rStateDifferRoomTempOutsideTemp          : REAL;
bStateDifferRoomTempSetpointRoomTemp     : BOOL;
rStateDifferRoomTempSetpointRoomTemp     : REAL;
udiSecRT_MaxRuntime                      : UDINT;
bInvalidParameter                        : BOOL;

bOn: Ist bOn = TRUE, so ist die Sommernachtkühlung aktiviert.

Folgende Bedingungen müssen für die Aktivierung der Sommernachtkühlung erfüllt sein:
- bEnable = TRUE
- rOutsideTemp
> (rMinimumOutsideTemp + 0.2K); der Wert von 0.2K ist eine interne Konstante des Funktionsbaustein.
- (rRoomTemp - rOutsideTemp) > rDifferOutsideTempRoomTempOn
-(rRoomTemp - rSetpointRoomTemp) > rDifferRoomTempSetpointRoomTempOn
- udiSecRT_MaxRuntime > 0

Es reicht für die Deaktivierung der Sommernachtkühlung bOn = FALSE aus, wenn eine der folgenden Bedingung erfüllt ist:
- bEnable = FALSE
- rOutsideTemp < (rMinimumOutsideTemp - 0.2K); der Wert von 0.2K ist eine interne Konstante des Funktionsbaustein.
- (rRoomTemp - rOutsideTemp) < rDifferOutsideTempRoomTempOff
-udiSecRT_MaxRuntime = 0

bStateDifferOutsideTempMinOutsideTemp: Statusanzeige. bStateDifferOutsideTempMinOutsideTemp ist TRUE, wenn rOutsideTemp > (rMinimumOutsideTemp + 0.2) ist. bStateDifferOutsideTempMinOutsideTemp ist FALSE, wenn rOutsideTemp < (rMinimumOutsideTemp - 0.2) ist.

rStateDifferOutsideTempMinOutsideTemp: Wert der Differenz rOutsideTemp - rMinimumOutsideTemp

bStateDifferRoomTempOutsideTemp: Statusanzeige. bStateDifferRoomTempOutsideTemp ist TRUE, wenn (rRoomTemp - rOutsideTemp) > rDifferOutsideTempRoomTempOn ist. bStateDifferRoomTempOutsideTempist FALSE, wenn (rRoomTemp - rOutsideTemp) < rDifferOutsideTempRoomTempOff ist.

rStateDifferRoomTempOutsideTemp: Wert der Differenz rRoomTemp - rOutsideTemp

bStateDifferRoomTempSetpointRoomTemp: Statusanzeige. bStateDifferRoomTempSetpointRoomTemp ist TRUE, wenn (rRoomTemp - rSetpointRoomTemp) > rDifferRoomTempSetpointRoomTempOn ist. bStateDifferRoomTempSetpointRoomTemp ist FALSE, wenn (rRoomTemp - rSetpointRoomTemp) <= rDifferRoomTempSetpointRoomTempOn ist.

rStateDifferRoomTempSetpointRoomTemp: Wert der Differenz rRoomTemp - rSetpointRoomTemp

udiSecRT_MaxRuntime: Verbleibende Zeit der Sommernachtkühlung. Ist udiSecRT_MaxRuntime = 0, so kann die Funktion Sommernachtkühlung nur dann wieder aktiviert werden, wenn bEnable mindestens für einen SPS-Zyklus FALSE ist

bInvalidParameter: Zeigt an, dass ein falscher Eingangsparameter anliegt. bInvalidParameter muss mit bReset quittiert werden.

VAR_IN_OUT

rMinimumOutsideTemp              : REAL;
rDifferOutsideTempRoomTempOn     : REAL;
rDifferOutsideTempRoomTempOff    : REAL;
rDifferRoomTempSetpointRoomTempOn : REAL;
udiSecMaxRuntime                  : UDINT;

rMinimumOutsideTemp: Unterschreitet die Außentemperatur rOutsideTemp den Grenzwert (rMinimumOutsideTemp - 0.2K), so ist die Funktion Sommernachtkühlung bOn = FALSE deaktiviert. Überschreitet die Außentemperatur rOutsideTemp den Grenzwert (rMinimumOutsideTemp + 0.2K), so ist eine der Bedingungen zur Aktivierung der Sommernachtkühlung bOn = TRUE erfüllt (4..100).

rMinimumOutsideTemp muss innerhalb seines Bereiches liegen.
Liegt ein nicht korrekter Variablenwert an dann wird, wenn vorhanden, der letzte gültige Variablenwert genommen. Wenn kein gültiger letzter Wert vorliegt, dann wird mit dem Default-Wert weitergearbeitet. bInvalidParameter wird bei falscher Parameterangabe gesetzt. Die Variable wird persistent gespeichert. Voreingestellt auf 10°C.

rDifferOutsideTempRoomTempOn: Die Differenz rRoomTemp - rOutsideTemp muss größer sein als der Betrag von rDifferOutsideTempRoomTempOn damit eine der Bedingungen zur Aktivierung der Sommernachtkühlung bOn = TRUE erfüllt ist (0..10).
((rRoomTemp - rOutsideTemp) > rDifferOutsideRoomTempOn)

rDifferOutsideRoomTempOn muss um 0.4K größer sein als rDifferOutsideRoomTempOff. Außerdem muss rDifferOutsideRoomTempOn innerhalb seines Bereiches liegen.
Liegt ein nicht korrekter Variablenwert an dann wird, wenn vorhanden, der letzte gültige Variablenwert genommen. Wenn kein gültiger letzter Wert vorliegt, dann wird mit dem Default-Wert weitergearbeitet. bInvalidParameter wird bei falscher Parameterangabe gesetzt. Die Variable wird persistent gespeichert. Voreingestellt auf 5°C.

rDifferOutsideTempRoomTempOff: Die Differenz rRoomTemp - rOutsideTemp muss kleiner sein als der Betrag von rDifferOutsideTempRoomTempOff um die Sommernachtkühlung bOn = FALSE zu deaktivieren.
((rRoomTemp - rOutsideTemp) < rDifferOutsideRoomTempOff)

rDifferOutsideRoomTempOff muss um 0.4K kleiner sein als rDifferOutsideRoomTempOn. Außerdem muss rDifferOutsideRoomTempOff innerhalb seines Bereiches liegen (0..10).
Liegt ein nicht korrekter Variablenwert an dann wird, wenn vorhanden, der letzte gültige Variablenwert genommen. Wenn kein gültiger letzter Wert vorliegt, dann wird mit dem Default-Wert weitergearbeitet. bInvalidParameter wird bei falscher Parameterangabe gesetzt. Die Variable wird persistent gespeichert. Voreingestellt auf 2°C.

rDifferRoomTempSetpointRoomTempOn: Um diesen Betrag muss die Raumtemperatur größer sein als der Raumtemperatursollwert damit eine der Bedingungen zur Aktivierung Sommernachtkühlung bOn = TRUE erfüllt ist (0..10).
((rRoomTemp - rSetpointRoomTemp) > rDifferRoomSetpointTemp)

rDifferRoomSetpointTemp muss innerhalb seines Bereiches liegen.
Liegt ein nicht korrekter Variablenwert an dann wird, wenn vorhanden, der letzte gültige Variablenwert genommen. Wenn kein gültiger letzter Wert vorliegt, dann wird mit dem Default-Wert weitergearbeitet. bInvalidParameter wird bei falscher Parameterangabe gesetzt. Die Variable wird persistent gespeichert. Voreingestellt auf 2°C.

udiSecMaxRuntime: Maximale Laufzeit der Funktion Sommernachtkühlung. Die Sommernachtkühlung kann innerhalb der Zeitangabe mehrmals ein- und ausgeschaltet werden. Die verbleibende Zeit der Sommernachtkühlung wird mit der Variable udiSecRT_MaxRuntime angezeigt.

udiSecMaxRuntime muss größer als 0 sein.
Liegt ein nicht korrekter Variablenwert an dann wird, wenn vorhanden, der letzte gültige Variablenwert genommen. Wenn kein gültiger letzter Wert vorliegt, dann wird mit dem Default-Wert weitergearbeitet. bInvalidParameter wird bei falscher Parameterangabe gesetzt. Die Variable wird persistent gespeichert. Voreingestellt auf 180.

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