Burner3P

Burner3P (FB)

FUNCTION_BLOCK Burner3P

Kurzbeschreibung

Steuerung eines Wärmeerzeugers ( Temperaturregelung über binäre Steuerbefehle Mehr / Weniger ) Typische Anwendung: Wärmeerzeugung

Darstellung

Funktionsbeschreibung

Allgemeines

Dieser Funktionsbaustein dient zur Steuerung / Regelung eines Wärmeerzeugers in Abhängigkeit von der Anforderung des Wärmeerzeugers xEn, der Vorlaufsolltemperatur rSetPtTemp und der Vorlauftemperatur rFdT. Die Freigabe / Sperrung des Wärmeerzeugers erfolgt über den Ausgang xHB ( FALSE = Sperrung, TRUE = Freigabe ). Die Vorlauftemperaturregelung ( analog auch Kesseltemperaturregelung ) erfolgt mittels zweier Leistungsregler ( P-Regler, langsam und schnell ) durch die Ausgänge xMoreHB und xLessHB. Die Freigabe der Regelung erfolgt zeitverzögert ( Sollwert / Parameter udiWaitControl ) nach der Betriebsrückmeldung ( xFb = TRUE ) des Wärmeerzeugers. Es kommen im Wesentlichen folgende Funktionsbausteine zur Anwendung:

ControlP

Out3P

OperatingHours

ManBin

Freigabe / Sperrung des Wärmeerzeugers

Die Freigabe des Wärmeerzeugers ( xAB = TRUE, xHB = TRUE ( eManModeB = eManBin.Auto )) erfolgt, falls die Vorlauftemperatur rFdT die Summe aus Vorlaufsolltemperatur rSetPtTemp und Sollwert / Parameter rSwitchOnPoint unterschreitet, gleichzeitig die generelle Freigabe xEn aktiv ( = TRUE ) und die Mindeststillstandszeit nicht aktiv ist. Die Sperrung des Wärmeerzeugers ( xAB = FALSE, xHB = FALSE ( eManModeB = eManBin.Auto )) erfolgt, falls die Vorlauftemperatur rFdT die Summe aus Vorlaufsolltemperatur rSetPtTemp und Sollwert / Parameter rSwitchOffPoint überschreitet und gleichzeitig die generelle Freigabe xEn aktiv ( = TRUE ) ist. Zwischen zwei aufeinander folgenden Betriebszyklen wird stets eine Mindeststillstandszeit ( Zeitdauer = udiTimeMinOff, Anzeige - Restzeit: tOnDelay ) eingefügt. Die Mindeststillstandszeit beginnt jeweils mit der fallenden Flanke ( TRUE > FALSE ) am Eingang xFb.

Temperaturregelung des Wärmeerzeugers

Die Freigabe der Temperaturregelung erfolgt zeitverzögert ( Zeitdauer = udiWaitControl, Anzeige - Restzeit: tOnControlDelay ) nach der aktiven Betriebsmeldung ( xFb = TRUE ) des Wärmeerzeugers. Die Sperrung der Temperaturregelung erfolgt unmittelbar nach der inaktiven Betriebsmeldung ( xFb = FALSE ) des Wärmeerzeugers ( Ausschaltwert: rYDisabled ). Die beiden internen Leistungsregler ( P-Regler, langsam und schnell, Ausgangsbereich jeweils -100.0 - 100.0 % ) werden gleichzeitig freigegeben / gesperrt. ( Sollwert = Vorlaufsolltemperatur rSetPtTemp, Istwert = Vorlauftemperatur rFdT ). Die Stellsignale beider Leistungsregler werden in Minimalwertauswahl ( Weiterleitung des Signals mit dem geringeren Wert ) dem Ausgangsregler im Bereich -100.0 - 100.0 % zugeführt. Der Ausgangsregler erzeugt abschliessend Ausgangssignale für einen 3-Punkt-Antrieb ( Pulsweitenmodulation, Integrationsintervall = tIntegration ) mit den Ausgängen xMoreHB bzw. xLessHB. Die konstante Impulsdauer für die beiden Ausgänge ist jeweils frei einstellbar ( tImpulsOpen bzw. tImpuls Close ), die variablen Impulspausen werden durch den Ausgangsregler festgelegt. Die beiden Leistungsregler können individuell und abhängig voneinander konfiguriert werden ( P-Regler schnell: Verstärkungsfaktor rKpBig, P-Regler langsam: Verstärkungsfaktor rKpTiny ).

Handübersteuerung der digitalen Ausgänge

Alle digitalen Steuerungsausgänge nach Handübersteuerung ( xHB, xMoreHB*, xLessHB ) können entweder im Automatikmodus ( eMANBIN.Auto ) oder in einer der beiden Handbetriebsarten ( eMANBIN.ManOn, eMANBIN.ManOff ) betrieben werden.

xAB

eMANBIN

xHB

Hinweise

FALSE

eMANBIN.Auto

FALSE

Handübersteuermodul in Automatik

TRUE

eMANBIN.Auto

TRUE

Handübersteuermodul in Automatik

X

eMANBIN.ManOn

TRUE

Handübersteuermodul in Handbetrieb Ein

X

