Уважаемый SVN , очень нужен MOD со свойствами, при которых максимально экономятся расходные ресурсы( экономить больше невозможно, нет чем.).
Общий алгоритм сохраняется , как для MOD1_ snis.hex., различие в деталях красным цветом.
Входим в зону видимости датчика – Статус = 1. Как только Статус перешёл на 1,запускается таймер ( «Input»).Если объект присутствовал в зоне видимости датчика менее 20 секунд,то выход Триггер остаётся равным нулю, а таймер «Input» сбрасывается (обнуляется).Если же объект присутствовал в зоне видимости датчика более 20 секунд,то поднимается флаг на разрешение включения Триггера после выхода объекта из зоны видимости.После того как Статус перейдёт в состояние 0 таймер «Input» сбрасывается (обнуляется) и выход Триггер переходит с 0 в 1. Как только Триггер принял состояние 1,запускается таймер«Output20с».
Если повторно войти в зону видимости датчика( Статус станет =1), то таймер «Output» прерывает свой отсчет и Триггег принимает состояние 0. После выхода из зоны видимости датчика (Статус=0) Триггер становится =1 и таймер «Output» останавливает прерывание ,продолжает свой отсчет.Когда таймер «Output» отсчитает своё время до конца выход Триггер принимает состояние 0. Таймер «Output» сбросится (обнуляется).Опустится и флаг на включение Триггера.
Осцилограммы прилагаю "результаты тестирования".
110 Если Статус = 0, то Триггер = 0
120 Если Статус = 1 ,то запускается таймер «Input20с»
130 Если Статус = 0, то таймер «Input» сбрасывается
140 Если Статус = 1, то флаг на разрешение включения Триггер когда станет Статус=0
150 Если Статус = 0, то Триггер = 1,таймер «Input» сбрасывается,запускается
таймер «Output20с»
160 Если Статус = 1,то прерывание таймера «Output»,Триггер = 0
170 Если Статус = 0, то Триггер=1, остановить прерывание таймера «Output»180 Триггер = 0
190 Сбрасывается таймер «Output»,опустить флаг на включение Триггера
200 Перейти к 110
могут быть ошибки