> For the complete documentation index, see [llms.txt](https://support.powerio.com/hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.powerio.com/hub/codesys-hvac/en/hvac-library/functionblocks/control/cascadeextractsupplyairtemp2setpt.md).

# CascadeExtractSupplyAirTemp2Setpt

## ![../../../\_images/CascadeExtractSupplyAirTemp2Setpt\_FB.png](file:///Users/kevinrohn/Development/general/extract-codesys-docs/hvac-library/html/_images/CascadeExtractSupplyAirTemp2Setpt_FB.png)`CascadeExtractSupplyAirTemp2Setpt` (FB)

FUNCTION\_BLOCK CascadeExtractSupplyAirTemp2Setpt

### Short description

> Creation of two supply air setpoint temperatures using two cascade controllers (PI controllers)\
> Additional functions: Limitation of the supply air setpoint temperatures\
> Typical application: Supply air temperature control in a ventilation unit with active cooling\\

### Representation

<figure><img src="/files/2459e53505754ff3c244523a73f730d1dfacd596" alt=""><figcaption></figcaption></figure>

### Function description

#### General

This function block corresponds to the block ‘CascadeExtractSupplyAirTemperature’, which here is extended by another cascade controller to form a separate supply air setpoint temperature for the cooler in active cooling operation.

CascadeExtractSupplyAirTemperature

This function block is used to form the supply air setpoint temperature of a ventilation unit from:<br>

1. Current setpoint temperature (exhaust or room temperature) in °C

\
2\) Current actual temperature (exhaust or room temperature) in °C\
\
taking into account the relative (rMinSUPTemp and rMaxSUPTemp) and absolute (rMinSUP and rMaxSUP) limits.\
In addition, the special operating modes ‘Fast heating’ and ‘Free night cooling’ are taken into account when forming the supply air setpoint temperature.\
The formation of the supply air setpoint temperature takes place with a time delay (tDelayControl) after the release/locking of the controller (xEn = TRUE).\
\
The cascade controller is enabled if the following conditions described below are fulfilled simultaneously:\
\
1\) The special operating mode Fast heating is locked (xFastHeatEn = FALSE).\
\
2\) The special operating mode Free night cooling is locked (xFNCEn = FALSE).\
\
3\) The current actual temperature rActTemp does not violate its absolute limits (+5.0 - +50.0 °C).\
\
4\) The control is enabled (xEn = TRUE) and the start-up delay (time duration = tDelayControl) has ended.\
\
In all other situations the cascade controller is locked.

#### Control

The current actual temperature *rActTemp* is, with the cascade controller enabled (PI controller, *xEn* = TRUE, expiry of the time duration **tDelayControl**, no limit violation at the input *rActTemp*) continuously compared with the current setpoint temperature *rSetPtTemp* and depending on the magnitude/sign of the difference or depending on the controller settings (**rPI\_Kp** or **rPI\_Tn**) an offset temperature is generated in the cascade controller.\
\
In heating mode (*rActTemp* < *rSetPtTemp*) this produces a positive offset temperature in the range 0.0 - **rMaxRelativeSUP** K.\
In cooling mode (*rActTemp* > *rSetPtTemp*) this produces a negative offset temperature in the range 0.0 - **rMinRelativeSUP** K.\
In the fully regulated state (*rActTemp* = *rSetPtTemp*) the offset temperature does not change.\
\
This offset temperature is then added to the current setpoint temperature and, if necessary, limited to the calculated limits *rMinSUPTemp* or *rMaxSUPTemp* .\
\
At the output *rMinSUPTemp* the calculated minimum supply air setpoint temperature is continuously shown (*rActTemp* + **rMinRelativeSUP**, absolutely limited to **rMinSUP** or **rMaxSUP**) .\
At the output *rMaxSUPTemp* the calculated maximum supply air setpoint temperature is continuously shown (*rActTemp* + **rMaxRelativeSUP**, absolutely limited to **rMinSUP** or **rMaxSUP**).\
\
The current actual temperature *rActTemp* is monitored for compliance with limits.\
On every limit violation (*rActTemp* < +5.0 °C or *rActTemp* > +50.0 °C) the cascade controller is deactivated.

