THLOAD: Thermal load analysis
Function
The block THLOAD (FB483) calculates the thermal load state, with the help of heating and cooling demand signals as well as room and outside temperature, which can estimate the thermal demand of a room or zone. The thermal load condition can be used to take advantage of available or less expensive energy sources for heating and/or cooling. For example, the calculated load condition can be used by blinds control to take passive advantage or solar heat or protect the room against solar heat. THLOAD_SiUn (FB483), THLOAD_UsUn (FB788)
Functioning
The following functions are integrated in the block:
- On-going logging of heating demand [HDmd], cooling demand [CDmd] as well as room temperature [TR] and the room temperature comfort setpoints [SpHCmf] and [SpCCmf] over time period [TiPrd] (gliding timeframe). Logging is at a fixed interval of 15 minutes.
- Determines recent heating demand [RctHDmd], recent cooling demand [RctCDmd] and the number of demand changes [DmdChg] within the time period [TiPrd]. [RctHDmd] and [RctCDmd] are set based on the minimum demand time [TiMinDmd].
- Calculates over the time period [TiPrd] the minimum room temperature difference for heating [DTRH] between room temperature [TR] and heating setpoint Comfort [SpHCmf] as well as minimum room temperature difference for cooling [DTRC] between the cooling setpoint Comfort [SpCCmf] and room temperature [TR].
- Calculates the thermal load condition [ThLdCnd]: Enables [EnDmdCal], [EnTRCal] and [EnTOaCal] can specific whether the thermal load condition is based on demand signals, room temperature and/or outside temperature.
Step | Process |
1 | Limit input signals to reasonable value ranges, in particular:
|
2 | Calculate heating demand within the past time interval [TiPrd]:
|
3
| Calculate cooling demand within the past time interval [TiPrd]:
|
4 | Determine the minimum room temperature difference heating [DTRH] between the room temperature [TR] and heating setpoint comfort [SpHCmf] within the past time interval [TiPrd] for times during which [TRVld] = Yes:
|
5 | Determine the minimum room temperature difference cooling [DTRHC] between the cooling setpoint comfort [SpCCmf] and room temperature [TR], during the past time period [TiPrd], for times where [TRVld] = Yes:
|
6 | Calculate thermal load conditions:
|
Determine number of demand changes [DmdChg]
For the illustrated example, [DmdChg] = 3.

The number of changes between heating and cooling demand within the time period [TiPrd] is provided at [DmdChg]. It also counts changes when no heating or cooling demand exists between heating and cooling demand phases. If both heating and cooling demand exists simultaneously, it is counted as a demand change once every 15 minutes.
Determine room temperature differences heating and cooling [DTRH]/[DTRC]
(Temperature differences between past room temperature comfort setpoints and past room temperatures).

The room temperature setpoints are constant on Comfort in the graphic. They are considered if they change.
Calculation of thermal load condition demand [LdDmdCnd]

The thermal load demand condition [LdDmdCnd] represents the load condition based exclusively on heat and cooling demand signals (for [EnDmdCal] = Yes). For [EnDmdCal] = No, [LdDmdCnd] is set to neutral or to [SbstNeut].
- [LdDmdCnd] is used to estimate the thermal load condition with the help of present and past heating and cooling demand signals. The last 24 hours are generally used ([TiPrd] = 24h):
- This demand is supported and set to [LdDmdCnd] = Load, if within [TiPrd] only heating demand exists ([RctHDmd] = Yes, [RctCDmd] = No).
- This demand is supported and set to [LdDmdCnd] = Unload, if within [TiPrd] only cooling demand exists ([RctHDmd] = No, [RctCDmd] = Yes).
- Demand is unclear and [LdDmdCnd] = Neutral, if within [TiPrd] neither heating nor cooling demand exists ([RctHDmd] = No, [RctCDmd] = No).
- It distinguishes various cases if within [TiPrd] both heating and cooling demand existed ([RctHDmd] = Yes, [RctCDmd] = Yes):
- If present demand is only heating ([HDmd] = Yes, [CDmd] = No), the present demand is supported and [LdDmdCnd] = Load.
- If present demand is only cooling ([HDmd] = No, [CDmd] = Yes), the present demand is supported and [LdDmdCnd] = Unload.
- If [EnDmdChg] = No and no present demand exists for either heating or cooling demand, it is set to [LdDmdCnd] = Neutral.
- If [EnDmdChg] = Yes and no present demand exists for heating or cooling, [LdDmdCnd] is set based on demand changes: [DmdChg] = 0 or [DmdChgExpt] = 1 or [TiRec] < [TiPrd] is set to [LdDmdCnd] = Neutral. Otherwise, it is assumed that the upcoming demand corresponds to the opposite of the last demand (demand changes alternatively between heating and cooling) and [LdDmdCnd] is set accordingly.
DmdChgExpt (Exception to demand change calculation): (i) Both heating as well as cooling demand within the same 15 minutes during [TiPrd]; (ii) Phases with no demand between heating demand phases during [TiPrd]; (iii) Phases with no demand between cooling demand phases during [TiPrd].
Calculation of thermal load condition room temperature [LdTRCnd].

