add rb defs

main
aleksey_k 2023-11-26 17:50:07 +09:00
parent 9f39f90c35
commit 9e6a9dc78a
13 changed files with 418 additions and 66 deletions

View File

@ -1,27 +0,0 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function vk() {
var spen_BPFI2 = spen.add_harms_set(imp.BPFI(), spen.frequency / imp.BPFI(), 0xff990090, 1); //раковины на внутреннем кольце "фиолетовый"
for (let i = 0; i <= 2; i++) { spen_BPFI2.harms[i].tolerance = (1 + i) * imp.BPFI() * imp.tolerance() };
spen_BPFI2.name = 'Раковины на внутреннем кольце';
var Defect = false;
//биение вала
if (
spen.harms_sets[indx].get_count(0, 1) >= 1
) {
Defect = true;
for (let i = 0; i <= 2; i++) {
if (spen_BPFI2.harms[i].is_present == true)
gtl.log.info("Раковины на внутреннем кольце. Признаки в ES " + (i + 1) + "Fв +/- Fвр", imp.deep_factor(spen_BPFI2.harms[i].amplitude, spen_BPFI2.harms[i].base));
}
}
else
gtl.log.info("Раковины на внутреннем кольце", "Признаков дефекта не обнаружено");
return Defect;
};
indx = idnx + 1;

View File

@ -1,33 +0,0 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function val() {
var spen_f0 = spen.add_harms_set(imp.FREQ(), 10, 0xff0000f0, 1); //биение вала - "синий"
for (let i = 0; i <= 9; i++) { spen_f0.harms[i].tolerance = (1 + i) * imp.FREQ() * imp.tolerance() }; //коридор обнаружения гармоник
spen_f0.name = 'Биение вала';
var Defect = false;
//биение вала
if (
spen.harms_sets[indx].get_count(0, 2) >= 1 && spen.harms_sets[0].get_count(0, 2) <= 10 &&
ausp.harms_sets[indx].get_count(0, 2) >= 0 && harms_sets[0].get_count(0, 2) <= 10
) {
Defect = true;
for (let i = 0; i <= 9; i++) {
if (spen_f0.harms[i].is_present == true)
gtl.log.info("Биение вала. Признаки в ES " + (i + 1) + "Fвр", imp.deep_factor(rb.spen_f0.harms[i].amplitude, rb.spen_f0.harms[i].base));
}
for (let i = 0; i <= 9; i++) {
if (ausp_f0.harms[i].is_present == true)
gtl.log.info("Биение вала. Признаки в AS " + (i + 1) + "Fвр", ausp_f0.harms[i].amplitude);
}
}
else
gtl.log.info("Биение вала", "Признаков дефекта не обнаружено");
return Defect;
};
indx = indx + 1;

View File

@ -0,0 +1,52 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
let frq = imp.BPFI(); //функциональная чатота
let num = 5; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_BPFI2 = spen.add_harms_set(frq, num, 0xff990090, 1); //раковины на внутреннем кольце "фиолетовый"
for (let i = 0; i <= num - 1; i++) { spen_BPFI2.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
spen_BPFI2.name = 'Раковины на внутреннем кольце';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
spen.harms_sets[6].modulate(imp.FREQ(), 2, 0xff923090, 1); //модуляция Fв +/- Fвр "фиолетовый"
var ausp_BPFI2 = ausp.add_harms_set(frq, num, 0xff990090, 2); //раковины на внутреннем кольце "фиолетовый"
for (let i = 0; i <= num - 1; i++) { ausp_BPFI2.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
ausp_BPFI2.name = 'Раковины на внутреннем кольце';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
ausp.harms_sets[2].modulate(imp.FREQ(), 2, 0xff923090, 1); //модуляция Fв +/- Fвр "фиолетовый"
var Defect = false;
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//раковины на внутреннем кольце
if (
spen.harms_sets[6].get_count(0, 0, 1) >= 3 &&
ausp.harms_sets[2].get_count(0, 1, 1) >= 3
) {
Defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_BPFI2.harms[i].is_present == true)
gtl.log.info("Раковины на внутреннем кольце. Признаки в ES " + (i + 1) + "Fв +/- Fвр", imp.mod_factor(spen_BPFI2.harms[i].amplitude, spen_BPFI2.harms[i].base));
}
for (let i = 0; i <= num - 1; i++) {
if (ausp_BPFI2.harms[i].is_present == true)
gtl.log.info("Раковины на внутреннем кольце. Признаки в AS " + (i + 1) + "Fв +/- Fвр", ausp_BPFI2.harms[i].amplitude);
}
}
else
gtl.log.info("Раковины на внутреннем кольце", "Признаков дефекта не обнаружено");
return Defect;
};

