DuoPump

DuoPump (FB)

FUNCTION_BLOCK DuoPump

Kurzbeschreibung

Redundante Steuerung von zwei gleichartigen Umwälzpumpen mit Blockierschutzfunktion Zusatzfunktionen: Anforderung der Energieerzeugung, Handübersteuerungen, Pumpennachlauf, Betriebsstundenzähler, Betriebsüberwachung Typische Anwendung: Redundante Steuerung einer Doppelpumpe in einem Heizkreis

Darstellung

Schnittstellen

Eingänge

Name
Datentyp
Wertebereich
Initialwert
Funktion

xEnOne

BOOL

Anforderung der Führungspumpe

xEnTwo

BOOL

Anforderung der Führungs- und Folgepumpe

xFb1

BOOL

Betriebsmeldung der Umwälzpumpe 1

xFb2

BOOL

Betriebsmeldung der Umwälzpumpe 2

xAlarmIn1

BOOL

Störmeldung der Umwälzpumpe 1

xAlarmIn2

BOOL

Störmeldung der Umwälzpumpe 2

eAOO1

HVACTYPES.eManBin

HVACTYPES.eManBin.Auto, HVACTYPES.eManBin.ManOff, HVACTYPES.eManBin.ManOn

HVACTYPES.eManBin.Auto

Betriebsart der Handübersteuerung - Hardware Umwälzpumpe 1

eAOO2

HVACTYPES.eManBin

HVACTYPES.eManBin.Auto, HVACTYPES.eManBin.ManOff, HVACTYPES.eManBin.ManOn

HVACTYPES.eManBin.Auto

Betriebsart der Handübersteuerung - Hardware Umwälzpumpe 2

xQuit

BOOL

FALSE

Rücksetzung der Störmeldung der Betriebsüberwachungen

Ausgänge

Name
Datentyp
Wertebereich
Initialwert
Funktion

xHB1

BOOL

Freigabe - Umwälzpumpe 1 nach Handübersteuerung

xHB2

BOOL

Freigabe - Umwälzpumpe 2 nach Handübersteuerung

xAB1

BOOL

Freigabe - Umwälzpumpe 1 vor Handübersteuerung

xAB2

BOOL

Freigabe - Umwälzpumpe 2 vor Handübersteuerung

xEnergyRequest

BOOL

Anforderung der Energieerzeugung

xAlarmFb1

BOOL

Störmeldung - Betriebsüberwachung - Umwälzpumpe 1

xAlarmFb2

BOOL

Störmeldung - Betriebsüberwachung - Umwälzpumpe 2

tOffDelay

TIME

Restzeit des Nachlaufs der Umwälzpumpe

dtLastFb1

DATE_AND_TIME

Datum / Uhrzeit des letzten Betriebs der Umwälzpumpe 1

dtLastFb2

DATE_AND_TIME

Datum / Uhrzeit des letzten Betriebs der Umwälzpumpe 2

dtAbsLastOn1

DATE_AND_TIME

Datum / Uhrzeit des letzten Blockierschutzbetriebs der Umwälzpumpe 1

dtAbsLastOn2

DATE_AND_TIME

Datum / Uhrzeit des letzten Blockierschutzbetriebs der Umwälzpumpe 2

udiOperatingHours1

UDINT

Betriebsstunden der Umwälzpumpe 1

udiOperatingHours2

UDINT

Betriebsstunden der Umwälzpumpe 2

udiCountFb1

UDINT

Anzahl der Einschaltungen der Umwälzpumpe 1

udiCountFb2

UDINT

Anzahl der Einschaltungen der Umwälzpumpe 2

xAlarm1

BOOL

Sammelstörung - Umwälzpumpe 1

xAlarm2

BOOL

Sammelstörung - Umwälzpumpe 2

xAlarm

BOOL

Sammelstörung

xAuto

BOOL

Sammelmeldung Automatikbetrieb

Sollwerte / Parameter

Name
Datentyp
Wertebereich
Initialwert
Funktion

eManModeB1

eMANBIN

eMANBIN.Auto, eMANBIN.ManOff, eMANBIN.ManOn

eMANBIN.Auto

Betriebsart der Handübersteuerung für die Umwälzpumpe 1

eManModeB2

eMANBIN