The thermal load condition room temperature [LdTRCnd] represents the load condition based exclusively on room temperature [TR] (for [EnTRCal] = Yes). For [EnTRCal] = No, [LdTRCnd] is set to neutral or to [SbstNeut].
[LdTRCnd] is used to forecast thermal load condition with the help of past room temperatures. The last 24 hours are generally used ([TiPrd] = 24h):
- [LdTRCnd] = Load if the room temperature [TR] is valid [TRVld] = Yes and less than [TRLd].
- [LdTRCnd] = Unload if the room temperature [TR] is valid [TRVld] = Yes and greater than [TRUnld].
- [LdTRCnd] = Unload if the room temperature (during valid phases) is in the upper comfort range ([DTRH] > [DTRC]).
- [LdTRCnd] = Load if the room temperature (during valid phases) is in the lower comfort range ([DTRH] < [DTRC]).
Calculation of thermal load condition outside temperature [LdTOaCnd].

The thermal load state outside temperature [LdTOaCnd] represents the load condition based exclusively on outside temperature [TOa] (for [EnTOaCal] = Yes). For [EnTOaCal] = No, [LdTRCnd] is set to neutral or to [SbstNeut].
[LdTOaCnd] estimates the thermal load condition with the help of outside temperature [TOa]. The following rules (see graphic as well) apply for an outside temperature hysteresis [TOaHys] = 0:
- For [TOaVld] = No, [LdTOaCnd] is set = [SbstNeut].
- For [TOaVld] = Yes and [TOa] ≤ [TOaLd], [LdTOaCnd] is set to = Load.
- For [TOaVld] = Yes and [TOa] ≥ [TOaUnld], [LdTOaCnd] is set to = Unload.
- For [TOaVld] = Yes and [TOaLd] < [TOa] < [TOaUnld], where [LdTOaCnd] is set to = [SbstNeut].
The transition from forced state load to neutral state at [TOa] + [TOaHys] takes place if the outside temperature hysteresis [TOaHys] > 0; and the transition from forced state unload to neutral states takes place for [TOa] - [TOaHys].
A different selection of the outside temperature [TOa] can make sense depending on the application, for example:
- The actual outside temperature used for the heating curve function.
- The average of the outside temperature of a past time interval.
- The present measured outside temperature.
- A forecast value for outside temperature, e.g. from weather service.
Calculation of thermal load condition [ThLdCnd].

