HVAC_RotaryHeatExchanger (FB)

FUNCTION_BLOCK HVAC_RotaryHeatExchanger

HVAC rotary heat exchanger.

Functionality

HVAC_RotaryHeatExchanger provides a control strategy for a HVAC rotary heat exchanger taking into account:

  • control of bypass damper

  • differential pressure monitoring

  • optional cleaning operation

  • malfunction detection

  • malfunction locking

  • operational time

The heat exchanger is requested if:

  • it is enabled (xEnable = TRUE)

  • setpoint reaches/exceeds request threshold (rSetpt >= rReqTreshold)

optional cleaning operation

If the rotary heat exchanger had not been enabled for a given time (tCleanMaxOff) it is enabled and set to rCleanPos for tCleanTime.

malfunction detection

If a hardware malfunction is detected via hardware error indication (input) or differential pressure monitor xError is set to TRUE, eErrorID is set to Error.HardwareError.

malfunction locking

Malfunction locking makes the difference how to handle / recover from a detected hardware malfunction.

Malfunction locking enabled (xMalFuncLock := TRUE): If a malfunction is detected, the rotary heat exchanger (xOn) is shut off. If the hardware malfunction is gone, xError / eErrorID and rotary heat exchanger shutoff are kept until a reset (xReset := TRUE).

Malfunction locking disabled (xMalFuncLock := FALSE): If a malfunction is detected, the rotary heat exchanger (xOn) is NOT shut off. The rotary heat exchanger recovers from a hardware malfunction automatically.

InOut:

Scope

Name

Type

Initial

Comment

Input

xEnable

BOOL

TRUE

Enable

rSetpt

REAL

0.0

Setpoint, 0..100(%)

rReqTreshold

REAL

0.0

Request threshold, 0..100(%)

xDifferentialPressureMonitor

BOOL

TRUE

Differential pressure monitor - TRUE => signaling proper differential pressure

tCleanMaxOff

TIME

TIME#2880m0s0ms

Maximum off time to enable cleaning operation

tClean

TIME

TIME#0ms

Cleaning operation duration, set to T#0S to disable cleaning operation

rCleanPos

REAL

100.0

Cleaning operation setpoint, 0..100(%) - 0% => closed, 100% => open

xErri

BOOL

FALSE

Error indication - rotary heat exchanger is signaling an error

xMalFuncLock

BOOL

FALSE

Enable the malfunction locking

xOpTimeInit

BOOL

FALSE

Initialize the operational time with a given value (tInit).

tOpTimeInit

LTIME

LTIME#0ns

Initialization value

xReset

BOOL

FALSE

Reset

itfDateTimeProvider

Util.IDateTimeProvider

Globals.g_dtpDateTimeProvider

Source for the current date and time information in milliseconds since 1.1.1970 00:00:00.000

Output

xOn

BOOL

Rotary heat exchanger is switched on, bypass dampers closed

rSetptOut

REAL

Actual setpoint

tToNextClean

TIME

Remaing time to next clean operation

tOpTime

LTIME

Operational time

xError

BOOL

Error indication

eErrorID

Error

Error ID

Methods:

Structure: