Управление задвижкой дискретными сигналами "открыть"/"закрыть", обратная связь (положение затвора) - аналоговый сигнал?
В общем случае алгоритм такой:
Код:
IF ("открыть" == TRUE OR "закрыть" == TRUE) AND
(положениеЗатвора == положениеЗатвораВПредыдущемЦиклеПЛК) THEN
запуститьТаймерСУставкой5секунд;
ELSE
сброситьЭтотТаймер;
IF таймерДосчитал5сек THEN
затворЗаклинило;
Для переменной "положениеЗатвора" наверно нужно ввести некую мертвую зону, т.к. аналоговый сигнал может "плавать" (незначительно изменяться) из измерения в измерение при покоящейся задвижке.
П.С. Для определения заклинивания затворов на них обычно устанавливают моментные выключатели (муфты ограничения крутящего момента).