FB_HVACPIDMixedAir

FB_HVACPIDMixedAir 1:

Eine Besonderheit des Mischluftreglers ist seine Wirksinnumkehr in Abhängigkeit der Außentemperatur und Ablufttemperatur. Anstelle der Außen- und Ablufttemperaturen können auch die Außen- und Abluftenthalpie verwendet werden.

Ist die Außentemperatur kleiner als die Ablufttemperatur so kann die Luft bei hohen thermischen Lasten im Gebäude zur Kühlung genutzt werden. Es steigt also die Außenluftrate mit einer Verringerung der Regelgröße bzw. Verringerung des Zulufttemperatursollwerts (Kurve von links nach rechts fallend).

Ist die Außentemperatur größer als die Ablufttemperatur, so kann der Außenluftanteil bei einer Erhöhung des Zulufttemperatursollwertes vergrößert werden (Kurve von links nach rechts steigend). Die Außenlufttemperatur wird an der Eingangsvariablen rOutsideTemp angelegt. Die Variable rReturnAirTemp ist für die Abluft oder Raumtemperatur. Die Betriebsart Nachtauskühlung (eHVACSequenceCtrlMode_NightCooling) wird dem Funktionsbaustein mittels des Enums eModeSeqCtrl übertragen. Während des nächtlichen Auskühlens wird die Regelung deaktiviert und am Ausgang rY werden 100% Stellgröße ausgegeben. Weitere Informationen zur Funktion der Sommernachtkühlung sind unter FB_HVACSummerNightCooling zu finden.

Mit den Parametern rYMax und rYMin kann die maximale und die minimale Außenluftrate eingestellt werden.

VAR_INPUT

eDataSecurityType     : E_HVACDataSecurityType;
bSetDefault           : BOOL;
eModeSeqCtrl          : E_HVACSequenceCtrlMode;
iNumberOfSequences    : INT;
iMyNumberInSequence   : INT;
rW                    : REAL;
rX                    : REAL;
tTaskCycleTime        : TIME;
tCtrlCycleTime        : TIME;
rOutsideTemp          : REAL;
rReturnAirTemp        : REAL;
eCtrlMode             : E_HVACCtrlMode;
rYManual              : REAL;
rYMin                 : REAL;
bResetController      : 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.

eModeSeqCtrl: Über dieses Enum erfolgt unter anderem die Freigabe der Regelung (siehe E_HVACSequenceCtrlMode). Außerdem wird in der Sequenz die Betriebsart der RLT-Anlage an die Regelbausteine übertragen. Siehe auch Tabelle Betriebsarten.

iNumberOfSequences: Anzahl der Sequenzregler in der Anlage.

iMyNumberInSequence: Die eigene Nummer vom Regler aus der Sequenz.

rW: Mit der Variablen rW wird dem Regler der Sollwert übergeben.

rX: Istwert des Regelkreises.

tTaskCycleTime: Zykluszeit, mit der der Funktionsbaustein aufgerufen wird. Diese entspricht der Task-Zykluszeit der aufrufenden Task, wenn der Baustein in jedem Zyklus aufgerufen wird.

tCtrlCycleTime: Mit der Variablen tCtrlCycleTime wird die Zykluszeit vorgegeben mit der der PID-Regler abgearbeitet wird. Die kleinste mögliche Zykluszeit ist die der Steuerung. Da die Regelstrecken in der Gebäudeautomation überwiegend langsam sind, kann die Zykluszeit des Reglers ein mehrfaches der Steuerungszykluszeit betragen.

rOutsideTemp: Außentemperatur

rReturnAirTemp: Ablufttemperatur

eCtrlMode: Über dieses Enum wird der Betriebsmodus ausgewählt (siehe E_HVACCtrlMode). Hand- oder Automatikbetrieb.

rYManual: Manueller Wert, der bei eCtrlMode = eHVACCtrlMode_Manual an den Ausgang rY gesetzt wird.

rYMin: Untere Begrenzung des Arbeitsbereiches vom Regler.

bResetController: Eine positive Flanke am Eingang bResetController bewirkt einen Neustart des PID-Regler.

bReset: Quittierungseingang bei einer Störung.

VAR_OUTPUT

rY                : REAL;
rXW               : REAL;
bMaxLimit         : BOOL;
bMinLimit         : BOOL;
bActive           : BOOL;
bARWactive        : BOOL;
eState            : E_HVACState;
bError            : BOOL;
eErrorCode        : E_HVACErrorCodes;
bInvalidParameter : BOOL;