eMANBIN.ManOff

FALSE

Handübersteuermodul in Handbetrieb Aus

Legende: X = beliebig

Sammelstörung xAlarm

Die Sammelstörung xAlarm ist aktiv ( = TRUE ), falls die Störmeldung des Wärmeerzeugers xAlarmIn aktiv ( = TRUE ) ist. In allen übrigen Situationen ist die Sammelstörung xAlarm nicht aktiv ( = FALSE ).

Sammelmeldung Automatikbetrieb xAuto

Die Sammelmeldung Automatikbetrieb xAuto wird aktiviert ( = TRUE ), falls folgende Bedingungen gleichzeitig erfüllt sind:\

  • Eingang eAOO = HVACTYPES.eManBin.Auto

  • Eingang eAOOMore = HVACTYPES.eManBin.Auto

  • Eingang eAOOLess = HVACTYPES.eManBin.Auto

  • Sollwert / Parameter eManModeB = eMANBIN.Auto

  • Sollwert / Parameter eManModeBMore = eMANBIN.Auto

  • Sollwert / Parameter eManModeBLess = eMANBIN.Auto

Betriebsstundenzähler - Wärmeerzeuger

Der Betriebsstundenzähler ( udiOperatingHours, udiCountFb ) für den Wärmeerzeuger ist aktiv, wenn die Betriebsmeldung aktiv ist ( xFb = TRUE ).

Schreibzugriff auf die Zählerstände

Über den Pfad ‘Instanzname._OperatingHours.udiOperatingHours’ bzw. ‘Instanzname._OperatingHours.udiCountFb’ ist ein Schreibzugriff auf die beide Zählerstände möglich.\

Voraussetzung für den Einsatz des Funktionsbausteins Burner3P

Zur korrekten Funktion ist der Einsatz des Funktionsbausteins TimeRead2 erforderlich.

Aktuelle berechnete Leistung des Wärmeerzeugers rPos

Die aktuelle berechnete Leistung des Wärmeerzeugers wird am Ausgang rPos im Bereich 0.0 - 100.0 % dargestellt. Hierzu ist die korrekte Angabe der Laufzeit des Antriebs zwischen minimaler und maximaler Leistung ( tDuration ) erforderlich. Es findet keine Neupositionierung an einer Referenzposition statt.

Rückführung der Leistung des Wärmeerzeugers rU

Die aktuelle tatsächliche Leistung des Wärmeerzeugers kann am Eingang rU angeschlossen werden. Dieser Eingang wird aktuell nicht für Steuerungs- und Regelungszwecke verwandt.

Nicht aktiver Zustand ( xEn = FALSE )

xHB

xAB

xMoreHB

xMoreAB

xLessHB

xLessAB

rPos

tOnDelay

tOnControlDelay

dtLastFb

udiOperatingHours

udiCountFb

xAlarm

xAuto

Hinweise

FALSE ( eManModeB = eManBin.Auto )

FALSE

FALSE ( eManModeBMore = eManBin.Auto )

FALSE

FALSE ( eManModeBLess = eManBin.Auto )

FALSE

0.0 %

alter Wert

alter Wert

alter Wert

alter Wert

alter Wert

Zustand von xAlarmIn

alter Wert

xEn = FALSE

Legende: X = beliebig

CODESYS

InOut:

Scope
Name
Type
Initial

Input

xEn

BOOL

Input

rSetPtTemp

REAL

Input

xFb

BOOL

Input

rU

REAL

0

Input

xAlarmIn

BOOL

Input

eAOO

eManBin

eManBin.Auto

Input

eAOOMore

eManBin

eManBin.Auto

Input

eAOOLess

eManBin

eManBin.Auto

Input

rFdT

REAL

Output

xHB

BOOL

Output

xAB

BOOL

Output

xMoreHB

BOOL

Output

xMoreAB

BOOL

Output

xLessHB

BOOL

Output

xLessAB

BOOL

Output

rPos

REAL

Output

tOnDelay

TIME

Output

tOnControlDelay

TIME

Output

dtLastFb

DT

Output

udiOperatingHours

UDINT

Output

udiCountFb

UDINT

Output

xAlarm

BOOL

Output

xAuto

BOOL

Input Const

udiTimeTOFxFb

UDINT

7

Input Const

tDuration

TIME

TIME#1m0s0ms

Input Const

tIntegration

TIME

TIME#100ms

Input Const

tImpulsClose

TIME

TIME#1s0ms

Input Const

tImpulsOpen

TIME

TIME#1s0ms

Input Const

rKpTiny

REAL

0.6

Input Const

rKpBig

REAL

4

Input Const

rOffset

REAL

0

Input Const

rYDisabled

REAL

0

Input Const

udiWaitControl

UDINT

3

Input Const

rSwitchOffPoint

REAL

2.5

Input Const

rSwitchOnPoint

REAL

-2.5

Input Const

udiTimeMinOff

UDINT

3

Input Const

eManModeBLess

eMANBIN

eMANBIN.Auto

Input Const

eManModeBMore

eMANBIN

eMANBIN.Auto

Input Const

eManModeB

eMANBIN

eMANBIN.Auto

Zuletzt aktualisiert