MC_AxUtiSlidingAverage_BkPlcMc (ab V3.0)
Der Funktionsbaustein ermittelt einen gleitenden Mittelwert.
Eingänge
VAR_INPUT
Input: LREAL:=0.0;
MinIdx: DINT:=0;
MaxIdx: DINT:=0;
pBuffer: POINTER TO LREAL:=0;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Input | LREAL | Der Roh-Wert der zu filternden Größe. |
MinIdx | DINT | Der Index des ersten zu verwendenden Elements des Filterpuffers. |
MaxIdx | DINT | Der Index des letzten zu verwendenden Elements des Filterpuffers. |
pBuffer | POINTER | Die Adresse des ersten Elements des Filterpuffers. |
Ausgänge
VAR_OUTPUT
Output: LREAL:=0.0;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Output | LREAL | Output: Der gefilterte Wert. |
Verhalten des Bausteins
Bei jedem Aufruf überprüft der Baustein die Adresse des Filterpuffers pBuffer und die Indices der zu verwendenden Elemente MinIdx und MaxIdx. Sind die übergebenen Werte erkennbar unsinnig wird Input als Output ausgegeben. Andernfalls wird bei jedem Aufruf Input in den Filterpuffer eingetragen und der Mittelwert über den im Puffer verfügbaren Wertevorrat gebildet und als Output zurückgegeben.
Der Wertevorrat für die Mittelwertbildung umfasst (MaxIdx - MinIdx + 1) Werte. Die Filterzeit ergibt sich durch Multiplikation dieser Anzahl mit der Zykluszeit. |
Das Prinzip der gleitenden Mittelwertbildung führt zu einer Verzögerung in Höhe der halben Filterzeit. Wird die gefilterte Größe in einem Regelkreis verwendet kann die dadurch verursachte frequenzabhängige Phasenverschiebung Einschränkungen bei der Parameterwahl verursachen. |
Der Baustein hat keine Möglichkeit, die übergebenen Werte von pBuffer, MinIdx und MaxIdx vollständig zu überprüfen. Es ist besonders darauf zu achten, dass diese Werte gefahrlos verwendet werden können. Andernfalls kann es zu nicht vorhersagbarem Verhalten (Überschreiben von Speicher) oder zum Abbrechen des PLC-Betriebs kommen. |