Есть интересная особенность в схеме 2.
При первом запуске системы переменная Q имеет значение 0. Чтобы насос получил разрешение на работу нужно, чтобы значение Q было больше 999. Другими словами, для активации системы нужно, чтобы выезжающая со стоянки машина перевела переменную Q в значение больше 999. Далее, самое интересное начинается при переходе Q через ноль и обратно. Меньше нуля значение выставляется как 4294967294, что естественно.И как только машин на въезд в сумме набирается больше, чем выехавших с начала работы контроллера, запуск насоса блокируется из-за невыполнения условия GT.
Мне думается, что в целом на работу счетчика надо сверху наложить таймеры, смысл которых в том, что по истечении заданного времени система должна "обнулиться" и встать в исходное состояние. Наверное, самое правильное поставить светофоры на въезд и выезд. Они будут регулировать въезд и выезд, тогда алгоритм будет работать в более "чистой" обстановке. Ведь нельзя же исключить человеческого фактора - попыток одновременного въезда с двух сторон, совместного въезда и нажатия на кнопок человеком, хаотичного шатания людей мимо датчиков без нажатия на кнопку. Светофор просто будет сигнализировать - можно въезжать или нельзя. Поперся ты пешком, а кнопку не нажал - будь готов к душу, сам виноват. Скорость движения машин надо тоже ограничить. При всей кажущейся простоте конструкции количество ситуаций много и на мой взгляд закрыть их все автоматикой точно не получится. На помощь должно прийти администрирование работы в виде простых и понятных правил движения на этом участке.
Мой вариант алгоритма приложил. Там несколько другая идея и наверное не совсем правильная и более уязвимая с точки зрения логики. Смысл такой, что основу алгоритма работы составляют задержки по времени. Основной затык был на выезд. Если выставить задержку запуска насоса 0, то при выезде он все равно запускался, что вполне логично. Так что пока пропишу в инструкции запрет на выставление нулевой задержки на запуск. Вообще, система тиражируемая, именно поэтому пришлось сделать все на таймерах, так как длины проездов разные, расстояние от датчика до моечного портала разное и время нагнетания давление в форсунки тоже разное.
Если есть конструктивная критика - с удовольствием выслушаю и учту. И да, большое спасибо Сергею за свои алгоритмы, взял их на вооружение.
Вложение 49367