Протоколы подключения счётчиков банкнот¶
Счётчики банкнот MERTECH серий C-100, C-120 и C-200 оснащены возможностью подключения к персональному компьютеру для передачи данных о пересчёте. Это позволяет интегрировать устройства в программные комплексы автоматизации кассовых операций, системы учёта наличных средств и специализированное ПО для обработки данных о банкнотах.
Эта статья — технический обзор протоколов обмена данными этих моделей. Материал предназначен для разработчиков, реализующих программное обеспечение для взаимодействия со счётчиками MERTECH.
Базовые параметры подключения¶
Для всех трех моделей установлены единые параметры последовательного интерфейса:
Параметр |
Значение |
|---|---|
Скорость передачи (Baud rate) |
115200 |
Четность (Parity) |
Нет |
Стоп-биты (Stop bits) |
1 |
Биты данных (Data bits) |
8 |
Важно
Эти параметры общие для C-100, C-120 и C-200. При настройке соединения необходимо строго соблюдать указанные значения — любое отклонение приведёт к ошибке обмена данными.
Общая структура протокола¶
Обе версии протокола (для C-100 и для C-120/C-200) используют единый формат кадра:
stx + seq + cmd + data + etx + checksum
Поле |
Описание |
Допустимые значения |
|---|---|---|
|
Начало кадра |
|
|
Последовательность (порядковый номер кадра) |
|
|
Команда |
|
|
Данные команды |
Произвольные ASCII-символы; читайте все байты до маркера |
|
Конец кадра |
|
|
Контрольная сумма |
Сумма байтов |
Примечание
Основные символы поля data лежат в диапазонах 0x30–0x39,
0x61–0x7A, 0x41–0x5A (цифры, строчные и заглавные латинские
буквы). Однако фактические данные содержат разделители — запятую, точку
с запятой, двоеточие, точку, дефис и пробел, — которые выходят за
пределы этих диапазонов. Поэтому при реализации парсера не следует
фильтровать байты по диапазону: корректнее читать все байты вплоть до
маркера окончания кадра 0x03.
Контрольная сумма¶
Контрольная сумма — это сумма байтов полей seq, cmd и data
в их ASCII-представлении, взятая по модулю 256 (младший байт). Разработчикам
необходимо реализовать корректный алгоритм вычисления checksum для
валидации входящих пакетов.
Пример для пакета 0x02 0x31 0x38 0x43 0x2D 0x31 0x30 0x30 0x03:
seq=0x31(ASCII'1')cmd=0x38(ASCII'8')data=0x43,0x2D,0x31,0x30,0x30// строкаC-100Сумма =
0x31 + 0x38 + 0x43 + 0x2D + 0x31 + 0x30 + 0x30=0x16Achecksum=0x16Amod0x100=0x6A
Результат передаётся в виде одного байта.
Полный кадр в итоге должен выглядеть так:
0x02 0x31 0x38 0x43 0x2D 0x31 0x30 0x30 0x03 0x6A
Практические рекомендации для разработчиков¶
Универсальный подход¶
Если разрабатываемое ПО должно поддерживать все три модели (C-100, C-120, C-200), рекомендуется:
Идентифицировать модель устройства после подключения. Для C-100 ответы на команды
0x34,0x35и0x37начинаются со строкиC-100. Для линейки C-120/C-200 конкретная модель возвращается только в ответе на команду0x38(полеC-120илиC-200).Реализовать парсеры отдельно для каждой линейки — различия в форматах данных требуют разной логики извлечения информации.
Использовать общий слой для базовых операций (открытие порта, отправка и приём кадров, вычисление
checksum).
Обработка контрольной суммы¶
Контрольная сумма вычисляется как сумма байтов полей seq, cmd и
data в их ASCII-представлении по модулю 256. Результат передаётся
одним байтом.
Автоматические сообщения¶
При включении устройства и при входе в меню ВЕРСИЯ ПО счётчик
автоматически отправляет данные по команде 0x37. Это справедливо
для всех трёх моделей.
При разработке программного обеспечения необходимо учитывать, что пакет
0x37 может поступать без предварительного запроса со стороны ПК. Поэтому
приложение должно корректно обрабатывать входящие сообщения, а не только
результаты активного опроса устройства.
Режимы работы¶
Обратите внимание на различия в передаче режимных параметров:
У C-100 режим работы передаётся в данных команды
0x37параметромMode.У C-120/C-200 аналогичная информация (режим, суммирование, фасовка и другие параметры) передаётся в команде
0x38.
Заключение¶
Протоколы подключения счётчиков банкнот MERTECH C-100, C-120 и C-200 построены на единой архитектуре с общей структурой кадра и одинаковыми базовыми параметрами последовательного интерфейса. Однако форматы данных и состав информации существенно различаются между моделями.
Для успешной интеграции рекомендуется:
Чётко идентифицировать модель счётчика перед началом обмена.
Реализовать раздельную логику парсинга для C-100 и для C-120/C-200.
Учитывать автоматическую отправку некоторых сообщений устройством.
Корректно вычислять контрольную сумму для валидации пакетов.
Представленные протоколы позволяют получать широкий спектр информации: от простого подсчёта количества банкнот до детальных данных о каждой купюре (валюта, номинал, серийный номер, год выпуска, ориентация), а также статусные и конфигурационные параметры устройств. Это делает счётчики MERTECH удобным инструментом для построения профессиональных систем учёта и обработки наличных средств.