View File

@ -0,0 +1,36 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
let frq = imp.FREQ(); //функциональная чатота
let num = 10; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_f1 = spen.add_harms_set(frq, num, 0xff009ff0, 2); //неоднородный радиальный натяг "голубой"
for (let i = 0; i <= num - 1; i++) { spen_f1.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
spen_f1.name = 'Неоднородный радиальный натяг';
var Defect = false;
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//неоднородный радиальный натяг
if (spen.harms_sets[1].get_count(0) >= 1 && spen.harms_sets[1].get_count(0) <= 5) {
Defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_f1.harms[i].is_present == true)
gtl.log.info("Неоднородный радиальный натяг. Признаки в ES " + (i + 1) + "Fвр[x2]", imp.mod_factor(spen_f1.harms[i].amplitude, spen_f1.harms[i].base));
}
}
else
gtl.log.info("Неоднородный радиальный натяг", "Признаков дефекта не обнаружено");
return Defect;
};

View File

@ -0,0 +1,36 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
let frq = imp.FREQ(); //функциональная чатота
let num = 5; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_BPFI0 = spen.add_harms_set(frq, num, 0xff0000f0, 1); //износ дорожки качения внутреннего кольца "синий"
for (let i = 0; i <= num - 1; i++) { spen_BPFI0.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
spen_BPFI0.name = 'Износ внутреннего кольца';
var Defect = false;
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//износ дорожки качения внутреннего кольца
if (spen.harms_sets[5].get_count(0, 1) >= 1 && spen.harms_sets[5].get_count(0, 1) <= 2) {
Defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_BPFI0.harms[i].is_present == true)
gtl.log.info("Износ внутреннего кольца. Признаки в ES " + (i + 1) + "Fвр", imp.mod_factor(spen_BPFI0.harms[i].amplitude, spen_BPFI0.harms[i].base));
}
}
else
gtl.log.info("Износ внутреннего кольца", "Признаков дефекта не обнаружено");
return Defect;
};

View File

@ -0,0 +1,36 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
let frq = imp.BPFO(); //функциональная чатота
let num = 6; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_BPFO1 = spen.add_harms_set(frq, num, 0xff009000, 2); //перекос наружного кольца "зелёный"
for (let i = 0; i <= num - 1; i++) { spen_BPFO1.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
spen_BPFO1.name = 'Перекос наружного кольца';
var Defect = false;
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//перекос наружного кольца
if (spen.harms_sets[3].get_count(0, 1) >= 1 && spen.harms_sets[3].get_count(0, 1) <= 4) {
Defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_BPFO1.harms[i].is_present == true)
gtl.log.info("Перекос наружного кольца. Признаки в ES " + (i + 1) + "Fн[x2]", imp.mod_factor(spen_BPFO1.harms[i].amplitude, spen_BPFO1.harms[i].base));
}
}
else
gtl.log.info("Перекос наружного кольца", "Признаков дефекта не обнаружено");
return Defect;
};

View File

@ -0,0 +1,52 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
let frq = imp.BPFO(); //функциональная чатота
let num = 6; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_BPFO2 = spen.add_harms_set(frq, num, 0xff009000, 1); //раковины на наружном кольце "зелёный"
for (let i = 0; i <= num - 1; i++) { spen_BPFO2.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
spen_BPFO2.name = 'Раковины на наружном кольце';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
spen.harms_sets[4].modulate(imp.FTF(), 2, 0xff009030, 1); //модуляция Fн +/- Fс "зелёный"
var ausp_BPFO2 = ausp.add_harms_set(frq, num, 0xff009000, 2); //раковины на наружном кольце "зелёный"
for (let i = 0; i <= num - 1; i++) { ausp_BPFO2.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
ausp_BPFO2.name = 'Раковины на наружном кольце';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
ausp.harms_sets[1].modulate(imp.FTF(), 2, 0xff009030, 1); //модуляция Fн +/- Fс "зелёный"
var Defect = false;
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//раковины на наружном кольце
if (
spen.harms_sets[4].get_count(0, 1) >= 5 &&
ausp.harms_sets[1].get_count(0, 3) >= 5
) {
Defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_BPFO2.harms[i].is_present == true)
gtl.log.info("Раковины на наружном кольце. Признаки в ES " + (i + 1) + "Fн", imp.mod_factor(spen_BPFO2.harms[i].amplitude, spen_BPFO2.harms[i].base));
}
for (let i = 0; i <= num - 1; i++) {
if (ausp_BPFO2.harms[i].is_present == true)
gtl.log.info("Раковины на наружном кольце. Признаки в AS " + (i + 1) + "Fн", ausp_BPFO2.harms[i].amplitude);
}
}
else
gtl.log.info("Раковины на наружном кольце", "Признаков дефекта не обнаружено");
return Defect;
};

