DuoPump (FB)

FUNCTION_BLOCK DuoPump

Short Description

Redundant control of two similar circulation pumps with blocking protection function
Additional functions: Request for heat generation, manual override, pump run-on, operating hours counter, operation monitoring
Typical application: Redundant control of a double pump in one heating circuit

Portrayal

../_images/DuoPump_FB.png

Interfaces

Inputs

Name

Datatype

Range

Init-Value

Function

xEnOne BOOL    

Requirement of the lead pump

xEnTwo BOOL    

Requirement of the lead and follower pump

xFb1 BOOL    

Operating message of the circulation pump 1

xFb2 BOOL    

Operating message of the circulation pump 2

xAlarmIn1 BOOL    

failure message of the circulation pump 1

xAlarmIn2 BOOL    

failure message of the circulation pump 2

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

Operating mode of manual override - Hardware cirulation pump 1

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

Operating mode of manual override - Hardware cirulation pump 2

xQuit BOOL   FALSE

Resetting the fault message of the operational monitoring

Outputs

Name

Datatype

Range

Init-Value

Function

xHB1 BOOL    

Release - cirulation pump 1 after manual override

xHB2 BOOL    

Release - cirulation pump 2 after manual override

xAB1 BOOL    

Release - cirulation pump 1 before manual override

xAB2 BOOL    

Release - cirulation pump 2 before manual override

xHeatRequest BOOL    

Requirement of heat generation

xAlarmFb1 BOOL    

Fault message - Operation monitoring - Circulation pump 1

xAlarmFb2 BOOL    

Fault message - Operation monitoring - Circulation pump 2

tOffDelay TIME    

Remaining shut-off time of the circulation pump

dtLastFb1 DATE_AND_TIME    

Date / time of the last operation of the circulation pump 1

dtLastFb2 DATE_AND_TIME    

Date / time of the last operation of the circulation pump 2

dtAbsLastOn1 DATE_AND_TIME    

Date / time of the last blocking protection operation of the circulation pump 1

dtAbsLastOn2 DATE_AND_TIME    

Date / time of the last blocking protection operation of the circulation pump 2

udiOperatingHours1 UDINT    

Operating hours of the circulation pump 1

udiOperatingHours2 UDINT    

Operating hours of the circulation pump 2

udiCountFb1 UDINT    

Number of activations of the circulating pump 1

udiCountFb2 UDINT    

Number of activations of the circulating pump 2

xAlarm1 BOOL    

Collective fault - Circulation pump 1

xAlarm2 BOOL    

Collective fault - Circulation pump 2

xAlarm BOOL    

Collective fault

sAlarm STRING    

Message texts for faults

sStatus STRING    

Message texts for the operating status

Setpoints / Parameters

Name

Datatype

Range

Init-Value

Function

xAlarmControl BOOL   FALSE

Option Fault message of the circulation pump acts on the enable before manual override.

udiFbControlTime UDINT 0 bis 300s 60s

Duration of operation monitoring

xFbControl BOOL   TRUE

Release of the operation monitoring

tAbsTime UDINT 0 bis 3600s 120s

Duration of blocking protection operation

tAbsStartTime TOD 00:00:00 - 23:59:59 Uhr 08:00:00 Uhr

Time point of blocking protection operation

eAbsDay eDoW eDoW.Monday bis eDoW.Sunday eDoW.Monday

Weekday of the blocking protection operation

eOffDelayTimeBase eTime eTime.Second, eTime.Minute, eTime.Hour eTime.Second

Scaling of the follow-up time ( seconds / minutes / hours )

udiOffDelay UDINT 0 bis 600s 120s

Follow-up time of the circulation pumps

eManModeB2 eMANBIN eMANBIN.Auto, eMANBIN.ManOff, eMANBIN.ManOn eMANBIN.Auto

Manual override mode for the circulation pump 2

eManModeB1 eMANBIN eMANBIN.Auto, eMANBIN.ManOff, eMANBIN.ManOn eMANBIN.Auto

Manual override mode for the circulation pump 1

Functional description

General

