# LGF_LimRateOfChangeCI (FB / V3.0.1)

Autor: Siemens Digital Industries

## Kurzbeschreibung

Diese Funktion begrenzt die Änderungsgeschwindigkeit einer Eingangsgröße. Aus einer Sprungfunktion wird eine Rampenfunktion.

### Baustein Schnittstelle

| LGF_LimRateOfChangeCI (FB) |
--- | --- | ---
LReal |  |  | value |  | delayedValue |  |  | LReal
LReal |  |  | setChangeRate |  | error |  |  | Bool
LReal |  |  | defaultOutValue |  | status |  |  | Word
Bool |  |  | enDefaultOutValue |  | subfunctionStatus |  |  | Word
OB_CYCLIC |  |  | callOB |  |  |  |  |

### Input Parameter

Bezeichner | Datentyp | Default Wert | Beschreibung
--- | --- | --- | ---
value | LReal | 0.0 | Eingangssignal das verarbeitet und in seiner Änderungsrate begrenzt wird
setChangeRate | LReal | 0.0 | Änderungsrate der Rampenfunktion (1/Sekunde)
defaultOutValue | LReal | 0.0 | Wert für die Default Vorbelegung der Ausgangsgröße (`outputValue` = `defaultOutValue`)
enDefaultOutValue | Bool | FALSE | Zuweisen des Default Ausgangswert (`outputValue` = `defaultOutValue`)
callOB | OB_CYCLIC | --- | Aufrufender Weckalarm-OB (Cyclic Interrupt OB)

### Output Parameter

Bezeichner | Datentyp | Beschreibung
--- | --- | ---
delayedValue | LReal | Ausgangsgröße
error | Bool | FALSE: Kein Fehler TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten
status | Word | 16#0000-16#7FFF: Status des FB 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)
subfunctionStatus | Word | Status oder Rückgabewert von aufgerufenen FB's / FC's und Systemfunktionen

### Status & Error Meldungen

Code / Wert | Bezeichner / Beschreibung
--- | ---
16#0000 | STATUS_FINISHED_NO_ERROR Status: Abarbeitung ohne Fehler beendet
16#8200 | ERR_NEG_RATE_LIM Fehler: Negative Änderungsrate. Parameter für die Änderungsrate darf nicht negativ sein.
16#8600 | ERR_QRY_CINT Fehler in Anweisung `QRY_CINT` - weitere Infos in `subFunctionStatus`
16#8601 | ERR_OB_UNAVAILABLE Fehler: OB am Eingang `callOB` ist nicht projektiert / vorhanden. Verschalten Sie am Eingang `callOB` den Konstanten Namen eines projektierten Weckalarm-OB.

## Funktionsbeschreibung

Hinweis
  In `subFunctionStatus` wird der Status von aufgerufenen Anweisungen ausgegeben. Der Ausgangswert in `status` gibt in diesem Fall an, welche Anweisung den Fehler verursacht hat. Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Die Rampe ist eine Begrenzungsgerade und bezieht sich auf eine Änderungsrate pro Sekunde; wird zum Beispiel `setChangeRate = 10.0` parametriert, so wird bei einer Abtastzeit von 1s/100ms/10ms bei jedem Bausteinaufruf, wenn `value > delayedValue` ist, 10.0/1.0/0.1 zu `delayedValue` addiert, bis `value` erreicht ist.

Die Begrenzung der Änderungsrate ist sowohl im positiven als auch negativen Wertebereich für den Anstieg und den Abfall gültig.

Der Ausgang `delayedValue` kann vorbelegt bzw. initialisiert werden.

Der Zeittakt des aufrufen Weckalarm-OBs wird ermittelt, in dem am Eingangs-parameter `callOB` der aufrufende Weckalarm-OB verschaltet wird.

### Ausgang vorbelegen

Wenn `enDefaultOutValue = TRUE` gesetzt ist, wird am Ausgang der Wert an `defaultOutValue` ausgegeben. Bei Änderung von `TRUE` nach `FALSE` wird der Ausgang `delayedValue` von `defaultOutValue` nach `value` rampenförmig gefahren. Beim Wechsel von `FALSE` nach `TRUE` springt Ausgang `delayedValue` sofort zu `defaultOutValue`.

### Funktionsverläufe

Die untenstehende Abbildung zeigt den Rampenfunktionsverlauf:

## Änderungshistorie

Version & Datum | Änderungsbeschreibung
--- | ---
| 01.00.00 | Siemens Industry Online Support
| 21.06.2016 | First released version
| 01.00.01 | Siemens Industry Online Support
| 02.01.2017 | Upgrade: TIA Portal V14 Update 1
| 01.00.02 | Siemens Industry Online Support
| 17.08.2018 | Upgrade: TIA V15 Update 2
| 01.00.03 | Siemens Industry Online Support
| 23.11.2018 | Upgrade: TIA V15.1
| 01.00.06 | Simatic Systems Support
| 15.11.2019 | Regions, comments and constants are added
| 03.00.00 | Simatic Systems Support
| 23.04.2020 | Set version to V3.0.0, harmonize the version of the whole library
| 03.00.01 | Simatic Systems Support
| 22.03.2021 | Insert documentation