View File

@ -0,0 +1,36 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
let frq = imp.BPFO(); //функциональная чатота
let num = 5; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_BPFO0 = spen.add_harms_set(frq, num, 0xff009000, 1); //износ дорожки качения наружного кольца "зелёный"
for (let i = 0; i <= num - 1; i++) { spen_BPFO0.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
spen_BPFO0.name = 'Износ наружного кольца';
var Defect = false;
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//износ наружного кольца
if (spen.harms_sets[2].get_count(0, 1) >= 1 && spen.harms_sets[2].get_count(0, 1) <= 5) {
Defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_BPFO0.harms[i].is_present == true)
gtl.log.info("Износ наружного кольца. Признаки в ES " + (i + 1) + "Fн", imp.mod_factor(spen_BPFO0.harms[i].amplitude, spen_BPFO0.harms[i].base));
}
}
else
gtl.log.info("Износ наружного кольца", "Признаков дефекта не обнаружено");
return Defect;
};

View File

@ -0,0 +1,54 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
let frq = imp.BSF(); //функциональная чатота
let num = 20; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_BSF0 = spen.add_harms_set(frq, num, 0xff994000, 1); //раковины и сколы на телах качения "оранжевый"
for (let i = 0; i <= num - 1; i++) { spen_BSF0.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
spen_BSF0.name = 'Раковины и сколы на телах качения';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
spen.harms_sets[8].modulate(imp.FTF(), 2, 0xff996000, 1); //модуляция Fтк +/- Fс "горчичный"
var ausp_BSF0 = ausp.add_harms_set(frq, num, 0xff994000, 2); //раковины и сколы на телах качения "оранжевый"
for (let i = 0; i <= num - 1; i++) { ausp_BSF0.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
ausp_BSF0.name = 'Раковины и сколы на телах качения';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
ausp.harms_sets[3].modulate(imp.FTF(), 2, 0xff996000, 1); //модуляция Fтк +/- Fс "горчичный"
var Defect = false;
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//раковины и сколы на телах качения
if (
spen.harms_sets[8].get_count(0, 1, 1) >= 3 &&
ausp.harms_sets[3].get_count(0, 3, 1) >= 3
) {
Defect = true;
Defect_type.push("Раковины и сколы на телах качения");
for (let i = 0; i <= num - 1; i++) {
if (spen_BSF0.harms[i].is_present == true)
gtl.log.info("Раковины и сколы на телах качения. Признаки в ES " + (i + 1) + "Fтк +/- Fс", imp.mod_factor(spen_BSF0.harms[i].amplitude, spen_BSF0.harms[i].base));
}
for (let i = 0; i <= num - 1; i++) {
if (ausp_BSF0.harms[i].is_present == true)
gtl.log.info("Раковины и сколы на телах качения. Признаки в AS " + (i + 1) + "Fтк +/- Fс", ausp_BSF0.harms[i].amplitude);
}
}
else
gtl.log.info("Раковины и сколы на телах качения", "Признаков дефекта не обнаружено");
return Defect;
};

View File

@ -0,0 +1,36 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
let frq = imp.FTF(); //функциональная чатота
let num = 10; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_FTF0 = spen.add_harms_set(frq, num, 0xffff0000, 2); //износ тел качения и сепаратора "красный"
for (let i = 0; i <= num - 1; i++) { spen_FTF0.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
spen_FTF0.name = 'Износ тел качения и сепаратора';
var Defect = false;
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//износ тел качения и сепаратора
if (spen.harms_sets[7].get_count(0, 1) >= 1) {
Defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_FTF0.harms[i].is_present == true)
gtl.log.info("Износ тел качения и сепаратора. Признаки в ES " + (i + 1) + "Fс", imp.mod_factor(spen_FTF0.harms[i].amplitude, spen_FTF0.harms[i].base));
}
}
else
gtl.log.info("Износ тел качения и сепаратора", "Признаков дефекта не обнаружено");
return Defect;
};

