# Limiter

## `Limiter` (FB)

FUNCTION\_BLOCK Limiter

### Kurzbeschreibung

> Grenzwertüberwachung eines Analogwertes

### Darstellung

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

### Schnittstellen

#### Eingänge

| Name  | Datentyp | Wertebereich | Initialwert | Funktion          |
| ----- | -------- | ------------ | ----------- | ----------------- |
| *rIn* | REAL     |              | 0           | Analogwerteingang |

#### Ausgänge

| Name   | Datentyp | Wertebereich | Initialwert | Funktion                                                                                                           |
| ------ | -------- | ------------ | ----------- | ------------------------------------------------------------------------------------------------------------------ |
| *rOut* | REAL     |              |             | Analogwertausgang                                                                                                  |
| *xErr* | BOOL     |              |             | <p>\* <strong>FALSE:</strong><br>keine Grenzwertverletzung<br>\* <strong>TRUE:</strong><br>Grenzwertverletzung</p> |

#### Sollwerte / Parameter

| Name                   | Datentyp     | Wertebereich                                                 | Initialwert | Funktion                                                                      |
| ---------------------- | ------------ | ------------------------------------------------------------ | ----------- | ----------------------------------------------------------------------------- |
| **rReplacementValue**  | REAL         |                                                              | 0           | Wert am Ausgang *rOut* bei verletztem Grenzwert und Option ‘ReplacementValue’ |
| **rReplacementOption** | eLimiterMode | InpultValue, MinValue, MaxValue, LastValue, ReplacementValue | InputValue  | Auswahl des Wertes am Ausgang *rOut* je nach gewählter Option                 |
| **rMaxLimit**          | REAL         |                                                              | 150         | Oberer Grenzwert                                                              |
| **rMinLimit**          | REAL         |                                                              | -50         | Unterer Grenzwert                                                             |

### Funktionsbeschreibung

#### Analogwertausgang *rOut*

Der Analogwertausgang *rOut* folgt dem Analogwerteingang *rIn*, solange der Analogwerteingang *rIn* keinen der beiden Grenzwerte **rMinLimit** bzw. **rMaxLimit** verletzt.\
Eine Grenzwertverletzung liegt immer dann vor, wenn der Analogwerteingang *rIn* kleiner als der Grenzwert **rMinLimit** oder größer als der Grenzwert **rMaxLimit** ist.\
Im Falle einer Grenzwertverletzung wird der Analogwertausgang *rOut* in Abhängigkeit von der gewählten Option **rReplacementOption** (eLimiterMode) festgelegt.

| *rIn* | **ReplacementOption** | *rOut*                                                 | Hinweise                                                                                        |
| ----- | --------------------- | ------------------------------------------------------ | ----------------------------------------------------------------------------------------------- |
| X     | InputValue            | *rIn*                                                  | Option ‘InpultValue’                                                                            |
| X     | MinValue              | **rMinLimit**                                          | Option ‘MinValue’                                                                               |
| X     | MaxValue              | **rMaxLimit**                                          | Option ‘MaxValue’                                                                               |
| X     | LastValue             | Letzter Zustand von *rOut* vor der Grenzwertverletzung | Option ‘LastValue’ Achtung: Der letzte Wert wird bei einem Kaltstart der PLC nicht gespeichert! |
| X     | ReplacementValue      | **rReplacementValue**                                  | Option ‘ReplacementValue’                                                                       |

Legende: X = beliebig

#### Digitalausgang *xErr*

Der digitale Ausgang *xErr* signalisiert eine aktive Grenzwertverletzung.

| Grenzwertverletzung | *xErr* | Hinweise                  |
| ------------------- | ------ | ------------------------- |
| FALSE               | FALSE  | keine Grenzwertverletzung |
| TRUE                | TRUE   | Grenzwertverletzung       |

Legende: X = beliebig

### CODESYS

InOut:

| Scope       | Name                 | Type         | Initial                 |
| ----------- | -------------------- | ------------ | ----------------------- |
| Input       | `rIn`                | `REAL`       | 0                       |
| Input Const | `rReplacementValue`  | `REAL`       | 0                       |
| Input Const | `rReplacementOption` | eLimiterMode | eLimiterMode.InputValue |
| Input Const | `rMaxLimit`          | `REAL`       | 150                     |
| Input Const | `rMinLimit`          | `REAL`       | -50                     |
| Output      | `rOut`               | `REAL`       |                         |
| Output      | `xErr`               | `BOOL`       |                         |
| Output      | `xAlarmHigh`         | `BOOL`       |                         |
| Output      | `xAlarmLow`          | `BOOL`       |                         |
