FB_HVACStartAirConditioning

FB_HVACStartAirConditioning 1:

Mit dem Startprogramm FB_HVACStartAirConditioning wird die raumlufttechnische Anlage stufenweise angefahren. Dabei werden nacheinander die Absperrklappen, die Ventilatoren, die Regelung und die Grenzwertüberwachung der Analogeingänge freigegeben.

Bei niedrigen Außentemperaturen unterhalb des Wertes von rPreRinseOutsideTemp wird vor dem Öffnen der Außen- und Fortluftklappe zunächst das Heizregister mit Warmwasser durchspült. Bei RLT-Anlagen mit einem Rücklauftemperaturfühler an dem Heizregister dauert der Spülvorgang so lange bis die Temperatur rReturnWaterTempden Wert der Eingangsvariablen rPreRinseLimitTempüberschritten hat. Beim Erreichen der angegebenen Temperatur im Rücklauf des Lufterhitzers werden die Außen- und die Fortluftklappe geöffnet. Wird die Temperatur nach dem Ablauf des Timers tPreRinseMaxTimenicht überschritten, wird die Störmeldung mit einem TRUE am Ausgang bErrorNoHotWater gemeldet.

Falls in dem Rücklauf des Erhitzers kein Temperaturfühler vorhanden ist, wird an dem Eingang rReturnWaterTempeine Konstante mit dem Wert -100 angelegt. Der Funktionsbaustein FB_HVACStartAirConditioning erkennt so, dass der Vorspülvorgang ohne Rücklaufüberwachung ablaufen muss. In diesem Fall wird bis zum Ablauf des Timers tPreRinseMaxTimegespült. Eine Überwachung des Spülvorgangs erfolgt so nicht!

Nach der Beendigung des Vorspülvorgangs werden die Außen- und die Fortluftklappe geöffnet. Damit wird der Ausgang bDampersOpen TRUE.
Um Schäden an den Luftkanälen und den Klappen zu vermeiden, wird der Anlauf der Ventilatoren so lange verzögert bis die Rückmeldung "Auf "der Klappen am Eingang bDampersFeedbOpen ansteht. Zusätzlich muss der Timer tDelaySupplyVent abgelaufen sein. Die eingestellte Zeit muss größer als die Verfahrzeit des Klappenantriebs eingestellt werden.
Da dieser Timer auch beim Abschalten der Anlage wirksam ist, sind auch Herunterfahrrampen von Frequenzumrichtern zu berücksichtigen!
Erfolgt innerhalb der eingestellten Zeit keine Rückmeldung der Klappenantriebe wird der Ausgang bErrorDampersTRUE. Zur Vermeidung von hohen Anlaufströmen erfolgt das Zuschalten des Abluftventilators mit dem Timer tDelayExhaustVent.

Bei Anlagen mit einer Mischluftkammer ist es sinnvoll die Regelung erst frei zu geben, wenn die Zulufttemperatur rSupplyAirTempannähernd den Wert der Ablufttemperatur erreicht hat. Die maximale Abweichung wird mit dem Parameter rDifferenceTemp angegeben. Bei Anlagen ohne Mischluftsystem wird hier einfach ein sehr großer Wert als Konstante z.B. 100 angegeben. Die Regelung wird dann unverzögert freigegeben.

Nach dem Ablauf des Timers tDelayLimitCtrlwird der Ausgang bEnableLimitCtrlfrei gegeben und damit ist die Grenzwertüberwachung der Analogeingänge aktiviert.

Bei Außentemperaturen unterhalb des Wertes von rPreRinseOutsideTemp wird an dem Ausgang der Wert von iCurrentSequence gleich dem von iStartSeqWinter gesetzt. Es muss hier die Nummer des Vorerhitzerreglers eingetragen werden. (Siehe Kapitel Sequenzregler) Bei Außentemperaturen größer als rPreRinseOutsideTempkann mit der Wärmerückgewinnung oder der Mischluftkammer angefahren werden. Am Eingang iStartSeqSummer wird also die Nummer des Sequenzreglers von der Mischluftkammer oder von der Wärmerückgewinnung eingegeben.

Die Anfahrschaltung wird bei Betriebsanforderungen der Automatikprogramme, der Zeitschaltplänen, Sommernachtkühlung, Stützbetrieb und Überhitzungsschutz aktiv.
Zur Ansteuerung der Sequenzregler wird die Aufzählungsvariable eModeSeqCtrlam Ausgang des Funktionsbausteines wie folgt gesetzt:

TYPE E_HVACSequenceCtrlMode :
(
eHVACSequenceCtrlMode_Stop
:= 0,
eHVACSequenceCtrlMode_On := 1,
eHVACSequenceCtrlMode_NightCooling := 2,
eHVACSequenceCtrlMode_FreezeProtection := 3,
eHVACSequenceCtrlMode_OverheatingProtection := 4,
eHVACSequenceCtrlMode_NightCoolingAndOverheatingProtection := 5
);
END_TYPE

Die Anforderungen aller Automatikprogramme werden an das Anlagenstartprogramm mittels der Eingangsvariablen bTimeScheduler, bNightCooling, bFreezeProtec und bOverHeatingProtec übergeben. Die Anforderungen der Erhaltungsfunktionen kommen nur zur Geltung, wenn vom Zeitschaltprogramm an der Eingangsvariable bTimeScheduler keine Anforderung vorliegt.

Die Programme für die Sommernachtkühlung (bNightCooling), den Auskühlschutz (bFreezeProtec) und den Überhitzungsschutz (bOverHeatingProtec) sind nur einsetzbar, wenn ein Raumtemperaturfühler statt eines Ablufttemperaturfühlers eingesetzt wird. Gegenüber den anderen Automatikprogrammen hat das Programm Auskühlschutz immer Vorrang, es sei den die Betriebsanforderung vom Zeitschaltprogramm steht an.

Da die Sommernachtkühlung als Zwangsbelüftung mit Ventilatoren oder als Konvektionsbelüftung ohne Ventilatoren erfolgen kann, wird der Befehl vom Programm FB_HVACSummerNightCooling mit der Aufzählungsvariablen E_HVACConvectionMode übertragen. Dieser Ausgang muss an die Eingangsvariable eConvection angelegt werden.

An den Eingang bEmergencyStop wird eine Sammlung aller Störmeldungen dieser RLT-Anlage angelegt, welche zur Abschaltung der Anlage führen.

Beim Abschalten der raumlufttechnischen Anlage erfolgen die Einschaltschritte in umgekehrter Reihenfolge.

- Deaktivieren der Limitüberwachung an den Analogeingängen
- Deaktivieren der Regler (Rücksetzen von iCurrentSequence:= 0 )
- Abschalten der Ventilatoren
- Schließen der Klappen nach Ablauf des Timers tDelaySupplyVent .

VAR_INPUT

eDataSecurityType     : E_HVACDataSecurityType;
bSetDefault           : BOOL;
iStartSeqWinter       : INT;
iStartSeqSummer       : INT;
bTimeScheduler        : BOOL;
bNightCooling         : BOOL;
bFreezeProtec         : BOOL;
bOverHeatingProtec    : BOOL;
rOutsideTemp          : REAL;
rReturnWaterTemp      : REAL;
rSupplyAirTemp        : REAL;
rReturnAirTemp        : REAL;
bDampersFeedbOpen     : BOOL;
bEmergencyStop        : 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.

iStartSeqWinter: Hier muss die Nummer des Sequenzreglers von dem Vorerhitzer eingegeben werden.

iStartSeqSummer: Hier muss die Nummer des Sequenzreglers von der Mischluftkammer oder von der Wärmerückgewinnung eingegeben werden.

bTimeScheduler: Eingang für den Zeitschaltuhrbefehl.

bNightCooling: Eingang für die Funktion Nachtkühlung.

bFreezeProtec: Eingang für die Funktion Frostschutz.

bOverHeatingProtec: Eingang für die Funktion Überhitzungsschutz.

rOutsideTemp: Eingang für die Außentemperatur.

rReturnWaterTemp: Eingang für die Wassertemperatur aus dem Rücklauf des Lufterhitzers.

rSupplyAirTemp: Eingang für die Zulufttemperatur.

rReturnAirTemp: Eingang für die Raumtemperatur oder Ablufttemperatur.

bDampersFeedbOpen: Eingang für die Rückmeldung von den Klappen.

bEmergencyStop: Über diesen Eingang kann eine Sammlung aller Störmeldungen der RLT-Anlage angelegt werden, welche dann zur Notabschaltung der RLT-Anlage führen.

bReset: Eingang zur Quittierung der Störung.

VAR_OUTPUT

