Нормальный алгоритм, больше ничего и не надо усложнять, а то написали "Войну и мир", короче, мне понравилось, в плане алгоритма работы!
Осталось ТС датчики с ПР подружить!
Вид для печати
Этому в школе учат, математика называется, короче, в школе фундамент закладывают, в смысле, надеюсь Вы понимаете, что без фундамента перспективы дальнейшего строительства, в смысле, развития, стремятся к нулю! Конечно бывают исключения, но надеется на чудо не стоит, хотя это по-русски, помните историю Ильи Муромца!
Теперь о Вас, с датчиком разобрались: может там датчик освещённости стоит, в смысле, если освещённость достаточная, свет не включается, может он определяет направление движения или просто срабатывает, как бы от этого многое зависит, в смысле, можно сделать чёткий алгоритм работы или руководствоваться ограничениями, например, что не более одного человека одновременно проходят по лестнице! Или другими ограничениями, их может быть много! В принципе, в вашем случае, я так думаю, это не критично, ну загорится или не загорится освещение, остановитесь и повторите заход, может там кто на встречу идёт, заодно и человека пропустите, короче аварии не произойдёт(поезда не столкнутся)!
Короче, если датчик без определения направления прохода(не перестаю Вами удивляться, в смысле, как это можно было купить не зная как это работает), то я бы ввел уставку "минимальное время прохождения лестницы", это минимальное время за которое можно лестницу пройти!
Тогда можно будет определить встречное движение, в смысле, если противоположный датчик сработал раньше этого минимального времени!
Короче, тогда можно сделать зажигание света с двух направлений(ранее уже писал об этом) и за это время свет будет добегать до конца лестницы(определятся частота тактового генератора), надеюсь понятно объяснил?!
В принципе алгоритм можно совершенствовать до бесконечности! А когда даже не знаете как работают отдельные элементы того, чего купили, тем более!
Ещё бы я добавил и уставку "максимальное время прохождения лестницы", в смысле, если за это время не срабатывает противоположный датчик движения, то ступеньки тухнут в обратном порядке. Если за это время срабатывает противоположный датчик, то ступеньки тухнут в том же порядке, что и зажигались, бегущий огонь как бы сопровождает проходящего человека! Как сейчас и сделано.
И, ещё, что хотел сказать, что на форуме столько примеров выкладывалось и всяких подсказок, что не надо самому ничего думать, кроме элементарных вопросов, взять готовое, что считаете вам более подходит, это уровень интеллекта пчелы, это я о том, что уровень знаний средней школы будет сильно избыточен, для решения подобных вопросов, это мне так кажется!
Вот мой вариант, без встречного зажигания ступеней, хотя всё для этого есть(делал размашисто с расчётом встречного движения), осталось второй сдвиговый регистр добавить и думаю логика при этом даже несколько упростится:
Вложение 63956
Вложение 63957
Вот немного усовершенствовал, в смысле "встречный огонь" сделал, я ранее писал, как определяется встречное движение(по времени)!
Вложение 64015
Вложение 64017
Уставки времени в свойствах макроса!