FB_BA_FnctSel

FB_BA_FnctSel 1:

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:

  1. Warten auf Freigabe Heizen bzw. Kühlen
  2. Freigabe Heizen
  3. 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:

  1. Im Zweileitersystem (ePipeSys = E_BA_PipeSys.2Pipe) wird geheizt (bEnHtg), es wurde jedoch auf Kühlmedium umgestellt (eMedium = E_BA_Medium.eCoolMedium)
  2. Im Zweileitersystem (ePipeSys = E_BA_PipeSys.2Pipe) wird gekühlt (bEnCol), es wurde jedoch auf Heizmedium umgestellt (eMedium = E_BA_Medium.eHeatMedium)
  3. 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.

FB_BA_FnctSel 2:

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",
so springt der Baustein selbstständig in den ersten Schritt "Warten auf Freigabe Heizen bzw. Kühlen" zurück.

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.

FB_BA_FnctSel 3: 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

E_BA_PipeSys

Rohrleitersystem (2Pipe, 4Pipe) der Anlage.

eMedium

E_BA_Medium

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.

FB_BA_FnctSel 4: 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

E_BA_Medium

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

T_MAXSTRING

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