MC_AxUtiAverageDerivative_BkPlcMc (ab V3.0)

MC_AxUtiAverageDerivative_BkPlcMc (ab V3.0) 1:

Der Funktionsbaustein ermittelt die Ableitung eines Wertes durch numerische Differentiation über mehr als einen Zyklus.

MC_AxUtiAverageDerivative_BkPlcMc (ab V3.0) 2: 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.

MC_AxUtiAverageDerivative_BkPlcMc (ab V3.0) 3: Ein-/Ausgänge

VAR_INOUT
    Axis:       Axis_Ref_BkPlcMc;
END_VAR

Name

Typ

Beschreibung

Axis

Axis_Ref_BkPlcMc

Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben.

MC_AxUtiAverageDerivative_BkPlcMc (ab V3.0) 4: Ausgänge

VAR_OUTPUT
    Output:     LREAL:=0.0;
    Error:      BOOL:=FALSE;
    ErrorID:    UDINT:=0;
END_VAR

Name

Typ

Beschreibung

Output

LREAL

Der gefilterte Wert.

Error

BOOL

Dieser Ausgang signalisiert Probleme mit den übergebenen Parametern.

ErrorID

UDINT

Im Fehlerfall wird hier eine kodierte Information über die Art des Problems gemeldet.

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 mit Error und einer kodierten Information in ErrorID reagiert. Andernfalls wird bei jedem Aufruf Input in den Filterpuffer eingetragen und der Mittelwert der Änderung über den im Puffer verfügbaren Wertevorrat gebildet und als Output zurückgegeben.

MC_AxUtiAverageDerivative_BkPlcMc (ab V3.0) 5:

Der Wertevorrat für die Mittelwertbildung umfasst (MaxIdx - MinIdx + 1) Werte. Die Messzeit ergibt sich durch Multiplikation dieser Anzahl mit der Zykluszeit.

MC_AxUtiAverageDerivative_BkPlcMc (ab V3.0) 6:

Das Prinzip der gleitenden Mittelwertbildung führt zu einer Verzögerung in Höhe der halben Messzeit. Wird die gefilterte Größe in einem Regelkreis verwendet kann die dadurch verursachte frequenzabhängige Phasenverschiebung Einschränkungen bei der Parameterwahl verursachen.

MC_AxUtiAverageDerivative_BkPlcMc (ab V3.0) 7:

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.