This function block controls two similar circulation pumps in redundant operation.
The number of required circulation pumps is selected via the inputs xEnOne and xEnTwo.
The circulation pumps 1 and 2 are enabled via the outputs xHB1 and xHB2 or xAB1 and xAB2.

Essentially, the following function blocks are used:

Redundant2

AbsB

OperatingHours

ManBin

Redundant control

It is used for redundant control of the two circulation pumps depending on the influencing factors requirements (xEnOne and xEnTwo),
Operating hours (udiOperatingHours1 and udiOperatingHours2), operating states (xFb1 and xFb2) and fault states (xAlarm1 and xAlarm2).
The release of the lead and, if required, of the follower pump is determined internally and transferred to the internal outputs xCmd1 or xCmd2
, taking into account the current sequence.

The lead pump is required if it is requested by the xEnOne input and / or while the pump run-on time is active.
The lead and follower pumps are required when requested by the xEnTwo input.
Requirements at input xEnTwo have priority over requirements at input xEnOne.

The operating message of the circulation pump 1 is active if the input xFb1 is active and / or at the same time the
Enable - Circulation pump 1 after manual override xHB1 with disabled operating monitoring (xFbControl = FALSE) is active.
The operating message of circulation pump 2 is active if the input xFb2 is active and / or
at the same time the enable circulation pump 2 is active after manual override xHB2 with blocked operating monitoring (xFbControl = FALSE).

The control or follower pump is selected with high priority via the states at the fault message of the circulation pumps.
xAlarmIn1 - xAlarmIn2 ( fault = TRUE ).

The control or follower pump is selected with low priority over the current number of operating hours of the
circulation pumps.
The switch-over takes place according to different criteria, which are described in detail in FB Redundant2.
The options xConOperatingHours and xEnFb are enabled (= TRUE).

Enable - circulation pump 1 before manual override xAB1.

The output xAB1 is influenced by the redundant control,
the output xAlarm1 (if **xAlarmControl = TRUE), the tracking module and the blocking protection module.

Redundant control

xAlarm1 xAlarmControl

Follow-up period

blocking protection module

xAB1

Notes

X TRUE TRUE X X FALSE

Shutdown enabled via collective fault

FALSE X FALSE FALSE FALSE FALSE

Disabling via redundant control

TRUE x FALSe FALSe FALSE TRUE

Release via redundant control

X X FALSe TRUE X TRUE

Follow-up operation

X x FALSE X TRUE TRUE

blocking protection mode

Legend: X = any

Enable - Circulation pump 2 before manual override xAB2.

The output xAB2 by the redundant control, the output xAlarm2 (if **xAlarmControl = TRUE),
the output xAlarm1 (if **xAlarmControl = TRUE), the tracking module and the blocking protection module.

Redundant control

xAlarm2 xAlarmControl

Follow-up period

blocking protection module

xAB2

Notes

X TRUE TRUE X X FALSE

Shutdown enabled via collective fault

FALSE X FALSE FALSE FALSE FALSE

Disabling via redundant control

TRUE x FALSe FALSe FALSE TRUE

Release via redundant control

X X FALSe TRUE X TRUE

Follow-up operation

X x FALSE X TRUE TRUE

blocking protection mode

Legend: X = any

enable - circulation pump 1 after manual override xHB1.

Enable - circulation pump 1 after manual override xHB1 corresponds to the enable - circulation pump 1 before manual override xAB1,
additionally extended by a manual override module.
xAB1 eMANBIN xHB1

Notes

FALSE eMANBIN.Auto FALSE

Manual override module in automatic mode

TRUE eMANBIN.Auto TRUE

Manual override module in automatic mode

X eMANBIN.ManOn TRUE

Manual override module in manual mode On

X eMANBIN.ManOff FALSE

Manual override module in manual mode Off

Legend: X = any

Enable - Circulation pump 2 after manual override xHB2.

Enable - circulation pump 2 after manual override xHB2 corresponds to the Release - circulation pump 2 before manual override xAB2,
additionally extended by a manual override module.
xAB2 eMANBIN xHB2

Notes

FALSE eMANBIN.Auto FALSE

Manual override module in automatic mode

