[HCcr21] Heating/cooling circuit, precontrol, changeover for heating or cooling
Plant example HCCr21 is a heating/cooling circuit for precontrol.
Functions
- Collects heating requests
- Collects cooling requests
- Controls flow temperature
- Heating/cooling changeover
Plant diagram

Components
- Pump
- Valve
- Changeover valves
- Flow and return temperature sensors
- Sensor for outside temperature
Components and functions of the plant example:
Component | Function | BACnet object |
|---|---|---|
| Scheduler program Switches the plant to operating mode: Off | On | [MSchedule] Scheduler |
| Operating mode switch Switches the plant to: Auto | Off | On | [MI] Operating mode switch |
| Manual operating mode selection Switches the plant to: Auto | Off | On | [MCnfVal] Manual operating mode selection |
| Present operating mode Reports the present operating mode: Off | On | [MCalcVal] Present operating mode |
| Reason for present operating mode Reports the reason for the present operating mode: Exception | Operating mode switch | Manual operating mode selection | Heating request | Cooling request | Scheduler | [MCalcVal] Reason for present operating mode |
| Demand Reports demand to heat generation: No | Yes Reports demand to cooling generation: No | Yes | [BCalcVal] Heating demand [BCalcVal] Cooling demand |
| Sensor for outside temperature Measures outside temperature. | [AI] Outside air temperature |
| Overtemperature detector Monitors the flow temperature. At a high temperature, the mixing valve switches to bypass and keeps the pump switched on, for example, for 10 minutes. The plant then switches off. | [BI] Overtemperature detector |
| Flow temperature sensor Measures the flow temperature. | [AI] Flow temperature |
| Pump |
|
Command Switches on/off the pump as needed. | > [BO] Command | |
Fault message Reports faults. Switches the plant off. | > [BI] Fault | |
Pump run when the outside air temperature is low Pump always operates at low outside temperatures (frost protection). |
| |
Kick function (pump kick) Prevents the pump from seizing during long idle periods. |
| |
| Return temperature sensor Measures the return temperature. | [AI] Return temperature |
| Mixing valve Mixes the required amount of water from return to flow to achieve the desired flow temperature. |
|
Temperature controller Controls the flow temperature. | > [Controller] Temperature controller for heating > [Controller] Temperature controller for cooling | |
Positioning 0% = Bypass … 100% = Through-port | > [AO] Position | |
| Heating/cooling changeover |
[BCalcVal] Heating/cooling state |
Switch heating/cooling Switches the plant to: Auto | Heating | Cooling | [MI] Switch heating/cooling | |
Manual heating/cooling selection Switches the plant to: Auto | Heating | Cooling | [MCnfVal] Manual heating/cooling selection | |
Changeover point to cooling Switches the plant to cooling if the set outside temperature is exceeded. | [ACnfcVal] Changeover point to cooling | |
| Changeover valve in flow |
|
Connects plant flow to the flow from heating or cooling distribution. | [BO] Command | |
| Changeover valve in return |
|
Connects plant return to the return from heating or cooling distribution. | [BO] Command |
Plant example HCCr21 is a heating/cooling circuit for precontrol and with changeover heating/cooling.
Outside temperature
The outside temperature [TOa] can be unfiltered and filtered.
Signal name | Description | Filter constant | Use |
|---|---|---|---|
TOa | Outside temperature | Unfiltered | Pump run when the outside air temperature is low |
TOaEff | Effective outside air temperature | 1h | Changeover point to cooling |
Function changeover heating/cooling
Changeover is based on three criteria that are prioritized in this sequence:
- Manual selection (Switch heating/cooling or manual selection heating/cooling)
- External changeover signal (is read using an input block of type R_B (HCReq))
- By outside temperature (using the adjustable changeover point to cooling)
The result is mapped as heating/cooling state. Both changeover valves are changed over accordingly.
The plant is stop for the runtime of the changeover valves during changeover.
BACnet objects
Name | Description | Object type | Default value |
|---|---|---|---|
ChovrPtToC | Changeover point to cooling | ACnfVal | 20 [°C] |
HCSta | Heating state/cooling state | BCalcVal |
|
Collection of heat requests
The heat request can be gathered from different consumers. Binary demand messages and analog demand setpoints can be collected.
The program receives an input block of type R_B (HReq(1)) that can be linked to a binary demand message via BACnet and an input block of type R_A (SpHReq(1)) for an analog demand setpoint.
[R_B] Read binary
[R_A] Read analog
Additional demand signals can be connected in parallel: Binary to an OR and analog to a MAX block.
Collects cooling requests
The cooling demand can be gathered from different consumers. Binary demand messages and analog demand setpoints can be collected.
The program receives an input block of type R_B (CReq(1)) that can be linked to a binary demand message via BACnet , and an input block of type R_A (SpCReq(1)) for an analog demand setpoint.
Additional demand signals can be connected in parallel: Binary to an OR and analog to a MIN block.
A request that matches the heating/cooling state is processed and switches on the plant.
Controls flow temperature
The plant heating/cooling state determines the flow temperature setpoint and is comprised of the following values:
- The higher setpoint for heat requests (SpHReqX) and the flow temperature setpoint heating
- The lower setpoint for cooling requests (SpCReqX) and the flow temperature setpoint cooling
BACnet objects
Name | Description | Object type | Default value |
|---|---|---|---|
PrSpTFl | Present flow temperature setpoint | ACnfVal |
|
SpTFlH | Flow temperature setpoint for heating | ACnfVal | 50 [°C] |
SpTFlH | Flow temperature setpoint cooling | ACnfVal | 10 [°C] |
BACnet objects controller
Name | Description | Object type | Default value |
|---|---|---|---|
Vlv'TCtrH | Temperature controller heating Controls the flow temperature. | Controller | N/A |
The temperature controller acts as a PI controller (PID with derivative action time Tv=0) and compares the temperature setpoint [PrSpTFl] against the flow temperature [TFl] and calculates the valve position [Pos] on the output. The following controller variables are preset: | |||
Vlv'TCtrC | Temperature controller cooling Controls the flow temperature. | Controller | N/A |
The temperature controller acts as a PI controller (PID with derivative action time Tv=0) and compares the temperature setpoint [PrSpTFl] against the flow temperature [TFl] and calculates the valve position [Pos] on the output. The following controller variables are preset: | |||
If plant power must be reduced, e.g. during charging of the hot water storage tank, connect input [YCtrMax] of the temperature controller heating to a limitation signal, e.g. via BACnet.
Plant operating modes:
- Off (1)
- On (2)
The operating modes are reported on [MCalcVal] object 'Present operating mode'.
At the same time, the reason for the present operating mode is reported to another [MCalcVal] object:
- Exception (1)
- Operating mode switch (2), resulting from an active (not equal to Auto) operating mode switch
- Manual operating mode selection (3), resulting from an active (not equal to Auto) manual operating mode selection
- Heat request (4)
- Cooling request (5)
- Scheduler (6), resulting from an active scheduler
There is a normal mode and local exception mode.
Normal operation
Sources for normal mode:
- [MI] Operating mode switch
- [MCnfVal] Manual operating mode selection
- Heat request
- Cooling demand
- [MSchedule] Scheduler
In normal mode, components are simultaneously switched on and off as per the operating mode.
Exception mode
Sources for exception mode:
- Pump fault
- Overtemperature detector
In exception mode, all outputs are switched off directly at priority 5 (the mixing valve is switched to bypass) and the present operating mode is set to 'Off'.
Local exception mode (special case for overtemperature detector)
The pump remains on, for example, for 10 minutes if the overtemperature detector is triggered. The pump is then switched off. The outputs [AO] valve position and [BO] pump command are switched at priority 4.

