# HeatCurve4P\_DN

## `HeatCurve4P_DN` (FB)

FUNCTION\_BLOCK HeatCurve4P\_DN

### Short description

> Heating curve with four outdoor temperature points and two characteristic curves (night, day).

### Representation

<figure><img src="https://2592874069-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2Fgit-blob-045548764f294fb78f8b63ed3278cfa9ac8ee973%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

### Interfaces

#### Inputs

| Name       | Data type | Value range      | Initial value | Function                                                      |
| ---------- | --------- | ---------------- | ------------- | ------------------------------------------------------------- |
| *rOutTemp* | REAL      | -50.0 … +50.0 °C | 0             | Outdoor temperature for calculating the characteristic curves |
| *xDay*     | BOOL      |                  |               | Operating mode (FALSE = night mode / TRUE = day mode)         |

#### Outputs

| Name          | Data type | Value range | Initial value | Function                                                      |
| ------------- | --------- | ----------- | ------------- | ------------------------------------------------------------- |
| *rSupplyTemp* | REAL      |             | 0.0 °C        | Desired supply temperature of the active characteristic curve |

#### Setpoints / parameters

| Name                    | Data type | Value range | Initial value | Function                                                                        |
| ----------------------- | --------- | ----------- | ------------- | ------------------------------------------------------------------------------- |
| **eManModeN**           | eManNum   |             | eManNum.Auto  | Operating mode for the desired supply temperature *rSupplyTemp*                 |
| **rManValue**           | REAL      |             | 0.0 °C        | Manual value for the operating mode eManNum.Man                                 |
| **rSupplyTempMin**      | REAL      |             | 20.0 °C       | Absolute minimum desired supply temperature                                     |
| **rSupplyTempMax**      | REAL      |             | 70.0 °C       | Absolute maximum desired supply temperature                                     |
| **rTo1**                | REAL      |             | -15.0 °C      | Outdoor temperature for point 1                                                 |
| **rW1Day**              | REAL      |             | 70.0 °C       | Desired supply temperature for outdoor temperature point 1 - day curve          |
| **rW1Night**            | REAL      |             | 65.0 °C       | Desired supply temperature for outdoor temperature point 1 - night curve        |
| **rTo2**                | REAL      |             | -5.0 °C       | Outdoor temperature for point 2                                                 |
| **rW2Day**              | REAL      |             | 60.0 °C       | Desired supply temperature for outdoor temperature point 2 - day curve          |
| **rW2Night**            | REAL      |             | 55.0 °C       | Desired supply temperature for outdoor temperature point 2 - night curve        |
| **rTo3**                | REAL      |             | 5.0 °C        | Outdoor temperature for point 3                                                 |
| **rW3Day**              | REAL      |             | 50.0 °C       | Desired supply temperature for outdoor temperature point 3 - day curve          |
| **rW3Night**            | REAL      |             | 45.0 °C       | Desired supply temperature for outdoor temperature point 3 - night curve        |
| **rTo4**                | REAL      |             | 15.0 °C       | Outdoor temperature for point 4                                                 |
| **rW4Day**              | REAL      |             | 40.0 °C       | Desired supply temperature for outdoor temperature point 4 - day curve          |
| **rW4Night**            | REAL      |             | 35.0 °C       | Desired supply temperature for outdoor temperature point 4 - night curve        |
| **rButtonJump**         | REAL      |             | 1.0 °C        | Function not yet implemented.                                                   |
| **rSupplyTempMaxScale** | REAL      |             | 90.0 °C       | Maximum temperature for scaling the Y-axis (VISU). Slider shown only at 90°C!   |
| **rBorderDistance**     | REAL      |             | 3.0 °C        | Border distance to the right/left edge in degrees Celsius for the X-axis (VISU) |

### Function description

\
The desired supply temperature \*rSupplyTemp\* is calculated depending on the current outdoor temperature \*rOutTemp\* and the selected characteristic curve (night curve: \*xDay\* = FALSE // day curve: \*xDay\* = TRUE).\
The desired supply temperature \*rSupplyTemp\* is limited by configurable absolute minimum ( \*\*rSupplyTempMin\*\* ) and maximum values ( \*\*rSupplyTempMax\*\* ).\
\
The characteristic curves are defined and configurable by four outdoor temperature points each (separate for the night and day curve).\
Each point is defined by an outdoor temperature and an associated desired supply temperature.\
The four outdoor temperature points of a characteristic curve are connected to each other by straight lines.

> Restriction
>
> To4 > rTo3 > rTo2 > rTo1

\
The parameter \*\*eManModeN\*\* allows switching the desired supply temperature \*rSupplyTemp\* from automatic to manual mode and vice versa.\
In manual mode, the desired supply temperature \*rSupplyTemp\* takes the value of the parameter \*\*rManValue\*\*.\
\\

<figure><img src="https://2592874069-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2Fgit-blob-d54301a5d2b01a706e240053fb87562b92326c93%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

### Visualization

Matching visualization element from the HVACV Visu Library: **HeatCurve4P\_DN**

#### Representation

<figure><img src="https://2592874069-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2Fgit-blob-f3f3b11a9e4b6cbc32bb57063feadb3bbd2e3705%2Fimage%20(40).png?alt=media" alt=""><figcaption></figcaption></figure>

#### Interfaces visual element

| Name                    | Data type       | Type         | Initial value | Function                                                              |
| ----------------------- | --------------- | ------------ | ------------- | --------------------------------------------------------------------- |
| **FB\_HeatCurve4P\_DN** | HeatCurve4P\_DN | VAR\_IN\_OUT |               | Enter FB instance HVAC.HeatCurve4P\_DN here, e.g. PRG.HeatCurve4P\_DN |

Note: VAR\_IN\_OUT interfaces must be assigned, VAR\_INPUT are optional.\\

### CODESYS

InOut:

| Scope       | Name                  | Type    | Initial      |
| ----------- | --------------------- | ------- | ------------ |
| Input       | `rOutTemp`            | `REAL`  | 0            |
| Input       | `xDay`                | `BOOL`  |              |
| Input Const | `rBorderDistance`     | `REAL`  | 3            |
| Input Const | `rSupplyTempMaxScale` | `REAL`  | 90           |
| Input Const | `rButtonJump`         | `REAL`  | 1            |
| Input Const | `rW4Night`            | `REAL`  | 35           |
| Input Const | `rW4Day`              | `REAL`  | 40           |
| Input Const | `rTo4`                | `REAL`  | 15           |
| Input Const | `rW3Night`            | `REAL`  | 45           |
| Input Const | `rW3Day`              | `REAL`  | 50           |
| Input Const | `rTo3`                | `REAL`  | 5            |
| Input Const | `rW2Night`            | `REAL`  | 55           |
| Input Const | `rW2Day`              | `REAL`  | 60           |
| Input Const | `rTo2`                | `REAL`  | -5           |
| Input Const | `rW1Night`            | `REAL`  | 65           |
| Input Const | `rW1Day`              | `REAL`  | 70           |
| Input Const | `rTo1`                | `REAL`  | -15          |
| Input Const | `rSupplyTempMax`      | `REAL`  | 70           |
| Input Const | `rSupplyTempMin`      | `REAL`  | 20           |
| Input Const | `rManValue`           | `REAL`  | 0            |
| Input Const | `eManModeN`           | eManNum | eManNum.Auto |
| Output      | `rSupplyTemp`         | `REAL`  | 0            |