The thermal load condition [ThLdCnd] represents the load condition based on heating and cooling demand signals (for [EnDmdCal] = Yes), of room temperature (for [EnTRCal] = Yes) and the outside temperature (for [EnTOaCal] = Yes). This load condition [ThLdCnd] essentially unites the states [LdDmdCnd], [LdTRCnd] and [LdTOaCnd] under one common state.
The threshold values for room temperature [TRLd] and [TRUnld] have the highest priority, followed by forcing by threshold values for the outside temperature [TOaLd] and [TOaUnld]. The priority for [ThLdCnd] is determined by heating and cooling demand if the room temperature and outside temperature are within the threshold values. If there was no heating or cooling demand during [TiPrd]: [ThLdCnd] is determined based on room temperature [TR] and its comfort setpoints.
Note: [TR] and the associated [TRVld], [SpHCmf], and [SpCCmf] are polled and logged at 15-minute intervals. Thermal load calculations together with [TR] values are based on the logged data. Room temperature threshold values to force the thermal state is based on the last calculated values for [TR].
Inputs
Pin | Description |
EnFnct | Enable function
|
TiPrd | Time period The function considers data (demand signals and room temperature signals) within a sliding, past timeframe for this period. The default value is 24 hours and the maximum value is 72 hours. |
SbstNeut | Substitution value for load condition neutral The state can be substituted if the subsequently queried functions are unable to process the state neutral (through load or unload). |
EnDmdCal | Enable demand calculation
|
EnDmdChg | Enable demand changing logic
|
CDmd | Cooling demand Present cooling demand of the room or zone |
HDmd | Heating demand Present heating demand of the room or zone |
TiMinDmd | Minimum time duration for demand account The time is used to calculate demand:
|
EnTRCal | Enable room temperature calculation
|
TR | Room temperature |
TRVld | Valid room temperature
|
SpCCmf | Cooling setpoint for comfort Room temperature setpoint for operating mode Comfort. |
SpHCmf | Heating setpoint for comfort Room temperature heating setpoint for operating mode Comfort. |
TRLd | Room temperature to force load The thermal load condition is forced to load state if the room temperature is valid and less than [TRLd]. It takes priority over the force using outside temperature limits [TOaLd] and [TOaUnld]. |
TRUnld | Room temperature to force unload The thermal load condition is forced to unload state if the room temperature is valid and greater than [TRUnld]. It takes priority over the force over outside temperature limits [TOaLd] and [TOaUnld]. |
EnTOaCal | Enable outside air temperature calculation
|
TOa | Outside temperature A different selection of the outside temperature can make sense depending on the application, for example:
|
TOaVld | Outside air temperature valid
|
TOaHys | Outside temperature for switching hysteresis Hysteresis for the threshold values [TOaLd] and [TOaUld] to prevent frequent switching of the thermal load condition based on deviating outside temperature. |
TOaLd | Outside air temperature to force load The thermal load condition is forced to load state if the outside temperature is valid and less than [TOaLd]. It has a lower priority than the force over the room temperature limits [TRLd] and [TRUnld]. |
TOaUnld | Outside air temperature to force unload The thermal load condition is forced to unload state if the outside temperature is valid and greater than [TOaUnld]. It has a lower priority than the force using room temperature limits [TRLd] and [TRUnld]. |
Reset | Reset
The function automatically resets the input to No. |
Outputs
Pin | Description |
ThLdCnd | Thermal load condition The thermal load condition represents the thermal load of a room or zone while considering
|
LdDmdCnd | Thermal load demand condition The thermal load demand condition represents the thermal load of a room or zone under sole consideration of past heating and cooling demand. |
LdTRCnd | Thermal load room temperature condition The thermal load room temperature demand condition represents the thermal load of a room or zone under sole consideration of past room temperatures. Note: The calculation is based on the logged data. |
LdTOaCnd | Thermal load outside air temperature condition The thermal load outside temperature condition represents the thermal load of a room or zone under sole consideration of outside temperatures. |
RctCDmd | Recent cooling demand
|
RctHDmd | Recent heating demand
|
TiCDmd | Time of recent cooling demand Sum total of cooling demand time within [TiPrd]. |
TiHDmd | Time of recent heating demand Sum total of heating demand time within [TiPrd]. |
DmdChg | Number of recent demand changes Counts all demand changes within [TiPrd] between heating demand and cooling demand. Changes are counted based on 15-minute intervals: It counts as a demand change if heating and cooling demand exists at the same time within a 15-minute interval. |
DTRC | Room temperature difference coefficient Minimum difference {[SpCCmf] – [TR]} within [TiPrd], only for times where [TRVld] = Yes.
|
DTRH | Room temperature difference heating Minimum difference {[TR] – [SpHCmf]} within [TiPrd], only for times where [TRVld] = Yes.
|
TiDTRC | Time of minimum room temperature difference cooling Data and time where the (minimum) room temperature difference cooling [DTRC] occurred. Note: Functionality is disabled. |
TiDTRH | Time of minimum room temperature difference heating Data and time where the (minimum) room temperature difference heating [DTRH] occurred. |
TiRec | Time of recorded data
|
Input values
Pin | Description | Data type | Standard value | Engineering unit or text group | Min. | Max. |
EnFnct | Enable function | BOOL | 1 | No, Yes |
|
|
TiPrd | Time period | TIME | T#1D_0H_0M_0S_0MS |
|
|
|
SbstNeut | Substitution value for load condition neutral | INT | 3 | Load, Unload | 1 | 3 |
EnDmdCal | Enable demand calculation | BOOL | 1 | No, Yes |
|
|
EnDmdChg | Enable demand changing logic | BOOL | 1 | No, Yes |
|
|
CDmd | Cooling demand | BOOL | 0 | No, Yes |
|
|
HDmd | Heating demand | BOOL | 0 | No, Yes |
|
|
TiMinDmd | Minimum time duration for demand account | TIME | T#0D_0H_15M_0S_0MS |
|
|
|
EnTRCal | Enable room temperature calculation | BOOL | 1 | No, Yes |
|
|
TR | Room temperature | REAL | 20.0 | °C | 0.0 | 50.0 |
68.0 | °F | 32.0 | 120.0 | |||
TRVld | Valid room temperature | BOOL | 1 | No, Yes |
|
|
SpCCmf | Cooling setpoint for comfort | REAL | 24.0 | °C | 0.0 | 50.0 |
75.0 | °F | 32.0 | 120.0 | |||
SpHCmf | Heating setpoint for comfort | REAL | 21.0 | °C | 0.0 | 50.0 |
70.0 | °F | 32.0 | 120.0 | |||
TRLd | Room temperature to force load | REAL | 15.0 | °C | 0.0 | 50.0 |
59.0 | °F | 32.0 | 120.0 | |||
TRUnld | Room temperature to force unload | REAL | 35.0 | °C | 0.0 | 50.0 |
95.0 | °F | 32.0 | 120.0 | |||
EnTOaCal | Enable outside air temperature calculation | BOOL | 0 | No, Yes |
|
|
TOa | Outside temperature | REAL | 20.0 | °C | -50.0 | 80.0 |
68.0 | °F | -60.0 | 180.0 | |||
TOaVld | Outside air temperature valid | BOOL | 1 | No, Yes |
|
|
TOaHys | Outside temperature for switching hysteresis | REAL | 0.5 | K | 0.0 | 10.0 |
1.0 | °F | 0.0 | 18.0 | |||
TOaLd | Outside air temperature to force load | REAL | 0.0 | °C | -50.0 | 80.0 |
32.0 | °F | -60.0 | 180.0 | |||
TOaUnld | Outside air temperature to force unload | REAL | 30.0 | °C | -50.0 | 80.0 |
86.0 | °F | -60.0 | 180.0 | |||
Reset | Reset | BOOL | 0 | No, Yes |
|
|
Output values
Pin | Description | Data type | Standard value | Engineering unit or text group | Min. | Max. |
ThLdCnd | Thermal load condition | INT | 3 | Load, Unload | 1 | 3 |
LdDmdCnd | Thermal load demand condition | INT | 3 | Load, Unload | 1 | 3 |
LdTRCnd | Thermal load room temperature condition | INT | 3 | Load, Unload | 1 | 3 |
LdTOaCnd | Recent heating demand | INT | 3 | Load, Unload | 1 | 3 |
RctCDmd | Recent cooling demand | BOOL | 0 | No, Yes |
|
|
RctHDmd | Recent heating demand | BOOL | 0 | No, Yes |
|
|
TiCDmd | Time of recent cooling demand
| TIME | T#0D_0H_0M_0S_0MS |
|
|
|
TiHDmd | Time of recent heating demand | TIME | T#0D_0H_0M_0S_0MS |
|
|
|
DmdChg | Number of recent demand changes | INT | 0 | --- | 0 | 32767 |
DTRC | Room temperature difference cooling | REAL | 20.0 | K | -3.402822E38 | 3.402822E38 |
68.0 | °F | -3.402822E38 | 3.402822E38 | |||
DTRH | Room temperature difference heating | REAL | 20.0 | K | -3.402822E38 | 3.402822E38 |
68.0 | °F | -3.402822E38 | 3.402822E38 | |||
TiDTRC | Time of minimum room temperature difference cooling | DATE_AND_TIME | DT#2011-1-1-0:0:0.0 |
|
|
|
TiDTRH | Time of minimum room temperature difference heating | DATE_AND_TIME | DT#2011-1-1-0:0:0.0 |
|
|
|
TiRec | Time of recorded data | TIME | T#0D_0H_0M_0S_0MS |
|
|
|
Engineering
Typical interconnection
Pin | Use |
CDmd | The block is informed of the present cooling demand of the room or zone via this input. |
HDmd | The block is informed of the present heating demand of the room or zone via this input. |
TR | The block is informed of the present room temperature via this input. |
TRVld | The block is informed of the validity of the present room temperature via this input. |
SpCCmf | The present comfort room temperature setpoint for cooling is interconnected to this input. |
SpHCmf | The present comfort room temperature setpoint for heating is interconnected to this input. |
TOa | The block is informed of the outside temperature via this input. |
TOaVld | The block is informed of the validity of the present outside temperature via this input. |
ThLdCnd | This output is further interconnected to the control logic on the electrical and mechanical installation with free cooling or heating, e.g. blinds or energy recovery. |
Application
The function was developed for use on HVAC applications that include systems that support heating and cooling where operation is (nearly) free of charge. Such systems may include blinds or energy recovery units in a ventilation plant.
At present heating and cooling demand, the function ensures that such systems support present demand.
In addition, the function also allows for supporting such systems when no present heating or cooling demand exists.
Application examples
Energy efficient blinds control
Energy efficient blinds control are typically used in a room or building that is unoccupied. Blinds control contributes to minimizing heating and cooling demand for HVAC systems such as radiators or chilled ceilings. THLOAD can, for example, be configured as follows:
- [TiPrd] = 24hr: Considers the previous day.
- [SbstNeut] = Unload: If neutral is not supported, this state will be replaced with unload.
- [EnDmdCal] = Yes, [EnDmdChg] = No, [TiMinDmd]= 15min: Recent heating and cooling demand is considered (continuing for at least 15 minutes), for changing heating and cooling demand within [TiPrd], a future demand is not anticipated.
- [EnTRCal] = Yes, [TRLd] = 18 degC, [TRUnld] = 30 degC: Room temperature is considered, force of load and unload takes place at the appropriate room temperatures.
- [EnTOaCal] = Yes, [TOaLd] = 12 degC, [TOaUnld] = 26 degC, [TOaHys] = 1 K: The outside temperature is considered, force of load and unload takes place at the appropriate outside temperatures.
Inputs for THLOAD can be interconnected as follows:
- [CDmd] and [HDmd] are interconnected with the heating and cooling demand signals valid for the room or zone.
- [TR] is interconnected with the room temperature. It may be a filtered room temperature.
- [TRVld] is interconnected with the validity of the room temperature measurement. [TRVld] is eventually set to = No for exceptions, e.g. open windows (detected by window contacts).
- [TOa] interconnected with the outside temperature or a filtered outside temperature.
- [TOaVld] is interconnected with the validity of the outside temperature measurement.
The output [ThLdCnd] for THLOAD implements in one condition for blinds position – if energy-efficient blinds control is desired, for example, as follows:
- If thermal load state is equal to load, blinds take advantage of solar radiation during the day (i.e. blinds should be opened as much as possible) and prevent heat flow from the room to the environment during the night (i.e. blinds should be closed as much as possible).
- If thermal load state is equal to Unload, blinds prevent solar radiation during the day (i.e. blinds should be closed as much as possible) and permit heat flow from the room to the environment at night (i.e. blinds should be opened as much as possible).
Energy-efficient control of energy recovery in ventilation plants
Energy-efficient control of energy recovery in ventilation plants can be used, for example, for run-around coils or plate heat exchangers with bypass dampers. The goal is to minimize heat or cooling demand by controlling energy recovery. THLOAD can, for example, be configured as follows:
- [TiPrd] = 24hr: Considers the previous day.
- [SbstNeut] = Neutral: Supports the state neutral.
- [EnDmdCal] = Yes, [EnDmdChg] = Ja, [TiMinDmd]= 15min: Recent heating and cooling demand is considered (continuing for at least 15 minutes), for changing heating and cooling demand within [TiPrd], a future demand is anticipated.
- [EnTRCal] = No, [TRVld] = No: Room temperature is not considered.
- [EnTOaCal] = No, [TOaVld] = No: The outside temperature is not considered.
Inputs for THLOAD can be interconnected as follows:
- [CDmd] and [HDmd] are interconnected with heating and cooling demand signals of active heating and cooling elements in the ventilation plant (e.g. heating or cooling registers). Additional heating and cooling demand signals may eventually be considered from other heating and cooling equipment (e.g. radiators in the rooms) acting on the room ventilated by the ventilation plant.
Output [ThLdCnd] for THLOAD is then implemented as one condition for supply air temperature setpoint for energy recovery, for example, as follows:
- The supply air temperature setpoint for energy recovery is set to the heating supply air temperature setpoint if the thermal load state is equal to load.
- The supply air temperature setpoint for energy recovery is set to the cooling supply air temperature setpoint if the thermal load state is equal to unload.
- The supply air temperature setpoint for energy recovery is set to the average of the heating supply air temperature setpoint and cooling supply air temperature setpoint if the thermal load state is equal to neutral.
Night cooling with mechanical ventilation
Night cooling with mechanical ventilation can be efficient if relatively cold outside temperature can be used at night to precool a building. Yet, setting control functions for night cooling is difficult: It is often unclear as to when night cooling is more beneficial than cooling during the day. In particular, night cooling should not cool unnecessarily. THLOAD can be used, configured, for example, as follows:
- [TiPrd] = 24hr: Considers the previous day.
- [SbstNeut] = Neutral: Supports the state neutral.
- [EnDmdCal] = Yes, [EnDmdChg] = No, [TiMinDmd]= 15min: Recent heating and cooling demand is considered (continuing for at least 15 minutes), for changing heating and cooling demand within [TiPrd], a future demand is not anticipated.
- [EnTRCal] = Yes, [TRLd] = 18 degC, [TRUnld] = 30 degC: Room temperature is considered, force of load and unload takes place at the appropriate room temperatures.
- [EnTOaCal] = No, [TOaVld] = No: The outside temperature is not considered.
Inputs for THLOAD can be interconnected as follows:
- [CDmd] and [HDmd] are interconnected with heating and cooling demand signals for active heating and cooling elements of the ventilation plant (e.g. heating and cooling registers) as well as additional heating and cooling demand signals from heating and cooling equipment (e.g. chilled ceilings in the rooms) acting on rooms ventilated by the ventilation plant.
- [TR] is interconnected with the room temperature. It may be a filtered room temperature.
- [TRVld] is interconnected with the validity of the room temperature measurement. In addition, [TRVld] is set to = No during the period for night cooling and then some time beyond, e.g. 1 hour.
The output [ThLdCnd] for THLOAD is then implemented as a condition for night cooling:
- Night cooling is enabled if the thermal load state is equal to unload. Additional conditions must be met for night cooling to actually occur. The FB NGTC can be used here, for example.
- Night cooling is not enabled if the thermal load state is not equal to unload.