[OSSC] Optimum start stop control
Function block OSSC optimizes activation of HVAC equipment before start and end of room occupancy.
OSSC optimizes activation of HVAC equipment before start and end of room occupancy. OSSC is used to provide the desired room temperature at the beginning of occupancy at the lowest possible energy consumption (short duration of start phase). Additionally, energy supply (heating or cooling) is cut prior to the end of occupancy (longest possible stop phase).
OSSC determines the start and stop phases based on the scheduler values: Present operating mode, next operating mode, and time to next operating mode. The outside and room temperature are also considered.
Adaptation is carried out after each plant start or stop.
The following functions are integrated in OSSC:
- Optimum start stop control (OSSC) function for heating and cooling plants (not simultaneous)
- Automatic adaptation of operating values
Start phase
The start phase comprises:
Step | Process |
|---|---|
1 | Prior to the start of occupancy ([OpModR] = Comfort or [OpModR] = Pre-Comf), the OSSC calculates the following values:
|
2 | At the calculated time, the operating mode changes to [PrOpMod] = Start. The start phase begins. |
3 | In the start phase, the OSSC controls the room temperature via the room temperature setpoint [SpTRStt]. |
4 | After expiration of the start phase [TiSttEst], the operating mode is [PrOpMod] = Inactive. The start phase ends. Occupancy begins at this time. |
5 | During occupancy ([OpModR] = Comfort or [OpModR] = Pre-Comf), a start phase is not possible. |
Stop phase
The stop phase comprises:
Step | Process |
|---|---|
1 | When [OpModR] = Comfort, OSSC calculates the following values:
|
2 | At the calculated time, the operating mode changes to [PrOpMod] = Stop. The stop phase begins. |
3 | In the stop phase, the OSSC controls the room temperature via the room temperature setpoint [SpTRStp]. |
4 | After expiration of the stop phase [TiSttEst], the operating mode is [PrOpMod] = Inactive. The stop phase ends. Occupancy ends at this time. |
If the room temperature sensor is not used ([TRSen] = 0), OSSC disables stop optimization.
Start phase: Temperature reached too soon
If the temperature setpoint [SpCmf] in the start phase is reached prior to expiration of [TiSttEst], the operating mode changes to [PrOpMod] = Pre-Comf and the setpoint [SpTRStt] to [SpPcf]. Another start phase is impossible.
The time deviation to [TiSttEst] is indicated by [ErTiStt] > 0 and the temperature deviation [ErTRStt] is set to zero.
Start phase: Temperature reached too late
If the temperature setpoint [SpCmf] is reached later than after the expiration of [TiSttEst], the operating mode remains at [PrOpMod] = Start and start setpoint increased until the temperature setpoint is reached. The operating state changes to [OsscSta] = Late Start.
The time deviation to [TiSttEst] is indicated by [ErTiStt] < 0 and the temperature deviation by [ErTRStt] > 0.
Stop phase: Temperature reached too soon
If the temperature setpoint [SpPcf] in the stop phase is reached sooner than [TiStpEst], the operating mode changes to [PrOpMod] = Pre-Comf and the setpoint to [SpTRStp] = [SpPcf]. Another stop phase is impossible.
The time deviation to [TiStpEst] is indicated by [ErTiStp] > 0 and the temperature deviation [ErTRStp] is set to zero.
Stop phase: Temperature reached too late
If the temperature setpoint [SpPcf] in the stop phase is not reached after [TiStpEst], the operating mode still changes to [PrOpMod] = Inactive.
The time deviation to [TiStpEst] is indicated by [ErTiStp] = 0, the temperature deviation by [ErTRStp] < 0.
Special cases during room occupation
If the room operating mode changes to [OpModR] = Pre-Comf, the operating mode remains at [PrOpMod] = Inactive.

