LGF_ScaleLinear (FC / V3.0.1)


Autor: Siemens Digital Industry Support

Kurzbeschreibung

Diese Funktion skaliert eine Eingangsgröße (LReal) über eine lineare Geradengleichung.

Baustein Schnittstelle

LGF_ScaleLinear (FC)
LReal  x Ret_Val  LReal
    
LReal  x1 error  Bool
    
LReal  y1 status  Word
    
LReal  x2   
    
LReal  y2   
    
LReal  yMin   
    
LReal  yMax   
    
   

Input Parameter

BezeichnerDatentypBeschreibung
xLRealEingangswert `x` der skaliert werden soll.
x1LRealPunkt 1 (P1) - `x` Koordinate der linearen Funktion.
y1LRealPunkt 1 (P1) - `y` Koordinate der linearen Funktion.
x2LRealPunkt 2 (P2) - `x` Koordinate der linearen Funktion.
y2LRealPunkt 2 (P2) - `y` Koordinate der linearen Funktion.
yMinLRealUnterer Grenzwert des Ausgangs.
yMaxLRealOberer Grenzwert des Ausgangs.

Output Parameter

BezeichnerDatentypBeschreibung
Ret_ValLRealSkalierter Ausgangswert `y`
errorBoolFALSE: Kein Fehler
TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten
statusWord16#0000-16#7FFF: Status des FB
16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)

Status & Error Meldungen

Code / WertBezeichner / Beschreibung
16#0000STATUS_FINISHED_NO_ERROR
Status: Abarbeitung ohne Fehler beendet
16#6001WARN_Y_LIMITED_TO_YMIN
Warnung: Ausgabewert auf `yMin` begrenzt
16#6002WARN_Y_LIMITED_TO_YMAX
Warnung: Ausgabewert auf `yMax` begrenzt
16#8200ERR_LOW_LIM_OVER_UP_LIM
Fehler: Unterer Grenzwert `yMin` ist größer als oberer Grenzwert `yMax`.

Funktionsbeschreibung

Die Funktion skaliert eine Eingangsgröße (z. B. ein Analogeingangswert) linear auf eine bestimmte Ausgangsgröße (z. B. Füllstand).

Zur Bestimmung der Ausgangsgröße wird in der Funktion folgende lineare Geradengleichung angewendet:

x = \frac{y_2 - y_1}{x_2 - x_1} * (x - x_1) + y_1

Die Gerade wird durch die zwei Punkte, P1 und P2, beschrieben. Die Punkte geben Sie im Sinne eines kartesischen Koordinatensystems durch x- und y-Koordinaten vor.

Hinweis
Falls die Werte der Parameter x1 und x2 gleich sind, wird am Ausgang y der Wert von y1 ausgegeben.

Mit der Angabe von yMin und yMax können Sie den berechneten Wert von y auf einen unten und oben begrenzten Bereich einschränken. Somit vermeiden Sie Über- und Untersteuerungsbereiche.

Abbildung: Graphische Darstellung

LGF_ScaleLinear - Funktionsweise

Beispiel

An einer Analogeingangsbaugruppe liegt ein Signal von 4 bis 20mA an. Dieses Signal wird zu dem CPU-internen Wert von 0 bis 27648 gewandelt, um einen Füllstand zu messen. Dabei entsprechen 0 dem Füllstand 0,0m und 27648 dem Füllstand 1,7m.

Den Baustein müssen Sie dann wie folgt parametrieren:

Änderungshistorie

Version & DatumÄnderungsbeschreibung
01.00.00Siemens Industry Online Support
27.01.2017First released version
01.00.01Siemens Industry Online Support
17.08.2018Upgrade: TIA V15 Update 2
01.00.02Siemens Industry Online Support
23.11.2018Upgrade: TIA V15.1
02.00.00Simatic Systems Support
25.01.2019Data type changed from Variant to LReal
02.00.01Simatic Systems Support
25.06.2019Standard header and block parameters update, status parameter added
LReal value comparison added
Result parameter changed to return value of FC for use in SCL
Warning number changed to range of 16#6xxx
refactor variable handling and extract returns in between the code
add ENO handling
03.00.00Simatic Systems Support
23.04.2020Set version to V3.0.0
harmonize the version of the whole library
03.00.01Simatic Systems Support
12.11.2020Insert documentation
Move to folder "Math operations"