# FilterMonitoringA

## `FilterMonitoringA` (FB)

FUNCTION\_BLOCK FilterMonitoringA

### Kurzbeschreibung

> Erkennung einer Filterverschmutzung und Erzeugung einer Störmeldung\
> \
> Typische Anwendung: Überwachung der Verschmutzung eines Luftfilters mit einem Differenzdruckfühler

### Darstellung

<figure><img src="https://879424349-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2Fgit-blob-a2b47b6425ecbd77f708dd2a44aa59b0c0346f84%2FFilterMonitoringA_FB.png?alt=media" alt=""><figcaption></figcaption></figure>

### Funktionsbeschreibung

#### Allgemeines

Dieser Funktionsbaustein dient zur Erkennung einer Filterverschnmutzung durch die Auswertung des Eingangs für den Differenzdruckfühler *rPressure*.\
Überschreitet der Differenzdruck *rPressure* während der Meldeverzögerung **udiControlTime** permanent den Grenzwert **rControlPressure**, (Voraussetzung: Freigabe der Überwachung **xControl** ist aktiv (= TRUE)) so wird der Alarmausgang *xAlarm* aktiv (= TRUE).

#### Freigabe der Überwachung **xControl**

Die Überwachung kann generell freigegeben (= TRUE) oder gesperrt (= FALSE) werden.\
Bei nicht freigegebener Überwachung wird der Ausgang - Störmeldung *xAlarm* deaktiviert (= FALSE) und die Zeitdauer bis zur Auslösung der Störmeldung *tTimeToAlarm* nimmt den Wert 0s an.

#### Ausgang - Voralarm *xPreAlarm*

Der Ausgang - Störmeldung *xPreAlarm* wird aktiviert (*xPreAlarm* = TRUE), falls die unten stehende Bedingung 1 erfüllt ist.\
\
Bedingung 1:\
\
Der Eingang für den Differenzdruckfühler *rPressure* ist größer als der maximal zulässige Differenzdruck **rControlPressure** (= Filterverschmutzung).

#### Ausgang - Störmeldung *xAlarm*

Der Ausgang - Störmeldung *xAlarm* wird aktiviert (*xAlarm* = TRUE), falls die unten stehende Bedingung 1 erfüllt ist.\
\
Bedingung 1:\
\
Der Eingang für den Differenzdruckfühler *rPressure* ist mindestens während der Meldeverzögerung **udiControlTime** permanent größer als der maximal zulässige Differenzdruck **rControlPressure** (= Filterverschmutzung).\
Gleichzeitig ist die Überwachung generell freigegeben (**xControl** = TRUE).\
\
Der Ausgang - Störmeldung *xAlarm* wird in folgenden Fällen deaktiviert (*xAlarm* = FALSE :\
\
Fall 1: Die Bedingung 1 ist nicht erfüllt und die Rücksetzung der Störmeldung *xQuit* ist aktiv (= TRUE).\
\
Fall 2: Die Bedingung 1 ist nicht erfüllt und die Freigabe der Überwachung **xControl** ist nicht aktiv (= FALSE).

#### Zeitdauer bis zur Auslösung der Störmeldung *tTimeToAlarm*

Am Ausgang *tTimeToAlarm* werden je nach Betriebssituation unterschiedliche Werte dargestellt:\
\
Situation 1: Ausgabe der Restzeitdauer bis zur Auslösung der Störmeldung (Bedingungen: *rPressure* > **rControlPressure**, **xControl** = TRUE)\
\
Situation 2: Falls die Situation 1 nicht vorliegt, so wird permanent der Wert 0.0 ausgegeben.

### CODESYS

InOut:

| Scope       | Name                      | Type    | Initial |
| ----------- | ------------------------- | ------- | ------- |
| Input       | `rPressure`               | `REAL`  |         |
| Input       | `xAlarmSensor`            | `BOOL`  |         |
| Input       | `xQuit`                   | `BOOL`  | FALSE   |
| Input Const | `rMaxControlPressureVisu` | `REAL`  | 500     |
| Input Const | `rMinControlPressureVisu` | `REAL`  | 10      |
| Input Const | `udiControlTime`          | `UDINT` | 300     |
| Input Const | `rControlPressure`        | `REAL`  | 200     |
| Input Const | `xControl`                | `BOOL`  | TRUE    |
| Output      | `xAlarm`                  | `BOOL`  |         |
| Output      | `xPreAlarm`               | `BOOL`  |         |
| Output      | `tTimeToAlarm`            | `TIME`  |         |
