Статьи / 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) собрать схему?
![Автоматика управления шлагбаумом на КПП Автоматика управления шлагбаумом на КПП](img/KA048/001-1.jpg)
Рис. Иллюстрация КПП на котором нужно автоматизировать процесс управления шлагбаумами с помощью системы 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.
![Автоматика управления шлагбаумом на КПП Автоматика управления шлагбаумом на КПП](img/KA048/010.png)
Глава § 2. Исходное состояние
Первым делом, создадим правило (событие) по которому система должна устанавливаться в исходное состояние,
а именно: в том случае если на всех "петлях" нет автомашины и оба шлагбаума закрыты - то следует погасить красный светофор
и включить зеленый, тем самым приглашая автомобили на въезд.
Решим эту часть задачи с помощью события "таймер" по системному времени - будем раз в секунду проверять все
названные условия и если они выполняются - производить управление огнями светофора через реле.
![](img/KA048/002.png)
Настроим событие так что бы оно "пыталось" выполняться (если и другие условия будут
выполнены, см. далее) каждую секунду (время с момента старта модуля по модулю 1):
![](img/KA048/003.png)
А вот и дополнительные условия - нам нужно что бы на всех задействованных входах от датчиков (линии IN_1 - IN_5) не
было сигнала (т.е. шлагбаумы закрыты, машины над петлями нет).
![](img/KA048/004.png)
Теперь реакция - задаем ее в виде списка Ke-команд. В частности, включаем 1-ое реле (загорается зеленый светофор), выключаем красный (RELE_2).
![](img/KA048/005-1.png)
В данной логике есть некоторая тонкость - если условия для срабатывания оставить в
таком виде, то событие начнет срабатывать многократно (а именно каждую секунду) до тех пор
пока не появится машина в зоне КПП (ведь все датчики в исходном состоянии когда нет автомобиля будут давать логический ноль на выходе).
В данном конкретном случае это не является проблемой (систему это
не перегрузит т.к. трудоемких операций в рамках реакции не производится - просто производится управление реле).
Однако в том случае если было бы нужно что бы реакция по данному событию была выполнена единожды
(до следующего заезда машины на КПП) нужно ввести дополнительные команды. В частности, можно
выключить обработку данного события после его срабатывания с помощью Ke-команды $KE,CAT,x,SET,OFF (где x - ID события CAT).
И включать данное событие как только одна из петель сработает что бы система вновь могла вернуться в исходное состояние.
![](img/KA048/005-2.png)
Обусловимся для упрощения изложения что дополнительное управление работой 1-го события
(возвращающего систему в исходное состояние) производится не будет.
Для удобства на следующем шаге создания CAT события присвоим символическое имя данному логическому правилу.
![](img/KA048/006.png)
Все, событие создано. По умолчанию, сразу после создания CAT событие будет выключено.
Его следует включить соответствующей "кнопочкой" в панели управления.
![](img/KA048/007-1.png)
Поскольку в исходном состоянии у нас шлагбаумы закрыты и "петли" пустые - то как было описано выше, событие будет
срабатывать каждую секунду до тех пор пока не появится автомобиль в зоне КПП.
![](img/KA048/007-2.png)
Глава § 3. Появление автомобиля
А вот собственно и автомобиль заезжает на 1-ую токовую петлю и останавливается перед шлагбаумом в ожидании того
что его пропустят. Соответственно, на входе контроллера Laurent-5 IN_1 появляется высокий уровень сигнала.
Давайте обработаем это событие с помощью CAT.
![](img/KA048/008.png)
Будем реагировать на изменение уровня сигнала на линии IN_1 с низкого на высокий.
![](img/KA048/009.png)
Реакция - нужно погасить зеленый и включить красный светофор. А так же нам нужно как-то
проинформировать софт распознавания автомобильных номеров о том что появилась машина в зоне видимости
видеокамеры и нужно определить номер, проверить его по базе и если доступ разрешен - подать сигнал на
контроллер Laurent-5 о том что машину можно запускать.
Есть несколько разных способов передать данные от Laurent-5 на внешний софт (сервер) - например, отправить
данные с помощью команды $KE,PUT через TCP сервер или TCP клиент. А можно вызвать URL ссылку (
отправить GET запрос) по HTTP. Предположим, что софт анализа автономеров поддерживает работу
через GET HTTP запросы. Предположим, что WEB сервер находится на машине с IP = 192.168.0.200 и
при обращении к скрипту event.php с параметром cmd=NEW_CAR производится инициирование процесса распознавания.
![](img/KA048/011.png)
Глава § 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 запрос.
![](img/KA048/013.png)
В качестве реакции на событие (+ выполнение всех дополнительных условий) откроем 1-ый шлагбаум замкнув
контакты RELE_3 на 2 секунды. А так же сбросим значение переменной VAR_1 в ноль т.е. деактивируем событие
(что бы оно не выполнялось много раз подряд) до тех пор пока внешний софт снова не решит
дать "добро" на открытие 1-го шлагбаума.
![](img/KA048/014.png)
В итоге в списке событий должно появиться вот такое.
![](img/KA048/015.png)
Итак, машина над 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 логический ноль).
![](img/KA048/016.png)
В качестве реакции подадим управляющий сигнал на 2-ой шлагбаум через RELE_4 включив его контакты на 2 секунды.
![](img/KA048/017.png)
В списке CAT событий добавляется еще одно, вновь созданное для автоматизации открытия 2-ого шлагбаума.
![](img/KA048/018.png)
Глава § 6. Закрываем 2-ой шлагбаум
Итак, второй шлагбаум открыт и автомашина проезжает вперед покидая токовую петлю 2 и заезжая
на токовую петлю 3. При необходимости можно обработать событие заезда на 3-ю петлю по
изменению уровня сигнала на линии IN_3. В данной статье этот момент пропустим и обработаем
только момент покидания автомашиной 3-ей петли т.е. момент когда нужно закрывать 2-ой шлагбаум.
Создаем новое событие CAT по изменению уровня сигнала на входной оптоизолированной линии IN_3 с
высокого уровня (автомашина над петлей) на низкий уровень (машина покинула петлю).
![](img/KA048/019.png)
Ставим дополнительное условие - шлагбаум 2 должен быть открыт (высокий уровень сигнала на датчике открытия на линии IN_5):
![](img/KA048/020.png)
Реакция - отправка команды через RELE_4 на закрытие шлагбаума (закрывается так же как и закрывается). Результат:
![](img/KA048/021.png)
Глава § 7. Финал
Как только машина покинет 3-ю петлю и будет закрыт 2-ой шлагбаум,
сойдутся все условия для события CAT c ID=1 которое занимается возвращением КПП в исходное состояние для ожидания следующей автомашины.
© Дмитрий Иванов
08 Ноября 2020 года
http://www.kernelchip.ru