# FireDamperMot\_OnOff

## `FireDamperMot_OnOff` (FB)

FUNCTION\_BLOCK FireDamperMot\_OnOff

### Kurzbeschreibung

> Steuerung einer motorischen Brandschutzklappe mit zwei Positionsrückmeldungen\
> Zusatzfunktionen: Funktionstest der Brandschutzklappe\
> Typische Anwendung: Steuerung einer Brandschutzklappe in einer RLT-Anlage

### Darstellung

<figure><img src="/files/7pvKW1K9AYd9OVaTbTSM" alt=""><figcaption></figcaption></figure>

### Funktionsbeschreibung

#### Allgemeines

Dieser Funktionsbaustein steuert eine binäre motorische Brandschutzklappe(*xEn* = TRUE = Öffnung), überwacht die Laufzeiten während des Öffnungs- und Schliessvorgangs und kann einen vollständigen Brandschutzklappentest durchführen.\
Der Funktionsbaustein kann entweder im Normalbetrieb oder im Testbetrieb ( = Brandschutzklappentest) betrieben werden.\
Der Testbetrieb ist gegenüber dem Normalbetrieb höher priorisiert und kann durch eine ansteigende Flanke am Eingang *xTestEx* und / oder am Sollwert / Parameter **xRunTest** ausgelöst werden.

#### Freigabe Öffnung / Schliessung der Brandschutzklappe vor Handübersteuerung *xAB*

Die Freigabe Öffnung / Schliessung der Brandschutzklappe vor Handübersteuerung *xAB* wird unverändert von der Anforderung Öffnung / Schliessung der Brandschutzklappe *xEn* übernommen, falls der Brandschutzklappentest nicht aktiv ist.

#### Freigabe Öffnung / Schliessung der Brandschutzklappe nach Handübersteuerung *xHB*

Die Freigabe Öffnung / Schliessung der Brandschutzklappe nach Handübersteuerung *xHB* entspricht der Freigabe Öffnung / Schliessung der Brandschutzklappe vor Handübersteuerung *xAB* zusätzlich erweitert um ein Handübersteuermodul

| *xAB* | **eManModeB**  | *xHB* | Hinweise                               |
| ----- | -------------- | ----- | -------------------------------------- |
| FALSE | eMANBIN.Auto   | FALSE | Handübersteuermodul in Automatik       |
| TRUE  | eMANBIN.Auto   | TRUE  | Handübersteuermodul in Automatik       |
| X     | eMANBIN.ManOn  | TRUE  | Handübersteuermodul in Handbetrieb Ein |
| X     | eMANBIN.ManOff | FALSE | Handübersteuermodul in Handbetrieb Aus |

Legende: X = beliebig

#### Auswahl der Betriebsart *wMode*

Die Auswahl der Betriebsart erlaubt aktuell zwei gültige Varianten:

> 1. ‘wMode’ = 1: Der Funktionsbaustein verhält sich wie der Funktionsbaustein ‘FireDamperMot’
>    1. xHB = TRUE: Sofortige Alarmmeldung, falls BSK laut Rückmeldung nicht geöffnet ist (Brandfall)
>    2. BSK-Test: feste Sequenz — Schliessung + Öffnung
> 2. ‘wMode’ = 2: Der Funktionsbaustein kann für Anwendungen in der Schweiz verwendet werden, bei der die Brandschutzklappen parallel zur Anforderung der RLT-Anlage geöffnet / geschlossen werden.
>    1. xHB = FALSE: Sofortige Alarmmeldung, falls BSK nach Ablauf der Laufzeit laut Rückmeldung nicht geschlossen ist
>    2. xHB = TRUE: Sofortige Alarmmeldung, falls BSK nach Ablauf der Laufzeit laut Rückmeldung nicht geöffnet ist (Brandfall)
>    3. BSK-Test: xClosed = TRUE: feste Sequenz — Öffnung + Schliessung
>    4. BSK-Test: xOpen = TRUE: feste Sequenz — Schliessung + Öffnung

