AVG¶
Einleitung¶
Der Funktionsblock AVG (Array Average) berechnet den arithmetischen Mittelwert (Durchschnitt) aller Elemente eines Integer-Arrays. Er ist für den Einsatz in der Steuerungstechnik konzipiert und ermöglicht eine schnelle statistische Auswertung von Messwerten oder Prozessdaten.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Event | Mit Daten |
|---|---|
REQ |
A |
Ereignis-Ausgänge¶
| Event | Mit Daten |
|---|---|
CNF |
(Ergebnis-Ausgang), A |
Daten-Eingänge¶
| Name | Typ | Initialwert | Kommentar |
|---|---|---|---|
A |
ARRAY[*] OF INT |
– | Array von Ganzzahlen, dessen Durchschnitt berechnet wird (InOut-Variable) |
Daten-Ausgänge¶
| Name | Typ | Initialwert | Kommentar |
|---|---|---|---|
| (kein Name) | REAL |
– | Ergebnis des Durchschnittswerts |
Adapter¶
Keine.
Funktionsweise¶
- Der Baustein wird durch das Ereignis
REQaktiviert. Dabei wird das Daten-ArrayAübernommen. - Intern wird eine Schleife von
LOWER_BOUND(A,1)bisUPPER_BOUND(A,1)durchlaufen, um alle Elemente zu summieren. - Die Anzahl der Elemente wird aus
UPPER_BOUND(A,1) - LOWER_BOUND(A,1) + 1ermittelt. - Die Summe wird als
DINTkumuliert und anschließend durch die Anzahl dividiert. Das Ergebnis wird in einenREAL-Wert umgewandelt und am Ausgang bereitgestellt. - Nach Abschluss der Berechnung wird das Ereignis
CNFausgegeben. Der Ausgangswert steht dann zur Verfügung.
Technische Besonderheiten¶
- Dynamische Array-Größe: Der Baustein akzeptiert Arrays beliebiger Länge (gekennzeichnet durch
ARRAY[*]), was eine flexible Anpassung an unterschiedliche Datenmengen erlaubt. - Typumwandlungen: Die Summe wird als
DINT(Doppelwort) geführt, um Überläufe bei großen Arrays zu vermeiden. Die Division erfolgt nach Umwandlung inREAL, sodass ein Gleitkommaergebnis entsteht. - Keine Zustandsmaschine: Der Baustein ist rein funktional aufgebaut – auf einen
REQfolgt unmittelbar einCNF. Es gibt keine internen Zustände oder Verzögerungen.
Zustandsübersicht¶
Da es sich um einen kombinatorischen Funktionsblock handelt, existieren keine expliziten Zustände. Der Ablauf ist:
- Initial: Warten auf
REQ - Nach
REQ: Berechnung und sofortige Ausgabe vonCNF
Anwendungsszenarien¶
- Mittelwertbildung von Sensordaten: Glättung von Messwerten (z. B. Temperatur, Druck) über einen definierten Messzyklus.
- Durchschnittsberechnung in Chargenprozessen: Ermittlung des mittleren Füllstands, Gewichts oder anderer Prozessgrößen.
- Statistische Auswertung in Qualitätskontrollen: Beispielsweise Berechnung des Durchmessers mehrerer Prüflinge als Gleitkommawert zur Genauigkeitsanalyse.
Vergleich mit ähnlichen Bausteinen¶
| Merkmal | AVG | Typischer IEC‑61131-3 AVG-Baustein |
|---|---|---|
| Parametrierung | Dynamisch via Array (kein Limit) | Oft statische Array-Größe oder Listen |
| Ereignisgesteuert | Ja (REQ/CNF) | Nein (reine Funktion) |
| Ausgabetyp | REAL |
Meist REAL oder LREAL |
| Überlaufschutz | Summe als DINT |
Abhängig von Implementierung |
Der vorliegende Baustein kombiniert die IEC‑61499 Ereignissteuerung mit der kompakten Logik eines IEC‑61131-3 Durchschnittsbausteins und eignet sich daher besonders für verteilte Automatisierungssysteme.
Fazit¶
Der FB AVG bietet eine einfache und effiziente Möglichkeit, den Durchschnitt eines ganzzahligen Arrays in Echtzeit zu berechnen. Seine dynamische Array-Unterstützung und die klare Ereignisschnittstelle machen ihn zu einem universellen Werkzeug für Mittelwertbildungen in industriellen Steuerungsanwendungen. Die saubere Integration in die 4diac-IDE und die transparente Berechnungslogik gewährleisten eine hohe Wiederverwendbarkeit und Verständlichkeit.