# Damper2P

## `Damper2P` (FB)

FUNCTION\_BLOCK Damper2P

### Short description

> Control of a binary damper actuator with two position feedbacks\
> \
> Typical application: supply and exhaust dampers of an HVAC system

### Representation

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

### Interfaces

#### Inputs

| Name       | Data type         | Value range                                                               | Initial value          | Function                                     |
| ---------- | ----------------- | ------------------------------------------------------------------------- | ---------------------- | -------------------------------------------- |
| *xY*       | BOOL              |                                                                           |                        | Control signal                               |
| *xForce*   | BOOL              |                                                                           | FALSE                  | Forced override after manual override        |
| *xAlarmIn* | BOOL              |                                                                           | FALSE                  | Actuator fault message                       |
| *eAOO*     | HVACTYPES.eManBin | HVACTYPES.eManBin.Auto, HVACTYPES.eManBin.ManOff, HVACTYPES.eManBin.ManOn | HVACTYPES.eManBin.Auto | Operating mode of manual override - hardware |
| *xOpen*    | BOOL              |                                                                           |                        | Feedback damper open                         |
| *xClosed*  | BOOL              |                                                                           |                        | Feedback damper closed                       |

#### Outputs

| Name           | Data type | Value range | Initial value | Function                               |
| -------------- | --------- | ----------- | ------------- | -------------------------------------- |
| *xHB*          | BOOL      |             |               | Actuator enable after manual override  |
| *xAB*          | BOOL      |             |               | Actuator enable before manual override |
| *xAlarmOpen*   | BOOL      |             |               | Fault position damper open             |
| *xAlarmClosed* | BOOL      |             |               | Fault position damper closed           |
| *xAlarm*       | BOOL      |             |               | Aggregate fault                        |
| *xAuto*        | BOOL      |             |               | Collective automatic-mode message      |

#### Setpoints / parameters

| Name               | Data type | Value range                                 | Initial value | Function                                                           |
| ------------------ | --------- | ------------------------------------------- | ------------- | ------------------------------------------------------------------ |
| **udiControlTime** | UDINT     | 10s … 600s                                  | 150s          | Reporting delay of position monitoring                             |
| **xControl**       | BOOL      |                                             | TRUE          | Enablement of the position monitoring                              |
| **xForceOption**   | BOOL      |                                             | FALSE         | State of the output *xHB* during forced override                   |
| **eManModeB**      | eMANBIN   | eMANBIN.Auto, eMANBIN.ManOff, eMANBIN.ManOn | eMANBIN.Auto  | Operating mode of the manual override for the digital output *xHB* |

### Function description

#### Automatic output *xAB*

The actuator enable before manual override *xAB* is passed unchanged from the enable input *xY* adopted.

#### Manual output *xHB*

The actuator enable after manual override *xHB* corresponds to the actuator enable before manual override *xAB* additionally extended by a manual override module and a forced override.

| *xAB* | **eManModeB**  | *xForce* | **xForceOption** | *xHB* | Notes                                          |
| ----- | -------------- | -------- | ---------------- | ----- | ---------------------------------------------- |
| FALSE | eMANBIN.Auto   | FALSE    | X                | FALSE | Manual override module in automatic            |
| TRUE  | eMANBIN.Auto   | FALSE    | X                | TRUE  | Manual override module in automatic            |
| X     | eMANBIN.ManOff | FALSE    | X                | FALSE | Manual override module in manual operation Off |
| X     | eMANBIN.ManOn  | FALSE    | X                | TRUE  | Manual override module in manual operation On  |
| X     | X              | TRUE     | FALSE            | FALSE | Forced override Off                            |
| X     | X              | TRUE     | TRUE             | TRUE  | Forced override On                             |

Legend: X = any

#### Fault position damper open *xAlarmOpen*

The fault message for the position when the damper opens *xAlarmOpen* is activated (*xAlarmOpen* = TRUE), if the following conditions are met simultaneously:

1\) The enable of position monitoring *xControl* is enabled (= TRUE)\
\
2\) As operating mode of the manual override hardware \*eAOO\*, automatic operation is selected (\*eAOO\* = HVACTYPES.eManBin.Auto)\
\
3\) The states of the actuator enable after manual override \*xHB\* and the feedback for the damper opening \*xOpen\* are continuously different for at least the duration of the position monitoring reporting delay \*\*udiControlTime\*\* ((\*xHB\* = FALSE and \*xOpen\* = TRUE) OR (\*xHB\* = TRUE and \*xOpen\* = FALSE)).\
\
The fault message for the position when the damper opens \*xAlarmOpen\* is deactivated if at least one of the above conditions is no longer met.

#### Fault position damper open *xAlarmClosed*

The fault message for the position when the damper opens *xAlarmClosed* is activated (*xAlarmClosed* = TRUE), if the following conditions are met simultaneously:

1\) The enable of position monitoring *xControl* is enabled (= TRUE)\
\
2\) As operating mode of the manual override hardware \*eAOO\*, automatic operation is selected (\*eAOO\* = HVACTYPES.eManBin.Auto)\
\
3\) The states of the actuator enable after manual override \*xHB\* and the feedback for the damper closing \*xClosed\* are continuously equal for at least the duration of the position monitoring reporting delay \*\*udiControlTime\*\* ((\*xHB\* = TRUE and \*xOpen\* = TRUE) OR (\*xHB\* = FALSE and \*xOpen\* = FALSE)).\
\
The fault message for the position when the damper opens \*xAlarmClosed\* is deactivated if at least one of the above conditions is no longer met.

#### Aggregate fault *xAlarm*

The aggregate fault *xAlarm* is activated (= TRUE), if at least one of the two faults for the flap positions (*xAlarmOpen* and *xAlarmClosed*) or the input *xAlarmIn* is active.\
In all other cases the collective fault is *xAlarm* is not activated (= FALSE).

#### Collective automatic-mode message *xAuto*

The collective automatic-mode message *xAuto* is activated (= TRUE) if the input *eAOO* has the value HVACTYPES.eManBin.Auto and the setpoint / parameter **eManModeB** has the value eMANBIN.Auto.\
In all other cases the collective automatic-mode message *xAuto* is not activated (= FALSE).

#### Forced override *xForce*

The forced override acts directly on the output *xHB*. The parameter **xForceOption** determines which state the output *xHB* assumes when TRUE at the input *xForce* .

### CODESYS

InOut:

| Scope       | Name             | Type    | Initial      |
| ----------- | ---------------- | ------- | ------------ |
| Input       | `xY`             | `BOOL`  |              |
| Input       | `xForce`         | `BOOL`  | FALSE        |
| Input       | `xAlarmIn`       | `BOOL`  | FALSE        |
| Input       | `eAOO`           | eManBin | eManBin.Auto |
| Input       | `xOpen`          | `BOOL`  |              |
| Input       | `xClosed`        | `BOOL`  |              |
| Output      | `xHB`            | `BOOL`  |              |
| Output      | `xAB`            | `BOOL`  |              |
| Output      | `xAlarmOpen`     | `BOOL`  |              |
| Output      | `xAlarmClosed`   | `BOOL`  |              |
| Output      | `xAlarm`         | `BOOL`  |              |
| Output      | `xAuto`          | `BOOL`  |              |
| Input Const | `udiControlTime` | `UDINT` | 200          |
| Input Const | `xControl`       | `BOOL`  | TRUE         |
| Input Const | `xForceOption`   | `BOOL`  | FALSE        |
| Input Const | `eManModeB`      | eMANBIN | eMANBIN.Auto |


---

# Agent Instructions: 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/components/damper2p.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.
