Redundance2
Redundance2 (FB)
Redundance2 (FB)FUNCTION_BLOCK Redundance2
Short description
Redundant control of two identical devices Influencing factors: requests, operating hours, operating and fault states Typical application: determination of leader and follower pump
Representation

Interfaces
Inputs
xEnOne
BOOL
Request - leader device
xEnTwo
BOOL
Request - leader and follower device
xFb1
BOOL
Operation - device 1
xFb2
BOOL
Operation - device 2
xAlarm1
BOOL
Fault - device 1
xAlarm2
BOOL
Fault - device 2
uiOperatingHours1
UDINT
Operating hours - Device 1
uiOperatingHours2
UDINT
Operating hours - Device 2
xUpdate
BOOL
Input - follower switching based on operating hours
Outputs
iCurrentSequence
INT
Current device sequence
xCmd1
BOOL
Enable - device 1
xCmd2
BOOL
Enable - device 2
xErr
BOOL
Output - Fault
Setpoints / parameters
eModeRedundance
eOpModeRedundance
eOpModeRedundance.Auto, eOpModeRedundance.ForceComponent1, eOpModeRedundance.ForceComponent2
eOpModeRedundance.Auto
Mode of sequence determination
xConOperatingHours
BOOL
TRUE
Enable - follower switching based on operating hours
xEnFb
BOOL
TRUE
Enable - use of operation messages
wTolerance
WORD
100
Limit - operating hours difference
xIgnoreAlarmXFollowerDevice
BOOL
FALSE
Parameter to ignore the fault state of the follower device (TRUE = ignore)
Function description
General
This function block is used for redundant control of two identical devices depending on the influencing variables requests (xEnOne and xEnTwo), operating hours (uiOperatingHours1 and uiOperatingHours2), operating states (xFb1 and xFb2), fault conditions (xAlarm1 and xAlarm2) and the operating mode for sequence determination (eModeRedundance). The enablement of the leader and, if necessary, the follower device is determined internally and, taking the current sequence iCurrentSequence to the device outputs xCmd1 or xCmd2 .
Requests xEnOne and xEnTwo
They are used to determine whether only the leader device or both the leader and the follower device should be requested.
xEnOne
xEnTwo
Leader device
Follower device
Note
FALSE
FALSE
FALSE
FALSE
No request
TRUE
FALSE
TRUE
FALSE
Request - leader device
X
TRUE
TRUE
TRUE
Request - leader and follower device
Legend: X = Indeterminate
Output Fault xErr
It indicates a discrepancy between the requests and the fault states of the devices. The function table describes the constellations that activate the output xErr (= TRUE), i.e. indicate a fault. In all other cases the output is xErr not active (= FALSE).
xEnOne
xEnTwo
xAlarm1
xAlarm2
xErr
Note
TRUE
X
TRUE
TRUE
TRUE
Request - leader device and both devices faulty
X
TRUE
TRUE
X
TRUE
Request - leader and follower device and at least one device faulty
X
TRUE
X
TRUE
TRUE
Request - leader and follower device and at least one device faulty
Legend: X = Indeterminate
Output iCurrentSequence
It always shows the current sequence of the two devices. The first digit always indicates the device number of the leader device (example: iCurrentSequence = 1X … leader device = device 1) The second digit always indicates the device number of the follower device. (example: iCurrentSequence = X2 … follower device = device 2)
Setpoint / parameters xConOperatingHours
When TRUE, on each execution of the function block the follower switching is triggered depending on the operating hours and operation messages (when xEnFb = TRUE) of devices 1 and 2. When FALSE, the follower switching can only be triggered by a rising edge at the input xUpdate is triggered.
Setpoint / parameters xEnFb
When TRUE, in the follower switching the operating states of devices 1 and 2 are evaluated and taken into account. When FALSE, in the follower switching the device outputs of devices 1 and 2 are evaluated and taken into account.
Setpoint / parameters wTolerance
This target value determines the maximum operating hours difference before a switch of the leader and the follower device due to operating hours.
Setpoint / parameters eModeRedundance
This setpoint defines the mode of sequence determination. In automatic mode the sequence is determined automatically. The forced determination of the sequence in the operation modes ForceComponent1 or ForceComponent2 is done by deliberate manipulation of the internal states of the operating hours counters or of the setpoint / parameter wTolerance. The sequence switching in case of a fault therefore remains in effect.
eModeRedundance
Leader device
Follower device
Note
eOpModeRedundance.Auto
Automatic determination
Automatic determination
Automatic sequence determination
eOpModeRedundance.ForceComponent1
Device 1
Device 2
Forced sequence device 1 - 2
eOpModeRedundance.ForceComponent2
Device 2
Device 1
Forced sequence device 2 - 1
Determination of leader and follower device
Switching with high priority depending on the fault states of devices 1 and 2
xAlarm1
xAlarm2
Leader device
Follower device
Note
FALSE
FALSE
not affected
not affected
Both devices without fault
TRUE
FALSE
Device 2
Device 1
Device 1 faulty
X
TRUE
Device 1
Device 2
Device 2 faulty
Legend: X = Indeterminate
Switching with low priority depending on operating hours, operation messages (xFb) and enable outputs (xCmd) of devices 1 and 2
A re-evaluation and -determination with low priority can be triggered as follows each time:
xConOperatingHours = TRUE and/or rising edge at input xUpdate
xConOperatingHours
xUpdate
Conditions
Leader device
FALSE
FALSE, TRUE, H/L
no re-evaluation
TRUE
FALSE, TRUE, H/L
same operation messages (xFb = TRUE or = FALSE) or same enable outputs (xCmd = TRUE or = FALSE) of the devices
Device with lower operating hours count
TRUE
FALSE, TRUE, H/L
One device in operation (xFb = TRUE) or one device enabled (xCmd = FALSE)
Switch to the device with the lower operating hours count if operating hours difference > wTolerance
FALSE
L/H
uiOperatingHours1 = uiOperatingHours2 = 0 (no operating hours available)
Switch of leader with the follower device
FALSE
L/H
uiOperatingHours1 or uiOperatingHours2 > 0
Device with lower operating hours count
Legend: L/H … rising edge, H/L … falling edge
Device outputs xCmd1 and xCmd2
The device outputs are finally determined as follows (xIgnoreAlarmXFollowerDevice = FALSE):
Leader device = device 1
xCmd1 = TRUE: The leader device is requested and at least one device is requested and device 1 is not faulty xCmd1 = FALSE: In all other cases
xCmd2 = TRUE: The follower device is requested and at least one device is requested and device 2 is not faulty xCmd2 = FALSE: In all other cases
Leader device = device 2
xCmd1 = TRUE: The follower device is requested and at least one device is requested and device 1 is not faulty xCmd1 = FALSE: In all other cases
xCmd2 = TRUE: The leader device is requested and at least one device is requested and device 2 is not faulty xCmd2 = FALSE: In all other cases
The device outputs are finally determined as follows (xIgnoreAlarmXFollowerDevice = TRUE and at the same time not both devices are faulty):
Leader device = device 1
xCmd1 = TRUE: The leader device is requested and at least one device is requested and device 1 is not faulty xCmd1 = FALSE: In all other cases
xCmd2 = TRUE: The follower device is requested and at least one device is requested. xCmd2 = FALSE: In all other cases
Leader device = device 2
xCmd1 = TRUE: The follower device is requested and at least one device is requested xCmd1 = FALSE: In all other cases
xCmd2 = TRUE: The leader device is requested and at least one device is requested and device 2 is not faulty xCmd2 = FALSE: In all other cases
CODESYS
InOut:
Input
xEnOne
BOOL
Input
xEnTwo
BOOL
Input
xFb1
BOOL
Input
xFb2
BOOL
Input
xAlarm1
BOOL
Input
xAlarm2
BOOL
Input
uiOperatingHours1
UDINT
Input
uiOperatingHours2
UDINT
Input
xUpdate
BOOL
Input Const
xIgnoreAlarmXFollowerDevice
BOOL
FALSE
Input Const
eModeRedundance
eOpModeRedundance
eOpModeRedundance.Auto
Input Const
xConOperatingHours
BOOL
TRUE
Input Const
xEnFb
BOOL
TRUE
Input Const
wTolerance
WORD
100
Output
iCurrentSequence
INT
Output
xCmd1
BOOL
Output
xCmd2
BOOL
Output
xErr
BOOL
Last updated

