Сообщество Engee

Управление светофором подземной автостоянки

Автор
avatar-alexskualexsku

Задача написать управляющую программу для контроллера светофорами подземной автостоянки. Хотелось бы привести пример несложного перевода техзадания на язык управляющей логики (графа состояний). Главное научиться делать декомпозицию состояний (параллельные или последовательные блоки), а в результате может оказаться, что содержимое каждого блока очень простое или вообще отсутствует.

Техзадание.

На въезде и выезде монтируются парные петлевые детекторы для определения направления движения автомобиля, в зоне погрузки один. В автоматическом режиме работы светофор на въезд горит зеленым, а на выезд - красным.

Въезд

Автомобиль, въезжающий в парковку, последовательно пересекает 1-й и 2-й детекторы и на выезде из парковки загорается красный свет и блокируется, после последовательного пересечения 2-го и 1-го детектора на выезде светофоры устанавливаются в исходное состояние. Если на въезд в парковку горит красный - автомобиль останавливается на СТОП-линии.

Выезд

Автомобиль, выезжающий из парковки, пересекает последовательно 1-й и 2-й детекторы, останавливается на СТОП-линии, на въезде загорается красный, на выезде красный начинает мигать в течении 5 секунд, а затем загорается зеленый. После последовательного пересечения автомобилем 2-го и 1-го детектора на въезде алгоритм возвращается в исходное состояние.

Зона погрузки

Автомобиль, выезжающий из зоны погрузки, пересекает петлю, на въезде загорается красный, на выезде красный начинает мигать в течении 5 секунд, а затем загорается зеленый. После последовательного пересечения автомобилем 2-го и 1-го детектора на въезде алгоритм возвращается в исходное состояние.

Реализация.

Введём два параллельных блока - Аварии (stAlarm, st - от state) и Работа (stRun). Внутри блока Работа будет два состояния: Авто (stAuto) и Ручной (stManual) режимы (определяются переключателем шкафа управления). В Ручном режиме все выходы светофоров надо выключить (это дополнение к техзаданию, чтобы правильно работала электросхема).

В автоматическом режиме сделаем два параллельных блока, один (stRequest) описывает путь прохождения автомобиля на стоянку (4 датчика: inLoop1, inLoop2, outLoop2, outLoop1), а также два способа выезда (outLoop1, outLoop2, inLoop2, inLoop1 либо outLoading, inLoop2, inLoop1). Задача этого блока сформировать запрос на выезд (outRequest). Если выезд со стоянки не осуществляется, то действует режим въезда в неё.

Наконец, в блоке действий (stActions) описываются три режима работа светофоров: для въезда (stActionIn), подготовки выезда (stActionPrepareOut - красный мигает) и сам выезд (stActionOut).

алгоритм