eMANBIN.Auto, eMANBIN.ManOff, eMANBIN.ManOn

eMANBIN.Auto

Betriebsart der Handübersteuerung für die Umwälzpumpe 2

udiOffDelay

UDINT

0 bis 600s

60s

Nachlaufzeitdauer der Umwälzpumpen

eOffDelayTimeBase

eTime

eTime.Second, eTime.Minute, eTime.Hour

eTime.Second

Skalierung der Nachlaufzeit ( Sekunden / Minuten / Stunden )

eAbsDay

eDoW

eDoW.Monday bis eDoW.Sunday

eDoW.Monday

Wochentag des Blockierschutzbetriebs

todAbsStartTime

TOD

00:00:00 - 23:59:59 Uhr

08:00:00 Uhr

Zeitpunkt des Blockierschutzbetriebs

tAbsTime

UDINT

0 bis 3600s

120s

Zeitdauer des Blockierschutzbetriebs

xFbControl

BOOL

TRUE

Freigabe der Betriebsüberwachung

udiFbControlTime

UDINT

0 bis 300s

60s

Zeitdauer der Betriebsüberwachung

eModeRedundance

eOpModeRedundance

eOpModeRedundance.Auto, eOpModeRedundance.ForceComponent1, eOpModeRedundance.ForceComponent2

eOpModeRedundance.Auto

Modus Redundance

Funktionsbeschreibung

Allgemeines

Dieser Funktionsbaustein steuert zwei gleichartige Umwälzpumpen in redundanter Betriebsweise. Die Auswahl der Anzahl der benötigten Umwälzpumpen erfolgt über die Eingänge xEnOne und xEnTwo Die Freigaben der Umwälzpumpen 1 und 2 erfolgt über die Ausgänge xHB1 und xHB2 bzw. xAB1 und xAB2. Es kommen im Wesentlichen folgende Funktionsbausteine zur Anwendung:

Redundance2

AbsB

OperatingHours

ManBin

Voraussetzung für den Einsatz des Funktionsbausteins DuoPump

Zur korrekten Funktion ist der Einsatz des Funktionsbausteins TimeRead2 erforderlich.

Redundante Steuerung

Sie dient zur redundanten Steuerung der beiden Umwälzpumpen in Abhängigkeit von den Einflußgrößen Anforderungen ( xEnOne und xEnTwo ), Betriebstunden ( uxiOperatingHours1 und uxiOperatingHours2 ), Betriebszuständen ( xFb1 und xFb2 ), Störzuständen ( xAlarm1 und xAlarm2 ) und der Betriebsart für die Sequenzfestlegung ( eModeRedundance ). Die Freigabe der Führungs- und bei Bedarf der Folgegpumpe wird intern festgelegt und unter Berücksichtigung der aktuellen Folge auf die internen Ausgänge xCmd1 bzw. xCmd2 übertragen. Die Führungspumpe ist angefordert, wenn sie durch den Eingang xEnOne angefordert ist und / oder während die Pumpennachlaufzeit aktiv ist. Die Führungs- und die Folgepumpe sind angefordert, wenn sie durch den Eingang xEnTwo angefordert sind. Anforderungen am Eingang xEnTwo haben Vorrang vor Anforderungen am Eingang xEnOne. Die Auswahl der Führungs- bzw. Folgepumpe erfolgt mit hoher Priorität über die Zustände der Störmeldungen der Umwälzpumpen xAlarm1 bzw. xAlarm2 ( Störung = TRUE ). Die Auswahl der Führungs- bzw. Folgepumpe erfolgt mit niedriger Priorität über den Parameter eModeRedundance. Bei eModeRedundance = Auto erfolgt die Auswahl über die aktuelle Anzahl an Betriebsstunden der Umwälzpumpen. Die Zeitdifferenz für die Umschaltung über die Betriebsstunden beträgt 100 Stunden. Die Umschaltung erfolgt nach unterschiedlichen Kriterien, die im FB Redundance2 detailiert beschrieben sind. Die Optionen xConOperatingHours sowie xEnFb sind aktiviert ( = TRUE ). Im Fall eModeRedundance = ForceComponent1 oder eModeRedundance = ForceComponent2 ist entsprechend Umwälzpumpe 1 oder Umwälzpumpe 2 die Führungspumpe.

