Протоколы подключения счётчиков банкнот

Счётчики банкнот 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
Описание полей кадра

Поле

Описание

Допустимые значения

stx

Начало кадра

0x02 (фиксированно)

seq

Последовательность (порядковый номер кадра)

0x30–0x39 (символы 0–9)

cmd

Команда

0x30–0x39 (символы 0–9)

data

Данные команды

Произвольные ASCII-символы; читайте все байты до маркера etx

etx

Конец кадра

0x03 (фиксированно)

checksum

Контрольная сумма

Сумма байтов seq + cmd + data по модулю 256

Примечание

Основные символы поля data лежат в диапазонах 0x30–0x39, 0x61–0x7A, 0x41–0x5A (цифры, строчные и заглавные латинские буквы). Однако фактические данные содержат разделители — запятую, точку с запятой, двоеточие, точку, дефис и пробел, — которые выходят за пределы этих диапазонов. Поэтому при реализации парсера не следует фильтровать байты по диапазону: корректнее читать все байты вплоть до маркера окончания кадра 0x03.

Контрольная сумма

Контрольная сумма — это сумма байтов полей seq, cmd и data в их ASCII-представлении, взятая по модулю 256 (младший байт). Разработчикам необходимо реализовать корректный алгоритм вычисления checksum для валидации входящих пакетов.

Пример для пакета 0x02 0x31 0x38 0x43 0x2D 0x31 0x30 0x30 0x03:

  1. seq = 0x31 (ASCII '1')

  2. cmd = 0x38 (ASCII '8')

  3. data = 0x43, 0x2D, 0x31, 0x30, 0x30 // строка C-100

  4. Сумма = 0x31 + 0x38 + 0x43 + 0x2D + 0x31 + 0x30 + 0x30 = 0x16A

  5. checksum = 0x16A mod 0x100 = 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 может поступать без предварительного запроса со стороны ПК. Поэтому приложение должно корректно обрабатывать входящие сообщения, а не только результаты активного опроса устройства.

Режимы работы

Обратите внимание на различия в передаче режимных параметров:

  1. У C-100 режим работы передаётся в данных команды 0x37 параметром Mode.

  2. У C-120/C-200 аналогичная информация (режим, суммирование, фасовка и другие параметры) передаётся в команде 0x38.

Заключение

Протоколы подключения счётчиков банкнот MERTECH C-100, C-120 и C-200 построены на единой архитектуре с общей структурой кадра и одинаковыми базовыми параметрами последовательного интерфейса. Однако форматы данных и состав информации существенно различаются между моделями.

Для успешной интеграции рекомендуется:

  1. Чётко идентифицировать модель счётчика перед началом обмена.

  2. Реализовать раздельную логику парсинга для C-100 и для C-120/C-200.

  3. Учитывать автоматическую отправку некоторых сообщений устройством.

  4. Корректно вычислять контрольную сумму для валидации пакетов.

Представленные протоколы позволяют получать широкий спектр информации: от простого подсчёта количества банкнот до детальных данных о каждой купюре (валюта, номинал, серийный номер, год выпуска, ориентация), а также статусные и конфигурационные параметры устройств. Это делает счётчики MERTECH удобным инструментом для построения профессиональных систем учёта и обработки наличных средств.