使用 BCM0003 检测轴承故障
1. 概念和故障频率
为什么使用包络谱进行分析?
在检测轴承早期故障的应用中,我们使用包络谱进行分析,但在此之前,我们先来看看配置,为什么我们使用包络谱而不是频带分析?
包络法可以隔离其他频段,只分析特定频率,信号更清晰(无噪声),这对监测轴承非常有利。因此,我们使用包络法。
故障频率
要配置新的 BCM 传感器,我们首先需要知道要监测哪个频率,为此,我们可以了解轴承分析的基本概念。为了检测早期轴承故障,我们需要计算以下频率:
- BPFO(Ball Pass Frequency Outer)或外圈故障频率。物理上对应于轴转一圈时通过外圈特定点的滚珠或滚子的数量。
- BPFI(内滚珠通过频率)或内滚道故障频率。物理上对应于每次转轴转完一圈时通过内滚道某点的滚珠或滚子的数量。
- BSF(滚珠旋转频率)或滚动体故障频率。物理上对应于轴承滚珠或滚子在轴每转一圈时所转过的圈数。
计算方法有两种,第一种是用数学公式计算:
或者,我们可以使用轴承的制造信息,例如,对于 30206 SKF 轴承,SKF 提供了故障频率计算器。
我们需要输入转速进行计算,在本例中,我们使用 60 RPM (1Hz),因为该值是频率系数(始终为 1 Hz)。
参考:SKF 产品选择 (skfbearingselect.com)
现在,我们有了轴承 30206 的频率故障因数,但在配置传感器之前,我们需要创建每个频率因数的窗口,该窗口应从 +- 2% 到 +-5%,所以
- BPFI:9.897
- 下限频带 1:9.40 (-5%)
- 上限带 1:10.39 (+5%)
- BPFO: 7.103
- 下限频段 2: 6.75 (-5%)
- 上限频段 2: 7.46 (+5%)
- BSF: 5.791
- 3 级下限:5.50 (-5%)
- 第 3 组上限:6.08 (+5%)
这样,我们就可以启动传感器配置了。
2. 使用 IODD 文件配置传感器
配置过程数据配置文件
我们使用自定义的过程数据配置文件来选择要读取的包络谱带。每个频段的包络线都是之前计算的参数之一:
包络谱配置
在该参数中,我们将配置包络特性。
包络谱配置范围越小,频率分辨率就越低,但由于我们需要监测高频,因此将其设置为 6000。
在包络谱配置平均值中,我们设置为 1。
在包络谱配置带宽下限和上限中,我们设置为只分析高频振动。
包络谱带模式
在该参数中,我们有两个选项:使用绝对频带限值(当使用固定频带限值时)或将转速乘 数与接收到的转速值一起使用(当使用频率因子时)。因此,我们配置为转速乘数与接收到的转速值一起使用。
包络频谱转速乘数
在该参数中,我们输入之前计算出的频率因数窗口(BPFI、BPFO 和 BSF)。如果使用绝对频带限值模式,则无需配置此参数,只需在上一个参数(包络频谱绝对频带限值)中输入频带限值即可。
转速处理
使用转速乘法器时,我们需要配置转速参数。在 RPM 配置 RPM 输入源中,我们有三个选项:
- 通过 ISDU 接收的静态转速(当发动机转速为静态时):在下一个参数中输入转速值:RPM 配置 RPM 静态。
- 通过过程数据输出接收的动态转速(当发动机转速变化时):可以通过过程数据输出从 PLC 输入转速值。
- 通过 PIN2 数字信号接收动态转速(当发动机转速变化且您没有该值时):可以使用一个传感器(光学、电感、磁性......)来检测发动机的每一次转动,传感器会自动计算转速(需要配置一个转速配置 RPM Divider 和 PIN2 功能到 RPM 输入)。
在这种情况下,我们使用通过 ISDU 接收的静态转速。
完成传感器配置后,我们将在 CMTK 的 Node-RED 上读取这些值。
3. 使用 Node-RED 在 CMTK 读取传感器过程数据值
我们创建了一个用于读取过程数据的 MQTT 节点,要处理传感器的数据,首先需要将每个字节的数据进行分离,因为 Slot 包含 3 个波段和刻度:
为此,我们在 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;
返回 msg.payload.ZBand2
使用该函数后,我们得到了每个字节的数据。但刻度是 INT8 数据类型(符号值),因此需要将该值转换为符号 8 字节。为此,我们在 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;
如果 (Yorigin & 0x80) {
msg.payload.Yorigin = ((~Yorigin & 0xFF) + 1 );
} else {
msg.payload.Yorigin = Yorigin;
}
var Zorigin = msg.payload.ZScaler;
如果 (Zorigin & 0x80) {
msg.payload.Zorigin = ((~Zorigin & 0xFF) + 1 );
} else {
msg.payload.Zorigin = Zorigin;
}
return msg.payload.Zorigin = Zorigin; }
之后,我们需要在节点 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;
返回 msg.payload.ZBand3
现在我们得到了三个轴的 BPFO、BPFI 和 BSF 值。
4. 节点-红色仪表板的可视化值
为了在 Dashboard 上可视化这些值,我们需要在 Node-RED 上安装一个 "node-red-dashboard "托板。
之后,我们为任何参数创建了几个 Gauge 节点:
要打开仪表盘,我们将 Node-RED URL 地址添加到"/ui "中。在我们的示例中是http://192.168.10.1:50001/ui
下面是图表: