FB_HVACMasterSequenceCtrl

FB_HVACMasterSequenceCtrl 1:

Eine verbesserte Regelbarkeit erreicht man mit Hilfe der Abluft- bzw. Raumtemperatur-Kaskadenregelung. Der Führungsregler misst die Raum- bzw. Ablufttemperatur und passt den Sollwert für die Zulufttemperatur den Verhältnissen im Raum an. Der Sollwert für die Zuluft wird durch einen Minimal- und einen Maximalwert begrenzt.

Im Stützbetrieb der Raumlufttechnischen Anlage (eModeSeqCtrl = eHVACSequenceCtrlMode_FreezeProtection) wird der Wert von rYMax direkt auf den Ausgang rY durchgeschaltet. Bei aktivem Überhitzungsschutz (eModeSeqCtrl = eHVACSequenceCtrlMode_OverheatingProtection) wird der Wert von rYMin direkt auf den Ausgang rY durchgeschaltet.

VAR_INPUT

eDataSecurityType     : E_HVACDataSecurityType;
bSetDefault           : BOOL;
eModeSeqCtrl          : E_HVACSequenceCtrlMode;
rW                    : REAL;
rX                    : REAL;
tTaskCycleTime        : TIME;
tCtrlCycleTime        : TIME;
eCtrlMode             : E_HVACCtrlMode;
rYManual              : 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: Mit dem Enum eModeSeqCtrl wird dem Regler die Anlagenbetriebsart übergeben (siehe E_HVACSequenceCtrlMode).

rX: Erfasst den Istwert des Regelkreises.

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

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: Zykluszeit, mit der der Regelkreis bearbeitet wird. Diese muss größer oder gleich der tTaskCycleTime sein. Der Funktionsbaustein berechnet mit dieser Eingangsgröße intern, ob die Zustands- und Ausgangsgrößen im aktuellen Zyklus aktualisiert werden müssen.

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

rYManual: Manueller Wert für den Handbetrieb.

bResetController: Die internen Variablen des PID-Reglers werden zurückgesetzt.

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: Temperatursollwert für die Zulufttemperaturregler.

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 rYMinerreicht hat.

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

bARWactive: bARWactive ist TRUE, wenn der Integralanteil vom Regler 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: Enthält den befehlsspezifischen Fehlercode (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;
rYMin             : REAL;
rYMax             : REAL;

rDeadRange: Um unnötige Verfahren und damit frühzeitiges Verschleißen der Ventile oder der Klappenantriebe zu vermeiden, kann für das Ausgangssignal rY des Reglers eine Totzone eingestellt werden (0..32767). 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 groß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 (0..32767). Die Variable wird persistent gespeichert. Voreingestellt auf 0.

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

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 großer als die Verfahrzeit des Ventil- oder Klappenantriebs gewählt werden. Die Variable wird persistent gespeichert. Voreingestellt auf 30s.

tTv: Vorhaltezeit. Je größer tTvist, 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.

rYMin: Untere Begrenzung des Arbeitsbereichs vom Regler. Die Variable wird persistent gespeichert. Voreingestellt auf 16.

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

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