Датчики пассажиропотока HPC168
Датчики HPC168 — видеосчётчики пассажиров, устанавливаемые над дверями. К одному прибору подключается до 8 датчиков по RS-485; на той же линии могут работать другие устройства.
Интеграция сделана на EasyLogic — общий порядок в статье «Подключение устройств через алгоритмы EasyLogic». Благодаря синхронизации с концевыми выключателями дверей исключается повторный подсчёт пассажиров, уже находящихся в салоне, и появляется возможность строить отчёты по каждому остановочному пункту.
Минимальные версии прошивки: 10 — 2.9, 7x — 38.25.
Подключение
Заголовок раздела «Подключение»
Предварительная настройка датчиков
Заголовок раздела «Предварительная настройка датчиков»Перед первым подключением задайте в программе производителя датчика:
- Serial Port Settings → RS485 —
9600(рекомендуемая скорость обмена); - Data comm configure → protocol —
RS485; - Data comm configure → Device Addr — адрес датчика, 1…247.
Сохраните настройки кнопкой Set Device Param.

Устанавливайте датчики по рекомендациям производителя.
Настройка прибора
Заголовок раздела «Настройка прибора»-
В настройках включите модули RS-485 и Запись архива точек в память, примените настройки и перезагрузите прибор.
-
В настройках последовательных портов выберите тип периферии RS-485 по составу линии:
На линии RS-485 Тип периферии Только датчики Только обработчики RS485 в EasyLogic Фотокамера Galileosky, ДУТ и датчики Фотокамера Galileosky и ДУТ Фотокамера стороннего производителя, ДУТ и датчики Обработчик фотокамеры в EasyLogic и ДУТ Modbus и датчики Modbus Modbus, ДУТ и датчики ДУТ и ModBus Совместная работа с Modbus поддерживается приборами 10 с прошивки 2.9 и 7x с прошивки 47.13.
-
Включите Массив пользователя в основном пакете.
-
В настройках трека задайте Вход зажигания.
-
В настройках входов настройте входы, к которым подключены зажигание и концевые выключатели дверей. Алгоритм считает, что открытой двери соответствует логическая единица (зона срабатывания). Если при открывании двери концевик притягивается к «массе», установите соответствующий флаг в настройках входа.
-
Загрузите алгоритм в Терминале:
SCRIPT galileosky/hpc168_doorsens -
Перезагрузите прибор командой
RESETи выполните стартовую инициализацию командамиHPC168CONF.
Как алгоритм работает
Заголовок раздела «Как алгоритм работает»При запуске алгоритм читает свои настройки из энергонезависимой памяти прибора и начинает подсчёт.
Датчики опрашиваются циклически. Когда на входе появляется сигнал открытой двери, начинается подсчёт вошедших и вышедших; при закрывании двери данные пишутся в тег, формируется внеочередная точка, и подсчёт начинается заново.
Если концевые выключатели к входам не подключены (вход датчика задан как -1), алгоритм
опрашивает датчики раз в минуту: если за минуту данные не изменились, он записывает их
в массив пользователя, формирует внеочередную точку и начинает подсчёт заново.
Состояние дверей и зажигания можно брать не с физических входов, а из тега — например,
из данных CAN-шины (команда HPC168CONF 5).
После выключения зажигания алгоритм опрашивает датчики ещё некоторое время
(команда HPC168CONF 6, по умолчанию 30 минут).
Команды HPC168CONF
Заголовок раздела «Команды HPC168CONF»Общие ответы: cmd? — неизвестная команда; wait init — параметры ещё загружаются,
повторите команду позже.
| Команда | Что делает |
|---|---|
HPC168CONF 1 | Показать текущие настройки |
HPC168CONF 2,sensorIndex,hpcAddress,inputNum | Настроить датчик |
HPC168CONF 3,sensorPolling | Начать (1) или прекратить (0) опрос всех датчиков |
HPC168CONF 4,baudRate | Задать скорость обмена с датчиками |
HPC168CONF 5,ignitionTagId,doorsTagId | Задать теги состояния зажигания и дверей |
HPC168CONF 6,noIgnitionTimeout | Время опроса после выключения зажигания, с |
Текущие настройки
Заголовок раздела «Текущие настройки»Ответ на HPC168CONF 1:
hpc168 on;BaudRate=9600;NoIgnitionTimeout=1800 secs;ignitionTagId=-1;doorsTagId=-1;sens=[addr,in]:0=[1,1],1=[2,2],2=[3,-1],3=[-1,-1],4=[-1,-1],5=[-1,-1],6=[-1,-1],7=[-1,-1]Здесь опрос активирован, скорость 9600, опрос после выключения зажигания 1800 секунд, теги зажигания и дверей не используются, датчик 0 — адрес 1 и вход двери 1, датчик 1 — адрес 2 и вход 2, датчик 2 — адрес 3 без входа двери, остальные отключены.
Настройка датчика
Заголовок раздела «Настройка датчика»HPC168CONF 2,sensorIndex,hpcAddress,inputNum| Параметр | Значение |
|---|---|
sensorIndex | Индекс датчика, 0…7 |
hpcAddress | Адрес датчика, 1…247. -1 — прекратить опрос этого датчика |
inputNum | Вход прибора, к которому подключён концевик двери, 0…9. -1 — концевик не используется, датчик опрашивается раз в минуту. При заданном теге состояния дверей значение игнорируется |
Ответы: список датчиков в формате sens=[addr,in]:…; addr? — неверный формат адреса;
addr already used — такой адрес уже занят.
Примеры:
HPC168CONF 2,0,21,1 # датчик 0: адрес 21, вход двери 1HPC168CONF 2,0,21,-1 # датчик 0: адрес 21, без входа двериHPC168CONF 2,0,-1,-1 # удалить датчик 0Скорость обмена
Заголовок раздела «Скорость обмена»HPC168CONF 4,baudRateДопустимые значения: 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с.
Ответ — BaudRate=9600.
Теги зажигания и дверей
Заголовок раздела «Теги зажигания и дверей»HPC168CONF 5,ignitionTagId,doorsTagIdИдентификаторы берутся из таблицы тегов в контексте алгоритмов; -1 (по умолчанию) —
не используется.
ignitionTagId— бит 0 указанного тега переопределяет состояние физического входа зажигания:0— выключено,1— включено;doorsTagId— биты с 1-го по 8-й переопределяют состояние физических входов дверей:0— закрыта,1— открыта.
Биты отсчитываются справа налево, начиная с нуля.
Пример — взять зажигание из тега 2 (CAN8BITR0), двери из тега 3 (CAN8BITR1):
HPC168CONF 5,2,3Ответ — ignitionTagId=2; doorsTagId=3.
Опрос после выключения зажигания
Заголовок раздела «Опрос после выключения зажигания»HPC168CONF 6,noIgnitionTimeoutВремя в секундах, по умолчанию 1800 (30 минут). Ответ — NoIgnitionTimeout=1800 secs.
Управление опросом
Заголовок раздела «Управление опросом»HPC168CONF 3,1 # начать опросHPC168CONF 3,0 # прекратить опросОтветы — hpc168 on / hpc168 off. Значение не сохраняется в настройках алгоритма.
Вспомогательные алгоритмы
Заголовок раздела «Вспомогательные алгоритмы»Часть задач решается не командами, а дополнительным алгоритмом EasyLogic:
-
начальная конфигурация датчиков — если настройки нужно задавать программно;

