Вендинговый матричный контроллер доступа
Описание
Матричный контроллер позволяет управлять матрицей эектромагнитных защелок с управляющего компьютера (хоста) через интерфейс RS232.
Дополнительно контроллер управляет двумя линиями 12В и анализирует показания датчика открытия двери.
Хост выдает команды (STATUS, OPEN, POWERON) на контроллер.
Подключение
Демонстрационная утилита
Демонстрационная утилита позволяет управлять контроллером с командной строки. Исходный код утилиты и exe-файл см. в аттаче (запускать с командной строки из каталога exe-файлом).
Варианты запуска:
Проверка доступности устройства:
protodemo.exe COM1 ping
Проверка статуса:
protodemo.exe COM1 status
Открытие электромагнитной защелки 2 ряд 3 колонка на период до 10 секунд (или до закрытия двери).
protodemo.exe COM1 open 2 3 10
Включение линии 1 на 2 минуты (120 секунд)
protodemo.exe COM1 poweron 1 120
API
Управление контроллером с хоста осуществляется через порт RS232
Параметры последовательного порта:
- Baudrate: 115200
- Parity: none
- 8 bits
- 1 STOP
контроллер и хост обмениваются командами и данными, инкапсулированными в пакеты следующего формата:
- (1 байт) sync - байт синхронизации, 0x55
- (1 байт) size - размер пакета (включая sync и crc)
- (2 байта) адрес устройства, иные параметры - не используются, передавать 0x00 0x00
- (1 байт) cmd/response - код команды
- (N байт) data - блок данных команды (может быть пустым)
- (2 байта) crc - контрольная сумма CRC16-CCIT
PING (0x01): проверка связи с устройством
Без данных. Успешный ответ на команду (response = 0x01) поступает без данных.
OPEN (0x02): открытие защелки
Данные:
- 1 байт - ряд защелки (нумерация с нуля: 0-7)
- 1 байт - столбец защелки (нумерация с нуля: 0-7)
- 2 байта - время открытия в секундах (Big Endian, например 300 сек = 0x01 0x2C). Если время открытия равно нулю, то защелка принудительно закрывается. Все защелки до закрытия команды закрываются.
Успешный ответ на команду (response = 0x02) поступает без данных, ошибка (response = 0x00) поступает с кодом ошибки размером 1 байт в блоке данных.
Закрытие защелки производится автоматически, если было обнаружено закрытие двери. Устройство переходит в режим Занято (BUSY) на время открытия защелки и на период, пока дверь не закрыта.
STATUS (0x03): текущее состояние устройства
Без данных, запрашивает текущее состояние устройства.
В ответе (response = 0x01) в блоке данных последовательно возвращаются:
- 1 байт: статус датчика открытия двери (0x01 - все двери закрыты, 0x00 - хотя бы одна дверь открыта)
- 2 байт: оставшееся время открытия двери в секундах (0 - двери закрыты)
- 2 байта: оставшееся время включения линии 1 в секундах (0 - линия выключена)
- 2 байта: оставшееся время включения линии 2 в секундах (0 - линия выключена)
- Дополнительные параметры статуса (не регламентированы на данный момент)
POWERON (0x04): включение линии 12В
Данные:
- 1 байт - номер линии (1 или 2)
- 2 байта - время включения в секундах (Big Endian, например 300 сек = 0x01 0x2C). Если время включения равно нулю, то линия принудительно выключается.
Успешный ответ на команду (response = 0x04) поступает без данных, ошибка (response = 0x00) поступает с кодом ошибки размером 1 байт в блоке данных.
Attachments (3)
- protodemo.zip (110.7 KB) - added by 7 years ago.
- vendmatrix.pdf (67.3 KB) - added by 7 years ago.
- vendmatrix.png (85.6 KB) - added by 7 years ago.
Download all attachments as: .zip