Login

Please login for your specific price calculation.

Forgot Password?

Always stay up to date

With our e-mailings you will receive regular information about products, events, services and Balluff.

REGISTER AS A COMPANY

We will check whether you already have a customer number with us in order to link your new online account with it.

Register
Products
Service & Support
Industries & Solutions
Company
Version 1.0
·
Last edited on 2024-09-25

Bearing failure detection with BCM0003

1. Concept and failing frequencies

Why use Envelope Spectrum for analysis?

For applications to detect early bearing failures we use the Envelope Spectrum for analysis, but before we will see the configuration, why we use the Envelope rather than Spectrum Band Analysis?

The envelope method isolates the other frequency bands for only analysis the specific frequency, this signal is clearer (without noises), and this is so good for monitoring Bearings. Because this, we use the envelope method.

 

Failing Frequencies

For configure the new BCM sensor, first we need know which frequency will go monitoring, for this, we can know the basics concept about Bearing Analysis. For we detect the early bearing faults, we need to calculate the following frequencies:

 

  • BPFO (Ball Pass Frequency Outer) or outer race failing frequency. Corresponds physically to the number of balls or rollers that pass-through a given point of the outer race each time the shaft makes a complete turn.
  • BPFI (Ball Pass Frequency Inner) or inner race failing frequency. Corresponds physically to the number of balls or rollers that pass-through a given point of the inner track each time the shaft makes a complete turn.
  • BSF (Ball Spin Frequency) or rolling element failing frequency. Corresponds physically to the number of turns that a bearing ball or roller makes each time the shaft makes a complete turn.

For to calculate this, we have two options, the first, we can calculate with a mathematical formula:

 

Reference: Rolling element bearing components and failing frequencies | Power-MI

 

Or, we can use the manufactoring information about the bearing, for exemple, to 30206 SKF Bearing, the SKF provides a Calculator Frequency Fault.

We need to input the RPM for calculate, in this case we use the 60 RPM (1Hz), because this value is a Frequency Factor (always refer to 1 Hz).

 

Reference: SKF Product select (skfbearingselect.com)

 

Now, we have the Frequency Fault Factor for the Bearing 30206, but, before we configure the sensor, we need to create the windows of each frequency factor, this window should be from +- 2% to +-5%, so:

  • BPFI: 9.897
    • Lower Limit Band 1: 9.40 (-5%)
    • Upper Limit Band 1: 10.39 (+5%)

 

  • BPFO: 7.103
    • Lower Limit Band 2: 6.75 (-5%)
    • Upper Limit Band 2: 7.46 (+5%)

 

  • BSF: 5.791
    • Lower Limit Band 3: 5.50 (-5%)
    • Upper Limit Band 3: 6.08 (+5%)

 

So, we can initiate the sensor configuration.

2. Configuring the sensor with IODD file

Configure the Process Data Profile

We use the custom Process Data Profile, for we choose the Envelope Spectrum Band to read. Each band’s envelope is one of parameters calculated previously:

 

 

Envelope Spectrum Configuration

In this parameter, we will configure the Envelope Characteristics.

The smaller the Envelope Spectrum Configuration Range, the lower the frequency resolution, however, for bearings we need to monitor high frequencies, so we set it to 6000.

In the Envelope Spectrum Configuration Averaging, we configured to 1.

And in the Envelope Spectrum Configuration Lower and Upper Bandwidth Limit, we configured for only analysis the High Frequency Vibration.

 

 

Envelope Spectrum Band Mode

In this Parameter we have two options, Absolute Band Limits are used (when use a fixed band limit) or Rotational Speed Multipliers are used together with the received rotational speed values (when use the Frequency Factor). So, we configured to: Rotational Speed Multipliers are used together with the received rotational speed values.

 

 

Envelope Spectrum Rotational Speed Multipliers

At this parameter we input the Frequency Factor Windows what calculated previously (BPFI, BPFO and BSF). If you use the Absolute Band Limits mode, you don’t need to configure this parameter, you only input the Band Limits at the previous parameter (Envelope Spectrum Absolute Band Limits).

 

 

RPM handling

When use the Rotational Speed Multipliers, we need to configure the RPM parameters. In RPM Configuration RPM Input Source we have three options:

  • Static RPM received via ISDU (when the engine RPM are static): You input the RPM value in the next parameter: RPM Configuration RPM static.
  • Dynamic RPM received via Process Data Output (when the engine RPM varies): You can input the RPM value from PLC via Process Data Out.
  • Dynamic RPM received via PIN2 digital signal (when the engine RPM varies, and you don’t have the value): You can use one sensor (optical, inductive, magnetic…) to detect each turn of the engine and the sensor automatically calculate the RPM (its need to configure a RPM Configuration RPM Divider and PIN2 Function to RPM Input).

In this case we use how a Static RPM received via ISDU.

 

 