#### Sammelstörung *xAlarm*

‘wMode’ = 1:\
\
Die Sammelstörung *xAlarm* wird aktiviert (= TRUE), falls mindestens eine der nachfolgend beschriebenen Bedingungen gegeben ist:

\
1\) Die Störmeldung für die Rückmeldung der Öffnung *xAlarmOpen* ist aktiv (= TRUE).\
\
2\) Die Störmeldung für die Rückmeldung der Schliessung xAlarmClosed ist aktiv (= TRUE).\
\
3\) Die Brandschutzklappe ist nicht vollständig geöffnet (xOpen = FALSE).\
(Hintergrund: Jede nicht vollständig geöffnete Brandschutzklappe stellt einen fehlerhaften Zustand dar).\
\
4\) Der Eingang \*xAlarmIn\* ist aktiv (= TRUE).\
\
In alle übrigen Fällen ist die Sammelstörung xAlarm nicht aktiviert (= FALSE).\
\
‘wMode’ = 2:\
\
Die Sammelstörung xAlarm wird aktiviert (= TRUE), falls mindestens eine der nachfolgend beschriebenen Bedingungen gegeben ist:\
\
1\) Die Störmeldung für die Rückmeldung der Öffnung xAlarmOpen ist aktiv (= TRUE).\
\
2\) Die Störmeldung für die Rückmeldung der Schliessung xAlarmClosed ist aktiv (= TRUE).\
\
3\) xHB = TRUE: Die Brandschutzklappe ist nicht vollständig geöffnet (xOpen = FALSE).\
(Hintergrund: Jede nicht vollständig geöffnete Brandschutzklappe stellt einen fehlerhaften Zustand dar).\
\
4\) xHB = FALSE: Die Brandschutzklappe ist nicht vollständig geschlossen (xClosed = FALSE ).\
(Hintergrund: Jede nicht vollständig geschlossene Brandschutzklappe stellt einen fehlerhaften Zustand dar).\
\
5\) Der Eingang xAlarmIn ist aktiv (= TRUE).\
\
In alle übrigen Fällen ist die Sammelstörung xAlarm nicht aktiviert (= FALSE).

#### Freigabe / Sperrung der Störmeldung für die Rückmeldung der Öffnung *xAlarmOpen*

Die Überwachung der Laufzeit der Klappe während des Öffnungsvorgangs auf einen einstellbaren Maximalwert (**tOpen**) startet, falls im Normalbetrieb mindestens eine der nachfolgend beschriebenen Bedingungen erfüllt ist:

1\) Es wird eine ansteigende Flanke (FALSE > TRUE) am Ausgang *xHB* erkannt (= Regelfall).\
\
2\) Die Anforderung zur Öffnung ist aktiv (xEn = TRUE) und gleichzeitig wird am Eingang xQuit eine ansteigende Flanke (FALSE > TRUE) erkannt.\
\
3\) Der Ausgang xHB ist aktiv (= TRUE) und gleichzeitig wird eine abfallende Flanke (TRUE > FALSE) am Eingang xOpen erkannt.\
\
Die Störmeldung für die Rückmeldung der Öffnung xAlarmOpen wird aktiviert (= TRUE), falls nach dem Ablauf der maximalen Laufzeit tOpen bei aktivem Ausgang (xHB = TRUE) mindestens eine der nachfolgenden Bedingungen erfüllt ist:\
\
1\) Die Rückmeldung der vollständigen Öffnung ist nicht aktiv (xOpen = FALSE) (= Regelfall).\
\
2\) Die Rückmeldungen xOpen bzw. xClosed haben denselben Zustand.\
\
Die Störmeldung für die Rückmeldung der Öffnung xAlarmOpen wird deaktiviert (= FALSE), falls am Eingang xQuit eine ansteigende Flanke (FALSE > TRUE) erkannt wird.

