# DeviceSimple3

## `DeviceSimple3` (FB)

FUNCTION\_BLOCK DeviceSimple3

### Kurzbeschreibung

### Darstellung

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

### Schnittstellen

#### Eingänge

| Name       | Datentyp          | Wertebereich                                                              | Initialwert            | Funktion                                            |
| ---------- | ----------------- | ------------------------------------------------------------------------- | ---------------------- | --------------------------------------------------- |
| *xEn*      | BOOL              |                                                                           |                        | Anforderung des Geräts                              |
| *xForce*   | BOOL              |                                                                           | FALSE                  | Zwangsübersteuerung nach Handübersteuerung          |
| *xFb*      | BOOL              |                                                                           |                        | Betriebsmeldung des Geräts                          |
| *xAlarmIn* | BOOL              |                                                                           |                        | Störmeldung des Geräts                              |
| *eAOO*     | HVACTYPES.eManBin | HVACTYPES.eManBin.Auto, HVACTYPES.eManBin.ManOff, HVACTYPES.eManBin.ManOn | HVACTYPES.eManBin.Auto | Betriebsart der Handübersteuerung - Hardware        |
| *xQuit*    | BOOL              |                                                                           | FALSE                  | Rücksetzung der Störmeldung der Betriebsüberwachung |

#### Ausgänge

| Name                | Datentyp        | Wertebereich | Initialwert | Funktion                                                                                                                                                           |
| ------------------- | --------------- | ------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| *xHB*               | BOOL            |              |             | <p>\* <strong>FALSE:</strong><br>Hand-Ausgang: Gerät nicht freigegeben<br>\* <strong>TRUE:</strong><br>Hand-Ausgang: Gerät freigegeben</p>                         |
| *xAB*               | BOOL            |              |             | <p>\* <strong>FALSE:</strong><br>Automatik-Ausgang: Gerät nicht freigegeben<br>\* <strong>TRUE:</strong><br>Automatik-Ausgang: Gerät freigegeben</p>               |
| *xEnergyRequest*    | BOOL            |              |             | <p>\* <strong>FALSE:</strong><br>Anforderung-Energieerzeugung nicht freigegeben<br>\* <strong>TRUE:</strong><br>Anforderung-Energieerzeugung freigegeben</p>       |
| *xAlarmFb*          | BOOL            |              |             | <p>\* <strong>FALSE:</strong><br>Störmeldung-Betriebsüberwachung nicht freigegeben<br>\* <strong>TRUE:</strong><br>Störmeldung-Betriebsüberwachung freigegeben</p> |
| *tOffDelay*         | TIME            |              |             | Restzeit des Nachlaufs des Geräts                                                                                                                                  |
| *dtLastFb*          | DATE\_AND\_TIME |              |             | Datum / Uhrzeit des letzten Betriebs des Geräts                                                                                                                    |
| *dtAbsLastOn*       | DATE\_AND\_TIME |              |             | Datum / Uhrzeit des letzten Blockierschutzbetriebs                                                                                                                 |
| *udiOperatingHours* | UDINT           |              |             | Betriebsstunden des Geräts                                                                                                                                         |
| *udiCountFb*        | UDINT           |              |             | Anzahl der Einschaltungen des Geräts                                                                                                                               |
| *xAlarm*            | BOOL            |              |             | <p>\* <strong>FALSE:</strong><br>Sammelstörmeldung nicht freigegeben<br>\* <strong>TRUE:</strong><br>Sammelstörmeldung freigegeben</p>                             |
| *xAuto*             | BOOL            |              |             | <p>\* <strong>FALSE:</strong><br>Sammelmeldung Automatikbetrieb nicht freigegeben<br>\* <strong>TRUE:</strong><br>Sammelmeldung Automatikbetrieb freigegeben</p>   |

#### Sollwerte / Parameter

| Name                  | Datentyp | Wertebereich                                | Initialwert  | Funktion                                                                                                                                                               |
| --------------------- | -------- | ------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **xAlarmControl**     | BOOL     |                                             | FALSE        | <p>\* <strong>FALSE:</strong><br><em>xHb</em> von <em>xAlarm</em> unabhängig<br>\* <strong>TRUE:</strong><br><em>xHb</em> wird bei <em>xAlarm</em> = TRUE gesperrt</p> |
| **udiFbControlTime**  | UDINT    | 0 … 300s                                    | 60s          | Zeitdauer der Betriebsüberwachung                                                                                                                                      |
| **xFbControl**        | BOOL     |                                             | TRUE         | <p>\* <strong>FALSE:</strong><br>Betriebsüberwachung nicht freigegeben<br>\* <strong>TRUE:</strong><br>Betriebsüberwachung freigegeben</p>                             |
| **xForceOption**      | BOOL     |                                             | TRUE         | <p>\* <strong>FALSE:</strong><br>Ausgang <em>xHB</em> bei Zwangsübersteuerung AUS<br>\* <strong>TRUE:</strong><br>Ausgang <em>xHB</em> bei Zwangsübersteuerung EIN</p> |
| **tAbsTime**          | UDINT    | 0 … 600s                                    | 120s         | Zeitdauer des Blockierschutzbetriebs                                                                                                                                   |
| **tAbsTime**          | TOD      | 00:00:00 - 23:59:59 Uhr                     | 08:00:00 Uhr | Zeitpunkt des Blockierschutzbetriebs                                                                                                                                   |
| **eAbsDay**           | eDoW     | eDoW\.Monday … eDoW\.Sunday                 | eDoW\.Monday | Wochentag des Blockierschutzbetriebs                                                                                                                                   |
| **eOffDelayTimeBase** | eTime    | eTime.Second, eTime.Minute, eTime.Hour      | eTime.Second | Skalierung der Nachlaufzeit (Sekunden / Minuten / Stunden)                                                                                                             |
| **udiOffDelay**       | UDINT    | 0 … 60min                                   | 120s         | Nachlaufzeitdauer der Umwälzpumpe                                                                                                                                      |
| **eManModeB**         | eMANBIN  | eMANBIN.Auto, eMANBIN.ManOff, eMANBIN.ManOn | eMANBIN.Auto | Betriebsart der Handübersteuerung für den digitalen Ausgang *xHB*                                                                                                      |

### Funktionsbeschreibung

#### Automatik-Ausgang *xAB*

Der digitale Automatik-Ausgang *xAB* wird durch den Eingang *xEn*, den Ausgang *xAlarm*, das Nachlaufmodul und das Blockierschutzmodul beeinflusst.

| *xEn* | *xAlarm* | *xAlarmControl* | Nachlaufmodul | Blockierschutzmodul | *xAB* | Hinweise                                   |
| ----- | -------- | --------------- | ------------- | ------------------- | ----- | ------------------------------------------ |
| X     | TRUE     | TRUE            | X             | X                   | FALSE | Abschaltung über Sammelstörung freigegeben |
| FALSE | X        | FALSE           | FALSE         | FALSE               | FALSE | Automatikbetrieb Aus                       |
| TRUE  | x        | FALSE           | FALSE         | FALSE               | TRUE  | Automatikbetrieb Ein                       |
| X     | X        | FALSE           | TRUE          | X                   | TRUE  | Nachlaufbetrieb                            |
| X     | x        | FALSE           | X             | TRUE                | TRUE  | Blockierschutzbetrieb                      |

Legende: X = beliebig\
\
Mit dem Parameter *xAlarmControl* kann das Verhalten des Ausgangs *xAB* im Fehlerfall beeinflusst werden.\
Bei *xAlarmControl* = TRUE wird im Fehlerfall (*xAlarm* = TRUE) der Automatik-Ausgang *xAB* abgeschaltet, befindet sich das Handübersteuermodul in Automatik, dann wird auch der Ausgang *xHB* abgeschaltet.\
Bei *xAlarmControl* = FALSE erfolgt keine Reaktion.

#### Hand-Ausgang *xHB*

Der digitale Hand-Ausgang *xHB* entspricht dem digitalen Automatik-Ausgang *xAB*, zusätzlich erweitert um ein Handübersteuermodul und um eine Zwangsübersteuerung.

| *xAB* | eMANBIN        | *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.ManOn  | FALSE    | X                | TRUE  | Handübersteuermodul in Handbetrieb Ein |
| X     | eMANBIN.ManOff | FALSE    | X                | FALSE | Handübersteuermodul in Handbetrieb Aus |
| X     | X              | TRUE     | FALSE            | FALSE | Zwangsübersteuerung Aus                |
| X     | X              | TRUE     | TRUE             | TRUE  | Zwangsübersteuerung Ein                |

Legende: X = beliebig

#### Anforderung - Energieerzeugung *xEnergyRequest*

Der digitale Ausgang *xEnergyRequest* wird durch den Eingang *xFb*, das Nachlaufmodul und das Blockierschutzmodul beeinflusst.

| *xFB* | Nachlaufmodul | Blockierschutzmodul | *xEnergyRequest* | Hinweise                           |
| ----- | ------------- | ------------------- | ---------------- | ---------------------------------- |
| FALSE | X             | X                   | FALSE            | Umwälzpumpe ist nicht in Betrieb   |
| TRUE  | FALSE         | FALSE               | TRUE             | Umwälzpumpe ist in Betrieb         |
| TRUE  | TRUE          | X                   | FALSE            | Nachlaufmodul ist in Betrieb       |
| TRUE  | X             | TRUE                | FALSE            | Blockierschutzmodul ist in Betrieb |

Legende: X = beliebig

#### Nachlaufmodul

Das Nachlaufmodul wird durch eine Abschaltverzögerung mit einstellbarer Zeitdauer realisiert. Der Eingang des Nachlaufmoduls ist aktiv, falls die Freigabe ‘xEn’ aktiv und gleichzeitig die Sammelstörmeldung *xAlarm* nicht aktiv ist.

#### Blockierschutzmodul

Das Blockierschutzmodul wird durch das binäre Blockierschutzmodul mit einstellbarer Zeitdauer realisiert.\
Die Zeitdauer *tAbsTime*, der Zeitpunkt **tAbsTime** und der Wochentag **eAbsDay** sind einstellbar.\
Der Zeitstempel (Datum / Uhrzeit) des letzten Blockierschutzbetriebs *dtAbsLastOn* steht zur Verfügung.

#### Ausgang *xAlarm*

| *xAlarmIn* | *xAlarmFb* | *xAlarm* | Hinweise                                  |
| ---------- | ---------- | -------- | ----------------------------------------- |
| FALSE      | FALSE      | FALSE    | Sammelstörung ist inaktiv                 |
| TRUE       | FALSE      | TRUE     | Externe Hardwarestörung ist aktiv         |
| FALSE      | TRUE       | TRUE     | Störung der Betriebsüberwachung ist aktiv |
| TRUE       | TRUE       | TRUE     | Beide Störungen sind aktiv                |

Legende: X = beliebig

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

#### Betriebsstundenzähler

Der Betriebsstundenzähler ist aktiv, falls die Umwälzpumpe in Betrieb ist (*xFb* = TRUE) und gleichzeitig die Sammelstörung *xAlarm* nicht aktiv ist (*xAlarm* = FALSE).\
Die Anzahl der Betriebsstunden **udiOperatingHours**, und die Anzahl der Einschaltungen **udiCountFb** werden an den entsprechenden Ausgängen ausgegeben.\
Der Zeitstempel (Datum / Uhrzeit) des Betriebs der Umwälzpumpe *dtLastFb* steht zur Verfügung.

> **Schreibzugriff auf die Zählerstände**
>
> Über den Pfad ‘Instanzname.\_OperatingHours.udiOperatingHours’ bzw. ‘Instanzname.\_OperatingHours.udiCountFb’ ist ein Schreibzugriff auf die beide Zählerstände möglich.

#### Betriebsüberwachung

Die Betriebsüberwachung überwacht die korrekte Funktion der Umwälzpumpe.\
Die Überwachung kann generell freigegeben (**xFbControl** = TRUE) oder gesperrt (**xFbControl** = FALSE) werden.\
Der Automatikbetrieb der Umwälzpumpe muss ebenfalls aktiv sein (*eAOO* = HVACTYPES.eManBin.Auto).\
\
Der Eingang *xFb* und der Ausgang *xHB* werden permanent miteinander verglichen.\
Sind die Zustände während einer einstellbaren Zeitdauer **udiFbControlTime** stets ungleich (d.h. Freigabe der Pumpe aber keine Betriebsrückmeldung), so wird die Störmeldung der Betriebsüberwachung *xAlarmFb* aktiviert.\
\
Die Störmeldung der Betriebsüberwachung *xAlarmFb* wird zurück gesetzt, falls die Freigabe der Überwachung **xFbControl** gesperrt ist, oder der Rücksetzeingang *xQuit* aktiv ist, oder der Automatikbetrieb der Umwälzpumpe (*eAOO* = HVACTYPES.eManBin.Auto) aktiviert wird.

### Visualisierung

Passendes Visualisierungselement aus der HVACV Visu Library: **FB\_PumpHorizontal** oder **FB\_PumpVertical**

#### Darstellung

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

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

#### Schnittstellen Visu-Element

| Name          | Datentyp | Typ          | Initialwert | Funktion                                                                                                                                                                                  |
| ------------- | -------- | ------------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **FB\_Pump**  | Pump     | VAR\_IN\_OUT |             | Hier FB Pump eintragen Bsp. PRG.Pump                                                                                                                                                      |
| **rRotation** | INT      | VAR\_INPUT   |             | Hier kann die Rotation der Pumpen Grafik als Gradzahl eingetragen werden. z.B. 90 entspricht eine Drehung um 90 Grad nach rechts. -90 Grad entspricht eine Drehung um 90 Grad nach links. |

Parameter Dialog für die Pumpe: **FB\_PumpParameter** :

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

{% hint style="info" %}
Hinweis: VAR\_IN\_OUT Schnittstellen müssen belegt werden, VAR\_INPUT sind optional.
{% endhint %}

### CODESYS

InOut:

| Scope       | Name                | Type    | Initial      |
| ----------- | ------------------- | ------- | ------------ |
| Input       | `xEn`               | `BOOL`  |              |
| Input       | `xForce`            | `BOOL`  | FALSE        |
| Input       | `xReady`            | `BOOL`  |              |
| Input       | `xFb`               | `BOOL`  |              |
| Input       | `xMSwitch`          | `BOOL`  | TRUE         |
| Input       | `xAlarmIn`          | `BOOL`  |              |
| Input       | `xService`          | `BOOL`  |              |
| Input       | `eAOO`              | eManBin | eManBin.Auto |
| Input       | `xQuit`             | `BOOL`  | FALSE        |
| Output      | `xHB`               | `BOOL`  |              |
| Output      | `xAB`               | `BOOL`  |              |
| Output      | `xAlarmFb`          | `BOOL`  |              |
| Output      | `dtLastFb`          | `DT`    |              |
| Output      | `udiOperatingHours` | `UDINT` |              |
| Output      | `udiCountFb`        | `UDINT` |              |
| Output      | `xAlarm`            | `BOOL`  |              |
| Output      | `xAuto`             | `BOOL`  |              |
| Input Const | `udiFbControlTime`  | `UDINT` | 60           |
| Input Const | `xFbControl`        | `BOOL`  | TRUE         |
| Input Const | `xForceOption`      | `BOOL`  | FALSE        |
| Input Const | `eManModeB`         | eMANBIN | eMANBIN.Auto |

Methods:

> mQuit

> mResetOperatingHours

Structure:

* mQuit (Method)
* mResetOperatingHours (Method)


---

# 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/devicesimple3.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.