#### Selection of the supply air setpoint temperature

The selection of the supply air setpoint temperature is carried out according to the following function table.

| *xFastHeatEn* | *xFNCEn* | *rActTemp* within limit | *xEn* | Supply air setpoint temperature   | Notes                                       |
| ------------- | -------- | ----------------------- | ----- | --------------------------------- | ------------------------------------------- |
| TRUE          | X        | X                       | X     | **rMaxSUP**                       | Special operating mode ‘Fast heating’       |
| FALSE         | TRUE     | X                       | X     | **rMinSUP**                       | Special operating mode ‘Free night cooling’ |
| FALSE         | FALSE    | FALSE                   | X     | *rSetPtTemp*                      | Limit violation actual temperature          |
| FALSE         | FALSE    | X                       | FALSE | *rSetPtTemp*                      | Locking of the control                      |
| FALSE         | FALSE    | TRUE                    | TRUE  | *rSetPtTemp* + Offset temperature | Normal operation                            |

Legend: X = any

#### Formation of the current supply air setpoint temperature *rSetPtSUPTemp*

The current supply air setpoint temperature *rSetPtSUPTemp* is formed from the supply air setpoint temperature, extended by a manual override module.

| Supply air setpoint temperature | **eManModeN** | *rSetPtSUPTemp*                 | Notes                                      |
| ------------------------------- | ------------- | ------------------------------- | ------------------------------------------ |
| X                               | eMANNUM.Auto  | Supply air setpoint temperature | Manual override module in automatic        |
| X                               | eMANNUM.Man   | **rManValue**                   | Manual override module in manual operation |

Legend: X = any

#### Cascade controller for active cooling operation (PI controller)

This cascade controller is used to form the supply air setpoint temperature for a cooling device from<br>

1. Current setpoint temperature (maximum value of (*rSetPtTemp* + 1) and *rSetPtTempCool*)

\
2\) Current actual temperature (exhaust or room temperature) in °C\
\
taking into account the following limits:\
\
Minimum value - output signal of the cascade controller: rMinSUPTemP - (maximum value of (rSetPtTemp + 1) and rSetPtTempCool)\
\
Maximum value - output signal of the cascade controller: rMaxSUPTemP - (maximum value of (rSetPtTemp + 1) and rSetPtTempCool)\
\
The formation of the supply air setpoint temperature takes place after the release/locking of the main cascade controller, provided the input xEnCool is active (= TRUE).\
\
The cascade controller for active cooling operation is enabled if the following conditions described below are fulfilled simultaneously:\
\
1\) The special operating mode Fast heating is locked (xFastHeatEn = FALSE).\
\
2\) The special operating mode Free night cooling is locked (xFNCEn = FALSE).\
\
3\) The current actual temperature rActTemp does not violate its absolute limits (+5.0 - +50.0 °C).\
\
4\) The control is enabled (xEn = TRUE) and the start-up delay (time duration = tDelayControl) has ended.\
\
5\) The input \*xEnCool\* is enabled (xEnCool = TRUE).\
\
In all other situations the cascade controller for active cooling operation is locked.

#### Control