#### Freigabe / Sperrung der Störmeldung für die Rückmeldung der Schliessung *xAlarmClosed*

Die Überwachung der Laufzeit der Klappe während des Schliessvorgangs auf einen einstellbaren Maximalwert (**tclose**) startet, falls im Normalbetrieb mindestens eine der nachfolgend beschriebenen Bedingungen erfüllt ist:

1\) Es wird eine abfallende Flanke (TRUE > FALSE) am Ausgang *xHB* erkannt (= Regelfall).\
\
2\) Die Anforderung zur Schliessung ist aktiv (xEn = FALSE) und gleichzeitig wird am Eingang xQuit eine ansteigende Flanke (FALSE > TRUE) erkannt.\
\
Die Störmeldung für die Rückmeldung der Schliessung xAlarmClosed wird aktiviert (= TRUE), falls nach dem Ablauf der maximalen Laufzeit tClose bei nicht aktivem Ausgang (xHB = FALSE) mindestens eine der nachfolgenden Bedingungen erfüllt ist:\
\
1\) Die Rückmeldung der vollständigen Schliessung ist nicht aktiv (xClosed = FALSE) (= Regelfall).\
\
2\) Die Rückmeldungen xOpen bzw. xClosed haben denselben Zustand.\
\
Die Störmeldung für die Rückmeldung der Schliessung xAlarmClosed wird deaktiviert (= FALSE), falls am Eingang xQuit eine ansteigende Flanke (FALSE > TRUE) erkannt wird.

#### Freigabe / Sperrung der Störmeldung für die freigegebene, aber nicht geöffnete Brandschutzklappe nach Ablauf der Laufzeit (FALSE = Sperrung, TRUE = Freigabe) *xAlarmOn\_Closed*

Die Freigabe der Störmeldung erfolgt (Voraussetzung: ‘wMode’ = 2), falls nach Ablauf einer eventuellen Laufzeitüberwachung die freigegebene Brandschutzklappe (‘xHB’ = TRUE)\
nicht vollständig geöffnet (‘xOpen’ = FALSE) ist (= Brandfall).\
Die Störmeldung wird deaktiviert (= FALSE), falls am Eingang *xQuit* eine ansteigende Flanke (FALSE > TRUE) erkannt wird.\
Sie wird in allen anderen Modi (‘wMode’ <> 2) ebenfalls deaktiviert (= FALSE).

#### Freigabe / Sperrung der Störmeldung für die gesperrte, aber nicht geschlossene Brandschutzklappe nach Ablauf der Laufzeit (FALSE = Sperrung, TRUE = Freigabe) *xAlarmOff\_Opened*

Die Freigabe der Störmeldung erfolgt (Voraussetzung: ‘wMode’ = 2), falls nach Ablauf einer eventuellen Laufzeitüberwachung die gesperrte Brandschutzklappe (‘xHB’ = FALSE)\
nicht vollständig geschlossen (‘xClosed’ = FALSE) ist.\
Die Störmeldung wird deaktiviert (= FALSE), falls am Eingang *xQuit* eine ansteigende Flanke (FALSE > TRUE) erkannt wird.\
Sie wird in allen anderen Modi (‘wMode’ <> 2) ebenfalls deaktiviert (= FALSE).

#### Zeitdauer der letzten vollständigen Öffnung *tLastOpen*

Die Messung der Zeitdauer beginnt jeweils, falls mindestens eine der nachfolgend beschriebenen Bedingungen erfüllt ist:

