FB_BA_FnctSel

Der Funktionsbaustein FB_BA_FnctSel dient der Freigabe des Heiz- oder Kühlbetriebs in einem Raum.
Dabei spielt die Art des Verteilungsnetzes eine große Rolle:
Handelt es sich um ein Zweileitersystem, so können alle Räume der Anlage immer nur entweder beheizt oder gekühlt werden.
In einem Vierleitersystem hingegen kann die Klimatisierung der Räume bedarfsgerecht erfolgen, d.h. ein Teil der Räume kann beheizt, der andere von derselben Anlage gekühlt werden.
Der Funktionsbaustein, der wie bereits erwähnt pro Raum Anwendung findet, wählt damit je nach vorhandenem Rohrleitungssystem seine Regler unterschiedlich an:
Zweileiternetz
Das Zweileitersystem ist angewählt, wenn am Eingang der Bausteins ePipeSys.e2Pipe eingestellt ist. Da alle Räume der Anlage nur entweder beheizt oder gekühlt werden können, wird die Anwahl von zentraler Stelle für alle Räume gleich über den Eingang eMedium vorgegeben. Ist eMedium FALSE, so wird der Raum-Heizregler angewählt - ist der Eingang TRUE, so ist es der Kühlregler. Die Reglerfreigaben bEnHtg und bEnCol werden immer gegenseitig verzögert um nChgOvrDly [s] ausgegeben, das heißt: erst wenn die Freigabe Kühlen bEnCol für nChgOvrDly FALSE ist, kann die Freigabe Heizen gegeben werden und umgekehrt. Zusätzlich zum Ablauf dieser Umschaltzeit wird darauf geachtet, dass der abzuschaltende Regler 0.0 ausgibt. Dies geschieht durch Rückmeldung an den Eingängen fCtrlValHtg und fCtrlValCol. So wird ein drastischer Wechsel von Heizen auf Kühlen und umgekehrt vermieden.
Vierleiternetz
Das Vierleitersystem ist angewählt, wenn am Eingang der Bausteins ePipeSys.e4Pipe eingestellt ist. Die Regleranwahl kann nun für alle Räume nach Bedarf unterschiedlich sein und richtet sich daher nach der Raumtemperatur fRmT und den eingestellten Sollwerten fSpHtg für Heizen und fSpCol für Kühlen. Übersteigt die Raumtemperatur den Kühlsollwert, so wird der Kühlregler freigegeben (bEnCol), fällt sie unter den Heizsollwert, wird der Heizregler freigegeben (bEnHtg). Befindet sich die Temperatur zwischen beiden Sollwerten, so sind beide Regler abgeschaltet (energieneutrale Zone). Auch hier werden die Reglerfreigaben bEnHtg und bEnCol immer gegenseitig verzögert um nChgOvrDly [s] ausgegeben (siehe Zweileiternetz) und zusätzlich zum Ablauf dieser Umschaltzeit darauf geachtet, dass der abzuschaltende Regler 0.0 ausgibt. Dies geschieht durch Rückmeldung an den Eingängen fCtrlValHtg und fCtrlValCol. So wird ein drastischer Wechsel von Heizen auf Kühlen und umgekehrt vermieden, falls die Umschaltzeit nicht ausreichend hoch bemessen ist.
Taupunktwächter (bDewPnt)
In beiden Systemen - Zwei- und Vierleiter - hat der Taupunktwächter die Aufgabe, das Kühlen unmittelbar zu verriegeln.
Programmablauf
Der Baustein kennt 3 Zustände:
- Warten auf Freigabe Heizen bzw. Kühlen
- Freigabe Heizen
- Freigabe Kühlen
Im ersten Schritt wartet der Baustein auf die Erfüllung der Bedingungen, die für das Heizen bzw. das Kühlen notwendig sind:
Heizen | Kühlen |
---|---|
Ausgabe Kühlregler = 0 (fCtrlValCol) | Ausgabe Heizregler = 0 (fCtrlValHtg) |
Raumtemperatur (fRmT) < Sollwert Heizen (fSpHtg) | Raumtemperatur (fRmT) > Sollwert Kühlen (fSpCol) |
Reglerfreigabe Kühlen (bEnCol) steht mindestens für die Umschaltzeit nChgOvrDly [s] auf FALSE | Reglerfreigabe Heizen (bEnHtg) steht mindestens für die Umschaltzeit nChgOvrDly [s] auf FALSE |
Vierleitersystem ist angewählt (ePipesys = E_BA_PipeSys.4Pipe) oder Zweileitersystem ist angewählt und es steht Heizmedium an (ePipesys = E_BA_PipeSys.2Pipe AND bMedium = FALSE) | Vierleitersystem ist angewählt (ePipesys = E_BA_PipeSys.e4Pipe) oder Zweileitersystem ist angewählt und es steht Kühlmedium an (ePipesys = E_BA_PipeSys.e2Pipe AND bMedium = TRUE) |
| Der Taupunktwächter spricht nicht an (bDewPnt = TRUE) |
Ist nun eine Bedingungskette erfüllt, springt der Baustein in den jeweiligen Zustand Heizen oder Kühlen und beendet diesen erst, wenn der entsprechende Regler am Bausteineingang (fCtrlValHtg/fCtrlValCol) 0 ausgibt. Damit ist sichergestellt, dass immer nur ein Regler aktiv ist, auch wenn eine zu hohe Reglerausgabe, z. B. Heizen, u. U. ein kurzfristiges Kühlen erforderlich machen würde (Überschwingen). Das Heizen, bzw. Kühlen wird dann erst abgeschlossen, wenn kein Bedarf mehr ansteht.
Allerdings gibt es 3 Ausnahmen, bei denen das Heizen bzw. Kühlen unmittelbar unterbrochen wird:
- Im Zweileitersystem (ePipeSys = E_BA_PipeSys.2Pipe) wird geheizt (bEnHtg), es wurde jedoch auf Kühlmedium umgestellt (eMedium = E_BA_Medium.eCoolMedium)
- Im Zweileitersystem (ePipeSys = E_BA_PipeSys.2Pipe) wird gekühlt (bEnCol), es wurde jedoch auf Heizmedium umgestellt (eMedium = E_BA_Medium.eHeatMedium)
- Im Kühlbetrieb (Zwei- oder Vierleitersystem) hat der Taupunktwächter angesprochen (bDewPnt=TRUE)
In diesen Fällen werden die Heiz- und Kühlfreigaben weggenommen und zurück in den Wartezustand gesprungen.
![]() | Ist eine der beiden Reglerfreigaben gegeben und der entsprechende Regler reagiert nicht, das heißt er bleibt für die Zeit nChgOvrDly [s] weiterhin auf "0", Es handelt sich hierbei um eine Notfunktion, falls ein Temperatursensor springt und eine falsche Auswahl getroffen wird, die dann durch den gewählten Regler nicht erfüllt werden kann. Ein Beispiel wäre, wenn beim SPS-Start eine Sensorfunktion 0° ausgibt, dadurch Heizen angewählt wird und die Sensorfunktion dann aufgrund einer programmierten SPS-Startverzögerung einen Temperaturwert annimmt, der den Kühlregler fordert. Ohne diese Notfunktion würde vergeblich gewartet werden, dass der Heizregler einen Wert größer "0" annimmt. |
Bedarfsmitteilung (eReqdMedium)
Um der Anlage mitzuteilen, wie der aktuelle Bedarf an Wärme oder Kühlung ist, wird am Bausteinausgang, also pro Raum, in Abhängigkeit der Ist- und Solltemperatur eine Bedarfskennung ausgegeben. Diese kann zentral gesammelt und ausgewertet werden. Die Auswertung erfolgt immer, also unabhängig vom vorhandenen Netzsystem (Zwei- oder Vierleiter).
eReqdMedium | Medium | Raumtemperatur |
---|---|---|
1 | Kein Medium ist angefordert | fRmT > fSpHtg UND fRmT < fSpCol |
2 | Heizmedium ist angefordert | fRmT < fSpHtg |
3 | Kühlmedium ist angefordert | fRmT > fSpCol |
Fehlerbehandlung
Der Heiz-Sollwert darf nicht größer oder gleich dem Kühl-Sollwert sein, da damit ein Temperaturbereich entstehen würde, in dem gleichzeitig Heiz- und Kühlbedarf entsteht. Da der Baustein jedoch immer nur eine Freigabe, Heizen oder Kühlen ausgibt, ist der Fall anlagentechnisch unbedenklich. Es wird für diesen Fall nur eine Warnmeldung (bErr = TRUE, sErrDescr = Warnmeldung) ausgegeben - der Baustein unterbricht seine Abarbeitung nicht.
Eingänge
VAR_INPUT
ePipeSys : E_BA_PipeSys;
eMedium : E_BA_Medium;
bDewPnt : BOOL;
fRmT : REAL;
fSpHtg : REAL;
fSpCol : REAL;
fCtrlValHtg : REAL;
fCtrlValCol : REAL;
nChgOvrDel : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
ePipeSys | Rohrleitersystem (2Pipe, 4Pipe) der Anlage. | |
eMedium |
Auswahl des Mediums für das gesamte Zweileiternetz (NoMedium, HeatMedium, CoolMedium). | |
bDewPnt | BOOL | Taupunktwächter: wenn bDewPnt = FALSE, dann wird der Kühlregler gesperrt. |
fRmT | REAL | Raumtemperatur |
fSpHtg | REAL | Errechneter Sollwert der Zulufttemperatur für den Erhitzer. |
fSpCol | REAL | Errechneter Sollwert der Zulufttemperatur für den Kühler. |
fCtrlValHtg | REAL | Aktueller Ausgabewert vom Heizregler. Wird intern als Umschaltkriterium von Heizen auf Kühlen verwendet: fCtrlValHtg muss 0 sein. |
fCtrlValCol | REAL | Aktueller Ausgabewert vom Kühlregler. Wird intern als Umschaltkriterium von Kühlen auf Heizen verwendet: fCtrlValCol muss 0 sein. |
nChgOvrDel | UDINT | Umschaltverzögerung [s] von Heizen auf Kühlen und umgekehrt. Intern begrenzt auf einen Minimalwert von 0. |
Ausgänge
VAR_OUTPUT
bEnHtg : BOOL;
bEnCol : BOOL;
eReqdMedium : E_BA_Medium;
nRemTiChgOvrDlyHtg : UDINT;
nRemTiChgOvrDlyCol : UDINT;
bErr : BOOL;
sErrDescr : T_MAXSTRING;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bEnHtg | BOOL | Freigabe des Reglers Heizen. |
bEnCol | BOOL | Freigabe des Reglers Kühlen. |
eReqdMedium | Angefordertes Medium (siehe Bedarfsermittlung). | |
nRemTiChgOvrDlyHtg | UDINT | Countdown [s] Umschaltverzögerung von Kühlen auf Heizen. |
nRemTiChgOvrDlyCol | UDINT | Countdown [s] Umschaltverzögerung von Heizen auf Kühlen. |
bErr | BOOL | Bei fehlerhafter Abarbeitung, bzw. bei Warnzuständen wird dieser Ausgang auf TRUE gesetzt. |
sErrDescr | Enthält die Fehlerbeschreibung |
Fehlerbeschreibung |
---|
01: Warnung: Der Sollwert Heizen (Setpoint Heating) ist größer als oder gleich dem Sollwert Kühlen (Setpoint Cooling) |
Voraussetzungen
Entwicklungsumgebung | Erforderliche SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4024.22 | Tc3_BA2 ab v5.2.5.0 |