OSSC does not control the room temperature outside the start and stop phases. Outside the start/stop phases [PrOpMod] = Inactive and room temperature control must be taken over by other function blocks. For example, OSSC together with function block HCRV can be used for occupancy phases and sustained mode function for non-occupancy phases.
[HCRV] Heating curve
Determination of design start and stop times
The estimated time for start and stop phases requires configuration parameters. They are set as per the building properties and updated when adaptation to OSSC is enabled.

The parameters must be available on the associated BACnet object as extension property (Extension by persistence = Optimum start stop control).
Parameters | Meaning |
|---|---|
TiSttDs | Start time for design conditions For [ActgHC] = 0: [TiSttDs] is the start time required to heat up the room from 15°C to 20°C at an outside temperature of [TOaDsgn]. During start phase, the target room temperature setpoint ([SpCmf] or [SpPcf]) is increased by [DSpTRStt]. |
TiSttLld | Start time for low load conditions For [ActgHC] = 0: [TiSttLld] is the start time that is required to heat up the room an outside temperature of 15°C from 15°C to 20°C. During start phase, the target room temperature setpoint ([SpCmf] or [SpPcf]) is increased by [DSpTRStt]. |
TiSttWe | Start time for weekend conditions [TiSttWe] is the time that is added to the base start time at an design outside temperature [TOaDsgn], if the room is unoccupied over a longer period ([OpModR] = Protection or [OpModR] = Economy). |
TcnTRStp | Time constant of room temperature during stop time [TcnTRStp] is the time constant at which a room is cooled or heating when shutting down heating or cooling (constant outside temperature). |
Typical interconnection to other function blocks
Connecting thread | Use | |
|---|---|---|
EnFnct | This input typically is used to indicate to OSSC if the scheduler R_MSCHED sets the room operating mode. If this is the case, OSSC can take effect (set [EnFnct] to 1) or not (set [EnFnct] to 0). | |
OpModRNxOpModRTnxOpMod | These inputs typically are interconnected to the R_MSCHED scheduler. | |
OpModFb | The winning (modified) changed room operating mode must be sent to this input. The modification is implemented as follows: | |
Heating/cooling plant off | [OpModFb] = Inactive | |
Else | [OpModFb] = Winning room operating mode. | |
OSSC only improves start/stop times [TiSttDs], [TiSttLld], [DTiSttWe], [TiStt0], [TcnTRStp] if feedback to [OpModFb] meets expectations. It checks whether the start and stop phases occurred as provided by the block. This prevents adaptations to start/stop times based on manual intervention or faults. | ||
If [OsscSta] = Setback | Expected by OSSC at [OpModFb]: Inactive, Economy, Protection, Purge, NightCool | |
PrOpMod | [PrOpMod] = Inactive | Other functional units must determine the room operating mode. |
[PrOpMod] <> Inactive | The OSSC block determines the room operating mode if no functional units with higher priority determine the room operating mode. | |
SpTRSttSpTRStp | If [PrOpMod] = Start | the corresponding room temperature setpoint [SpTRStt] is valid. |
If [PrOpMod] = Stop | the corresponding room temperature setpoint [SpTRStp] is valid. | |
During the stop phases, the heating/cooling plant must be switched off to ensure that the setpoint is not active. However, [SpTRStp] is the room temperature the OSSC block is supposed to reach at the end of occupancy. | ||
OsscSta | If an OSSC block is used both for heating and cooling, [OsscSta] can be used to coordinate the two blocks. | |
Reset parameters.
The configuration parameters can be reset to the defaults. This can occur via input [ResetPar].
Parameters | Meaning |
|---|---|
None | Normal function (Default value). |
StartPar | Parameters [TiSttDs], [TiSttLld], [TiSttWe], [TiStt0] have default values. |
StopPar | Parameter [TcnTRStp] is set to the default value. |
Room temperature sensors
Condition | Result |
|---|---|
TRSen = Yes | The room temperature is measured and available at input [TR]. |
TRSen = No | If the room temperature is not available as a measured value, [TRSen] must be set to No. In this case, no stop phases are triggered and start times are not improved. Input [TR] must be set either with a fixed value or receive a value calculated by a logic outside OSSC. |
Input | Description | Data type | Default value |
|---|---|---|---|
EnFnct | Enable function Enables the function. | Boolean | 1 |
0 - The function is disabled. | |||
OpModR | Operating mode for room Present operating mode for room | Integer | 4: Pre-Comfort 1…9 |
1: Inactive | |||
NxOpModR | Next operating mode for room Next operating mode for room, requested by the scheduler | Integer | 2: Protection 1…9 |
1: Inactive | |||
TiNxOpM | Time till next operating mode | Time | 0 0…48h |
SpPcf | Setpoint pre-comfort | Real | 19.0 5.0…35.0 [°C] |
SpCmf | Setpoint for comfort | Real | 20.0 5…35 [°C] |
TOa | Outside temperature | Real | 20.0 [°C] -100.0…100.0 [°C] |
ErTOa | Error for outside temperature Indicates if the outside air temperature [TOa] is faulty. | Boolean | 0 |
TR | Room temperature Measures the (reference) room temperature. | Real | 20.0 [°C] 0.0…50.0 [°C] |
TRSen | Room temperature sensor | Boolean | 1 |
ErTR | Error room temperature Indicates if the room temperature [TR] is faulty. | Boolean | 0 |
OpModFb | Operating mode feedback | Integer | 1 1…9 |
1: Inactive | |||
EnAda | Enable adaptation | Boolean | 1 |
ActgHC | Control action for heating or cooling | Boolean | 0 |
0 - Heating | |||
TOaDsgn | Design outside temperature Defined as per heating plant planning data | Real | -11.0 [°C] -50.0…10.0 [°C] |
TiSttMax | Maximum start time | Time | 12h 0…72h |
TiStpMax | Maximum stop time Maximum time (duration) for stop phase | Time | 1h 0…12h |
DSpTRStt | Delta setpoint room temperature upon start | Real | 10.0 |
ResetPar | Reset parameters | Integer | 1: None 1…3 |
1: None | |||
|
BaObjRef | BA-Object reference | Structure | --- |
BaObjRef | Device identifier | Double Word | 16#3FFFFF |
BaObjRef | Object identifier | Double Word | 16#3FFFFF |
BaObjRef | Item identifier | Integer | -1 |
Output | Description | Data type | Default value |
|---|---|---|---|
PrOpMod | Present operating mode | Integer | 1 1…9 |
1: Inactive | |||
SpTRStt | Room temperature setpoint for start | Real | 30.0 0.0…50.0 [°C] |
SpTRStp | Room temperature setpoint for stop | Real | 19.0 0.0…50.0 [°C] |
OsscSta | OSSC state (optimum start stop control) | Integer | 1: Setback 1…8 |
1: Setback | |||
DTiStt | Delta to start time | Time | 24h 0…72h |
TiSttEst | Estimated start time | Time | 0 ms 0…72h |
DTiStp | Delta to stop time | Time | 24h 0…72h |
TiStpEst | Estimated stop time | Time | 0 ms 0…12h |
ErTiStt | Error start time | Time | 0 ms |
ErTRStt | Error room temperature at start time | Real | 0.0 [K] |
ErTiStp | Error stop time | Time | 0 ms |
ErTRStp | Error room temperature at stop time | Real | 0.0 [K] |
|
SysUnits | System of units Indicates the system of units used by the block. | Integer | 1: International system of units (SI) (fallback) 1...5 |
1: International system of units (SI) (fallback) | |||
ErrCode | Error code indication | Integer | 0: No error |
= 0 - No error | |||
Outside temperature error
If the outside air temperature is faulty, the OSSC block does not start the stop phase.
Room temperature error
If the room temperature is faulty, the OSSC block neither starts the start nor the stop phase.
Access to BACnet object
In the event of error accessing the BACnet object properties, start and stop optimization is performed with the default values.
No start and stop optimization is performed if the BACnet object reference is invalid.