1\) Es wird eine ansteigende Flanke (FALSE > TRUE) am Eingang *xOpen* erkannt.\
\
2\) Es wird eine abfallende Flanke (TRUE > FALSE) am Eingang xOpen erkannt.\
\
3\) Es wird eine ansteigende Flanke (FALSE > TRUE) am Eingang xClosed erkannt.\
\
4\) Es wird eine abfallende Flanke (TRUE > FALSE) am Eingang xClosed erkannt. (Regelfall)\
\
5\) Es wird eine ansteigende Flanke (FALSE > TRUE) am Ausgang xHB erkannt.\
\
6\) Es wird eine abfallende Flanke (TRUE > FALSE) am Ausgang xHB erkannt.\
\
An diesem Ausgang steht nach jeder ansteigenden Flanke an der Rückmeldung der vollständigen Öffnung xOpen (FALSE > TRUE) die Laufzeit zur Verfügung.

#### Zeitdauer der letzten vollständigen Schliessung *tLastClosed*

Die Messung der Zeitdauer beginnt jeweils, falls mindestens eine der nachfolgend beschriebenen Bedingungen erfüllt ist:

1\) Es wird eine ansteigende Flanke (FALSE > TRUE) am Eingang *xOpen* erkannt.\
\
2\) Es wird eine abfallende Flanke (TRUE > FALSE) am Eingang xOpen erkannt. (Regelfall)\
\
3\) Es wird eine ansteigende Flanke (FALSE > TRUE) am Eingang xClosed erkannt.\
\
4\) Es wird eine abfallende Flanke (TRUE > FALSE) am Eingang xClosed erkannt.\
\
5\) Es wird eine ansteigende Flanke (FALSE > TRUE) am Ausgang xHB erkannt.\
\
6\) Es wird eine abfallende Flanke (TRUE > FALSE) am Ausgang xHB erkannt.\
\
An diesem Ausgang steht nach jeder ansteigenden Flanke an der Rückmeldung der vollständigen Schliessung xClosed (FALSE > TRUE) die Laufzeit zur Verfügung.

#### Zeitdauer der aktuellen Öffnung / Schliessung in *tRunTime*

An diesem Ausgang steht während jeder Laufzeitmessung die aktuelle Laufzeit zur Verfügung.

#### Prüfung der Funktionen der Brandschutzklappe (Testbetrieb)

Der Testbetrieb wird immer generell ausgelöst, falls mindestens eine der nachfolgend beschriebenen Bedingungen gegeben ist:

