# FilterMonitoringB

## `FilterMonitoringB` (FB)

FUNCTION\_BLOCK FilterMonitoringB

### Short description

> Detection of filter contamination and generation of a fault message\
> \
> Typical application: Monitoring the contamination of an air filter with a differential pressure switch

### Representation

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

### Interfaces

#### Inputs

| Name    | Data type | Value range | Initial value | Function                             |
| ------- | --------- | ----------- | ------------- | ------------------------------------ |
| *xIn*   | BOOL      |             |               | Input - differential pressure switch |
| *xQuit* | BOOL      |             | FALSE         | Reset - fault message                |

#### Outputs

| Name           | Data type | Value range | Initial value | Function                                           |
| -------------- | --------- | ----------- | ------------- | -------------------------------------------------- |
| *xAlarm*       | BOOL      |             |               | Output - fault message                             |
| *xPreAlarm*    | BOOL      |             |               | Output - pre-alarm                                 |
| *tTimeToAlarm* | TIME      |             |               | Time duration until the fault message is triggered |

#### Setpoints / Parameters

| Name             | Data type | Value range | Initial value | Function          |
| ---------------- | --------- | ----------- | ------------- | ----------------- |
| *udiControlTime* | UDINT     | 1s … 3600s  | 300s          | Waiting time      |
| **xControl**     | BOOL      |             | TRUE          | Enable monitoring |

### Function description

#### General

This function block is used to detect filter contamination by evaluating the input from the differential pressure switch *xIn*.

#### Enable monitoring **xControl**

The monitoring can be generally enabled ( = TRUE ) or disabled ( = FALSE ).\
If monitoring is not enabled, the output - fault message *xAlarm* is deactivated ( = FALSE ) and the time duration until the fault message is triggered *tTimeToAlarm* assumes the value 0s.

#### Output - pre-alarm *xPreAlarm*

The output - fault message *xPreAlarm* is activated ( *xPreAlarm* = TRUE ), if the condition 1 below is met.\
\
Condition 1:\
\
The input for the differential pressure switch *xIn* is in the state TRUE ( = filter contamination).

#### Output - fault message *xAlarm*

The output - fault message *xAlarm* is activated ( *xAlarm* = TRUE ), if the condition 1 below is met.\
\
Condition 1: The input for the differential pressure switch *xIn* remains in the state TRUE for at least the waiting time *udiControlTime* continuously ( = filter contamination ).\
At the same time the monitoring is generally enabled ( **xControl** = TRUE ).\
\
The output - fault message *xAlarm* is deactivated in the following cases ( *xAlarm* = FALSE ):\
\
Case 1: Condition 1 is not met and the reset of the fault message *xQuit* is active ( = TRUE ).\
\
Case 2: Condition 1 is not met and the enable of monitoring **xControl** is not active ( = FALSE ).

#### Time duration until the fault message is triggered *tTimeToAlarm*

At the output Time duration until the fault message is triggered *tTimeToAlarm* different values are displayed depending on the operating situation.\
\
Situation 1: Display of the remaining time until the fault message is triggered ( conditions: *xIn* = TRUE, **xControl** = TRUE )\
\
Situation 2: If Situation 1 does not apply, the value 0.0 is output continuously.

### CODESYS

InOut:

| Scope       | Name             | Type    | Initial |
| ----------- | ---------------- | ------- | ------- |
| Input       | `xIn`            | `BOOL`  |         |
| Input       | `xQuit`          | `BOOL`  | FALSE   |
| Input Const | `udiControlTime` | `UDINT` | 300     |
| Input Const | `xControl`       | `BOOL`  | TRUE    |
| Output      | `xAlarm`         | `BOOL`  |         |
| Output      | `xPreAlarm`      | `BOOL`  |         |
| Output      | `tTimeToAlarm`   | `TIME`  |         |
