Vibration assessment according to ISO 10816-3 (compact)
Vibration assessment based on ISO 10816-3 is explained in more detail in section Application concepts, see Vibration assessment. The classification takes place via the function block FB_CMA_VibrationAssessment.
The sample is available for download from here: VibrationAssessment_Sample.zip
An alternative implementation can be found in the sample Vibration assessment according to ISO 10816-3 and in the sample Vibration assessment according to ISO 10816-3 (extended).
Block diagram
Program parameters
The table below shows a list of important parameters for the configuration of the function blocks that are used.
Buffer size | 800 |
Channels | 2 |
FFT length | 2048 |
Window size | 1600 |
Sampling rate | 10000 |
Number of frequency bands | 2 |
Lower frequency bound | [10, 200] |
Upper frequency bound | [1000, 2000] |
Order (RMS) | 2 |
Window type | eCM_HannWindow |
Conversion to decibels | FALSE |
Configuration
The speed and deflection of the measured data are used for the machine monitoring according to ISO 10816-3. A classification on the basis of the acceleration data does not take place. For this reason the classification is implicitly deactivated by setting the limit values to a sufficiently high value (see GVL_Constants
):
cISOClassDef_Vibration : ARRAY[1..cMaxClasses] OF LREAL := [1E6, 1E6, 1E6];
cISOClassDef_Velocity : ARRAY[1..cMaxClasses] OF LREAL := [2.3E-3, 4.5E-3, 7.1E-3];
cISOClassDef_Displ : ARRAY[1..cMaxClasses] OF LREAL := [29E-6, 57E-6, 90E-6];
Evaluation
The definition of the classification on the basis of ISO 10816-3, based on the speed and deflection for all channels, takes place in the control task. If a new result is available, it is evaluated as follows:
IF bCalculate THEN
// Highscore in classification according to ISO 10816-3.
ISO_10816_HighscoreClass := aVAResult[ISO_10816_nSelectedBand][1]; // class
ISO_10816_HighscoreOrder := aVAResult[ISO_10816_nSelectedBand][2]; // order
ISO_10816_HighscoreChannel := aVAResult[ISO_10816_nSelectedBand][3]; // channel
IF NOT (ISO_10816_HighscoreClass = E_IsoClass.Error) THEN
nCountResults := fbSink.nCntResults;
// ToDo: if succeeded
ELSE
// ToDo: if error; RMS result is NaN. Code here what to do.
END_IF
END_IF
The result data aVAResult
contain the following information for all configured frequency bands:
ISO_10816_HighscoreClass
: The classification (A-D
) of the machine state on the basis of the configured limit values.ISO_10816_HighscoreOrder
: The integration order for the calculated evaluation, i.e.0
for the acceleration,1
for the speed and2
for the deflection.ISO_10816_HighscoreChannel
: The basic channel for the calculated evaluation.
In this sample, the frequency band for the evaluation is selected via the variable ISO_10816_nSelectedBand
.
Memory property
The memory property of the algorithm can be changed via the initial parameter bMemorize
. If the parameter is set to TRUE
, the highest classification is not overwritten again by a lower evaluation until the method ResetData()
is called. Compare the behavior of the function block FB_CMA_WatchUpperThresholds here.
Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT v3.1.4022.25 | PC or CX (x86, x64) | Tc3_CM, Tc3_CM_Base |
Limited functional scope already available with CM 3.1. See section Compatibility. |