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