1\) Es wird eine ansteigende Flanke (FALSE > TRUE) am Eingang *xTestEx* erkannt.\
\
2\) Es wird der aktive Zustand (= TRUE) am Sollwert / Parameter xRunTest erkannt. Der aktive Zustand wird unmittelbar nach der Erkennung zurück (= FALSE) gesetzt.\
\
Der tatsächliche Testbetrieb erfolgt jedoch nur, falls die Rückmeldung des Automatikbetriebs eAOO (0 = Automatik, >0 = Handbetrieb) den Wert 0 enthält und gleichzeitig die Betriebsart der Handübersteuerung für den digitalen Ausgang xHB den Automatikbetrieb signalisiert (eMANBIN = eMANBIN.Auto).\
\
‘wMode’ = 1:\
Im Testbetrieb erfolgt eine Schliessung und anschliessende Öffnung der Brandschutzklappe, jeweils mit Laufzeitüberwachung. Am Anfang des Testbetriebs werden die Ausgänge xAlarmOpen, xAlarmClosed, tTestOpen, tTestClosed und xTestOK zurück gesetzt (= FALSE).\
\
Nun wird der Steuerbefehl für die Schliessung ausgelöst und die Laufzeit hinsichtlich einer Überschreitung des Maximalwerts tClosed überwacht. Wird die korrekte Rückmeldesituation (xClosed = TRUE und xOpen = FALSE) ohne Überschreitung des Maximalwerts erreicht, so wird der Ausgang xAlarmClosed nicht aktiviert (= FALSE). In allen übrigen Situationen wird der Ausgang xAlarmClosed aktiviert (= TRUE).\
\
Nun wird der Steuerbefehl für die Öffnung ausgelöst und die Laufzeit hinsichtlich einer Überschreitung des Maximalwerts tOpen überwacht. Wird die korrekte Rückmeldesituation (xOpen = TRUE und xClosed = FALSE) ohne Überschreitung des Maximalwerts erreicht, so wird der Ausgang xAlarmOpen nicht aktiviert (= FALSE). In allen übrigen Situationen wird der Ausgang xAlarmOpen aktiviert (= TRUE).\
\
Die Ergebnisanzeige für den Brandschutzklappentest xTestOK wird aktiviert (= Prüfung erfolgreich), falls keiner der beiden Ausgänge xAlarmOpen bzw. xAlarmClosed aktiv (= TRUE) ist. Die erreichten Werte tLastOpen und tLastClosed werden jeweils auf die Ausgänge tTestOpen und tTestClosed gelegt und bis zum nächsten Brandschutzklappentest gespeichert.\
\
Der Testbetrieb endet automatisch, sobald die Prüfung der Brandschutzklappe beendet ist.\
\
‘wMode’ = 2:\
\
Die Sequenz für den Testbetrieb wird zum Zeitpunkt ihrer Auslösung festgelegt:\
\
a) ‘xClosed’ = TRUE: Die Sequenz ‘Öffnung - Schliessung’ wird ausgeführt\
b) ‘xOpen’ = TRUE: Die Sequenz ‘Schliessung - Öffnung’ wird ausgeführt\
\
Sequenz Schliessung - Öffnung:\
\
Im Testbetrieb erfolgt eine Schliessung und anschliessende Öffnung der Brandschutzklappe, jeweils mit Laufzeitüberwachung. Am Anfang des Testbetriebs werden die Ausgänge xAlarmOpen, xAlarmClosed, tTestOpen, tTestClosed und xTestOK zurück gesetzt (= FALSE).\
\
Nun wird der Steuerbefehl für die Schliessung ausgelöst und die Laufzeit hinsichtlich einer Überschreitung des Maximalwerts tClosed überwacht. Wird die korrekte Rückmeldesituation (xClosed = TRUE und xOpen = FALSE) ohne Überschreitung des Maximalwerts erreicht, so wird der Ausgang xAlarmClosed nicht aktiviert (= FALSE). In allen übrigen Situationen wird der Ausgang xAlarmClosed aktiviert (= TRUE).\
\
Nun wird der Steuerbefehl für die Öffnung ausgelöst und die Laufzeit hinsichtlich einer Überschreitung des Maximalwerts tOpen überwacht. Wird die korrekte Rückmeldesituation (xOpen = TRUE und xClosed = FALSE) ohne Überschreitung des Maximalwerts erreicht, so wird der Ausgang xAlarmOpen nicht aktiviert (= FALSE). In allen übrigen Situationen wird der Ausgang xAlarmOpen aktiviert (= TRUE).\
\
Die Ergebnisanzeige für den Brandschutzklappentest xTestOK wird aktiviert (= Prüfung erfolgreich), falls keiner der beiden Ausgänge xAlarmOpen bzw. xAlarmClosed aktiv (= TRUE) ist. Die erreichten Werte tLastOpen und tLastClosed werden jeweils auf die Ausgänge tTestOpen und tTestClosed gelegt und bis zum nächsten Brandschutzklappentest gespeichert.\
\
Der Testbetrieb endet automatisch, sobald die Prüfung der Brandschutzklappe beendet ist.\
\
Sequenz Öffnung - Schliessung:\
\
Im Testbetrieb erfolgt eine Öffnung und anschliessende Schliessung der Brandschutzklappe, jeweils mit Laufzeitüberwachung. Am Anfang des Testbetriebs werden die Ausgänge xAlarmOpen, xAlarmClosed, tTestOpen, tTestClosed und xTestOK zurück gesetzt (= FALSE).\
\
Nun wird der Steuerbefehl für die Öffnung ausgelöst und die Laufzeit hinsichtlich einer Überschreitung des Maximalwerts tOpen überwacht. Wird die korrekte Rückmeldesituation (xOpen = TRUE und xClosed = FALSE) ohne Überschreitung des Maximalwerts erreicht, so wird der Ausgang xAlarmOpen nicht aktiviert (= FALSE). In allen übrigen Situationen wird der Ausgang xAlarmOpen aktiviert (= TRUE).\
\
Nun wird der Steuerbefehl für die Schliessung ausgelöst und die Laufzeit hinsichtlich einer Überschreitung des Maximalwerts tClosed überwacht. Wird die korrekte Rückmeldesituation (xClosed = TRUE und xOpen = FALSE) ohne Überschreitung des Maximalwerts erreicht, so wird der Ausgang xAlarmClosed nicht aktiviert (= FALSE). In allen übrigen Situationen wird der Ausgang xAlarmClosed aktiviert (= TRUE).\
\
Die Ergebnisanzeige für den Brandschutzklappentest xTestOK wird aktiviert (= Prüfung erfolgreich), falls keiner der beiden Ausgänge xAlarmOpen bzw. xAlarmClosed aktiv (= TRUE) ist. Die erreichten Werte tLastOpen und tLastClosed werden jeweils auf die Ausgänge tTestOpen und tTestClosed gelegt und bis zum nächsten Brandschutzklappentest gespeichert.\
\
Der Testbetrieb endet automatisch, sobald die Prüfung der Brandschutzklappe beendet ist.

