FB_HVACFreezeProtectionHeater

FB_HVACFreezeProtectionHeater 1:

Dieser Funktionsbaustein ist für die Frostschutzüberwachung eines Lufterhitzers in einer Klimaanlage. Die Frostschutzüberwachung erfolgt sowohl luftseitig über einen Frostschutzthermostat als auch wasserseitig über einen Temperaturfühler im Rücklauf des Erhitzers.

Das Frostschutzprogramm wird aktiv, wenn die Rücklauftemperatur des Lufterhitzers rReturnWaterTemp kleiner als der Grenzwert rReturnWaterAlarmLimit oder der Eingang bThermostat FALSE = Störung ist.
Bei jeder dieser Störungen wird die jeweilige Meldung bAlarmReturnWaterTemp und/oder bAlarmThermostat am Ausgang des Funktionsbausteins TRUE. Ebenfalls wird der Ausgang bAlarmFrost TRUE und die Aktivierung des Frostschutzprogramms mit einem TRUE an der Ausgangsvariablen bFrostProtectionRunning signalisiert.

Um beim Ansprechen des Frostschutzes ein Einfrieren des Lufterhitzers zu vermeiden muss die Erhitzerpumpe eingeschaltet und das Erhitzerventil zwangsweise aufgefahren werden. Diese Funktion ist in vielen Anlagen nicht nur softwareseitig, sondern aus Sicherheitsgründen im Schaltschrank zusätzlich hardwaremäßig durch eine Relaisschaltung realisiert. Das Frostschutzrelais ist im Normalfall in Selbsthaltung, da die Frostschutzschaltung nach dem Ruhestromprinzip aufgebaut ist. Nach einer Störung wird das Frostschutzrelais meistens durch einen Reset-Taster am Schaltschrank wieder in seine Selbsthaltung zurückgebracht. Automatisch wird diese Funktion durch einen kurzen Impuls am Ausgang bHardwareReset realisiert. Die Bedingung dafür ist, dass der Frostschutzthermostat wieder in den Normalzustand zurückgegangen ist, die Temperatur im Rücklauf des Erhitzers den Wert von rReturnWaterNormalLimit erreicht hat und die Zeit von tDelayFirstWarning abgelaufen ist.

Nachdem die Anlage nach einer automatischen Quittierung wieder angelaufen ist, wird der Timer tMonitoringAfterReset gestartet.
Erfolgt innerhalb dieser Zeit eine erneute Frostwarnung wird der Ausgang bAlarmFrost wieder TRUE. Das Rücksetzen des Frostalarms ist nur mit einer steigenden Flanke am Eingang bReset möglich.

VAR_INPUT

eDataSecurityType     : E_HVACDataSecurityType;
bSetDefault           : BOOL;
bThermostat           : BOOL;
rReturnWaterTemp      : REAL;
bCtrlVoltage          : BOOL;
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.

bThermostat:Signal vom Frostschutzthermostaten. Im Normalfall TRUE.

rReturnWaterTemp:Wassertemperatur im Rücklauf des Lufterhitzers.

bCtrlVoltage:Steuerspannungsüberwachung. Steuerspannung vorhanden bCtrlVoltage = TRUE.

bReset: Eingang zur Quittierung der Störung.

VAR_OUTPUT

byState               : BYTE;
bFrostProtecRunning   : BOOL;
bHardwareReset        : BOOL;
bErrorGeneral         : BOOL;
bAlarmReturnWaterTemp : BOOL;
bAlarmThermostat      : BOOL;
byError               : BYTE;
bInvalidParameter     : BOOL;

byState: Ausgabe des Status als Byte.

byState.0:= bFrostProtecRunning;
byState.1:= bHardwareReset;
byState.2:= bThermostat;
byState.7:= bCtrlVoltage;

bFrostProtecRunning: TRUE, wenn das Frostschutzprogramm aktiv ist.

bHardwareReset: Ausgang, der mit einem Impuls von 1s signalisiert, dass das Frostschutzrelais nach einer Störung sich in der Selbsthaltung befindet.

bErrorGeneral: Es liegt allgemein ein Fehler an.

bAlarmFrost: TRUE, wenn Frostwarnung anliegt.

bAlarmReturnWaterTemp: Die Grenze der Wassertemperatur im Rücklauf des Lufterhitzers wurde unterschritten.

bAlarmThermostat: TRUE, wenn ein Fehler am Frostschutzthermostaten ist.

byError: Ausgabe der Fehler als Byte.

byError.1:= bInvalidParameter;
byError.2:= bErrorGeneral;
byError.3:= bAlarmFrost;
byError.4:= bAlarmReturnWaterTemp;
byError.5:= bAlarmThermostat;

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

VAR_IN_OUT

rReturnWaterAlarmLimit  : REAL;
rReturnWaterNormalLimit : REAL;
tDelayHardwareReset     : TIME;
tMonitoringAfterReset   : TIME;

rReturnWaterAlarmLimit: Unterhalb eines Temperaturwertes im Rücklauf des Lufterhitzers von rReturnWaterAlarmLimit wird der Frostalarm aktiv (0°C..22°C). Die Variable wird persistent gespeichert.

rReturnWaterNormalLimit: Der Lufterhitzer geht wieder in den Normalzustand, wenn nach einer Temperaturunterschreitung die Temperatur wieder über bReturnWaterNormalLimit
angestiegen ist (0°C..70°C). Die Variable wird persistent gespeichert.

tDelayHardwareReset: Zeit, die nach Eingang zwischen Eingang der Froststörung und Ausgabe eines Quittierimpulses vergeht, um die Anlage wieder in Normalbetrieb zu versetzen. Die Variable wird persistent gespeichert.

tMonitoringAfterReset: Zeitintervall der Überwachung nach der ersten Frostwarnung. Die Variable wird persistent gespeichert.

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