BOX-контроллер автомата выдачи коробок
BOX-контроллер осуществляет контроль выдачу коробок в вендинговом автомате.
Особенности подключения и комплектации
Особенности:
- Крайне важно!! Управляющий симистор non-insulated, радиатор "под током". Т.е. контроллер нужно запаковать или закрыть крышкой чтобы избежать случайного касания.
- Шунтирующее реле мы ставим как резервное, не используется.
- ВАЖНО! Подключение строго RS232, не путать с uart!
Коммутация через контроллер rvm
Алгоритм управления
Контроллер оперирует следующими состояниями:
- IDLE - в ожидании команды, готов выполнять выдачу.
- DISPENSE - идет выдача коробки.
- ESCROW - коробка в положении выдачи, ожидает забора из лотка.
- ERROR - защелкнутое состояние ошибки.
Для выдачи коробки хост осуществляет следующие операции:
- Проверяет текущий статус-готовность к выдаче (IDLE)
- Выполняет команду DISPENSE. В случае неудачи отменяет операцию.
- Ожидает смены статуса.
- Если статус сменился на ERROR хост отменяет транзакцию, терминал останавливает работу до выезда сервисного инженера.
- Если статус сменился на ESCROW хост рекомендует клиента забрать коробку.
- Если/когда статус сменился на IDLE хост может завершить обслуживание.
Возможные ошибки:
- empty - ошибка фиксируется, если во время операции выдачи (DISPENSE) не зафиксировано движение коробки по концевику.
- jam - ошибка фиксируется, если во время операции выдачи (DISPENSE) не зафиксировано освобождение датчика движения.
Важно! Контроллер не имеет возможности контролировать отсутствие коробок в стеке, поэтому ПО терминала должно осуществлять контроль загрузки и остатков коробок.
Протокол управления
При разработке протокола следует ориентироваться на исходный код утилиты protodemo_box. Команды и результаты выполнения описаны как с точки зрения заголовочного файла box.h и аргументов командной строки protodemo_box.
Управление контроллером с хоста осуществляется через порт 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) поступает без данных.
С командной строки:
protodemo_box COM1 ping
Ответ:
PING OK
ID: идентификация устройства/прошивки
С командной строки:
protodemo_box COM1 id
Ответ:
ID: device 4 version 1.0
ESTATUS (0x03): текущий статус устройства
Без данных. Успешный ответ включает в себя TLV-блоки, описывающие статус устройства, в формате:
- (1 байт) тип TLV-блока
- (1 байт) размер блока данных
- (X байта) значение блока данных
Варианты типа блока:
- BOX_HPROTO_ESTATUS_STATE = 1 - статус (см box.h)
- BOX_HPROTO_ESTATUS_ERROR = 2 - битовая маска ошибки (см. box.h)
Блоки TLV с неизвестные типами данных необходимо корректно пропускать
С командной строки:
protodemo_box COM1 estatus
Ответ:
Status:[2] idle
DISPENSE (0x04): проверка связи с устройством
Без данных. Успешный ответ на команду (response = 0x04) поступает без данных.
С командной строки:
protodemo_box COM1 dispense
RECOVER (0x06): восстановление после перехода в ошибку
С командной строки:
protodemo_box COM1 recover
Без данных, Успешный ответ на команду (response = 0x04) поступает без данных.
Attachments (5)
-
protodemo_box.zip (6.4 KB) - added by 2 years ago.
Исходный код утилиты
-
protodemo_box.exe (415.8 KB) - added by 2 years ago.
Версия для windows
- rvm-box.png (52.7 KB) - added by 2 years ago.
- rvm-boxer-1.0.bin (54.0 KB) - added by 2 years ago.
- boxer-1-0.png (36.7 KB) - added by 2 years ago.
Download all attachments as: .zip