TRUE eMANBIN.Auto TRUE

Manual override module in automatic mode

X eMANBIN.ManOn TRUE

Manual override module in manual mode On

X eMANBIN.ManOff FALSE

Manual override module in manual mode Off

Legend: X = any

operating messages xFb1 and xFb2

Circulation pump 1 in operation: xFb1 = TRUE
Circulation pump 1 not in operation: xFb1 = FALSE

Circulation pump 2 in operation: xFb2 = TRUE
Circulation pump 2 not in operation: xFb2 = FALSE

Fault messages xAlarmIn1 and xAlarmIn2

Circulation pump 1 faulty: xAlarmIn1 = TRUE
Circulation pump 1 not faulty: xAlarmIn1 = FALSE

Circulation pump 2 faulty: xAlarmIn2 = TRUE
Circulation pump 2 not faulty: xAlarmIn2 = TRUE

Resetting the fault signal of the operational monitoring systems xQuit

The resetting of the fault message from the operating monitors xAlarmFb1 and xAlarmFb2 is performed as long as
the resetting of the fault signal from the operating monitors xQuit is active (= TRUE).

Requirement - heat generation xHeatRequest

The requirement - heat generation xHeatRequest is influenced by the redundant control system, the blocking protection module,
the follow-up module and the operating feedback signals of the circulation pumps 1 and 2 xFb1 and xFb2.

The request - heat generation xHeatRequest is active in following two cases (= TRUE):

Condition 1:

At least one circulation pump is required by the redundant control and / or by the blocking protection module.

Condition 2:

There is no request via the inputs xEnOne and / or xEnTwo and at the same time at least one of the
operating messages of the circulation pumps xFb1 and / or xFb2 is active.

Case 1:

Condition 1 = TRUE and condition 2 = FALSE

Case 2:

Condition 1 = FALSE and condition 2 = TRUE

In all other situations the requirement - heat generation xHeatRequest is not active (= FALSE).

Follow-up period

The follow-up is implemented by a switch-off delay with an adjustable duration udiOffDelay. The follow-up module
is activated if there is no requirement on the inputs xEnOne*or rather at *xEnTwo.
an der Führungspumpe statt.

Blocking protection modules

The blocking protection modules are implemented by the binary blocking protection module with adjustable duration.
The time duration tAbsTime, the time point tAbsStartTime and the weekday eAbsDay are adjustable.
The time stamp (date / time) of the last blocking protection operation is available separately for each circulation pump
at the outputs dtAbsLastOn1 or dtAbsLastOn2.

Collective fault - Circulation pump 1 xAlarm1

The collective fault - circulating pump 1 xAlarm1 is active (= TRUE) if the fault message of the circulating pump 1 xAlarmIn1 is active
(= TRUE) and / or a fault message - operating monitoring - circulating pump 1 xAlarmFb1 (= TRUE) is present.
In all other situations, the collective fault - circulation pump 1 xAlarm1 is not active (= FALSE).

Collective fault - Circulation pump 2 xAlarm2

The collective fault - circulating pump 2 xAlarm2 is active (= TRUE) if the fault message of the circulating pump 2 xAlarmIn2 is active
(= TRUE) and / or a fault message - operating monitoring - circulating pump 2 xAlarmFb2 (= TRUE) is present.
In all other situations, the collective fault - circulation pump 2 xAlarm2 is not active (= FALSE).

xAlarm collective fault

The collective fault xAlarm is active if the collective fault - circulation pump 1 xAlarm1 is active and / or
the collective fault - circlulation pump 2 xAlarm2 is active.
In all other cases, the collective fault xAlarm is not active (= FALSE).

Operating hours counter - circulation pump 1

The operating hours counter for circulation pump 1 is active in following cases:

Case 1:

This case is active if all subsequent conditions are active at the same time.

Release of the operation monitoring xFbControl = TRUE
Collective fault - Circulation pump 1 xAlarm1 = FALSE
Operating message of the Circulation pump 1: xFb1 = TRUE

Case 2:

This case is active if all subsequent conditions are active at the same time.

Release of the operation monitoring xFbControl = FALSE
enable - circulation pump 1 after manual override xHB1 = TRUE