Freigabe - Umwälzpumpe 1 vor Handübersteuerung xAB1

Der Ausgang xAB1 wird durch die redundante Steuerung, den Ausgang xAlarm1, das Nachlaufmodul und das Blockierschutzmodul beeinflusst.

Redundante Steuerung

xAlarm1

Nachlaufmodul

Blockierschutzmodul

xAB1

Hinweise

X

TRUE

X

X

FALSE

Abschaltung über Sammelstörung freigegeben

FALSE

X

FALSE

FALSE

FALSE

Sperrung über redundante Steuerung

TRUE

X

FALSE

FALSE

TRUE

Freigabe über redundante Steuerung

X

X

TRUE

X

TRUE

Nachlaufbetrieb

X

X

X

TRUE

TRUE

Blockierschutzbetrieb

Legende: X = beliebig

Freigabe - Umwälzpumpe 2 vor Handübersteuerung xAB2

Der Ausgang xAB2 durch die redundante Steuerung, den Ausgang xAlarm2, das Nachlaufmodul und das Blockierschutzmodul beeinflusst.

Redundante Steuerung

xAlarm2

Nachlaufmodul

Blockierschutzmodul

xAB2

Hinweise

X

TRUE

X

X

FALSE

Abschaltung über Sammelstörung freigegeben

FALSE

X

FALSE

FALSE

FALSE

Sperrung über redundante Steuerung

TRUE

X

FALSE

FALSE

TRUE

Freigabe über redundante Steuerung

X

X

TRUE

X

TRUE

Nachlaufbetrieb

X

X

X

TRUE

TRUE

Blockierschutzbetrieb

Legende: X = beliebig

Freigabe - Umwälzpumpe 1 nach Handübersteuerung xHB1

Freigabe - Umwälzpumpe 1 nach Handübersteuerung xHB1 entspricht der Freigabe - Umwälzpumpe 1 vor Handübersteuerung xAB1, zusätzlich erweitert um ein Handübersteuermodul.

xAB1

eMANBIN

xHB1

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

Freigabe - Umwälzpumpe 2 nach Handübersteuerung xHB2

Freigabe - Umwälzpumpe 2 nach Handübersteuerung xHB2 entspricht der Freigabe - Umwälzpumpe 2 vor Handübersteuerung xAB2, zusätzlich erweitert um ein Handübersteuermodul.

xAB2

eMANBIN

xHB2

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

Betriebsmeldungen xFb1 und xFb2

Umwälzpumpe 1 in Betrieb: xFb1 = TRUE Umwälzpumpe 1 nicht in Betrieb: xFb1 = FALSE Umwälzpumpe 2 in Betrieb: xFb2 = TRUE Umwälzpumpe 2 nicht in Betrieb: xFb2 = FALSE

Störmeldungen xAlarmIn1 und xAlarmIn2

Umwälzpumpe 1 gestört: xAlarmIn1 = TRUE Umwälzpumpe 1 nicht gestört: xAlarmIn1 = FALSE Umwälzpumpe 2 gestört: xAlarmIn2 = TRUE Umwälzpumpe 2 nicht gestört: xAlarmIn2 = FALSE

Rücksetzung der Störmeldung der Betriebsüberwachungen xQuit

Die Rücksetzung der Störmeldung der Betriebsüberwachungen xAlarmFb1 und xAlarmFb2 erfolgt, solange die Rücksetzung der Störmeldung der Betriebsüberwachungen xQuit aktiv ( = TRUE ) ist.

Anforderung - Energieerzeugung xEnergyRequest

Die Anforderung - Energieerzeugung xEnergyRequest wird durch die Blockierschutzmodule. die Nachlaufmodule und die Betriebsrückmeldungen der Umwälzpumpen 1 und 2 xFb1 und xFb2 beeinflusst. Die Anforderung - Energieerzeugung xEnergyRequest ist aktiv, wenn von der Umwälzpumpe 1 die Betriebsmeldung xFb1 anliegt und gleichzeitig das Blockierschutzmodul 1 nicht aktiv sind und / oder von der Umwälzpumpe 2 die Betriebsmeldung xFb2 anliegt und gleichzeitig das Blockierschutzmodul 2 nicht aktiv sind und das Nachlaufmodul nicht aktiv ist

