Two-stage Boiler (v1.4)

Lib.Mervis.v1_4.TwoStageBoiler

Block used for controlling the performance of a boiler with a two-stage burner and a circulation pump.

  • Lib.Mervis
program test
    var
        twoStageBoiler: lib.mervis.v1_4.TwoStageBoiler;
    end_var

    twoStageBoiler();
end_program
Inputs Name Data TypeRetainRequired Connection Meaning
OperatingMode Lib.Mervis.v1_0.OperatingModeTypeYes No Boiler operating mode
PumpOperatingMode Lib.Mervis.v1_0.OperatingModeTypeYes No Circulation pump operating mode
OutputTemperature real No Yes Output temperature
BoilerDemand Lib.Mervis.v1_1.StageControlTypeNo Yes Combined boiler demand from the cascade controller
RunningStage1 bool No No Feedback signal of boiler operation - stage 1
FailureStage1 bool No No Feedback signal of boiler failure - stage 1
RunningStage2 bool No No Feedback signal of boiler operation - stage 2
FailureStage2 bool No No Feedback signal of boiler failure - stage 2
PumpRunning bool No No Feedback signal of circulation pump operation
PumpFailure bool No No Feedback signal of circulation pump failure
ResetRuntime bool No No Reset runtime hours
MinimalOutput real No No External input for defining the minimum output temperature (if zero, it is not used)
LimitForAttach real No No Limit value of the criterion for activating the second stage
LimitForDettach real No No Limit value of the criterion for deactivating the second stage
MaxOutputTemperature real No No Maximum output temperature, exceeding it is considered a fault
FailureDelay time No No Interval waiting for active boiler operation feedback
FailureCountLimit uint No No Number of consecutive boiler errors before it is permanently marked as non-functional
FailureTimeout time No No Time after an unsuccessful boiler start before retrying
MinimalRunTime time No No Minimum burner runtime (based on this, the switching hysteresis is adjusted)
UseLocalOutputTemperaturebool No No Determines whether the control uses the common output temperature or its own (= true)
RunTimeSource Lib.Mervis.v1_0.RunTimeSourceTypeNo No Determines how the boiler runtime hours are counted
PumpRunDownTime time No No Run-down time of the circulation pump after the boiler is removed from the cascade
PumpFailureDelay time No No Interval waiting for active circulation pump operation feedback
Outputs Name Data Type Meaning
State Lib.Mervis.v1_1.StageInfoType Combined boiler state to the cascade controller
DemandStage1 bool Command for stage 1
DemandStage2 bool Command for stage 2
PumpDemand bool Command for the circulation pump
RunTimeInHours udint Boiler runtime in whole hours
FailureOutput bool Boiler fault
PumpFailureOutputbool Circulation pump fault
AlarmsStatus Lib.Mervis.v1_0.AlarmsStatus Combined interface for alarm indication
RunTime time Boiler runtime
Blocks Name Data Type Meaning
FailureFb1Lib.Mervis.v1_0.FailureDetector Block for evaluating the first stage boiler fault
FailureFb2Lib.Mervis.v1_0.FailureDetector Block for evaluating the second stage boiler fault
Alarms Lib.Mervis.v1_0.AlarmsExtender4 Alarm function block

Alarm InputPriorityMeaning
Alarm1 32/33 First stage boiler fault
Alarm2 32/33 Second stage boiler fault
Alarm3 32 Pump fault
Alarm4 33 Boiler overheating

The block is used for controlling a two-stage boiler. Both stages are controlled separately in the following way:

  • 1st stage

Its control uses a thermostat, whose input is either the common or own output and the setpoint from the cascade controller. The hysteresis of this thermostat is dynamically set to meet the minimum boiler runtime condition and at the same time maintain the regulated temperature within the range from the setpoint to the setpoint plus hysteresis (the actual value is at least as high as the setpoint). The following two cases may occur:

  • Runtime is shorter - the hysteresis is increased by 1/3 of its size - up to a maximum size of fifteen degrees Celsius.
  • Runtime is longer than twice the minimum - the hysteresis is decreased by 1/3 of its value - down to a minimum value of five degrees Celsius.
  • 2nd stage

Its control uses the integral criterion, whose inputs are the same as for the first stage. The second stage is switched by the AttachCmd and DettachCmd requests - it is activated upon attachment, and deactivated upon detachment.

The circulation pump is started together with the command for the first or second stage, only when the boiler is the first in line is the pump continuously operated (if in automatic mode).

The block also evaluates the following fault conditions:

  • Burner non-operation - based on the difference between the command and the feedback signal or directly using the fault input. If this fault occurs, the error counter is incremented, and if it exceeds the FailureCountLimit, the boiler is permanently marked as faulty and removed from cascade control. The counter is reset by a successful start.
  • Circulation pump non-operation - evaluated in the same way as the burner non-operation, its fault also results in removal from cascade control.
  • © Energocentrum Plus, s.r.o. 2017 - 2024