wiki:device-matrix

Вендинговый матричный контроллер доступа

Описание

Матричный контроллер позволяет управлять матрицей эектромагнитных защелок с управляющего компьютера (хоста) через интерфейс 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 байт в блоке данных.

Last modified 7 years ago Last modified on Dec 14, 2017, 2:36:58 PM

Attachments (3)

Download all attachments as: .zip