blockEquipmentAvailability

Equipment availability for heating and cooling applications

Information

If a reversible heat pump is commanded enabled in either heating or cooling mode, it is removed from the staging order of the opposite mode until it has been off for dtOff.

If a polyvalent heat pump is commanded enabled in single mode, it is removed from the staging order of the opposite single mode until it has been off or operating in simultaneous heating and cooling mode for dtOff.

Implementation details

To avoid concurrent stage transitions between heating and cooling modes, "commanded enabled in a given mode" should be interpreted as "required to run in a given mode", and evaluated before the heat pump is actually enabled. Event sequencing during stage transitions introduces a delay between these two events. During this delay, the heat pump should not be considered available for the opposite mode.

Since the enable commands are computed from the availability signals within the plant controller, the block is structured to avoid creating an algebraic loop at simulation time and at initialization: the heating availability has no direct dependency on any enable command, and the cooling availability directly depends on the heating enable command only. If both single mode commands are received at the same time event, the heating command prevails and the equipment is reported unavailable for cooling.

A mode command is only accepted – and the equipment considered as operating in that mode – if it is received while the equipment is available or already operating in that mode. Commands received before the off time has elapsed are disregarded, so the availability outputs remain false even if an enable command is issued.

At initial time the equipment is available for all modes.

Parameters

TypeNameDefaultDescription
Booleanis_phpfalseSet to true for polyvalent heat pumps
Booleanhave_heaWatSet to true for plants that provide HW
Booleanhave_chiWatSet to true for plants that provide CHW
RealdtOff900Off time required before equipment is deemed available again

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1EnaHeaHeating enable command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputy1HeaEquipment available for heating
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1EnaCooCooling enable command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputy1CooEquipment available for cooling
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1AvaEquipment available signal
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1EnaShcSimultaneous heating and cooling enable command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputy1ShcEquipment available for simultaneous heating and cooling

Components

TypeNameDefaultDescription
Utilities.PlaceholderLogicalphHeaPlaceholder value if signal is not available
Utilities.PlaceholderLogicalphCooPlaceholder value if signal is not available
Utilities.PlaceholderLogicalphShcPlaceholder value if signal is not available
Buildings.Controls.OBC.CDL.Logical.NotnotShcReturn true if equipment not required to run in simultaneous heating and cooling mode
Buildings.Controls.OBC.CDL.Logical.AndreqHeaReturn true if equipment required to run in heating mode only
Buildings.Controls.OBC.CDL.Logical.AndreqCooReturn true if equipment required to run in cooling mode only
Buildings.Controls.OBC.CDL.Logical.PrepreLatHeaPrevious value of heating mode latch
Buildings.Controls.OBC.CDL.Logical.PrepreLatCooPrevious value of cooling mode latch
Buildings.Controls.OBC.CDL.Logical.OrlatAllReturn true if equipment has operated in a single mode and off time has not elapsed – Previous values
Buildings.Controls.OBC.CDL.Logical.NotentHeaReturn true if equipment allowed to enter heating mode – Off time elapsed for all modes
Buildings.Controls.OBC.CDL.Logical.NorentCooReturn true if equipment allowed to enter cooling mode – No heating command and off time elapsed for all modes
Buildings.Controls.OBC.CDL.Logical.PrepreRunHeaPrevious value of heating mode operation signal
Buildings.Controls.OBC.CDL.Logical.OravaHeaReturn true if equipment operating in heating mode or allowed to enter it
Buildings.Controls.OBC.CDL.Logical.AndrunHeaReturn true if equipment operating in heating mode
Buildings.Controls.OBC.CDL.Logical.PrepreRunCooPrevious value of cooling mode operation signal
Buildings.Controls.OBC.CDL.Logical.OravaCooReturn true if equipment operating in cooling mode or allowed to enter it
Buildings.Controls.OBC.CDL.Logical.AndrunCooReturn true if equipment operating in cooling mode
Buildings.Controls.OBC.CDL.Logical.NoroffReturn true if equipment not operating in any single mode
Buildings.Controls.OBC.CDL.Logical.TimertimReturn true if equipment has been off for the required time
Buildings.Controls.OBC.CDL.Logical.LatchlatHeaReturn true from the time equipment enters heating mode until off time has elapsed
Buildings.Controls.OBC.CDL.Logical.LatchlatCooReturn true from the time equipment enters cooling mode until off time has elapsed
Buildings.Controls.OBC.CDL.Logical.AndavaAllHeaReturn true if equipment available for heating
Buildings.Controls.OBC.CDL.Logical.AndavaAllCooReturn true if equipment available for cooling

Revisions

  • July 2, 2026, by Antoine Gautier:
    Refactored using CDL blocks in place of Modelica.StateGraph components.
  • June 10, 2026, by Antoine Gautier:
    Removed unnecessary Or and And blocks.
    This is for #4624.
  • January 23, 2025, by Antoine Gautier:
    Refactored to use "required to run" conditions.
    This is for #4432.
  • March 29, 2024, by Antoine Gautier:
    First implementation.