FB_BA_TiAvrg
Mittelwertbildung über ein Zeitintervall
Funktionsbeschreibung
Der Funktionsbaustein FB_BA_TiAvrg errechnet den zeitlich arithmetischen Mittelwert eines aufgenommenen Analogwerts. Dazu werden zeitlich diskret Werte in einen FIFO-Speicher hineingeschrieben. udiIntval gibt das Zeitintervall [s] an, in dem die Werte aufgenommen und in den FIFO geschrieben werden. Das Schreiben der Werte erfolgt jedoch nur wenn der Eingang bEnAvrg = TRUE ist. Mit der Variablen udiNumOfElem wird die größer des FIFO-Speichers bestimmt. Diese ist auf 1..256 begrenzt. Bei einem Eintrag außerhalb dieser Grenzen wird die Anzahl automatisch auf einen Defaultwert von 48 gesetzt. Die tatsächliche Anzahl wird zur Kontrolle am Ausgang udiStaNumOfElem ausgegeben.
Der Funktionsbaustein kann zum Beispiel für die Berechnung einer mittleren Außentemperatur im stündlichen Tagesmittel verwendet werden. In dem Fall wäre udiNumOfElem = 24 und udiIntval = 3600 Sekunden. bEn ist die allgemeine Freigabe des Funktionsbausteins. Bei bEn = FALSE wird der FIFO-Speicher innerhalb des Funktionsbaustein komplett gelöscht und es werden keine Daten aufgezeichnet.
Beispiel:
udiNumOfElem = 5
Der rosa eingefärbte Bereich kennzeichnet die Phase, in der bEnAvrg auf FALSE gesetzt ist. Es werden keine Werte in den FIFO geschrieben und der Ausgangswert lrOut gehalten.
| 1. Zyklus | 2. Zyklus | 3. Zyklus | 4. Zyklus | ||||
---|---|---|---|---|---|---|---|---|
| lrIn | lrOut | lrIn | lrOut | lrIn | lrOut | lrIn | lrOut |
t0 | 2 | 2/1 = 2 | 6 | (4+6+7+7+6)/5 = 6 | 1 | (7+6+5+4+1)/5 = 4.6 | 3 | lrIn = 3 |
t1 | 4 | (2+4)/2 = 3 | 5 | (6+7+7+6+5)/5 = 6.25 | 2 | (6+5+4+1+2)/5 = 3.6 | 1.5 | lrIn = 1.5 |
t2 | 6 | (2+4+6)/3 = 4 | 4 | (7+7+6+5+4)/5 = 5.8 | 4 | (5+4+1+2+4)/5 = 3.2 |
|
|
t3 | 7 | (2+4+6+7)/4 = 4.75 | 2 | (7+7+6+5+4)/5 =5.8 | 5 | (4+1+2+4+5)/5 = 3.2 |
|
|
t4 | 7 | (2+4+6+7+7)/5 = 5.2 | 1 | (7+7+6+5+4)/5 =5.8 | 4 | (1+2+4+5+4)/5 = 3,2 |
|
|
Ein-/Ausgänge
VAR_INPUT
bEn : BOOL;
bEnAvrg : BOOL;
lrIn : LREAL;
udiIntval : UDINT;
udiNumOfElem : UDINT;
bEn: Freigabe des Bausteins
bEnAvrg: Freigabe der Mittelwertbildung, bEnAvrg = TRUE zeichnet auf, bei bEnAvrg = FALSE bleibt der errechnete Wert am Ausgang.
lrIn: Eingangswert zur Mittelwertbildung
udiIntVal: Zeitintervall [s] für das Schreiben neuer Werte in den FIFO
udiNumOfElem: Größe des FIFO-Wertespeichers. Eine Änderung setzt die vorangegangene Mittelwertbildung zurück. Die Anzahl der Werte ist auf 1..256 automatisch begrenzt.
VAR_OUTPUT
lrOut : LREAL;
lrMax : LREAL;
lrMin : LREAL;
udiStaNumOfElem : UDINT;
lrOut: Mittelwert
lrMax: größter Wert im FIFO-Speicher
lrMin: kleinster Wert im FIFO-Speicher
udiStaNumOfElem: Anzahl der Einträge im Speicher
Voraussetzungen
Entwicklungsumgebung | Zielsystem | erforderliche Bibliothek | erforderliches Supplement |
---|---|---|---|
TwinCAT 2.11 R3/x64 | PC/CX | TcBA-Bibliothek ab V1.0.0 | TS8040 | TwinCAT Building Automation ab V1.0.0 |