View File

@ -0,0 +1,48 @@
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
let frq = imp.FREQ(); //функциональная чатота
let num = 10; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_f0 = spen.add_harms_set(frq, num, 0xff0000f0, 1); //биение вала - "синий"
for (let i = 0; i <= num - 1; i++) { spen_f0.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник
spen_f0.name = 'Биение вала';
var ausp_f0 = ausp.add_harms_set(frq, num, 0xff0000f0, 2); //биение вала "синий"
for (let i = 0; i <= num - 1; i++) { ausp_f0.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник
ausp_f0.name = 'Биение вала';
var Defect = false;
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//биение вала
if (
spen.harms_sets[0].get_count(0, 2) >= 1 && spen.harms_sets[0].get_count(0, 2) <= 10 &&
ausp.harms_sets[0].get_count(0, 2) >= 0 && ausp.harms_sets[0].get_count(0, 2) <= 10
) {
Defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_f0.harms[i].is_present == true)
gtl.log.info("Биение вала. Признаки в ES " + (i + 1) + "Fвр", imp.mod_factor(spen_f0.harms[i].amplitude, spen_f0.harms[i].base));
}
for (let i = 0; i <= num - 1; i++) {
if (ausp_f0.harms[i].is_present == true)
gtl.log.info("Биение вала. Признаки в AS " + (i + 1) + "Fвр", ausp_f0.harms[i].amplitude);
}
}
else
gtl.log.info("Биение вала", "Признаков дефекта не обнаружено");
return Defect;
};

View File

@ -5,8 +5,16 @@ var record = gtl.options.record;
var point = gtl.options.point;
var imp = gtl.import("user-functions.js");
var val = gtl.import("rb-def-inring.js");
var vk = gtl.import("rb-def-shaft.js");
var val = gtl.import("rb-shaft.js");
var in0 = gtl.import("rb-inring-tention.js");
var out0 = gtl.import("rb-outring-wear.js");
var out1 = gtl.import("rb-outring-bias.js");
var out2 = gtl.import("rb-outring-fault.js");
var in1 = gtl.import("rb-inring-wear.js");
var in2 = gtl.import("rb-inring-fault.js");
var sep = gtl.import("rb-separator-wear.js");
var rol = gtl.import("rb-rollers-fault.js");
//настройки для датчика оборотов
var filter_freq = gtl.add_filter_iir(gtl.analog_inputs[record.tachoOptions.tachoChannel]); //объявление переменной фильтра
@ -235,10 +243,26 @@ function diagnose() {
gtl.log.info("СКЗ(V) 2-1000 Гц", rms_v2.value);
gtl.log.info("СКЗ(V) 10-1000 Гц", rms_v10.value);
let res = {};
var indx = 0;
res["Биение вала"] = val.val();
res["Раковины на внутреннем кольце"] = vk.vk();
let def = {};
//var indx = 0;
def["Биение вала"] = val.defect(); //indx (spen = 0, ausp = 0)
def["Неоднородный радиальный натяг"] = in0.defect(); //indx (spen = 1, ausp = X)
def["Износ наружного кольца"] = out0.defect(); //indx (spen = 2, ausp = X)
def["Перекос наружного кольца"] = out1.defect(); //indx (spen = 3, ausp = X)
def["Раковины на наружном кольце"] = out2.defect(); //indx (spen = 4, ausp = 1)
def["Износ внутреннего кольца"] = in1.defect(); //indx (spen = 5, ausp = X)
def["Раковины на внутреннем кольце"] = in2.defect(); //indx (spen = 6, ausp = 2)
def["Износ тел качения и сепаратора"] = sep.defect(); //indx (spen = 7, ausp = X)
def["Раковины и сколы на телах качения"] = rol.defect(); //indx (spen = 8, ausp = 3)
var res = {
RMSA: rms_spen.value,
PF: ampl_spen.value / rms_spen.value,
RMS_V2: rms_v2.value,
RMS_V10: rms_v10.value,
SQR: AQ,
defects: def
};
gtl.results = res;
gtl.diagnostic.stop();

View File

@ -36,6 +36,8 @@ var trBlades = options.trBlades || 0; //количество лопастей к
//параметры электродвигателя
//var trBlades = options.trBlades || 0; //количество лопастей крыльчатки турбины
var indx = 0;
export function FREQ() {
let FR = 0;