# Limiter

## `Limiter` (FB)

FUNCTION\_BLOCK Limiter

### Short description

> Limit monitoring of an analog value

### Representation

<figure><img src="/files/9e1e3e6d0f275e86828a0e2d328933c133ecbe2a" alt=""><figcaption></figcaption></figure>

### Interfaces

#### Inputs

| Name  | Data type | Value range | Initial value | Function           |
| ----- | --------- | ----------- | ------------- | ------------------ |
| *rIn* | REAL      |             | 0             | Analog value input |

#### Outputs

| Name   | Data type | Value range | Initial value | Function                                                                                                |
| ------ | --------- | ----------- | ------------- | ------------------------------------------------------------------------------------------------------- |
| *rOut* | REAL      |             |               | Analog value output                                                                                     |
| *xErr* | BOOL      |             |               | <p>\* <strong>FALSE:</strong><br>no limit violation<br>\* <strong>TRUE:</strong><br>Limit violation</p> |

#### Setpoints / parameters

| Name                   | Data type    | Value range                                                  | Initial value | Function                                                                        |
| ---------------------- | ------------ | ------------------------------------------------------------ | ------------- | ------------------------------------------------------------------------------- |
| **rReplacementValue**  | REAL         |                                                              | 0             | Value at the output *rOut* when limit is violated and option 'ReplacementValue' |
| **rReplacementOption** | eLimiterMode | InpultValue, MinValue, MaxValue, LastValue, ReplacementValue | InputValue    | Selection of the value at the output *rOut* depending on the chosen option      |
| **rMaxLimit**          | REAL         |                                                              | 150           | Upper limit                                                                     |
| **rMinLimit**          | REAL         |                                                              | -50           | Lower limit                                                                     |

### Function description

#### Analog value output *rOut*

The analog value output *rOut* follows the analog value input *rIn*, as long as the analog value input *rIn* does not violate either of the two limits **rMinLimit** or **rMaxLimit** is violated.\
A limit violation always occurs when the analog value input *rIn* is less than the limit **rMinLimit** or greater than the limit **rMaxLimit** is.\
In the event of a limit violation, the analog value output will be *rOut* determined depending on the selected option **rReplacementOption** (eLimiterMode).

| *rIn* | **ReplacementOption** | *rOut*                                          | Notes                                                                               |
| ----- | --------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------- |
| X     | InputValue            | *rIn*                                           | Option 'InpultValue'                                                                |
| X     | MinValue              | **rMinLimit**                                   | Option 'MinValue'                                                                   |
| X     | MaxValue              | **rMaxLimit**                                   | Option 'MaxValue'                                                                   |
| X     | LastValue             | Last state of *rOut* before the limit violation | Option 'LastValue' Warning: The last value is not retained during a PLC cold start! |
| X     | ReplacementValue      | **rReplacementValue**                           | Option 'ReplacementValue'                                                           |

Legend: X = any

#### Digital output *xErr*

The digital output *xErr* indicates an active limit violation.

| Limit violation | *xErr* | Notes              |
| --------------- | ------ | ------------------ |
| FALSE           | FALSE  | no limit violation |
| TRUE            | TRUE   | Limit violation    |

Legend: X = any

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


---

# 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/numeric/limiter.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.