#### Voraussetzungen

> **Voraussetzung für den Einsatz des Funktionsbausteins FireDamperMot\_OnOff**
>
> Zur korrekten Funktion ist der Einsatz des Funktionsbausteins TimeRead2 erforderlich.

### CODESYS

InOut:

| Scope       | Name               | Type     | Initial      |
| ----------- | ------------------ | -------- | ------------ |
| Input       | `xEn`              | `BOOL`   |              |
| Input       | `xAlarmIn`         | `BOOL`   | FALSE        |
| Input       | `eAOO`             | eManBin  | eManBin.Auto |
| Input       | `xOpen`            | `BOOL`   |              |
| Input       | `xClosed`          | `BOOL`   |              |
| Input       | `xQuit`            | `BOOL`   | FALSE        |
| Input       | `xTestEx`          | `BOOL`   | FALSE        |
| Input       | `wMode`            | `WORD`   | 2            |
| Output      | `sLine1`           | `STRING` |              |
| Output      | `sLine2`           | `STRING` |              |
| Output      | `sText`            | `STRING` |              |
| Output      | `xHB`              | `BOOL`   |              |
| Output      | `xAB`              | `BOOL`   |              |
| Output      | `xAlarm`           | `BOOL`   |              |
| Output      | `xAlarmOpen`       | `BOOL`   |              |
| Output      | `xAlarmClosed`     | `BOOL`   |              |
| Output      | `xAlarmOn_Closed`  | `BOOL`   |              |
| Output      | `xAlarmOff_Opened` | `BOOL`   |              |
| Output      | `xTestOK`          | `BOOL`   |              |
| Output      | `tLastOpen`        | `TIME`   |              |
| Output      | `tLastClosed`      | `TIME`   |              |
| Output      | `tTestOpen`        | `TIME`   |              |
| Output      | `tTestClosed`      | `TIME`   |              |
| Output      | `tRunTime`         | `TIME`   |              |
| Output      | `xAuto`            | `BOOL`   |              |
| Input Const | `udiOpen`          | `UDINT`  | 150          |
| Input Const | `udiClose`         | `UDINT`  | 25           |
| Input Const | `eManModeB`        | eMANBIN  | eMANBIN.Auto |
| Input Const | `xRunTest`         | `BOOL`   | FALSE        |
| Input Const | `sEditLine2`       | `STRING` | ‘’           |
| Input Const | `sEditLine1`       | `STRING` | ‘Raum’       |


---

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