Пример: программирование системы управления автоматическим шлагбаумом ====================================================================== Начнем с постановки задачи. Работу будем выполнять небольшими этапами, которые легко реализовать. Создание проекта с нуля займет от 30 до 60 минут. Стрела шлагбаума имеет два конечных положения: полностью поднята (открыта) и полностью опущена (закрыта). Концевым датчикам соответствуют входы контроллера :guilabel:`BarrierOpen` и :guilabel:`BarrierClosed`. Выходы контроллера :guilabel:`BarrierUp` и :guilabel:`BarrierDown` управляют двигателем подъема и опускания стрелы. Пользователь управляет шлагбаумом одной кнопкой (вход :guilabel:`Action`). Стрела поднимается или опускается в зависимости от текущего положения. Нажатие кнопки во время движения вызывает немедленную остановку. Движение должно останавливаться при перегрузке привода (вход :guilabel:`DriveOverload`) и при повторном нажатии кнопки управления. Контрольная лампа (:guilabel:`Lamp`) включается при начале движения и выключается через заданное время после его окончания. Система диагностики формирует флаг ошибки при перегрузке привода и при превышении допустимого времени движения. При возникновении проблем движение немедленно прекращается. Контрольная лампа мигает до следующего нажатия кнопки управления.