Nachlaufmodul

Das Nachlaufmodul wird durch eine Abschaltverzögerung mit einstellbarer Zeitdauer udiOffDelay realisiert. Das Nachlaufmodul wird aktiviert, falls keine Anforderung über die Eingänge xEnOne bzw. xEnTwo mehr vorliegt. Der Pumpennachlauf findet nur an der Führungspumpe statt.

Blockierschutzmodule

Die Blockierschutzmodule werden durch das binäre Blockierschutzmodul mit einstellbarer Zeitdauer realisiert. Die Zeitdauer tAbsTime, der Zeitpunkt tAbsStartTime und der Wochentag eAbsDay sind für die erste Pumpe einstellbar. Der Zeitpunkt für die zweite Pumpe ist der Zeitpunkt der ersten Pumpe versetzt um zweimal die Zeitdauer der ersten Pumpe tAbsTime. Der Zeitstempel (Datum / Uhrzeit) des letzten Blockierschutzbetriebs steht, getrennt für jede Umwälzpumpe an den Ausgängen dtAbsLastOn1 bzw. dtAbsLastOn2 zur Verfügung.

Sammelstörung - Umwälzpumpe 1 xAlarm1

Die Sammelstörung - Umwälzpumpe 1 xAlarm1 ist aktiv ( = TRUE ), falls die Störmeldung der Umwälzpumpe 1 xAlarmIn1 aktiv ist ( = TRUE ) und / oder eine Störmeldung - Betriebsüberwachung - Umwälzpumpe 1 xAlarmFb1 ( = TRUE ) vorliegt. In allen übrigen Situationen ist die Sammelstörung - Umwälzpumpe 1 xAlarm1 nicht aktiv ( = FALSE ).

Sammelstörung - Umwälzpumpe 2 xAlarm2

Die Sammelstörung - Umwälzpumpe 2 xAlarm2 ist aktiv ( = TRUE ), falls die Störmeldung der Umwälzpumpe 2 xAlarmIn2 aktiv ist ( = TRUE ) und / oder eine Störmeldung - Betriebsüberwachung - Umwälzpumpe 2 xAlarmFb2 ( = TRUE ) vorliegt. In allen übrigen Situationen ist die Sammelstörung - Umwälzpumpe 2 xAlarm2 nicht aktiv ( = FALSE ).

Sammelstörung xAlarm

Die Sammelstörung xAlarm ist aktiv ( = TRUE ), falls die Sammelstörung - Umwälzpumpe 1 xAlarm1 aktiv ist oder die Sammelstörung - Umwälzpumpe 2 xAlarm2 aktiv ist. In allen übrigen Situationen ist die Sammelstörung xAlarm nicht aktiv ( = FALSE ).

Betriebsstundenzähler - Umwälzpumpe 1

Der Betriebsstundenzähler für die Umwälzpumpe 1 ist aktiv, wenn die Betriebsmeldung xFb1 = TRUE und gleichzeitig die Sammelstörung xAlarm1 = FALSE ist.

Betriebsstundenzähler - Umwälzpumpe 2

Der Betriebsstundenzähler für die Umwälzpumpe 2 ist aktiv, wenn die Betriebsmeldung xFb2 = TRUE und gleichzeitig die Sammelstörung xAlarm2 = FALSE ist.

Schreibzugriff auf die Zählerstände

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

Betriebsüberwachung - Umwälzpumpe 1

Die Betriebsüberwachung überwacht die korrekte Funktion der Umwälzpumpe 1. Die Überwachung kann generell freigegeben (xFbControl = TRUE) oder gesperrt (xFbControl = FALSE) werden. Die Betriebsart der Handübersteuerung - Hardware Umwälzpumpe 1 muß sich im Automatikbetrieb befinden ( eAOO1 = HVACTYPES.eManBin.Auto ). Die Störmeldung - Betriebsüberwachung - Umwälzpumpe 1 xAlarmFb1 wird aktiviert ( = TRUE ), falls während der Zeitdauer der Betriebsüberwachung udiFbControlTime die Zustände des Eingängs xFb1 und des Ausgangs xHb1 ungleich sind. Die Störmeldung - Betriebsüberwachung - Umwälzpumpe 1 xAlarmFb1 wird deaktiviert ( = FALSE ), falls mindestens eine der nachfolgenden Bedingungen aktiv ist: &#xNAN;eAOO1 = HVACTYPES.eManBin.Auto ( Umschaltung in den Automatikbetrieb der Handübersteuerung - Hardware ). Rücksetzung der Störmeldung der Betriebsüberwachungen xQuit = TRUE Freigabe der Betriebsüberwachung xFbControl = FALSE