The current actual temperature *rActTemp* is, with the cascade controller for active cooling operation enabled, continuously compared with the current setpoint temperature (maximum value of (*rSetPtTemp* + 1) and *rSetPtTempCool*) and depending on the magnitude/sign of the difference or depending on the controller settings (**rPI\_Kp** or **rPI\_Tn**) an offset temperature for active cooling operation is generated in the cascade controller.\
\
In heating mode (*rActTemp* < current setpoint temperature) this produces a positive offset temperature in the range 0.0 - Minimum value - output signal of the cascade controller for active cooling operation K.\
In cooling mode (*rActTemp* > current setpoint temperature) this produces a negative offset temperature in the range 0.0 - Maximum value - output signal of the cascade controller for active cooling operation K.\
In the fully regulated state (*rActTemp* = current setpoint temperature) the offset temperature does not change.\
\
This offset temperature is then added to the current setpoint temperature and, if necessary, limited to the calculated limits *rMinSUPTemp* or *rMaxSUPTemp* limited.\
\
The current actual temperature *rActTemp* is monitored for compliance with limits.\
On every limit violation (*rActTemp* < +5.0 °C or *rActTemp* > +50.0 °C) the cascade controller is deactivated.

#### Selection of the supply air setpoint temperature

The selection of the supply air setpoint temperature is carried out according to the following function table.

| Release cascade controller for active cooling operation | *rActTemp* within limit | Supply air setpoint temperature                          | Notes             |
| ------------------------------------------------------- | ----------------------- | -------------------------------------------------------- | ----------------- |
| FALSE                                                   | X                       | Maximum value of (*rSetPtTemp* + 1) and *rSetPtTempCool* | Controller locked |
| X                                                       | FALSE                   | Maximum value of (*rSetPtTemp* + 1) and *rSetPtTempCool* | Limit violation   |
| TRUE                                                    | TRUE                    | Current setpoint temperature + offset temperature        | Normal operation  |

Legend: X = any

#### Formation of the current supply air setpoint temperature *rSetPtSUPTempCool*

The current supply air setpoint temperature *rSetPtSUPTempCool* is formed from the supply air setpoint temperature, extended by a manual override module.

| Supply air setpoint temperature | **eManModeNCool** | *rSetPtSUPTempCool*             | Notes                                      |
| ------------------------------- | ----------------- | ------------------------------- | ------------------------------------------ |
| X                               | eMANNUM.Auto      | Supply air setpoint temperature | Manual override module in automatic        |
| X                               | eMANNUM.Man       | **rManValueCool**               | Manual override module in manual operation |

Legend: X = arbitrary\\

### CODESYS

InOut:

| Scope       | Name                | Type    | Initial      |
| ----------- | ------------------- | ------- | ------------ |
| Input       | `xEn`               | `BOOL`  |              |
| Input       | `rActTemp`          | `REAL`  | 0            |
| Input       | `rSetPtTemp`        | `REAL`  | 21           |
| Input       | `rSetPtTempCool`    | `REAL`  | 24           |
| Input       | `xEnCool`           | `BOOL`  |              |
| Input       | `xFastHeatEn`       | `BOOL`  | FALSE        |
| Input       | `xFNCEn`            | `BOOL`  | FALSE        |
| Output      | `rSetPtSUPTemp`     | `REAL`  |              |
| Output      | `rSetPtSUPTempCool` | `REAL`  |              |
| Output      | `rMinSUPTemp`       | `REAL`  |              |
| Output      | `rMaxSUPTemp`       | `REAL`  |              |
| Input Const | `rPI_Tn`            | `REAL`  | 600          |
| Input Const | `rPI_Kp`            | `REAL`  | 1            |
| Input Const | `rMaxSUP`           | `REAL`  | 26           |
| Input Const | `rMaxRelativeSUP`   | `REAL`  | 6            |
| Input Const | `rMinSUP`           | `REAL`  | 16           |
| Input Const | `rMinRelativeSUP`   | `REAL`  | -8           |
| Input Const | `tDelayControl`     | `TIME`  | TIME#5m0s0ms |
| Input Const | `rManValueCool`     | `REAL`  |              |
| Input Const | `eManModeNCool`     | eManNum | eManNum.Auto |
| Input Const | `rManValue`         | `REAL`  |              |
| Input Const | `eManModeN`         | eManNum | eManNum.Auto |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.powerio.com/hub/codesys-hvac/en/hvac-library/functionblocks/control/cascadeextractsupplyairtemp2setpt.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
