Diese Funktion berechnet aus REAL-Werten einen gleitenden arithmetischen Mittelwert. Diese Methode kann zur Glättung von Datenreihen verwendet werden. Die Werte können zyklisch oder getriggert eingelesen werden.
LGF_FloatingAverage (FB) | ||||||||
---|---|---|---|---|---|---|---|---|
Bool | cyclicExecution | average | LReal | |||||
Bool | trigger | windowSizeReached | Bool | |||||
LReal | value | error | Bool | |||||
Int | windowSize | status | Word | |||||
Bool | reset | |||||||
Bezeichner | Datentyp | Default Wert | Beschreibung |
---|---|---|---|
cyclicExecution | Bool | false | TRUE: Zyklisches Einlesen, trigger nicht verwendet |
trigger | Bool | FALSE | Einlesen von `value` bei jedem Impuls am Eingang `trigger` |
value | LReal | 0.0 | Wert/e, aus welchen der gleitende Mittelwert bestimmt werden soll. |
windowSize | Int | 100 | Fensterlänge für die gleitende Mittelung im Bereich von 1..100. Der Standardwert ist 100. |
reset | Bool | FALSE | TRUE: Der Baustein wird zurückgesetzt und die Berechnung beginnt erneut. |
Bezeichner | Datentyp | Beschreibung |
---|---|---|
average | LReal | Gleitender Mittelwert |
windowSizeReached | Bool | FALSE: Maximale noch nicht Fensterbreite erreicht, TRUE: Maximale Fensterbreite 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) |
Code / Wert | Bezeichner / Beschreibung |
---|---|
16#0000 | STATUS_FINISHED_NO_ERROR Status: Abarbeitung ohne Fehler beendet |
16#8200 | ERR_WRONG_WINDOW_SIZE Fehler: Falsche Fensterbreite gesetzt. Stellen Sie einen Wert zwischen 1 und 100 ein. |
LGF_FloatingAverage
führt keine Datentypabfrage für den Eingangsparameter value
durch. Bei anderen Datentypen als REAL wird entweder automatisch eine implizite Konvertierung durchgeführt oder ein Fehler beim Übersetzen generiert.Der Baustein berechnet den (gleitenden) Mittelwert anhand der eingestellten Fensterbreite. Die Fensterbreite gibt die maximale Anzahl der zuletzt eingelesenen Werte an. Nachdem die maximale Anzahl an Werten eingelesen wurde, wird der Ausgang windowSizeReached
gesetzt und jeder neu eingelesene Wert ersetzt den jeweils ältesten Wert (FIFO-Prinzip).
Für das Einlesen der Werte stehen zwei Möglichkeiten zur Verfügung. Mit dem Eingangs cyclicExecution
werden die Werte zyklisch eingelesen und berechnet. Mit dem Eingang trigger
werden die Werte bei jedem Impuls eingelesen und berechnet.
Version & Datum | Änderungsbeschreibung | |
---|---|---|
01.00.00 | Siemens Industry Online Support | |
16.06.2016 | First released version | |
01.00.01 | Siemens Industry Online Support | |
02.01.2017 | Upgrade: TIA Portal V14 Update 1 | |
01.01.00 | Siemens Industry Online Support | |
21.02.2017 | Adding variable window size for calculation Optimizing calculation algorithm | |
01.01.01 | Siemens Industry Online Support | |
17.08.2018 | Upgrade: TIA V15 Update 2 | |
01.01.02 | Siemens Industry Online Support | |
23.11.2018 | Upgrade: TIA V15.1 | |
01.01.03 | Simatic Systems Support | |
07.11.2019 | Code refactoring, comments 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 | |
16.06.2020 | refactor and simplify code | |
03.00.02 | Simatic Systems Support | |
06.04.2021 | Insert documentation |