Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
То, что вы называете передним фронтом называется просто фронт. То, что вы называете задним фронтом называется срез.
Ибо, передний фронт - масло масляное, а задний фронт - полный абсурд. Фронт - это то, что спереди.
https://ru.wikipedia.org/wiki/Фронт
Последний раз редактировалось Newcomer; 18.08.2023 в 13:23.
capzap выкладывать чтобы каждый не писал по кругу одно и то же, тем более из oscat.
Посмотрел, кто-то уже выдернул TOF, значит можно его себе не переписывать а переписать то, чего еще нет.
Ну в программе ОЛ они так называются:
1. Детектор переднего фронта
2. Детектор заднего фронта
Вот так, выложишь что-то, для таких же не особо далёких как и сам (я про себя), чтобы упростить жизнь всем, и узнаешь кучу нового, в том числе и о себе. Будем внимательней и прочитаем стандарт IEC 61131-3, где про фронт и срез говорится следующим маслом - R_TRIG - Rising Edge Detector, F_TRIG - Falling Edge Detector. Обратимся к официальной справке Овен Лоджик, там сказано следующее - Детектор переднего фронта импульса (RTRIG). Обратимся к CodeSys2.3 - Функциональный блок R_TRIG генерирует импульс по переднему фронту входного сигнала. Ну и CodeSys 3.5 - Функциональный блок для выявления переднего фронта.
Вынужден учиться на том, что дают.
Да будет так, первый фронт, и Второй фронт = тушенка и все что там с этим было связано![]()
Newcomer мне кажется излишне придираться там, где все прекрасно понимают о чем речь. Если вдруг вы не поняли о чем, то надо что-то менять в датском королевстве.
Не могу понять где ашыпка. При первом запуске внутренняя переменная EMA(t) := входному значению, все последующие итерации выполняются по формуле расчета скользящего экспоненциального. Но при симуляции получается иначе. Первый проход так-же считается по формуле EMA(t) = coef * input + (1 - coef) * EMA(t-1), хотя сброс переменной первого запуска проходит и сброс фильтра, если его активировать, так-же выполняется.
Код:function_block EMA // Фильтр экспоненциальное скользящее среднее var_input input : real; // Вход coeff : real; // Коэффициент от 1(min) до 0(max) reset : bool; // Сброс фильтра end_var var_output output : real; // Выход end_var var EMAt : real; first_run : bool := true; end_var if (reset = true) OR (first_run = true) then EMAt := input; first_run := false; else EMAt := coeff * input +(1 - coeff)*EMAt; end_if output := EMAt; end_function_block
Последний раз редактировалось gmz_001; 20.08.2023 в 08:30.