# ValveTherm

## `ValveTherm` (FB)

FUNCTION\_BLOCK ValveTherm

### Kurzbeschreibung

> Steuerung eines thermischen Antriebs mit Blockierschutzfunktion\
> \
> Typische Anwendung: Ventilantrieb am Heizkörper

### Darstellung

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

### Schnittstellen

#### Eingänge

| Name       | Datentyp          | Wertebereich                                                              | Initialwert            | Funktion                                     |
| ---------- | ----------------- | ------------------------------------------------------------------------- | ---------------------- | -------------------------------------------- |
| *xY*       | BOOL              |                                                                           |                        | Anforderung                                  |
| *xForce*   | BOOL              |                                                                           | FALSE                  | Zwangsübersteuerung nach Handübersteuerung   |
| *xAlarmIn* | BOOL              |                                                                           | FALSE                  | Störmeldung des Antriebs                     |
| *eAOO*     | HVACTYPES.eManBin | HVACTYPES.eManBin.Auto, HVACTYPES.eManBin.ManOff, HVACTYPES.eManBin.ManOn | HVACTYPES.eManBin.Auto | Betriebsart der Handübersteuerung - Hardware |

#### Ausgänge

| Name             | Datentyp        | Wertebereich | Initialwert | Funktion                                           |
| ---------------- | --------------- | ------------ | ----------- | -------------------------------------------------- |
| *xHB*            | BOOL            |              |             | Freigabe nach Handübersteuerung                    |
| *xAB*            | BOOL            |              |             | Freigabe vor Handübersteuerung                     |
| *xEnergyRequest* | BOOL            |              |             | Anforderung - Energieerzeugung                     |
| *dtAbsLastOn*    | DATE\_AND\_TIME |              |             | Datum / Uhrzeit des letzten Blockierschutzbetriebs |
| *xAuto*          | BOOL            |              |             | Sammelmeldung Automatikbetrieb                     |

#### Sollwerte / Parameter

| Name                | Datentyp | Wertebereich                                | Initialwert  | Funktion                                          |
| ------------------- | -------- | ------------------------------------------- | ------------ | ------------------------------------------------- |
| **udiAbsTime**      | UDINT    | 0 … 600s                                    | 200s         | Zeitdauer des Blockierschutzbetriebs in Sekunden  |
| **todAbsStartTime** | TOD      | 00:00:00 - 23:59:59 Uhr                     | 09:00:00 Uhr | Zeitpunkt des Blockierschutzbetriebs              |
| **eAbsDay**         | eDoW     | eDow\.Inactive, eDoW\.Monday … eDoW\.Sunday | eDoW\.Monday | Wochentag des Blockierschutzbetriebs              |
| **xForceOption**    | BOOL     |                                             | TRUE         | Zustand vom Ausgang *xHB* bei Zwangsübersteuerung |
| **eManModeB**       | eMANBIN  | eMANBIN.Auto, eMANBIN.Off, eMANBIN.On       | eMANBIN.Auto | Betriebsart der Handübersteuerung                 |

### Funktionsbeschreibung

#### Freigabe vor Handübersteuerung *xAB*

Der Ausgang Freigabe vor Handübersteuerung *xAB* wird durch den Eingang *xY* und das Blockierschutzmodul beeinflusst.

| *xY*  | Blockierschutzmodul | *xAB* | Hinweise                                                       |
| ----- | ------------------- | ----- | -------------------------------------------------------------- |
| TRUE  | X                   | TRUE  | Freigabe vor Handübersteuerung über Anforderung                |
| X     | TRUE                | TRUE  | Freigabe vor Handübersteuerung über Blockierschutzmodul        |
| FALSE | FALSE               | FALSE | Sperrung Freigabe vor Handübersteuerung über die Anforderungen |

Legende: X = beliebig

#### Freigabe nach Handübersteuerung *xHB*

Der Ausgang Freigabe nach Handübersteuerung *xHB* entspricht der Freigabe vor Handübersteuerung *xAB*, zusätzlich erweitert um ein Handübersteuermodul und um eine Zwangsübersteuerung.