We finish the sensor configuration, and now, we will read these values at Node-RED on CMTK.

3. Reading the sensor process data values at CMTK with a Node-RED

We created a MQTT node for read the process data, to treat the data of sensor it is necessary first the separate each byte of the dada, because the Slot contain the 3 bands plus scale:

 

 

For this, we created a function in nodeRED:

 

var mensagem = msg.payload["Slot 1"];

 

var XBand1 = (mensagem >> 24) & 0xFF;

var XBand2 = (mensagem >> 16) & 0xFF;

var XBand3 = (mensagem >> 8) & 0xFF;

var XScaler = mensagem & 0xFF;

 

msg.payload.XBand1 = XBand1;

msg.payload.XBand2 = XBand2;

msg.payload.XBand3 = XBand3;

msg.payload.XScaler = XScaler;

 

var Ymensagem = msg.payload["Slot 2"];

 

var YBand1 = (Ymensagem >> 24) & 0xFF;

var YBand2 = (Ymensagem >> 16) & 0xFF;

var YBand3 = (Ymensagem >> 8) & 0xFF;

var YScaler = Ymensagem & 0xFF;

 

msg.payload.YBand1 = YBand1;

msg.payload.YBand2 = YBand2;

msg.payload.YBand3 = YBand3;

msg.payload.YScaler = YScaler;

 

var Zmensagem = msg.payload["Slot 3"];

 

var ZBand1 = (Zmensagem >> 24) & 0xFF;

var ZBand2 = (Zmensagem >> 16) & 0xFF;

var ZBand3 = (Zmensagem >> 8) & 0xFF;

var ZScaler = Zmensagem & 0xFF;

 

msg.payload.ZBand1 = ZBand1;

msg.payload.ZBand2 = ZBand2;

msg.payload.ZBand3 = ZBand3;

msg.payload.ZScaler = ZScaler;

 

return msg;

 

After this function we have each byte of data. But the Scale is a INT8 data type (sign value), so, is needed to convert this value to a sign 8bytes. For this we created a function in node-RED:

 

var Xorigin = msg.payload.XScaler;

 

if (Xorigin & 0x80) {

 

   msg.payload.Xorigin = ((~Xorigin & 0xFF) + 1 );

 

} else {

   

    msg.payload.Xorigin = Xorigin;

 

}

 

var Yorigin = msg.payload.YScaler;

 

if (Yorigin & 0x80) {

 

   msg.payload.Yorigin = ((~Yorigin & 0xFF) + 1 );

 

} else {

   

    msg.payload.Yorigin = Yorigin;

 

}

 

var Zorigin = msg.payload.ZScaler;

 

if (Zorigin & 0x80) {

 

   msg.payload.Zorigin = ((~Zorigin & 0xFF) + 1 );

 

} else {

   

    msg.payload.Zorigin = Zorigin;

 

}

 

return msg;

 

After this, we need to apply the scale doing the follow mathematical formula with another function at node-RED:

 

 

var XBPFO = msg.payload.XBand1 / (10**(msg.payload.Xorigin));

msg.payload.XBPFO = XBPFO;

 

var XBPFI = msg.payload.XBand2 / (10**(msg.payload.Xorigin));

msg.payload.XBPFI = XBPFI;

 

var XBPF = msg.payload.XBand3 / (10**(msg.payload.Xorigin));

msg.payload.XBPF = XBPF;

 

var YBPFO = msg.payload.YBand1 / (10**(msg.payload.Yorigin));

msg.payload.YBPFO = YBPFO;

 

var YBPFI = msg.payload.YBand2 / (10**(msg.payload.Yorigin));

msg.payload.YBPFI = YBPFI;

 

var YBPF = msg.payload.YBand3 / (10**(msg.payload.Yorigin));

msg.payload.YBPF = YBPF;

 

var ZBPFO = msg.payload.ZBand1 / (10**(msg.payload.Zorigin));

msg.payload.ZBPFO = ZBPFO;

 

var ZBPFI = msg.payload.ZBand2 / (10**(msg.payload.Zorigin));

msg.payload.ZBPFI = ZBPFI;

 

var ZBPF = msg.payload.ZBand3 / (10**(msg.payload.Zorigin));

msg.payload.ZBPF = ZBPF;

 

return msg;

 

Now we have the BPFO, BPFI and BSF values of the three axes.

 

4. Visualization values at Node-Red Dashboard

To visualization these values at Dashboard, we needed install a “node-red-dashboard” pallet on the Node-RED.

After this, we created a few Gauge-Node to any parameter:

 

 

 

 

To open the dashboard, we put the Node-RED URL address addin "/ui" to it. In our example is http://192.168.10.1:50001/ui

 

Here are the graphics:

Energy consumption labeling
Energy consumption labeling

EPREL - European Product Database for Energy Labeling

Free sample product

In order to add a free sample product to the cart we will need to remove all the normal products from the cart. Are you sure you want to continue