Betriebsüberwachung - Umwälzpumpe 2

Die Betriebsüberwachung überwacht die korrekte Funktion der Umwälzpumpe 2. Die Überwachung kann generell freigegeben (xFbControl = TRUE) oder gesperrt (xFbControl = FALSE) werden. Die Betriebsart der Handübersteuerung - Hardware Umwälzpumpe 2 muß sich im Automatikbetrieb befinden ( eAOO2 = HVACTYPES.eManBin.Auto ). Die Störmeldung - Betriebsüberwachung - Umwälzpumpe 2 xAlarmFb2 wird aktiviert ( = TRUE ), falls während der Zeitdauer der Betriebsüberwachung udiFbControlTime die Zustände des Eingängs xFb2 und des Ausgangs xHb2 ungleich sind. Die Störmeldung - Betriebsüberwachung - Umwälzpumpe 2 xAlarmFb2 wird deaktiviert ( = FALSE ), falls mindestens eine der nachfolgenden Bedingungen aktiv ist: &#xNAN;eAOO2 = HVACTYPES.eManBin.Auto ( Umschaltung in den Automatikbetrieb der Handübersteuerung - Hardware ). Rücksetzung der Störmeldung der Betriebsüberwachungen xQuit = TRUE Freigabe der Betriebsüberwachung xFbControl = FALSE\

Sammelmeldung Automatikbetrieb xAuto

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

  • Eingang eAOO1 = HVACTYPES.eManBin.Auto

  • Eingang eAOO2 = HVACTYPES.eManBin.Auto

  • Sollwert / Parameter eManModeB1 = eMANBIN.Auto

  • Sollwert / Parameter eManModeB2 = eMANBIN.Auto

CODESYS

InOut:

Scope
Name
Type
Initial

Input

xEnOne

BOOL

Input

xEnTwo

BOOL

Input

xFb1

BOOL

Input

xFb2

BOOL

Input

xAlarmIn1

BOOL

Input

xAlarmIn2

BOOL

Input

eAOO1

eManBin

eManBin.Auto

Input

eAOO2

eManBin

eManBin.Auto

Input

xQuit

BOOL

FALSE

Output

xHB1

BOOL

Output

xHB2

BOOL

Output

xAB1

BOOL

Output

xAB2

BOOL

Output

xEnergyRequest

BOOL

Output

xAlarmFb1

BOOL

Output

xAlarmFb2

BOOL

Output

tOffDelay

TIME

Output

dtLastFb1

DT

Output

dtLastFb2

DT

Output

dtAbsLastOn1

DT

Output

dtAbsLastOn2

DT

Output

udiOperatingHours1

UDINT

Output

udiOperatingHours2

UDINT

Output

udiCountFb1

UDINT

Output

udiCountFb2

UDINT

Output

xAlarm1

BOOL

Output

xAlarm2

BOOL

Output

xAlarm

BOOL

Output

xAuto

BOOL

Input Const

eModeRedundance

eOpModeRedundance

eOpModeRedundance.Auto

Input Const

udiFbControlTime

UDINT

60

Input Const

xFbControl

BOOL

TRUE

Input Const

udiAbsTime

UDINT

120

Input Const

todAbsStartTime

TOD

TIME_OF_DAY#9:0

Input Const

eAbsDay

eDoW

eDow.Monday

Input Const

eOffDelayTimeBase

eTime

eTime.Second

Input Const

udiOffDelay

UDINT

60

Input Const

eManModeB2

eMANBIN

eMANBIN.Auto

Input Const

eManModeB1

eMANBIN

eMANBIN.Auto

Methods:

mQuit

mResetOperatingHours

Structure:

  • mQuit (Method)

  • mResetOperatingHours (Method)

Zuletzt aktualisiert