- Родительская категория: ROOT
- Категория: Новости
- Автор: Генератор статей
- Просмотров: 1993
Автоматизация управления шлагбаумов КПП
Рассмотрим решение практической задачи по автоматизации управления шлагбаумов КПП с помощью MP712m Laurent-5
Рассмотрим решение следующей практической задачи автоматизации управления шлагбаумов КПП:
Необходима следующая логика работы автоматики КПП на ВЪЕЗД на территорию.
На въезде установлены 2 шлагбаума, чтобы отсекать «паровозик». Перед шлагбаумом №1 стоит светофор. Начальное состояние – горит зелёный, приглашая машины на ВЪЕЗД.
Машина подъезжает к шлагбауму №1 на ВЪЕЗД. Наезжает на петлю №1, контроллер переключает светофор с зелёного на красный. Следующие машины останавливаются на СТОП-ЛИНИИ.
Номер считывается видеокамерой и обрабатывается на внешнем сервере (софт распознавания автомобильных номеров). Считаем, что номер в белом списке. Машина находится на токовой петле. Шлагбаум №2 закрыт. Между шлагбаумами нет другой машины.
Идет сигнал от нашей системы на контроллер Laurent-5, который учитывает, что машина на петле перед шлагбаумом №1 и замкнут контакт, что номер допускается на территорию, шлагбаум №2 закрыт.
Машина проезжает к шлагбауму №2, который закрыт. Светофор горит красным. Как только машина пересекает датчик под стрелой, шлагбаум самостоятельно закрывается за машиной, отсекая «паровоз» из следующих машин.
Машина находится между двух закрытых шлагбаумов. В этот момент происходит установление статусов: машина перед шлагбаумом №2 = петля дает сигнал, шлагбаум №1 закрыт. Если всё так, то идёт команда на открытие шлагбаума №2.
Контроллер ожидает проезда машины через токовую петлю №3 на территорию и закрывает шлагбаум № 2. По статусам датчиков фиксируется, что машины нет между шлагбаумов, шлагбаумы закрыты, тогда контроллер дает команду на светофор = загорается зелёный, приглашая следующую машину на ВЪЕЗД. Контроллер переводится в начальный режим и ожидает ТС перед шлагбаумом №1. Алгоритм повторяется.
Иллюстрация КПП на котором нужно автоматизировать процесс управления шлагбаумами с помощью системы CAT модуля Laurent-5
Такую задачу автоматизации можно легко решить с помощью модуля MP712m Laurent-5 и системы автономных логических правил CAT.
1. Аппаратные ресурсы
Определимся с аппаратными ресурсами модуля Laurent-5, которые будем задействовать для контроля и управления системой.
Элемент КПП |
Ресурс модуля |
Пояснения |
Зеленый светофор | Реле RELE_1 | Включением реле будем "зажигать" зеленый светофор, выключением - соответственно, гасить зеленый цвет |
Красный светофор | Реле RELE_2 | Аналогично |
Шлагбаум №1 | Реле RELE_3 | Короткое включение реле (на 2 сек) будет инициировать поднятие шлагбаума (при этом считаем что шлагбаум закрывается самостоятельно) |
Шлагбаум №2 | Реле RELE_4 | Короткое включение реле (на 2 сек) будет инициировать поднятие шлагбаума если он закрыт и спровоцирует его закрытие если он открыт (считаем что у этого шлагбаума закрытие автоматически не выполняется, нужно в явном виде подать команду управления). |
Токовая петля №1 | Входная оптоизолированная линия IN_1 |
Высокий уровень сигнала (логическая 1) означает, что над петлей находится автомобиль, низкий (логический 0) - автомобиля нет |
Токовая петля №2 | IN_2 | Аналогично |
Токовая петля №3 | IN_3 | Аналогично |
Датчик открытия шлагбаума №1 |
IN_4 | Если шлагбаум открыт - на линии будет высокий логический уровень сигнала, лог. 0 - если закрыт |
Датчик открытия шлагбаума №2 |
IN_5 | Аналогично |
Всю логику управления создадим, используя связки логических правил CAT: событие (+дополнительные условия) → реакция. Эти связки хранятся в энергонезависимой памяти модуля (т.е. не пропадут при сбросе питания) и будут выполняться автономно без участия пользователя.
Заходим в WEB панель управления модулем (по умолчанию, IP = 192.168.0.101, логин / пароль: admin / Laurent), переходим в раздел CAT.
2. Исходное состояние
Первым делом, создадим правило (событие) по которому система должна устанавливаться в исходное состояние, а именно: в том случае если на всех «петлях» нет автомашины и оба шлагбаума закрыты – то следует погасить красный светофор и включить зеленый, тем самым приглашая автомобили на въезд.
Решим эту часть задачи с помощью события «таймер» по системному времени – будем раз в секунду проверять все названные условия и, если они выполняются, – производить управление огнями светофора через реле.
Настроим событие так что бы оно «пыталось» выполняться (если и другие условия будут выполнены, см. далее) каждую секунду (время с момента старта модуля по модулю 1):
А вот и дополнительные условия – нам нужно что бы на всех задействованных входах от датчиков (линии IN_1 - IN_5) не было сигнала (т.е. шлагбаумы закрыты, машины над петлями нет).
Теперь реакция – задаем ее в виде списка Ke-команд. В частности, включаем 1-ое реле (загорается зеленый светофор), выключаем красный (RELE_2).
Полный список всех Ke-команд, поддерживаемых модулем, можно найти в соответствующем документе Описание Ke-команд управления.
В данной логике есть некоторая тонкость – если условия для срабатывания оставить в таком виде, то событие начнет срабатывать многократно (а именно каждую секунду) до тех пор, пока не появится машина в зоне КПП (ведь все датчики в исходном состоянии, когда нет автомобиля, будут давать логический ноль на выходе).
В данном конкретном случае это не является проблемой (систему это не перегрузит, т.к. трудоемких операций в рамках реакции не производится – просто производится управление реле).
Однако, в том случае, если было бы нужно, чтобы реакция по данному событию была выполнена единожды (до следующего заезда машины на КПП), то нужно ввести дополнительные команды. В частности, можно выключить обработку данного события после его срабатывания с помощью Ke-команды $KE,CAT,x,SET,OFF (где x – ID события CAT). И включать данное событие, как только одна из петель сработает, чтобы система вновь могла вернуться в исходное состояние.
Условимся для упрощения изложения, что дополнительное управление работой 1-го события (возвращающего систему в исходное состояние) производится не будет.
Для удобства на следующем шаге создания CAT события присвоим символическое имя данному логическому правилу.
Все, событие создано. По умолчанию, сразу после создания CAT событие будет выключено. Его следует включить соответствующей «кнопочкой» в панели управления.
Поскольку в исходном состоянии у нас шлагбаумы закрыты и «петли» пустые, то, как было описано выше, событие будет срабатывать каждую секунду до тех пор, пока не появится автомобиль в зоне КПП.
3. Появление автомобиля
А вот собственно и автомобиль заезжает на 1-ую токовую петлю и останавливается перед шлагбаумом в ожидании того, что его пропустят. Соответственно, на входе контроллера Laurent-5 IN_1 появляется высокий уровень сигнала. Давайте обработаем это событие с помощью CAT.
Будем реагировать на изменение уровня сигнала на линии IN_1 с низкого на высокий.
Реакция – нужно погасить зеленый и включить красный светофор. А также нам нужно как-то проинформировать софт распознавания автомобильных номеров о том, что появилась машина в зоне видимости видеокамеры, и нужно определить номер, проверить его по базе и, если доступ разрешен, подать сигнал на контроллер Laurent-5 о том, что машину можно запускать.
Есть несколько разных способов передать данные от Laurent-5 на внешний софт (сервер) – например, отправить данные с помощью команды $KE,PUT через TCP сервер или TCP клиент. А можно вызвать URL ссылку (отправить GET запрос) по HTTP. Предположим, что софт анализа автономеров поддерживает работу через GET HTTP запросы. Предположим, что WEB сервер находится на машине с IP = 192.168.0.200 и при обращении к скрипту event.php с параметром cmd=NEW_CAR производится инициирование процесса распознавания.
4. Открываем 1-ый шлагбаум
Итак, подъехала машина и встала перед первым закрытым шлагбаумом над токовой петлей #1. Мы включили красный сигнал светофора и отправили информационное сообщение на софт распознавания автомобильных номеров. Предположим, что номер в белой базе, и теперь нам нужно пропустить машину за 1-ый шлагбаум. Об этом внешний софт должен как-то сообщить Laurent-5, а он, в свою очередь, открыть 1-ый шлагбаум, но только при выполнении ряда условий: машина все еще над 1-ой токовой петлей, оба шлагбаума закрыты.
Для этого добавим еще одно CAT событие, которое будет пытаться выполняться каждую секунду, но только при выполнении ряда дополнительных условий:
- с 1-ой петли (линия IN_1) есть сигнал (машина над ним)
- оба шлагбаума закрыты (линии IN_4 и IN_5 - логический ноль)
- дополнительный триггер – значение программной переменной VAR_1 должно быть равно, например, 10.
Первые три условия сейчас выполняются. А вот последнее условие ( VAR_1 == 10), которое как раз пока и не позволяет событию сработать, и будет тем «спусковым крючком» который «нажмет» софт распознавания номеров отправив на Laurent-5 команду установки значения для переменной VAR_1, например, так же через GET HTTP запрос.
В качестве реакции на событие (+ выполнение всех дополнительных условий) откроем 1-ый шлагбаум, замкнув контакты RELE_3 на 2 секунды. А также сбросим значение переменной VAR_1 в ноль, т.е. деактивируем событие (чтобы оно не выполнялось много раз подряд) до тех пор, пока внешний софт снова не решит дать «добро» на открытие 1-го шлагбаума.
В итоге в списке событий должно появиться вот такое.
Итак, машина над 1-ой токовой петлей, софт проверил номер и готов пустить машину через 1-ый шлагбаум. Как он это может сделать? Опять же, есть варианты отправки команд через TCP (как сервер или клиент). А можно и GET HTTP запросом (вызвать URL ссылку) с параметрами. В частности, нужно установить значение программной переменной VAR_1 равным 10 что будет триггером для срабатывания CAT события.
Предположим что у модуля Laurent-5 IP = 192.168.0.101, пароль доступа Laurent (по умолчанию). Тогда достаточно выполнить следующий HTTP запрос на стороне софта распознавания автономеров:
http://192.168.0.101/cmd.cgi?psw=Laurent&cmd=VAR,1,SET,10
5. Между двух шлагбаумов
Итак, теперь машина находится между двух закрытых шлагбаумов над токовой петлей #2. Второй шлагбаум закрыт по умолчанию, а первый закроется сам автоматически после проезда автомашины. Необходимо теперь открыть второй шлагбаум, но при условии того, что первый закрылся (что бы «паровозом» не проехало несколько машин), а машина действительно перед вторым шлагбаумом (токовая петля 2 выдает высокий логический сигнал).
Создадим еще одно событие CAT по таймеру, вызываемому каждую секунду и срабатывающее при дополнительных условиях: токовая петля 2 выдает сигнал (над ней автомашина) на линию модуля IN_2, и оба шлагбаума закрыты (на линиях IN_4 и IN_5 логический ноль).
В качестве реакции подадим управляющий сигнал на 2-ой шлагбаум через RELE_4, включив его контакты на 2 секунды.
В списке CAT событий добавляется еще одно, вновь созданное для автоматизации открытия 2-ого шлагбаума.
6. Закрываем 2-ой шлагбаум
Итак, второй шлагбаум открыт, и автомашина проезжает вперед, покидая токовую петлю 2 и заезжая на токовую петлю 3. При необходимости можно обработать событие заезда на 3-ю петлю по изменению уровня сигнала на линии IN_3. В данной статье этот момент пропустим и обработаем только момент покидания автомашиной 3-ей петли, т.е. момент, когда нужно закрывать 2-ой шлагбаум.
Создаем новое событие CAT по изменению уровня сигнала на входной оптоизолированной линии IN_3 с высокого уровня (автомашина над петлей) на низкий уровень (машина покинула петлю).
Ставим дополнительное условие – шлагбаум 2 должен быть открыт (высокий уровень сигнала на датчике открытия на линии IN_5):
Реакция – отправка команды через RELE_4 на закрытие шлагбаума (закрывается так же как и закрывается). Результат:
7. Финал
Как только машина покинет 3-ю петлю и будет закрыт 2-ой шлагбаум, сойдутся все условия для события CAT c ID=1 которое занимается возвращением КПП в исходное состояние для ожидания следующей автомашины.