eModeSeqCtrl         : E_HVACSequenceCtrlMode;
bPreRinse            : BOOL;
bDampersOpen         : BOOL;
bSupplyVentilation   : BOOL;
bExhaustVentilation  : BOOL;
bStartPIDControllers : BOOL;
bEnableLimitCtrl     : BOOL;
bErrorGeneral        : BOOL;
bErrorNoHotWater     : BOOL;
bErrorDampers        : BOOL;
byError              : BYTE;
bInvalidParameter    : BOOL;

eModeSeqCtrl: Enum, das die Betriebsanforderungen mitteilt (siehe E_HVACSequenceCtrlMode).

bPreRinse: TRUE, wenn Vorspülvorgang aktiv.

bDampersOpen: Bei TRUE werden die Außen- und die Fortluftklappen geöffnet.

bSupplyVentilation: Bei TRUE Zuluftventilator einschalten.

bExhaustVentilation: Bei TRUE Abluftventilator einschalten.

bStartPIDControllers: Freigabe der Regelung.

bEnableLimitCtrl: Nach dem Ablauf des Timers tDelayLimitCtrlwird der Ausgang bEnableLimitCtrlfrei gegeben und damit ist die Grenzwertüberwachung der Analogeingänge aktiviert.

bErrorGeneral: Es liegt allgemein ein Fehler an.

bErrorNoHotWater: Wird auf TRUE gesetzt, wenn der Spülvorgang beendet wurde und die eingestellte Temperatur im Rücklauf nicht erreicht wurde.

bErrorDampers: Es liegt ein Fehler bei den Klappen an.

byError: Ausgabe der Fehler als Byte.

byError.1:= bInvalidParameter;
byError.2:= bErrorGeneral;
byError.3:= bErrorNoHotWater;
byError.4:= bErrorDampers;

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

VAR_IN_OUT

eConvection           : E_HVACConvectionMode;
tDelaySupplyVent      : TIME;
tDelayExhaustVent     : TIME;
tDelayTempCtrl        : TIME;
rDifferenceTemp       : REAL;
tDelayLimitCtrl       : TIME;
rPreRinseOutsideTemp  : REAL;
rPreRinseLimitTemp    : REAL;
tPreRinseMaxTime      : TIME;
iCurrentSequence      : INT;

eConvection: ENUM, über das man die Sommernachtkühlung als Zwangsbelüftung mit Ventilatoren oder als Konvektionsbelüftung ohne Ventilatoren erfolgen kann (siehe E_HVACConvectionMode). Die Variable wird persistent gespeichert. Voreingestellt auf 1.

tDelaySupplyVent: Zeitverzögerung, die den Anlauf der Zuluftventilatoren verzögert. Die Variable wird persistent gespeichert. Voreingestellt auf 120s.

tDelayExhaustVent: Zeitverzögerung, die den Anlauf der Abluftventilatoren verzögert. Die Variable wird persistent gespeichert. Voreingestellt auf 5s.

tDelayTempCtrl: Zeitverzögerung für die Regelung. Die Variable wird persistent gespeichert. Voreingestellt auf 10s.

rDifferenceTemp: Ist die Differenz zw. der Raumtemperatur und der Zulufttemperatur kleiner als rDifferenceTemp wird die Regelung freigegeben. Die Variable wird persistent gespeichert. Voreingestellt auf 5K.

tDelayLimitCtrl: Zeitverzögerung, die die Grenzüberwachung der Temperaturfühler frei gibt. Siehe hierzu im FB_HVACTemperature die Variable bEnableLimitCtrl. Die Variable wird persistent gespeichert. Voreingestellt auf 360s.

rPreRinseOutsideTemp: Außentemperatur unterhalb dessen die RLT-Anlage mit dem Vorspülen des Heizregisters starten soll. Die Variable wird persistent gespeichert. Voreingestellt auf 10K.

rPreRinseLimitTemp: Rücklauftemperatur am Heizregister die erreicht sein muss, um den Vorspülgang abzuschließen um mit dem Öffnen der Klappen fortzufahren. Die Variable wird persistent gespeichert. Voreingestellt auf 30K.

tPreRinseMaxTime: Maximale Zeit des Vorspülvorgangs. Die Variable wird persistent gespeichert. Voreingestellt auf 300s.

iCurrentSequence: Hier wird der Startregler bei der Reglerfreigabe festgelegt. Der Wert wird von dem Startprogramm nur in einem Zyklus beschrieben, da dieser Parameter danach im Anlagenbetrieb für das Ein- bzw. Ausschalten der Sequenzregler wieder frei beschreibbar sein muss. 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