rY: Stellsignalausgang des PID-Reglers.

rXW: Regelabweichung.

bMaxLimit: Der Ausgang bMaxLimit ist TRUE, wenn der Ausgang rY den Wert rYMax erreicht hat.

bMinLimit: Der Ausgang bMinLimit ist TRUE, wenn der Ausgang rY den Wert rYMin erreicht hat.

bActive: bActive ist TRUE, wenn der Regler aktiv und freigegeben ist.

bARWactive: bARWactive ist TRUE, wenn der Integralanteil des Reglers die untere oder obere Stellgrößenlimitierung erreicht hat.

eState: Status vom Regler (siehe E_HVACState).

bError: Der Ausgang signalisiert mit einem TRUE, dass ein Fehler anliegt.

eErrorCode: E_HVACErrorCodes (siehe E_HVACErrorCodes).

bInvalidParameter: TRUE, wenn bei der Plausibilitätsüberprüfung ein Fehler aufgetreten ist. Die Meldung muss mit bReset quittiert werden.

VAR_IN_OUT

rDeadRange      : REAL;
rInitialValue   : REAL;
rKp             : REAL;
tTi             : TIME;
tTv             : TIME;
tTd             : TIME;
rDeadBand       : REAL;
rYMax           : REAL;
iCurrentSequence: INT;

rDeadRange: Um unnötiges Verfahren und damit frühzeitiges Verschleißen der Ventile oder Klappenantriebe zu vermeiden, kann für das Ausgangssignal rY des Reglers eine Totzone eingestellt werden. Eine Stellsignaländerung wird damit erst aktiv, wenn die Wertänderung größer als die Totzone ist. Eine stetige Änderung des Stellsignals rY wird bei Angabe einer Totzone in ein pulsierendes Verfahren des Stellorgans umgewandelt. Je größer die Totzone, desto größer sind die Pausen und Stellsignalsprünge. Die Variable wird persistent gespeichert. Voreingestellt auf 0.

rInitialValue: Mit dem rInitialValue wird das Neustartverhalten des Reglers beeinflusst. Die Variable wird persistent gespeichert. Voreingestellt auf 0.

rKp: Proportionalfaktor Verstärkung. Die Variable wird persistent gespeichert. Voreingestellt auf 0.

tTi: Integrierzeit. Der I-Anteil korrigiert die verbleibende Regelabweichung nach der Korrektur des P-Anteils. Je kleiner die tTi-Zeit eingestellt wird, desto schneller korrigiert der Regler. Ist die Zeit zu kurz, wird der Regelkreis instabil. Um den Integrationsanteil zu vermindern, sind größere tTi-Zeiten einzugeben. Die Nachstellzeit sollte größer als die Verfahrzeit des Ventil- oder Klappenantriebes gewählt werden. Die Variable wird persistent gespeichert. Voreingestellt auf 30s.

tTv: Vorhaltezeit. Je größer tTv ist, desto stärker korrigiert der Regler. Eine zu große Zeit führt zu einem instabilen Regelkreis. In normalen Anwendungen der Gebäudeautomation wird häufig nur ein PI-Regler verwendet. In diesem Fall muss für tTv Null eingegeben werden. Die Variable wird persistent gespeichert. Voreingestellt auf 0s.

tTd: Dämpfungszeit. Die Variable wird persistent gespeichert. Voreingestellt auf 0s.

rDeadBand: Falls die Stellgröße am unteren oder oberen Limit eines Reglers ist, und der Istwert der Regelstrecke mit kleiner Amplitude um den Sollwert pendelt, kann ein häufiges Hin- und Herschalten zwischen zwei Sequenzreglern mit einem zusätzlichen Parameter für die Umschaltung gedämpft werden. Dazu wird nachdem der Sequenzregler sein unteres oder oberes Limit erreicht hat, die Abweichung zwischen dem Istwert und dem Sollwert der Regelstrecke aufintegriert. Eine Umschaltung auf die nächste Sequenz erfolgt erst, wenn der Betrag dieser Integration größer ist als der Wert von rDeadband (siehe Beispiel). Die Variable wird persistent gespeichert. Voreingestellt auf 0.

rYMax: Obere Begrenzung des Arbeitsbereichs vom Regler. Die Variable wird persistent gespeichert. Voreingestellt auf 100.

iCurrentSequence: Nummer des aktiven Reglers aus der Sequenz.

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