exponenta event banner

Моделирование светофора с помощью семантики Мура

В этом примере показано, как использовать семантику Мура для моделирования светофора.

Логика светофора Мура

В этом примере модель светофора содержит диаграмму Мура под названием Light_Controller, которая работает в пяти состояниях трафика. Каждый штат представляет цвет светофора в двух противоположных направлениях, Северо-Южном и Восточно-Западном, и длительность текущего цвета. Имя каждого штата представляет работу источника света, видимого с направления Север-Юг.

Эта диаграмма использует временную логику для регулирования переходов состояний. after оператор реализует таймер обратного отсчета, который инициализируется при вводе исходного состояния. По умолчанию таймер обеспечивает более длинный зеленый свет в направлении Восток-Запад, чем в направлении Север-Юг, поскольку объем трафика больше на дороге Восток-Запад. Зеленый свет в направлении Восток-Запад горит не менее 20 часов, но он может оставаться зеленым до тех пор, пока трафик не поступает в направлении Север-Юг. Датчик определяет, ждут ли автомобили на красный свет в направлении Север-Юг. Если да, то свет становится зеленым в направлении Север-Юг, чтобы сохранить движение транспорта.

Диаграмма Light_Controller ведет себя как машина Мура, потому что она обновляет свои выходы на основе текущего состояния перед переходом в новое состояние:

При начальном состоянии Stop активен. Светофор красный для «Север-Юг», зеленый для «Восток-Запад».

  • Устанавливает выходные данные y1 = RED (Север-Юг) на основе текущего состояния.

  • Устанавливает выходные данные y2 = GREEN (Восток-Запад) на основе текущего состояния.

  • После 20 тактов, активное состояние становится StopForTraffic.

В активном состоянии StopForTraffic. Светофор был красным для «Север-Юг», зеленым для «Восток-Запад» не менее 20 часовых клещей.

  • Устанавливает выходные данные y1 = RED (Север-Юг) на основе текущего состояния.

  • Устанавливает выходные данные y2 = GREEN (Восток-Запад) на основе текущего состояния.

  • Проверка датчика.

  • Если датчик индицирует ожидание автомобилей ([sens] верно) в направлении Север-Юг активное состояние становится StopToGo.

В активном состоянии StopToGo. Светофор должен реверсировать поток трафика в ответ на срабатывание датчика.

  • Устанавливает выходные данные y1 = RED (Север-Юг) на основе текущего состояния.

  • Устанавливает выходные данные y2 = YELLOW (Восток-Запад) на основе текущего состояния.

  • После 3 тактов, активное состояние становится Go.

В активном состоянии Go. Светофор был красный для Север-Юг, желтый для Восток-Запад для 3 часов клещей.

  • Устанавливает выходные данные y1 = GREEN (Север-Юг) на основе текущего состояния.

  • Устанавливает выходные данные y2 = RED (Восток-Запад) на основе текущего состояния.

  • После 10 тактов, активное состояние становится GoToStop.

В активном состоянии GoToStop. Светофор был зелёным для Севера-Юга, красным для Востока-Запада для 10 часовых клещей.

  • Устанавливает выходные данные y1 = YELLOW (Север-Юг) на основе текущего состояния.

  • Устанавливает выходные данные y2 = RED (Восток-Запад) на основе текущего состояния.

  • После 3 тактов, активное состояние становится Stop.

Правила проектирования светофора Мура

Этот пример светофора Мура иллюстрирует следующие правила проектирования Мура:

  • Диаграмма вычисляет выходные данные в действиях состояния.

  • Диаграмма проверяет входные данные в условиях переходов.

  • Диаграмма использует временную логику, но асинхронных событий нет.

  • Диаграмма определяет входные данные диаграммы (sens) и выходы (y1 и y2).

Связанные темы