# FilterMonitoringA

## `FilterMonitoringA` (FB)

FUNCTION\_BLOCK FilterMonitoringA

### Short description

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

### Representation

<figure><img src="/files/3e770c061f502b60cd86365467ed2f26f9376863" alt=""><figcaption></figcaption></figure>

### Function description

#### General

This function block is used to detect filter contamination by evaluating the input from the differential pressure sensor *rPressure*.\
If the differential pressure exceeds *rPressure* during the reporting delay **udiControlTime** continuously the threshold value **rControlPressure**, (precondition: enabling of the monitoring **xControl** is active (= TRUE)) then the alarm output *xAlarm* becomes active (= TRUE).

#### Enable monitoring **xControl**

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

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

The output - fault message *xPreAlarm* is activated (*xPreAlarm* = TRUE), if the condition 1 below is fulfilled.\
\
Condition 1:\
\
The input from the differential pressure sensor *rPressure* is greater than the maximum allowable differential pressure **rControlPressure** (= filter contamination).

#### Output - fault message *xAlarm*

The output - fault message *xAlarm* is activated (*xAlarm* = TRUE), if the condition 1 below is fulfilled.\
\
Condition 1:\
\
The input from the differential pressure sensor *rPressure* is at least during the reporting delay **udiControlTime** continuously greater than the maximum allowable differential pressure **rControlPressure** (= 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 fulfilled and the reset of the fault message *xQuit* is active (= TRUE).\
\
Case 2: Condition 1 is not fulfilled and the enabling of the monitoring **xControl** is not active (= FALSE).

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

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

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


---

# 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/en/hvac-library/functionblocks/components/filtermonitoringa.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.
