# LGF_SimpleAveraging (FB / 1.0.0)

Übersicht

Autor: Siemens Digital Industry

## Kurzbeschreibung

Diese Funktion berechnet einen gleitenden arithmetischen Mittelwert aus LReal-Werten.
Die Methode kann zur Glättung von Datenreihen verwendet werden, die Werte können zyklisch oder getriggert eingelesen werden.

### Baustein Schnittstelle

| LGF_SimpleAveraging (FB) |
--- | --- | ---
Bool |  |  | cyclicExecution |  | average |  |  | LReal
Bool |  |  | trigger |  | overflow |  |  | Bool
Bool |  |  | reset |  |  |  |  |
LReal |  |  | value |  |  |  |  |
USInt |  |  | windowSize |  |  |  |  |

### Input Parameter

Bezeichner | Datentyp | Default Wert | Beschreibung
--- | --- | --- | ---
cyclicExecution | Bool | FALSE | TRUE: Zyklisches Einlesen, trigger nicht verwendet
trigger | Bool | FALSE | Steigende Flanke: Einlesen von `value` bei jedem Impuls am Eingang `trigger`
reset | Bool | FALSE | TRUE: Der Baustein wird zurückgesetzt und die Berechnung beginnt erneut.
value | LReal | 0.0 | Wert/e, aus welchen der gleitende Mittelwert bestimmt werden soll.
windowSize | USInt | 5 | Fensterlänge für die gleitende Mittelung im Bereich von 1..255

### Output Parameter

Bezeichner | Datentyp | Beschreibung
--- | --- | ---
average | LReal | Gleitender Mittelwert
overflow | Bool | TRUE: Überlauf der in der Berechnung erkannt

## Funktionsbeschreibung

Hinweis
  Der Baustein `LGF_SimpleAveraging` führt keine Datentypabfrage für den Eingangsparameter `value` durch. Bei anderen Datentypen als LReal wird entweder automatisch eine implizite Konvertierung durchgeführt oder ein Fehler beim Übersetzen generiert.
  Weitere Informationen finden Sie im Kapitel "Übersicht über die Datentypkonvertierung" in der Online Hilfe des TIA Portals oder unter:
  https://support.industry.siemens.com/cs/ww/de/view/109773506/100611494667

Der Block berechnet den (gleitenden) Mittelwert auf der Grundlage der eingestellten `windowSize`. Wenn `windowSize` auf windowSize < 1 gesetzt ist, wird der Wert ohne Mittelwertbildung durchgereicht.

Für das Auslesen der Werte gibt es zwei Möglichkeiten:

- Mit dem Eingang `cyclicExecution` werden die Werte zyklisch gelesen und berechnet.
- Mit dem Eingang `Trigger` werden die Werte bei jedem Impuls eingelesen und berechnet.

Wenn die Berechnung die Wertebereichs Grenzen von `LReal` erreicht, wird der Ausgang `overflow` gesetzt.

## Änderungshistorie

Version & Datum | Änderungsbeschreibung
--- | ---
| 1.0.0 | Simatic Systems Support
| 18.07.2024 | First Release