MC_AxUtiAverageDerivative_BkPlcMc (ab V3.0)
Der Funktionsbaustein ermittelt die Ableitung eines Wertes durch numerische Differentiation über mehr als einen Zyklus.
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. |
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. |
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.
Der Wertevorrat für die Mittelwertbildung umfasst (MaxIdx - MinIdx + 1) Werte. Die Messzeit 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 Messzeit. 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. |