blockEquipmentAvailability
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
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | is_php | false | Set to true for polyvalent heat pumps |
| Boolean | have_heaWat | Set to true for plants that provide HW | |
| Boolean | have_chiWat | Set to true for plants that provide CHW | |
| Real | dtOff | 900 | Off time required before equipment is deemed available again |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1EnaHea | Heating enable command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput | y1Hea | Equipment available for heating | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1EnaCoo | Cooling enable command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput | y1Coo | Equipment available for cooling | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1Ava | Equipment available signal | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1EnaShc | Simultaneous heating and cooling enable command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput | y1Shc | Equipment available for simultaneous heating and cooling |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Utilities.PlaceholderLogical | phHea | Placeholder value if signal is not available | |
| Utilities.PlaceholderLogical | phCoo | Placeholder value if signal is not available | |
| Utilities.PlaceholderLogical | phShc | Placeholder value if signal is not available | |
| Buildings.Controls.OBC.CDL.Logical.Not | notShc | Return true if equipment not required to run in simultaneous heating and cooling mode | |
| Buildings.Controls.OBC.CDL.Logical.And | reqHea | Return true if equipment required to run in heating mode only | |
| Buildings.Controls.OBC.CDL.Logical.And | reqCoo | Return true if equipment required to run in cooling mode only | |
| Buildings.Controls.OBC.CDL.Logical.Pre | preLatHea | Previous value of heating mode latch | |
| Buildings.Controls.OBC.CDL.Logical.Pre | preLatCoo | Previous value of cooling mode latch | |
| Buildings.Controls.OBC.CDL.Logical.Or | latAll | Return true if equipment has operated in a single mode and off time has not elapsed – Previous values | |
| Buildings.Controls.OBC.CDL.Logical.Not | entHea | Return true if equipment allowed to enter heating mode – Off time elapsed for all modes | |
| Buildings.Controls.OBC.CDL.Logical.Nor | entCoo | Return true if equipment allowed to enter cooling mode – No heating command and off time elapsed for all modes | |
| Buildings.Controls.OBC.CDL.Logical.Pre | preRunHea | Previous value of heating mode operation signal | |
| Buildings.Controls.OBC.CDL.Logical.Or | avaHea | Return true if equipment operating in heating mode or allowed to enter it | |
| Buildings.Controls.OBC.CDL.Logical.And | runHea | Return true if equipment operating in heating mode | |
| Buildings.Controls.OBC.CDL.Logical.Pre | preRunCoo | Previous value of cooling mode operation signal | |
| Buildings.Controls.OBC.CDL.Logical.Or | avaCoo | Return true if equipment operating in cooling mode or allowed to enter it | |
| Buildings.Controls.OBC.CDL.Logical.And | runCoo | Return true if equipment operating in cooling mode | |
| Buildings.Controls.OBC.CDL.Logical.Nor | off | Return true if equipment not operating in any single mode | |
| Buildings.Controls.OBC.CDL.Logical.Timer | tim | Return true if equipment has been off for the required time | |
| Buildings.Controls.OBC.CDL.Logical.Latch | latHea | Return true from the time equipment enters heating mode until off time has elapsed | |
| Buildings.Controls.OBC.CDL.Logical.Latch | latCoo | Return true from the time equipment enters cooling mode until off time has elapsed | |
| Buildings.Controls.OBC.CDL.Logical.And | avaAllHea | Return true if equipment available for heating | |
| Buildings.Controls.OBC.CDL.Logical.And | avaAllCoo | Return true if equipment available for cooling |
Revisions
-
July 2, 2026, by Antoine Gautier:
Refactored using CDL blocks in place ofModelica.StateGraphcomponents. -
June 10, 2026, by Antoine Gautier:
Removed unnecessaryOrandAndblocks.
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.