FB_BARFanCoil

Der Funktionsbaustein bildet einen 3-stufigen Ventilator mit der entsprechenden Schalthysterese ab, diese ist für alle drei Stufen gleich. Über die Regelabweichung des Raumtemperatur-Istwert zum Raumtemperatur-Sollwert wird die Drehzahl stufenweise eingestellt. Des Weiteren hat man die Möglichkeit über den Eingang iStageManual bzw. bStageUp oder bStageDown die Ventilatorsteuerung manuell zu übersteuern. Über den Eingang udiSecMINPowerOnTime kann eine Mindesteinschaltzeit eingestellt werden, die dann für jede Stufe gültig ist.
VAR_INPUT
eDataSecurityType : E_HVACDataSecurityType;
bSetDefault : BOOL;
bEnable : BOOL;
eCtrlFct : E_BARCtrlFct;
rSetpoint : REAL;
rRoomTemp : REAL;
bStageUp : BOOL;
bStageDown : BOOL;
iStageManual : INT;
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: Ist die Variable bEnable TRUE, dann ist der Funktionsbaustein aktiviert. Bei einem FALSE ist keine Ventilatorstufe angesteuert.
eCtrlFct: Dieser Eingang wird mit dem Ausgang eCtrlFct von dem FB_BARFctSelection verbunden. Diese Information ist wichtig um zu wissen, ob die Anlage sich im Heiz- oder Kühlbetrieb befindet. Im Automatikbetrieb werden die Ventilatorstufen nur dann angesteuert, wenn z.B. laut Regelabweichung ist die Anforderung für Heizen aktiv ist und die Anlage befindet sich im Heizbetrieb. Oder laut Regelabweichung ist die Anforderung für Kühlen aktiv und die Anlage befindet sich im Kühlbetrieb.
rSetpoint: Eingang für die Solltemperatur.
rRoomTemp: Eingang für die Raumtemperatur.
bStageUp: Lokale Verstellung der Ventilatorstufe, schrittweise Hochtasten.
bStageDown: Lokale Verstellung der Ventilatorstufe, schrittweise Runtertasten.
iStageManual: Über diesen Eingang kann/wird die manuelle Ventilatorstufe zentral eingestellt.
iStageManual: = 0 entspricht der Ventilatorstufe AUS
iStageManual: = 1 entspricht der Ventilatorstufe AUTO
iStageManual: = 2 entspricht der Ventilatorstufe01 aktiv
iStageManual: = 3, entspricht der Ventilatorstufe02 aktiv
iStageManual: = 4, entspricht der Ventilatorstufe03 aktiv
bReset: Quittierungseingang bei einer Störung oder bei einem falschen Parameter.
VAR_OUTPUT
bStageOff : BOOL;
bStageAuto : BOOL;
bStage01 : BOOL;
bStage02 : BOOL;
bStage03 : BOOL;
bFanCoilActive : BOOL;
bPresence : BOOL;
byState : BYTE;
byError : BYTE;
udiSecRT_MINPowerOnTime : UDINT;
udiRT_TimePeriod : UDINT;
bInvalidParameter : BOOL;
bStageOff: TRUE, Ventilatorstufen sind ausgeschaltet.
bStageAuto: TRUE, Ventilatorsteuerung befindet sich im Automatikbetrieb.
bStage01: TRUE, Ventilatorstufe01 aktiv.
bStage02: TRUE, Ventilatorstufe02 aktiv.
bStage03: TRUE, Ventilatorstufe03 aktiv.
bFanCoilActive: TRUE, wenn eine von den drei Ventilatorstufen aktiv ist. Dieser Ausgang kann/wird zur Freigabe von Regler verwendet, damit ein Hitze- bzw. Kältestau vermieden wird.
bPresence: TRUE entspricht, dass über die Eingänge bStageUp, bStageDown oder iStageManual Präsenz detektiert wurde.
byState: Zeigt den Status der Ventilatorsteuerung an.
byState.0:= Baustein ist aktiviert
byState.3:= manuelle Ventilatorstufen Vorgabe ist aktiv
byState.4:= bReset
byState.5:= Ventilatorstufe01 aktiv
byState.6:= Ventilatorstufe02 aktiv
byState.7:= Ventilatorstufe03 aktiv
byError: Ausgabe der Fehler als Byte.
byError.1:= bInvalidParameter
udiSecRT_MINPowerOnTime: Zeigt, die verbleibende Zeit der Mindesteinschaltdauer an.
udiRT_TimePeriod: Zeigt, die verbleibende Zeit der manuellen Übersteuerung an.
bInvalidParameter: Zeigt an, dass ein falscher Eingangsparameter anliegt. bInvalidParameter muss mit bReset quittiert werden.
VAR_IN_OUT
rDeviationXW_Stage01 : REAL;
rDeviationXW_Stage02 : REAL;
rDeviationXW_Stage03 : REAL;
rHysteresisRange : REAL;
udiSecMINPowerOnTime : UDINT;
iFctModeFanCoil : INT;
udiTimePeriod : UDINT;
rDeviationXW_Stage01: Grenzwert der Regelabweichung für die Ventilatorstufe01. Die Variable wird persistent gespeichert. Voreingestellt auf 0,7.
rDeviationXW_Stage02: Grenzwert der Regelabweichung für die Ventilatorstufe02. Die Variable wird persistent gespeichert. Voreingestellt auf 1,7.
rDeviationXW_Stage03: Grenzwert der Regelabweichung für die Ventilatorstufe03. Die Variable wird persistent gespeichert. Voreingestellt auf 2,1.
rHysteresisRange: Hysterese Bereich, der um den Grenzwert gelegt wird.
Beispiel: Ein Grenzwert für von 0.7 und einem Hysteresebereich von 0.2 hat zur Folge, dass die Ventilatorstufe01 bei einer Regelabweichung > 0.8 eingeschaltet wird.
Und bei einer Regelabweichung < 0.6 wird die Ventilatorstufe01 ausgeschaltet.
Die Variable wird persistent gespeichert. Voreingestellt auf 0,2.
udiSecMINPowerOnTime: Mindesteinschaltzeit, die ein Ventilator in einer Stufe laufen muss bis er auf eine andere Stufe schaltet bzw. ausschaltet. Eingabe in Sekunden (z.B. 120 entspricht 120s). Die Variable wird persistent gespeichert. Voreingestellt auf 120s.
iFctModeFanCoil: Über die Wertigkeit der Variable hat der Anwender die Möglichkeit die Ventilatorsteuerung für den Heizbetrieb oder Kühlbetrieb oder für beide Betriebe zu aktivieren. Gültige Werte sind 1,2 oder 3 andere Werte sind ungültig und bInvalidParameter wird auf TRUE gesetzt. Die Variable wird persistent gespeichert. Voreingestellt auf 3.
Cooling | Heating | Wertigkeit |
0 | 1 | 1 (entspricht Ventilatorsteuerung im Heizbetrieb aktiv) |
1 | 0 | 2 (entspricht Ventilatorsteuerung im Kühlbetrieb aktiv) |
1 | 1 | 3 (entspricht Ventilatorsteuerung im Heizbetrieb und Kühlbetrieb aktiv) |
udiTimePeriod: Zeitfenster indem die manuelle Übersteuerung aktiv ist bei Präsenz. Die Variable wird persistent gespeichert. Voreingestellt auf 60min.
Darstellung der Ventilatoransteuerung mit den Defaultparametern:
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 |