> 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/setpoint/heatcurve4p_dn.md).

# 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="/files/ad4c33b4257f69e71f9aa6abe4b66471eb740946" 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        | Target 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 target supply temperature *rSupplyTemp*                         |
| **rManValue**           | REAL      |             | 0.0 °C        | Manual value for the operating mode eManNum.Man                                        |
| **rSupplyTempMin**      | REAL      |             | 20.0 °C       | Absolute minimum target supply temperature                                             |
| **rSupplyTempMax**      | REAL      |             | 70.0 °C       | Absolute maximum target supply temperature                                             |
| **rTo1**                | REAL      |             | -15.0 °C      | Outdoor temperature for point 1                                                        |
| **rW1Day**              | REAL      |             | 70.0 °C       | Target supply temperature for outdoor temperature point 1 - day characteristic curve   |
| **rW1Night**            | REAL      |             | 65.0 °C       | Target supply temperature for outdoor temperature point 1 - night characteristic curve |
| **rTo2**                | REAL      |             | -5.0 °C       | Outdoor temperature for point 2                                                        |
| **rW2Day**              | REAL      |             | 60.0 °C       | Target supply temperature for outdoor temperature point 2 - day characteristic curve   |
| **rW2Night**            | REAL      |             | 55.0 °C       | Target supply temperature for outdoor temperature point 2 - night characteristic curve |
| **rTo3**                | REAL      |             | 5.0 °C        | Outdoor temperature for point 3                                                        |
| **rW3Day**              | REAL      |             | 50.0 °C       | Target supply temperature for outdoor temperature point 3 - day characteristic curve   |
| **rW3Night**            | REAL      |             | 45.0 °C       | Target supply temperature for outdoor temperature point 3 - night characteristic curve |
| **rTo4**                | REAL      |             | 15.0 °C       | Outdoor temperature for point 4                                                        |
| **rW4Day**              | REAL      |             | 40.0 °C       | Target supply temperature for outdoor temperature point 4 - day characteristic curve   |
| **rW4Night**            | REAL      |             | 35.0 °C       | Target supply temperature for outdoor temperature point 4 - night characteristic 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 target supply temperature **rSupplyTemp** is calculated depending on the current outdoor temperature **rOutTemp** and the chosen characteristic curve (night characteristic curve: **xDay** = FALSE // day characteristic curve: **xDay** = TRUE) is calculated.\
The target supply temperature \*rSupplyTemp\* is limited by adjustable absolute minimum (**rSupplyTempMin**) and maximum values (**rSupplyTempMax**) .\
\
The characteristic curves are defined and adjustable by four outdoor temperature points each (separate for the night and day characteristic curves).\
Each point is defined by an outdoor temperature and an associated target supply temperature.\
The four outdoor temperature points of a characteristic curve are connected to each other by straight lines.

{% hint style="danger" %}
Restriction

To4 > rTo3 > rTo2 > rTo1
{% endhint %}

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

<figure><img src="/files/4a58b2718e74562173b68b7fc86a1316ca05f0b0" alt=""><figcaption></figcaption></figure>

### Visualization

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

#### Representation

<figure><img src="/files/fb6a69c9916daac7c63fa14776f3da2fb35e25c6" alt=""><figcaption></figcaption></figure>

#### Interfaces Visu-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 |

{% hint style="info" %}
Note: VAR\_IN\_OUT interfaces must be assigned, VAR\_INPUT are optional.
{% endhint %}

### 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            |


---

# 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, and the optional `goal` query parameter:

```
GET https://support.powerio.com/hub/codesys-hvac/en/hvac-library/functionblocks/setpoint/heatcurve4p_dn.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
