FB_BA_TiAvrg

Mittelwertbildung über ein Zeitintervall

FB_BA_TiAvrg 1:

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

 

 

FB_BA_TiAvrg 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