Добрый день! Подскажите, пожалуйста, как в Codesys можно проверить переменная увеличивается или уменьшается?
делаете генератор импульсов, например через каждые 5 секунд. Когда пришел импульс смотрим, если текущая температура больше предыдущей, то значит температура повышается, если меньше, то понижается. Далее сохраняем текущую температуру, через 5 секунд она нам понадобится как предыдущая для дальнейшего анализа.
Во как все запутано
Вспоминаем мат.анализ. В частности поиск интервалов возрастания, убывания и точек экстремума функций с помощью производных.
Как гласит мат.анализ
– если первая производная на интервале больше 0, то функция возрастает на данном интервале;
– если первая производная на интервале меньше 0, то функция убывает на данном интервале.
Нахождение точек максимума и минимума опустим.
Таким образом для решения задачи можно использовать ФБ DERIVATIVE (численное дифференцирование) из стандартной библиотеки Util.
На вход подаем анализируемую переменную. Если на выходе имеем значение >0, то переменная возрастает, если <0, то переменная уменьшается, если =0, то переменная не изменяется во времени.
Удачи
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Попался экземпляр стандарта IEC61131-3 за 2003 год. Офигеть: оказывается, после END_IF, END_CASE, END_FOR и т.п. должна ставиться точка с запятой.Код:IF a THEN b(); END_IF;
Во все алгоритмических языках операторы заканчиваются ;