Die Funktion LGF_LimRateOfChangeAdvancedCI begrenzt die Änderungsgeschwindigkeit einer Eingangsgröße. Aus Sprungfunktionen werden Rampenfunktionen. Zusätzlich verfügt der Baustein über verschiedene Betriebsarten.
| LGF_LimRateOfChangeAdvancedCI (FB) | ||||||||
|---|---|---|---|---|---|---|---|---|
| LReal | autoValue | outputValue | LReal | |||||
| LReal | manualValue | posUpRateLim | Bool | |||||
| LReal | setPosUpRateLim | posDownRateLim | Bool | |||||
| LReal | setPosDownRateLim | negUpRateLim | Bool | |||||
| LReal | setNegUpRateLim | negDownRateLim | Bool | |||||
| LReal | setNegDownRateLim | highLim | Bool | |||||
| LReal | setHighLim | lowLim | Bool | |||||
| LReal | setLowLim | error | Bool | |||||
| LReal | defaultOutValue | status | Word | |||||
| Bool | enDefaultOutValue | subfunctionStatus | Word | |||||
| Bool | track | |||||||
| Bool | manOp | |||||||
| Bool | reset | |||||||
| OB_CYCLIC | callOB | |||||||
| Bezeichner | Datentyp | Default Wert | Beschreibung |
|---|---|---|---|
| autoValue | LReal | 0.0 | Eingangssignal das verarbeitet und in seiner Änderungsrate begrenzt wird |
| manualValue | LReal | 0.0 | Manuell kontrollierter Ausgabe Wert (`outputValue` = `manualValue`) |
| setPosUpRateLim | LReal | 0.0 | Änderungsrate pro Sekunde für die steigende Rampe im positiven Wertebereich (1/Sekunde) |
| setPosDownRateLim | LReal | 0.0 | Änderungsrate pro Sekunde für die fallende Rampe im positiven Wertebereich (1/Sekunde) |
| setNegUpRateLim | LReal | 0.0 | Änderungsrate pro Sekunde für die steigende Rampe im negativen Wertebereich (1/Sekunde) |
| setNegDownRateLim | LReal | 0.0 | Änderungsrate pro Sekunde für die fallende Rampe im negativen Wertebereich (1/Sekunde) |
| setHighLim | LReal | 0.0 | Oberer Grenzwert |
| setLowLim | LReal | 0.0 | Unterer Grenzwert |
| defaultOutValue | LReal | 0.0 | Wert für die Default Vorbelegung der Ausgangsgröße (`outputValue` = `defaultOutValue`) |
| enDefaultOutValue | Bool | FALSE | Zuweisen des Default Ausgangswert (`outputValue` = `defaultOutValue`) |
| track | Bool | FALSE | Eingangsgröße durchschalten / Nachführen (`outputValue` = `autoValue`) |
| manOp | Bool | FALSE | Manueller Modus (`outputValue` = `manualValue`) |
| reset | Bool | FALSE | Gesamter Neustart der Funktion |
| callOB | OB_CYCLIC | --- | Aufrufender Weckalarm-OB (Cyclic Interrupt OB) |
| Bezeichner | Datentyp | Beschreibung |
|---|---|---|
| outputValue | LReal | Ausgangsgröße |
| posUpRateLim | Bool | Anstiegsbegrenzung im positiven Bereich angesprochen |
| posDownRateLim | Bool | Abstiegsbegrenzung im positiven Bereich angesprochen |
| negUpRateLim | Bool | Anstiegsbegrenzung im negativen Bereich angesprochen |
| negDownRateLim | Bool | Anstiegsbegrenzung im negativen Bereich angesprochen |
| highLim | Bool | Obere Begrenzung erreicht |
| lowLim | Bool | Untere Begrenzung erreicht |
| 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 |
| Code / Wert | Bezeichner / Beschreibung |
|---|---|
| 16#0000 | STATUS_FINISHED_NO_ERROR Status: Abarbeitung ohne Fehler beendet |
| 16#8200 | ERR_NEG_RATE_LIM Fehler: Obergrenze unterhalb der Untergrenze. Obere Begrenzung `setHighLim` muss größer sein als die untere Begrenzung `setLowLim`. |
| 16#8202 | ERR_NEG_RATE_OF_CHANGE 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. |
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.Für den positiven/negativen Wertebereich sind je zwei Änderungsraten für die Rampe (steigende und fallende Werte) parametrierbar. Über Steuereingänge ist die Auswahl folgender Betriebsarten möglich:
Die Ausgangsgröße kann durch zwei parametrierbare Grenzen begrenzt werden. Eine aktive Begrenzung der Änderungsrate einer Rampe sowie eine aktive Begrenzung der Ausgangsgröße werden über Ausgänge gemeldet.
Der Zeittakt des aufrufen Weckalarm-OBs wird ermittelt, in dem am Eingangs-parameter callOB der aufrufende Weckalarm-OB verschaltet wird.

Bei Neustart reset = TRUE wird der Ausgang outputValue auf 0.0 rückgesetzt.
Wenn enDefaultOutValue = TRUE gesetzt ist, wird defaultOutValue ausgegeben. Alle Signalausgänge werden auf FALSE gesetzt.
Wenn enDefaultOutValue = TRUE gesetzt ist, wird am Ausgang der Wert an defaultOutValue ausgegeben. Bei Änderung von TRUE nach FALSE wird outputValue von defaultOutValue nach autoValue rampenförmig gefahren. Beim Wechsel von FALSE nach TRUE springt der Ausgang outputValue sofort zu defaultOutValue.
Die Rampen sind Begrenzungsgeraden und beziehen sich auf eine Änderungsrate pro Sekunde; wird zum Beispiel setPosUpRateLim = 10.0 parametriert, so wird bei einer Abtastzeit von 1s/100ms/10ms bei jedem Bausteinaufruf, wenn autoValue > outputValue ist, 10.0/1.0/0.1 zu outputValue addiert, bis autoValue erreicht ist.
Die Begrenzung der Änderungsrate ist jeweils in positivem und negativem Wertebereich für den Anstieg und den Abfall parametrierbar.
Tabelle: Kennzeichnung der Rampen
| Parameter | Rampe |
| setPosUpRateLim | outputValue > 0.0 und |outputValue| steigend |
| setPosDownRateLim | outputValue > 0.0 und |outputValue| fallend |
| setNegUpRateLim | outputValue < 0.0 und |outputValue| steigend |
| setNegDownRateLim | outputValue < 0.0 und |outputValue| fallend |
Wenn keine Parametrierung der Rampen vorgenommen wird (setPosUpRateLim, setPosDownRateLim, setNegUpRateLim und setNegDownRateLim gleich 0.0), bleibt der Ausgang auf dem Wert 0.0 und der Normalbetrieb ist außer Funktion.
Ist der Eingang track = TRUE gesetzt, wird die Eingangsgröße autoValue direkt zur Ausgangsgröße outputValue durchgeschaltet. Somit werden auch Sprünge der Eingangsgröße ausgegeben.
Wenn manOp = TRUE gesetzt ist, wird die Regelgröße manualValue direkt auf die Ausgangsgröße outputValue durchgeschaltet.
In dieser Betriebsart sind die Parametrierung der Rampen bzw. der oberen/unteren Begrenzung der Ausgangsgröße und die Vorbelegung des Ausgangs unwirksam.
Beim Wechsel von TRUE nach FALSE, wird der Ausgang outputValue nach autoValue wieder rampenförmig gefahren.
Sobald der Werteabschnitt zwischen der unteren und oberen Begrenzung erreicht ist, wird die obere und untere Begrenzung wieder aktiviert.
Abbildung: Rampenfunktionsverlauf, Betriebsarten

| 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.07 | 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 | |