| *xAB* | **eManModeB** | *xForce* | **xForceOption** | *xHB* | Hinweise                               |
| ----- | ------------- | -------- | ---------------- | ----- | -------------------------------------- |
| FALSE | eMANBIN.Auto  | FALSE    | X                | FALSE | Handübersteuermodul in Automatik       |
| TRUE  | eMANBIN.Auto  | FALSE    | X                | TRUE  | Handübersteuermodul in Automatik       |
| X     | eMANBIN.On    | FALSE    | X                | TRUE  | Handübersteuermodul in Handbetrieb Ein |
| X     | eMANBIN.Off   | FALSE    | X                | FALSE | Handübersteuermodul in Handbetrieb Aus |
| X     | X             | TRUE     | FALSE            | FALSE | Zwangsübersteuerung Zu                 |
| X     | X             | TRUE     | TRUE             | TRUE  | Zwangsübersteuerung Auf                |

Legende: X = beliebig

#### Anforderung - Energieerzeugung *xEnergyRequest*

Die Anforderung - Energieerzeugung *xEnergyRequest* wird durch den Blockierschutzprozess, die Freigabe nach Handübersteuerung *xHB* und die Betriebsart der Handübersteuerung - Hardware *eAOO* beeinflusst.

| Blockierschutzprozess | *xHB* | *eAOO*                  | *xEnergyRequest* | Hinweise                                                         |
| --------------------- | ----- | ----------------------- | ---------------- | ---------------------------------------------------------------- |
| FALSE                 | TRUE  | HVACTYPES.eManBin.Auto  | TRUE             | Anforderung im Automatikbetrieb der Handübersteuerung - Hardware |
| X                     | X     | HVACTYPES.eManBin.ManOn | TRUE             | Anforderung im Handbetrieb der Handübersteuerung - Hardware      |

In allen anderen Situationen ist die Anforderung - Energieerzeugung *xEnergyRequest* nicht aktiv (= FALSE).\
\
Legende: X = beliebig

#### Blockierschutzmodul

Das Blockierschutzmodul wird durch das binäre Blockierschutzmodul mit einstellbarer Zeitdauer (FB: AbsB) realisiert.\
Die Zeitdauer *udiAbsTime*, der Zeitpunkt **todAbsStartTime** und der Wochentag **eAbsDay** sind einstellbar.\
Die Mindestlaufzeit zur Sperrung des Blockierschutzbetriebs beträgt 30s.\
Der Zeitstempel (Datum / Uhrzeit) des letzten Blockierschutzbetriebs *dtAbsLastOn* steht zur Verfügung.

#### Sammelstörung *xAlarm*

Die Sammelstörung *xAlarm* wird aktiviert (= TRUE), falls der Eingang *xAlarmIn* aktiv ist.\
In allen übrigen Fällen ist die Sammelstörung *xAlarm* nicht aktiviert (= FALSE).

#### Sammelmeldung Automatikbetrieb *xAuto*

Die Sammelmeldung Automatikbetrieb *xAuto* wird aktiviert (= TRUE), falls der Eingang *eAOO* den Wert HVACTYPES.eManBin.Auto und der Sollwert / Parameter **eManModeB** den Wert eMANBIN.Auto enthält. In alle übrigen Fällen ist die Sammelmeldung Automatikbetrieb *xAuto* nicht aktiviert (= FALSE).

#### Zwangsübersteuerung *xForce*

Die Zwangsübersteuerung wirkt direkt auf den Ausgang *xHB*. Mit dem Parameter **xForceOption** wird festgelegt, welchen Zustand der Ausgang *xHB* bei TRUE am Eingang *xForce* einnimmt.

### CODESYS

InOut:

| Scope       | Name              | Type    | Initial           |
| ----------- | ----------------- | ------- | ----------------- |
| Input       | `xY`              | `BOOL`  |                   |
| Input       | `xForce`          | `BOOL`  | FALSE             |
| Input       | `xAlarmIn`        | `BOOL`  | FALSE             |
| Input       | `eAOO`            | eManBin | eManBin.Auto      |
| Output      | `xHB`             | `BOOL`  |                   |
| Output      | `xAB`             | `BOOL`  |                   |
| Output      | `xEnergyRequest`  | `BOOL`  |                   |
| Output      | `dtAbsLastOn`     | `DT`    |                   |
| Output      | `xAlarm`          | `BOOL`  |                   |
| Output      | `xAuto`           | `BOOL`  |                   |
| Input Const | `udiAbsTime`      | `UDINT` | 200               |
| Input Const | `todAbsStartTime` | `TOD`   | TIME\_OF\_DAY#9:0 |
| Input Const | `eAbsDay`         | eDoW    | eDow\.Monday      |
| Input Const | `xForceOption`    | `BOOL`  | TRUE              |
| 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/hvac-library/functionblocks/components/valvetherm.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.
