Gtld freq()

Материал из GTL-wiki
Перейти к навигации Перейти к поиску

Краткое описание

Функция используется для определения значения частоты вращения. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргумент не передается, то в результате принимается значение, установленное в блоке настроек записи GTLd.

Синтаксис

Стандартная конструкция выглядит таким образом:

var __freq = new freqClass(
    {
        src: gtl.analog_inputs[tacho.tachoChannel], //источник сигнала
        freq: 15, //центральная частота
        width: 10, //диапазон разброса частоты, Гц
        time: 2, //интервал измерения, сек
        avg: 10 //количество усреднений
    }
); //определяем частоту вращения

Результат

__frq.value - среднее значение частоты вращения с учетом передаточного коэффициента;
__frq.values - массив измеренных частот вращения (по количеству отсчетов);
__frq.time - время, затраченное на измерение параметра, сек;

Содержание функции

function getFreq(args) {
    let FR = {}; //объект данных по частоте вращения
    switch (record.tachoOptions.tachoState) {
        case 0:
            if (args != undefined) {
                let __src = args.src; 
                let __frq = args.freq;
                let __time = args.time; 
                let __avg = args.avg; 
                let __dc = 0; //порог срабатывания счетчика
                if (args.dc != undefined) { __dc = args.dc };       

                let __fltr = gtl.add_filter_iir(__src);
                __fltr.kind = gtl.filter_iir.butterworth;
                __fltr.type = gtl.filter_iir.lowpass;
                __fltr.order = 10;
                __fltr.frequency = __frq;

                let __freq = gtl.add_value_freq(__fltr);
                __freq.time = __time;
                __freq.avg_cnt = __avg;
                __freq.dc = __dc;
                FR["value"] = __freq.value * options.tachoRatio;
                FR["values"] = __freq.values;
                FR["time"] = args.time * args.avg;
            } else {
                FR["value"] = 0;
                FR["values"] = [0];
                FR["time"] = 0;
            };
            break;
        case 1:
            FR["value"] = record.tachoOptions.tachoValue * options.tachoRatio;
            FR["values"] = [0];
            FR["time"] = 0;
            break;
        case 2:
            FR["value"] = record.tachoOptions.tachoFromInfo * options.tachoRatio;
            FR["values"] = [0];
            FR["time"] = 0;
            break;
    };
    return FR;
}; //определение частоты вращения в зависимости от источника тахо сигнала