Система контроля и управления проездом автомобилей Q-YMS¶
Введение¶
Система предназначена для управления и контроля потоков автомобильного транспорта на производственных, торговых и складских территориях. Система позволяет идентифицировать транспортные средства с использованием беспроводных технологий на базе RFID-меток, а также при помощи технологий компьютерного зрения путем распознавания автомобильных государственных регистрационных номерных знаков (ГРНЗ). Использование данной системы позволяет автоматизировать управление транспортными потоками и сократить время обработки автомобилей, прибывающих на территорию предприятия. Система обеспечивает комплексную автоматизацию процессов проезда, взвешивания и разгрузки автотранспорта от момента въезда на территорию до момента полного завершения маршрута.
Архитектура¶
Термины и определения
- Node-RED - инструмент потокового программирования процессов разработанный командой IBM Emerging Technology Services. Позволяет осуществить интеграция и настроить взаимодействие между различными устройствами и протоколами передачи данных в режиме реального времени (https://nodered.org);
- Q-RFID – сервер интеграции между внешними системами (1С) и подсистемой UHF RFID;
- AMPQ – протокол очереди сообщений системы RabbitMQ;
- LLRP – низкоуровневый протокол управления оборудованием RFID;
- HTTP – высокоуровневый обмена информации на без WEB технологий;
- UI -пользовательский интерфейс мониторинга и управления узлами системы.
- ГРНЗ – государственный регистрационный номерной знак.
В качестве ядра управления выступает сервис Node-RED, который осуществляет логическое управление и взаимодействие между всеми компонентами системы на базе различных протоколов обмена данными.
Система состоит из контрольного, сигнализирующего и исполнительного оборудования на въезде и выезде в местах точек контроля и внутри них, а также сервера управления, на котором установлено программное обеспечения Q-YMS.
Все исполнительные устройства и датчики, через сетевой контроллер Moxa E2210, передают информацию о своих состояниях на основной сервер управления. В зависимости от настроенной логики сервер отправляет команды на включение считывателей, распознавание ГРНЗ. В ответ на выполненные команды основной сервер принимает решение относительно управления исполнительными устройствами в точках контроля.
В качестве промежуточных сервисов взаимодействия выступают сервисы Q-RFID, которые взаимодействуют с внешними системами и их базами данных. Q-RFID имеет встроенный HTTP API для взаимодействия с Node-RED сервером.
Оборудование¶
Контрольное¶
К контрольному оборудованию относятся устройства обнаружения транспортных средства и их идентификации:
- считыватель RFID идентификаторов формата UHF EPC Gen2, с рабочей частотой 863—868 МГц
- антенны дальней идентификации сигнала UHF
- камера видеонаблюдения в составе системы распознавания ГРНЗ
- фотоэлементы обнаружения препятствий
- стационарный терминал с сенсорным экраном и считывателем UHF идентификаторов (для подтверждения весовых значений)
Сигнализирующее¶
К сигнализирующему оборудованию относятся устройства внешней индикации состояний возможности проезда в точке контроля:
- светофор двухсекционный, светодиодный красный-зелёный.
Исполнительное¶
К исполнительному оборудованию относятся устройства выполняющие функции управления механизмами и ограничения проезда:
- контроллер управления механизмом шлагбаума, светофором и мониторингом входящих сигналов от контрольного оборудования (состояние фотоэлементов)
- шлагбаум проезда
Комплекс программных средств необходимых для управления устройствами и взаимодействия с внешними системами:
- конструктор потокового программирования (Node-RED);
- сервис управления оборудованием RFID UHF (Q-RFID);
- панель управления узлами системы (Q-YMS);
- сервис взаимодействия с весовым оборудованием (модуль Q-YMS).
Алгоритм работы¶
Система Q-YMS на верхнем уровне оперирует следующими объектами:
- Стойка проезда – исполнительное оборудование устройствами идентификации (считыватель RFID, камера видеонаблюдения) и контроля проезда (контроллер управления, светофор, шлагбаум) в зону;
- Зона проезда – зона въезд и выезд в которую ограничен стройками проезда;
- Сессия проезда – данные по транспортным средствам находящимся в зоне;
- Провайдер доступа – источник данных на основании которых выполняется проверка возможности проезда в зону;
- Модули интеграции – встроенные модули, на основании которых выполняется интеграция с внешними системами;
Порядок работы:
- Транспортное средство находится в зоне обнаружения стойки проезда
- Производится идентификация возможности проезда в зону транспортного средства
- Автоматическое поднятие стрелы шлагбаума;
- Открытие шлагбаума диспетчером через интерфейс системы управления;
- Заезд в зону;
- Прохождение первого контрольного датчика положения;
- Прохождение второго датчика положения;
- Автоматическое закрытие стрелы шлагбаума;
- Подтверждение корректности въезда;
- Начало сессии ТС в зоне;
- Выезд из зоны
- Транспортное средство находится в зоне обнаружения стойки проезда
- Идентификация возможности выезда из зоны транспортного средства
- Автоматическое поднятие стрелы шлагбаума;
- Открытие шлагбаума диспетчером через интерфейс системы управления;
- Выезд из зоны;
- Прохождение первого контрольного датчика положения;
- Прохождение второго датчика положения;
- Автоматическое закрытие стрелы шлагбаума;
- Подтверждение корректности въезда;
- Завершение сессии проезда ТС.
Стойка проезда¶
Стойка проезда Q-YMS используется для контроля въезда и/или выезда в/из зоны. Также стойка сохраняет получаемые от контрольных устройств (камера распознавания ГРНЗ, антенна RFID) данные для автоматической идентификации ТС в системе Q-YMS. Каждая стойка должна быть привязана к конкретной зоне и имеет соответствующий тип:
- Въезд – возможен только односторонний проезд в зону;
- Выезд - возможен только односторонний выезд из зоны;
- Въезд/Выезд – возможно движение в обоих направлениях;
Проезд через зону может быть ограничен на основании емкости зоны и её типа. Контроль состояния стойки проезда осуществляется через панель управления.
Зона проезда¶
Территория въезд и выезд в которую ограничен стойками проезда. Каждая зона имеет вместимость определённого количества ТС. Если количество активных сессий в зоне достигло максимального значения емкости зоны, то въезд в зону в автоматическом режиме невозможен. В случае разрешение доступа в ручном режиме доступ будет возможен, но информация о сессии и данных ТС вестись не будет.
Также зона может иметь признак Check-Point
, который задет автоматическую емкость равную 1
. В таком режиме только одно ТС может находиться в зоне.
Технические требования¶
Сервер¶
Сервер должен меть доступ к сегменту локальной сети в которой размещены сетевые узлы системы.
Наименование | Значение |
---|---|
Процессор | не менее 1.8 GHz, 2 Core |
Память | не менее 4 Gb, рекомендуется 8 Gb |
Хранилище | не менее 200 Gb |
Операционная | Linux Debian >=10 или Ubuntu >=18.04, Windows 10/11/Server, Docker |
СУБД | MongoDB (версия >=4.4.1) |
Для раздельного доступа к данным точка монтирования системных файлов операционной системы должны быть выделена в отдельный раздел, объем которого должен быть не менее 80 Gb. Оставшийся (от требуемого) объем пространства должен быть выделен в отдельный раздел данных и назначен точке монтирования /data
. В раздел данных будет устанавливаться все системные и служебные файлы системы Q-YMS.
RFID¶
Для идентификации транспортных средств, а также для дополнительного контроля предусмотрено использование пассивных RFID-меток, выполненных по стандарту ISO/IEC 7810. В качестве идентификатора используется RFID технология UHF. Идентификатор должен поддерживать рабочую частоту в диапазоне 863—868 МГц. Используемые идентификаторы должны иметь блок памяти EPC не менее 128 бит и блок памяти User не менее 32 бита. Данный тип идентификаторов предполагает перепрограммирование EPC идентификатора при каждом новом использовании. Идентификаторы должны иметь защиту записи данных, в блоки памяти, по паролю.
Настройка¶
Настройка системы осуществляется через веб-интерфейс. Для доступа необходимо авторизоваться на странице входа(Данные доступа по умолчанию: Логин: admin
Пароль: admin
)
Добавление зоны¶
-
Для добавление зоны проезда необходимо перейти в меню зоны и нажать кнопку
Создать
: -
В открывшемся окне необходимо заполнить данные зоны:
Параметры
- Наименование
- Признак «Check-Point» - используется для КПП и производственных терминалов
- Вместимость ТС в зоне
- Описание (не обязательно)
-
После нажатия на кнопку «Сохранить» будет выведено сообщение с результатом операции.
-
При возвращении в список зон, новый элемент должен появиться в списке. По списку доступен поиск по наименованию зоны.
zone_list
Добавление стойки проезда¶
- Для добавление стойки проезда необходимо перейти в меню «Список стоек» и нажать кнопку
Создать
: - В открывшемся окне необходимо заполнить данные стойки
Параметры
- Наименование
- Зона (стойка должны быть обязательно к зоне)
- IP-адрес (адрес контроллера управления исполнительными механизмы MOXA)
- Тип стойки (Въезд/Выезд/Въезд/Выезд)
- Широта (float) - опционально
- Долгота (float) – опционально
- Переключатель «шлагбаум отключен» - переводит работу шлагбаума только в ручное управление.
- Переключатель «стойка отключена» - не отображается в мониторинге, не опрашивается сервером на предмет активности. После изменения данного параметра требуется перезагрузка сервиса.
- Дополнительная информация – для ряда модулей интеграции необходимо указывать дополнительные реквизиты.
- Для сохранить данные необходимо нажать кнопку
Сохранить
После успешного сохранения стойка должна отобразиться в списке и панели мониторинга.
Добавление доступов¶
В системе предусмотрена возможность добавления идентификаторов доступа непосредственно в системе Q-YMS. Проверка на проезд может быть осуществленная через встроенные API.
- Для добавление доступа необходимо перейти в меню «Доступ» и нажать кнопку «Создать».
- В открывшемся окне необходимо заполнить данные доступа
Параметры
- Наименование
- RFID – идентификатор
- Plate – номер транспортного средства
- Выбрать список доступных стоек проезда через которые будет разрешен проезд
- Добавьте дополнительные атрибуты
Основные настройки¶
Параметр | Описание | Тип | Значение по умолчанию |
---|---|---|---|
Хост (Host) | IP-адрес или наименование хоста на котором развернута система. Значение должно быть заполнено корректно | строка | 127.0.0.1 |
Порт (HTTP) | Порт для HTTP | число | 8081 |
Порт (HTTPs) | Порт для HTTPs | число | 443 |
Пути к сертификатам SSL | Путь к файлам сертификатов относительно файловой системе на сервера | строка | /app/cert/cert.pem /app/cert.key |
Параметры СУБД (доступно только через config.json) | |||
Тип | Тип поддерживаемой СУБД (в дальнейшем возможно расширение поддерживаемых системы СУБД) | строка | mongodb |
Хост | Адрес сервера СУБД | строка | localhost |
Порт | Порт сервера СУБД | число | 27017 |
Логин | Имя пользователя используемого для доступа к СУБД | строка | mongo-root* |
Пароль | Пароль доступа к СУБД | строка | pa$$word* |
Наименование БД | Наименование БД в которой содержаться данные о пользователе | строка | admin |
Параметры сервера Node-RED | |||
Хост | Адрес сервера Node-RED | строка | localhost |
Порт | Порт сервера Node-RED | число | 27017 |
Авторизации | Настройка должна быть включена если на сервера Node-RED требуется авторизация | булево | включено |
Логин | Имя пользователя используемого для доступа к Node-RED | строка | mongo-root* |
Пароль | Пароль доступа к Node-RED | строка | pa$$word* |
Для перезагрузки служб сервера в разделе настроек доступна кнопка «ПЕРЕЗАГРУЗКА»
Настройка модуля Курск-Агро¶
Данный модуль предназначен для интеграции с КИС терминального комплекса, основным функционалом которого является взаимодействие с системой очередей RabbitMQ (RMQ).
Для выполнения настроек необходимо перейти в раздел «Настройки» - «Модули» - «Курск-Агро» и заполните необходимые поля:
- Пространство имен для заголовков сообщений RMQ;
- Адрес или имя сервера RMQ;
- Порт сервера RMQ;
- Виртуальный сервер;
- Логин доступа к системе сообщений RMQ;
- Пароль доступа;
- Добавьте название очередей для которых необходимо подписаться на входящие сообщения.
-
Добавьте список весовых терминалов NAIS по номеру атрибута entry, установленной для каждой стойки. В драйвера весовых терминалов NAIS должны быть настроены параметры HTTP API. Настройте соответствие между API драйвера и номером проезда.
Для сохранения настроек нажмите кнопку «Сохранить». При сохранении службы сервера перезагружаются.
Очередь ТС¶
Отображает список доступа переданных из внешних системы. Для модуля «Курск-Агро» данные доступа удаляются из системы по факту завершения проезда в зоне.
Данные доступа могут быть удалены оператором из интерфейса системы.
События¶
В данном разделе отображается журнал событий сервера. При помощи кнопки «Добавить фильтр» можно осуществлять выборку событий по фильтрам.
Сессии¶
В данном разделе отображается информация о текущих, завершенных и отмененных сессиях. Завершенной считается сессия при корректном проезде ТС через контрольные точке в данной зоне. Сессии, отмененные оператором, вручную помечаются как «Отмененные».
При наведении мышки на значок можно увидеть полную информации по сессии в формате JSON.
Для перемещения межу сессиями используются вкладки.
Мониторинг¶
В данном разделе отображается информация о стойках в реальном времени
Каждая стойка имеет набор индикаторов состояний.
При включенной функции «Шлагбаум заблокирован» управление шлагбаумом можно осуществлять только через кнопки «Поднять»/ «Опустить». Программные команды алгоритмов процесса NODE-RED игнорируются.
Конфигурация контроллеров MOXA¶
Для настройки контроллера ПЛК Moxa серии ioLogic используется утилита от производителя контроллера ioAdmin. В данном разделе описывается только конфигурация контроллера для работы в составе системы Q-YMS. Полная инструкция по работе с контроллером доступна на сайте производителя (https://moxa.ru/shop/io/e2200/iologik-e2210/#prod-docs).
Основной протокол через который осуществляется взаимодействие между контроллером и системой это SNMP и Modbus TCP. Сообщения SNMP отправляются напрямую в конфигуратор процессов Node-RED и содержат информацию от состоянии всех входов и выходов контроллеров. Сообщения отправляются каждые 5 секунд или сразу при смене состояний входов.
Протокол Modbus используется только для управления выходами.
MOXA - РАСКЛЮЧЕНИЕ УСТРОЙСТВ И ДАТЧИКОВ | ||
---|---|---|
Входы | Датчик | Номер стойки |
DI-0 | Концевик ОТКРЫТО | 1 |
DI-1 | Концевик ЗАКРЫТО | 1 |
DI-2 | ИК-1- ВЪЕЗД | 1 |
DI-3 | ИК-2- ВЫЕЗД | 1 |
DI-4 | Концевик ОТКРЫТО | 2 |
DI-5 | Концевик ЗАКРЫТО | 2 |
DI-6 | ИК-1- ВЪЕЗД | 2 |
DI-7 | ИК-2- ВЫЕЗД | 2 |
DI-8 | не используется | |
DI-9 | не используется | |
DI-10 | концевик разгрузки | 1 |
DI-11 | концевик разгрузки | 2 |
Выходы | Исполнительное | Номер стойки |
DO-0 | Светофор | 1 |
DO-1 | Поднятие стрелы | 1 |
DO-2 | Опуск стрелы | 1 |
DO-3 | Светофор | 2 |
DO-4 | Поднятие стрелы | 2 |
DO-5 | Опуск стрелы | 2 |
DO-6 | не используется | |
DO-7 | не используется |
Каждый контроллер может обслуживать не более двух стоек.
Основная функция, через которую осуществляется настройка реакции на состояние, является Click&Go.
Настройка сценариев Click&Go¶
Для конфигурации сценариев необходимо перейти в раздел Click&Go утилиты ioAdmin
В качестве идентификатора источника событий (стойки) в коде скриптов указывается ID стойки.
Всего используется 5 ячеек памяти (4 для обнаружения смены состояний, 1 автоматический таймер отправки состояний через интервал времени).
Предварительно необходимо задать адрес и настройки SNMP Trap сервера.
Для настройки скрипта для смены состояний необходимо создать сценарий в свободной ячейке памяти.
В левой части (блок IF) мы выбираем дискретные входы на которые должны реагировать при смене состояний. Для каждого блока можно выбрать не более 3х условий. В качестве источника необходимо выбрать соответствующий вход (DI-x) и условие, при котором будет выполнятся триггер. В нашем случае необходимо выбрать «Change».
В блок THEN необходимо выбрать триггер (1, необходимо выбрать SNMP Trap) который будет реагировать на событие и настроить формат сообщения.
В окне настроек SNMP Trap Setting необходимо сформировать формат сообщения (3) и выбрать SNMP сервер (4):
Формат сообщения:
\<DI:0>;\<DI:1>;\<DI:2>;\<DI:3>;\<DI:4>;\<DI:5>;\<DI:6>;\<DI:7>;\<DI:8>;\<DI:9>;\<DI:10>;\<DI:11>;
\<DO:0>;\<DO:1>;\<DO:2>;\<DO:3>;\<DO:4>;\<DO:5>;\<DO:6>;\<DO:7>;{STAND1-ID>};{STAND2-ID}
где {STAND1-ID} и {STAND2-ID} числовые идентификаторы стоек. Для контроллеров управляющих одной стойко проезда указывается только одни идентификатор.
Пример формата сообщения:
\<DI:0>;\<DI:1>;\<DI:2>;\<DI:3>;\<DI:4>;\<DI:5>;\<DI:6>;\<DI:7>;\<DI:8>;\<DI:9>;\<DI:10>;\<DI:11>;
\<DO:0>;\<DO:1>;\<DO:2>;\<DO:3>;\<DO:4>;\<DO:5>;\<DO:6>;\<DO:7>;1742944929;2577719286
Таким образом необходимо настроить реакцию на все дискретные входы. В сообщениях также содержится информация о состоянии дискретных выходов.
Таймер состояний
Также необходимо настроить сценарий таймера который, будет отправлять сообщения на SNMP сервер через заданный интервал времени (heartbeat). При помощи данного сценария система определяет, что стойка в сети. Для начала необходимо настроить параметры и имя таймера.
Далее необходимо добавить скрипт в свободную ячейку памяти.
В качестве условия блока IF необходимо указать TIMER
В качестве триггера и формата сообщения устанавливаются аналогичные для дискретных входов параметров.
После настройки необходимо активировать работу скриптов.
Если при запуске утилиты список добавленных скриптов пуст необходимо нажать кнопку «Retriev» для чтения данных из памяти устройства.