Интернет-магазин

Просмотр корзины
В корзине:

товаров - 0 шт.



Статьи / KA048 / Laurent-5: Автоматизация КПП (шлагбаум)



§ 48. Laurent-5: Автоматизация КПП (шлагбаум)

Дмитрий Иванов, 08 Ноября 2020


Рассмотрим решение следующей практической задачи автоматизации управления шлагбаумов КПП:


Необходима следующая логика работы автоматики КПП на ВЪЕЗД на территорию.

На въезде установлены 2 шлагбаума, чтобы отсекать "паровозик". Перед шлагбаумом №1 стоит светофор. Начальное состояние - горит зелёный, приглашая машины на ВЪЕЗД.

Машина подъезжает к шлагбауму №1 на ВЪЕЗД. Наезжает на петлю №1, контроллер переключает светофор с зелёного на красный. Следующие машины останавливаются на СТОП-ЛИНИИ.

Номер считывается видео-камерой и обрабатывается на внешнем сервере (софт распознавания автомобильных номеров). Считаем что номер в белом списке. Машина находится на токовой петле. Шлагбаум № 2 закрыт. Между шлагбаумами нет другой машины.

Идет сигнал от нашей системы на контроллер Laurent-5, который учитывает, что машина на петле перед шлагбаумом №1 и замкнут контакт, что номер допускается на территорию, шлагбаум №2 закрыт.

Машина проезжает к шлагбауму №2, который закрыт. Светофор горит красным. Как только машина пересекает датчик под стрелой, шлагбаум самостоятельно закрывается за машиной, отсекая "паровоз" из следующих машин.

Машина находится между двух закрытых шлагбаумов. В этот момент происходит установление статусов: машина перед шлагбаумом №2 = петля дает сигнал, шлагбаум №1 закрыт. Если всё так, то идёт команда на открытие шлагбаума №2.

Контроллер ожидает проезда машины через токовую петлю №3 на территорию и закрывает шлагбаум № 2. По статусам датчиков фиксируется, что машины нет между шлагбаумов, шлагбаумы закрыты, тогда контроллер дает команду на светофор = загорается зелёный, приглашая следующую машину на ВЪЕЗД. Контроллер переводится в начальный режим и ожидает ТС перед шлагбаумом №1. Алгоритм повторяется.

Сможем на вашем контроллере (Laurent-5 / Laurent-5G) собрать схему?


Автоматика управления шлагбаумом на КПП

Рис. Иллюстрация КПП на котором нужно автоматизировать процесс управления шлагбаумами с помощью системы CAT модуля Laurent-5




Ответ - ДА. Такую задачу автоматизации можно легко решить с помощью модуля 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 которое занимается возвращением КПП в исходное состояние для ожидания следующей автомашины.






© Дмитрий Иванов
08 Ноября 2020 года
http://www.kernelchip.ru



© KERNELCHIP 2006 - 2024