-
отключение подсчёта в заданной геозоне.

Формат массива пользователя
Заголовок раздела «Формат массива пользователя»Первый байт — тип данных, 0x0A. Дальше 8 групп по 8 байт — по одной на датчик;
максимальный размер массива 65 байт. Порядок байт — little-endian.
| Поле | Размер, байт | Описание |
|---|---|---|
| 1 | 3 | Адрес датчика |
| 2 | 1 | Состояние датчика: 0 — запрос отработан, 1 — датчик не был задействован (дверь закрыта), 3 — внутренняя ошибка |
| 3 | 2 | Количество вошедших пассажиров |
| 4 | 2 | Количество вышедших пассажиров |
Пример: датчик 1 — вошло 1497, вышло 1593; датчик 2 не был задействован.
| Байт | Значение | HEX | Описание |
|---|---|---|---|
| 0 | 10 | 0x0A | Стартовый байт |
| 1–3 | 1 | 0x010000 | Адрес датчика 1 |
| 4 | 0 | 0x00 | Нормальная работа |
| 5–6 | 1497 | 0xD905 | Вошло |
| 7–8 | 1593 | 0x3906 | Вышло |
| 9–11 | 2 | 0x020000 | Адрес датчика 2 |
| 12 | 1 | 0x01 | Датчик не был задействован |
| 13–14 | 0 | 0x0000 | Вошло |
| 15–16 | 0 | 0x0000 | Вышло |
В виде набора байт: 0A 010000 00 D905 3906 020000 01 0000 0000 …
Если ПО мониторинга не умеет разбирать массив пользователя, обработку придётся реализовать на стороне сервера по описанию протокола Galileosky.
Диагностика
Заголовок раздела «Диагностика»Включите канал Алгоритмы и скрипты в Каналах диагностики.
| Сообщение | Значение |
|---|---|
hpc168: off | Опрос датчиков приостановлен |
p2 init! / p2 init? | Порт инициализирован / ошибка инициализации: не хватает памяти, прибор не перезагружен после загрузки алгоритма (рядом будут сообщения Port Initialization error) либо версия прошивки устарела |
hpc168: door <номер> opened / closed | Смена состояния двери |
hpc168: <адрес> passengersIn=%d, passengersOut=%d | Принятые данные датчика |
hpc168: <адрес> get passengers-error | Ошибка в работе датчика — проверьте настройки и подключение |
hpc168: <адрес> reset-ok / reset-error | Датчик очистил данные / ошибка при очистке |
См. также: Датчики пассажиропотока · Система подсчёта пассажиров «Автокондуктор» · Подключение устройств через алгоритмы EasyLogic