The overrun described above may need to be adapted in the program depending on the application and installation. For example, it may have to be set to 0 for floor heating.
Start-up control (nested chart SttUpAlmHdl)
The following functionality is available for an automatic startup of the plant, e.g. after a loss of power and return of power:
- Fixed switch-on delay (can be set on input pin [DlySttUp])
- The plant remains off to ensure communications are reliable and cross-check references are triggered. 'Exception' is reported as the reason for the present operating mode.
- Automatic acknowledge (2x) of possible pending alarms during a fixed switch-on delay.
- Additional adjustable delay for staged plant ramp-up (can be set on input pin [DlyOn])
Alarm handling (nested chart SttUpAlmHdl)
The state of events on the plant is acquired by BACnet object 'Plant state'. The state is mapped on function block CMN_EVT.
[CMN_EVT] Common event
The following functions are available:
- Automatic acknowledge (2x) after startup
- Alarm acknowledgement with a value object
- Alarm indication:
- For pending alarms On
- For unprocessed alarms flashing - Ability to connect the acknowledge button [BI]
- Ability to connect to an alarm indication [BO], e.g. an alarm lamp through an output block [BO]
- Ability to connect to other alarm handling functions on other plants, e.g. acknowledge button and alarm indication for multiple plants in the same control cabinet
Name | Description | Type | Signal/connection | State text | Engineering unit |
|---|---|---|---|---|---|
OpModSwi | Operating mode switch | MI | N/A | Auto | Off | On | N/A |
HCSwi | Switch heating/cooling | MI | N/A | Auto | Heating | Cooling | N/A |
TOa | Outside temperature | AI | LG-Ni1000 | N/A | -70...70 [°C] |
TFl | Flow temperature Alarm function: Basic (Notification class 8) Limit high 90 [°C]; limit low 4 [°C] Time deviation 30 [s] | AI | LG-Ni1000 | N/A | 0...100 [°C] |
TRt | Return temperature Alarm function: Basic (Notification class 8) Limit high 90 [°C]; limit low 4 [°C] Time deviation: 30 [s] | AI | LG-Ni1000 | N/A | 0...100 [°C] |
OvrTDet | Overtemperature detector Alarm function: Basic (Notification class 8) Reference value: Tripped Time deviation: 0 [s] | BI | NO contact | Normal | Tripped | N/A |
Vlv-Pos | Valve position | AO | 0...10V | N/A | 0...100 [%] |
Pu'Cmd | Pump command | BO | NO contact | Off | On | N/A |
Pu'Flt | Pump fault Alarm function: Extended (Notification class 7) Reference value: Tripped Time deviation: 0 [s] | BI | NO contact | Normal | Tripped | N/A |
VlvChoFl'Cmd | Changeover valve flow command | BO | NO contact | Heating | Cooling | N/A |
VlvChoFl'Cmd | Changeover valve return command | BO | NO contact | Heating | Cooling | N/A |






Pump (