In all other situations the operating hours counter is not active

Operating hours counter - circulation pump 2

The operating hours counter for circulation pump 2 is active in following cases:

Case 1:

This case is active if all subsequent conditions are active at the same time.

Release of the operation monitoring xFbControl = TRUE
Collective fault - Circulation pump 2 xAlarm2 = FALSE
Operating message of the Circulation pump 2: xFb2 = TRUE

Case 2:

This case is active if all subsequent conditions are active at the same time.

Release of the operation monitoring xFbControl = FALSE
Enable - Circulation pump 2 after manual override xHB2 = TRUE

In all other situations the operating hours counter is not active

Operation monitoring - Circulation pump 1

The operation monitoring monitors the correct function of the circulation pump 1.
The monitoring can generally be enabled (xFbControl = TRUE) or disabled (xFbControl = FALSE).
The operating mode of the manual override - hardware circulation pump 1 must be in automatic mode (eAOOO1 = HVACTYPES. eManBin. Auto).

The collective fault – operation monitoring – circulation pump 1 xAlarmFb1 is activated (=TRUE), if the states of the inputs
Betriebsüberwachung**udiFbControlTime** die Zustände des Eingängs xFb1 und des Ausgangs xHb1 ungleich sind.

The collective fault - operation monitoring - circulation pump 1 xAlarmFb1 is deactivated (=FALSE), if at least one
of the following conditions are active:

eAOO1 = HVACTYPES.eManBin.Auto (Switch to automatic mode of manual override - Hardware).
Reset of the collective fault of the operation monitoring xQuit = TRUE
Release of the operation monitoring xFbControl = FALSE

Operation monitoring - Circulation pump 2

The operation monitoring monitors the correct function of the circulation pump 2
The monitoring can generally be enabled (xFbControl = TRUE) or disabled (xFbControl = FALSE).
The operating mode of the manual override - hardware circulation pump 2 must be in automatic mode (eAOO2 = HVACTYPES. eManBin. Auto).

The collective fault – operation monitoring – circulation pump 2 xAlarmFb2 is activated (=TRUE), if the states of the inputs
xFb2 and the Outputs xHb2 are unequal during the time duration of the operation monitoring udiFbControlTime

The collective fault - operation monitoring - circulation pump 2 xAlarmFb1 is deactivated (=FALSE), if at least one
of the following conditions are active:

eAOO2 = HVACTYPES.eManBin.Auto (Switch to automatic mode of manual override - Hardware).
Reset of the collective fault of the operation monitoring xQuit = TRUE
Release of the operation monitoring xFbControl = FALSE

Message texts for faults sAlarm

If necessary, the following error message texts are generated at output sAlarm (1 = highest priority):

1:

‘CP 1 hardware error’ ( *xAlarmIn1*= TRUE )

2:

‘CP 2 hardware error’ ( *xAlarmIn2*= TRUE )

3:

‘CP 1 Fault Operation monitoring’ ( xAlarmFb1 = TRUE )

4:

‘CP 2 Fault Operation monitoring’ ( xAlarmFb2 = TRUE )

5:

‘’ (no fault active)

Status display sStatus

If required, the following status texts are displayed at the output sStatus (1 = highest priority)

1:

‘Content of sAlarm‘ (sAlarm unequal ‘’)

2:

‘On via manual Hardware’ ( eAOO1 = eAOO2 = HVACTYPES.eManBin.Auto AND eManModeB1 = eManModeB2 = eMANBIN.Auto AND xFb1 and / or *xFb2*= TRUE )

3:

‘Off via manual Hardware’ ( eAOO1 = eAOO2 = HVACTYPES.eManBin.Auto AND eManModeB1 = eManModeB2 = eMANBIN.Auto AND xFb1 and *xFb2*= FALSE )

4:

‘On via manual Hardware’ ( eAOO1 = eAOO2 = HVACTYPES.eManBin.Auto AND eManModeB1 OR eManModeB2 unequal eMANBIN.Auto AND xFb1 and / or *xFb2*= TRUE )

5:

‘Off via manual Hardware’ ( eAOO1 = eAOO2 = HVACTYPES.eManBin.Auto AND eManModeB1 OR eManModeB2 unequal eMANBIN.Auto AND xFb1 and / or *xFb2*= FALSE )

6:

‘On via manual Hardware’ ( eAOO1 or eAOO2 unequal HVACTYPES.eManBin.Auto AND xFb1 and *xFb2*= FALSE )

7:

‘Off via manual Hardware’ ( eAOO1 or eAOO2 unequal HVACTYPES.eManBin.Auto AND xFb1 and *xFb2*= FALSE )

Visualization




Information

Element

Authors

Datum Version

Note

Function

Alexander Halter 04.2016 1.0

Initial version

Programming

Adam Bartod, Lukas Pfänder 04.2016 1.0

Initial version

Test Alexander Halter 04.2016 1.0

Initial version

Documentation

Jochen Reu 10.2017 1.0

Initial version

Codesys

InOut:
Scope Name Type Initial Comment
Input xEnOne BOOL  

Requirement of the lead pump

xEnTwo BOOL  

Requirement of the lead and follower pump

xFb1 BOOL  

Operating message of the circulation pump 1

xFb2 BOOL  

Operating message of the circulation pump 2

xAlarmIn1 BOOL  

failure message of the circulation pump 1

xAlarmIn2 BOOL  

failure message of the circulation pump 2

eAOO1 eManBin HVACTYPES.eManBin.Auto

Operating mode of manual override - Hardware cirulation pump 1

eAOO2 eManBin HVACTYPES.eManBin.Auto

Operating mode of manual override - Hardware cirulation pump 2

xQuit BOOL FALSE

Resetting the fault message of the operational monitoring

Output xHB1 BOOL  

Release - cirulation pump 1 after manual override

xHB2 BOOL  

Release - cirulation pump 2 after manual override

xAB1 BOOL  

Release - cirulation pump 1 before manual override

xAB2 BOOL  

Release - cirulation pump 2 before manual override

xHeatRequest BOOL  

Requirement of heat generation

xAlarmFb1 BOOL  

Fault message - Operation monitoring - Circulation pump 1

xAlarmFb2 BOOL  

Fault message - Operation monitoring - Circulation pump 2

tOffDelay TIME  

Remaining shut-off time of the circulation pump

dtLastFb1 DT  

Date / time of the last operation of the circulation pump 1

dtLastFb2 DT  

Date / time of the last operation of the circulation pump 2

dtAbsLastOn1 DT  

Date / time of the last blocking protection operation of the circulation pump 1

dtAbsLastOn2 DT  

Date / time of the last blocking protection operation of the circulation pump 2

udiOperatingHours1 UDINT  

Operating hours of the circulation pump 1

udiOperatingHours2 UDINT  

Operating hours of the circulation pump 2

udiCountFb1 UDINT  

Number of activations of the circulating pump 1

udiCountFb2 UDINT  

Number of activations of the circulating pump 2

xAlarm1 BOOL  

Collective fault - Circulation pump 1

xAlarm2 BOOL  

Collective fault - Circulation pump 2

xAlarm BOOL  

Collective fault

sAlarm STRING  

Message texts for faults

sStatus STRING  

Message texts for the operating status

Input xAlarmControl BOOL FALSE

Option Fault message of the circulation pump acts on the enable before manual override.

udiFbControlTime UDINT 60

Duration of operation monitoring

xFbControl BOOL TRUE

Release of the operation monitoring

tAbsTime UDINT 120

Duration of blocking protection operation

todAbsStartTime TOD TIME_OF_DAY#8:0

Time point of blocking protection operation

eAbsDay eDoW eDow.Monday

Weekday of the blocking protection operation

eOffDelayTimeBase eTime eTime.Second

Scaling of the follow-up time ( seconds / minutes / hours )

udiOffDelay UDINT 120

Follow-up period of the circulation pump

eManModeB2 eMANBIN eMANBIN.Auto

Manual override mode for the circulation pump 2

eManModeB1 eMANBIN eMANBIN.Auto

Manual override mode for the circulation pump 1