ST_CM_VibrationAssessment_InitPars
Baustein-spezifische Struktur mit Initialisierungsparametern, die bei der Initialisierung des Bausteins ausgewertet werden.
TYPE ST_CM_VibrationAssessment_InitPars EXTENDS ST_CM_Object_InitPars :
STRUCT
nFFT_Length : UDINT := 512; (* Length of FFT. *)
nWindowLength : UDINT := 400; (* Length of analysis window. *)
fSampleRate : LREAL := 20000; (* Sample rate in Hertz. *)
nChannels : UDINT := 2; (* Number of channels. *)
nOrder : UDINT := 2; (* Maximum order of integration: 0 = acceleration, 1 = velocity, 2 = place. *)
nMaxBands : UDINT := 1; (* Maximum number of frequency bands. *)
nMaxClasses : UDINT := 3; (* Number of configurable threshold classes. *)
bMemorize : BOOL :=TRUE; (* Flag if results are memorized. *)
eWindowType : E_CM_WindowType := eCM_HannWindow; (* Window type. *)
aWindowParameters : T_CM_WindowParameters := [2.5,1,1,1,1]; (* Window parameters for specific windows, e.g. FlatTop. *)
nOverlap : UDINT := -1; (* Size of overlap in samples. *)
bTransformToDecibel : BOOL := TRUE; (* Transform to decibel. *)
fDecibelThreshold : LREAL := cCM_MinArgLog10; (* Minimum argument of decadic logarithm for 64- bit IEEE 754 arithmetic. *)
END_STRUCT
END_TYPE
nFFT_Length
ist die Länge der FFT. Sie muss größer als Eins und eine ganzzahlige Potenz von Zwei sein.nWindowLength
ist die Länge des Analysefensters in Samples. Die Länge muss größer als Eins und eine gerade Zahl sein.fSampleRate
Abtastrate des eingehenden Zeitsignals. Der Wert wird genutzt zur Skalierung des Ergebnisses in Hz.nChannels
definiert die Anzahl von unabhängigen Kanälen. Diese muss größer als Null sein.nOrder
ist die maximale Ordnung der Integration. Dies muss eine ganze Zahl zwischen Null und Zwei sein. Die Zahl der ermittelten Werte pro Kanal ist (nOrder+1).nMaxBands
gibt die maximale Anzahl an Frequenzbändern an, für die der RMS-Wert berechnet wird.nMaxClasses
ist die maximale Zahl der Klassen, die konfiguriert werden. Diese muss mindestens Eins sein.bMemorize
ist eine boolesche Variable. Wenn sie den WertFALSE
hat, berechnet der Baustein die Nummer der höchsten Kategorie und des entsprechenden Kanals bei jedem Schritt neu. Wenn der WertTRUE
ist, werden die Ergebniswerte bei Überschreitung eines Grenzwerts so lange gespeichert, bis die ResetData()-Methode ausgeführt wird oder ein Kanal eine höhere Kategorie erreicht. Standardmäßig ist der WertTRUE.
eWindowType
definiert die verwendete Fensterfunktion (vom Typ E_CM_WindowType). Ein guter Standardwert ist der FenstertypeCM_HannWindow
.aWindowParameters
beinhaltet die freien Parameter ausgewählter Fensterfunktionen. Bei der Verwendung voneCM_KaiserWindow
definiert der erste Eintrag den Parameter beta; wird daseCM_FlatTopWindow
verwendet, werden alle Parameter genutzt. Siehe Abschnitt Fensterfunktionen.nOverlap
definiert die Anzahl der überlappenden Samples. Diese muss größer oder gleich Null sein. Wird der WertcCM_OverlapRecommended
gewählt, so wird eine empfohlene Überlappung intern berechnet (siehe F_CM_CalculateRecommendedOverlap); der WertcCM_OverlapInactive
deaktiviert den intern verwendeten Puffer und setzt den Wert Null.bTransformToDecibel
ist ein boolescher Wert, der angibt, ob das Ergebnis der FFT in die Dezibel-Skala transformiert werden soll, entsprechend der Transformation x → 20 * log10(x).fDecibelThreshold
ist ein sehr kleiner Fließkommawert größer als Null. Werte, die kleiner als diese Zahl sind, werden vor einer Transformation in die Dezibel-Skala durch diesen Wert ersetzt. (Zweck ist die Vermeidung von Wertbereichsfehlern. Der Logarithmus von Null ist nicht definiert und strebt für den Grenzwert kleiner Argumente gegen minus unendlich. Entsprechendes gilt für das Argument der Zahl Null, arg(0). Der kleinste mögliche Wert ist 2.3e-308, dies entspricht der KonstantencCM_MinArgLog10
.)
Fensterlänge beachten Der Wert von |
Wenn nFFT_Length
größer ist als nWindowLength
, wird die Frequenzauflösung der FFT (und damit auch die Länge des Vektors der Rückgabewerte) vergrößert. Die Differenz der Länge wird vor der Fouriertransformation mit Nullen aufgefüllt. Dies kann sinnvoll sein, um eine höhere Frequenzauflösung zu erreichen oder, z.B. bei der Berechnung mit Rücktransformation in den Zeitbereich, zirkuläres Aliasing zu vermeiden. Das Ergebnis enthält trotz der höheren Frequenzauflösung allerdings nicht mehr Information.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4022.25 | PC or CX (x86, x64) | Tc3_CM_Base |