# LGF_FloatingAverage (FB / V3.0.2)

Autor: Siemens Digital Industry

## Kurzbeschreibung

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.

### Baustein Schnittstelle

| LGF_FloatingAverage (FB) |
--- | --- | ---
Bool |  |  | cyclicExecution |  | average |  |  | LReal
Bool |  |  | trigger |  | windowSizeReached |  |  | Bool
LReal |  |  | value |  | error |  |  | Bool
Int |  |  | windowSize |  | status |  |  | Word
Bool |  |  | reset |  |  |  |  |

### Input Parameter

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.

### Output Parameter

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)

### Status & Error Meldungen

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.

## Funktionsbeschreibung

Hinweis
  Der Baustein `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.
  Weitere Informationen finden Sie im Kapitel "Übersicht über die Datentyp-konvertierung" in der Online Hilfe des TIA Portals oder unter:
  https://support.industry.siemens.com/cs/ww/de/view/109773506/100611494667

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.

## Änderungshistorie

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