MERTECH C-120 и C-200. Протокол подключения к ПК¶
Примечание
Версия обновления протокола: 14.05.2025
Этот документ описывает спецификацию протокола обмена данными между счётчиками банкнот MERTECH C-120 и MERTECH C-200 и персональным компьютером через последовательный интерфейс.
Базовые параметры подключения¶
Для настройки последовательного порта (COM-порта) необходимо установить следующие параметры:
Скорость передачи (Baud rate): 115200
Чётность (Parity): Нет
Стоп-биты (Stop bits): 1
Биты данных (Data bits): 8
Структура кадра протокола¶
Общий формат кадра передачи данных:
stx + seq + cmd + data + etx + checksum
Поле |
Описание |
Значение / Диапазон |
|---|---|---|
|
Начало кадра |
|
|
Последовательность (номер кадра) |
|
|
Команда |
|
|
Данные команды |
Произвольные ASCII-символы (читайте все байты до |
|
Конец кадра |
|
|
Контрольная сумма |
Сумма байтов |
Примечание
Основные символы поля data лежат в диапазонах 0x30–0x39,
0x61–0x7A, 0x41–0x5A (цифры, строчные и заглавные
латинские буквы). Однако фактические данные содержат разделители —
запятую, точку с запятой, двоеточие, точку, дефис и пробел, — которые
выходят за пределы этих диапазонов. Поэтому при реализации парсера
не следует фильтровать байты по диапазону: корректнее читать все
байты вплоть до маркера окончания кадра 0x03.
Спецификация команд (cmd)¶
Cmd 0x30 — Очистка предыдущего пересчёта¶
Команда отвечает за очистку результатов предыдущего пересчёта.
Поле data фиксировано и равно значению cmd.
stx |
seq |
cmd |
data |
etx |
checksum |
|---|---|---|---|---|---|
|
|
|
|
|
|
Cmd 0x31 — Начало нового пересчёта¶
Команда отвечает за инициализацию и старт нового цикла пересчёта.
Поле data фиксировано и равно значению cmd.
stx |
seq |
cmd |
data |
etx |
checksum |
|---|---|---|---|---|---|
|
|
|
|
|
|
Cmd 0x32 — Вывод информации о банкноте¶
Возвращает детальные сведения о просчитанной банкноте: валюта, порядковый номер в текущей сессии, номинал, год выпуска, сторона, серийный номер.
Пример data: USD100,1,1996,A,AC1234567
Поля данных:
Порядок |
Значение |
|---|---|
1 |
Валюта ( |
2 |
Порядковый номер банкноты в текущей сессии |
3 |
Номинал |
4 |
Год выпуска |
5 |
Сторона ( |
6 |
Серийный номер |
stx |
seq |
cmd |
data |
etx |
checksum |
|---|---|---|---|---|---|
|
|
|
Текст (валюта, порядковый номер, номинал, год, сторона, серийный номер) |
|
|
Cmd 0x33 — Конец пересчёта¶
Команда сигнализирует о завершении текущей сессии пересчёта банкнот.
Поле data фиксировано и равно значению cmd.
stx |
seq |
cmd |
data |
etx |
checksum |
|---|---|---|---|---|---|
|
|
|
|
|
|
Cmd 0x34 — Вывод информации о валюте и номиналах¶
Возвращает идентификатор устройства, текущую валюту и список поддерживаемых номиналов.
Пример data: deviceID;USD:100,50,20,10,5,2,1
Поля данных:
Порядок |
Значение |
|---|---|
1 |
Идентификатор устройства |
2 |
Валюта (через двоеточие — список номиналов (через запятую)) |
stx |
seq |
cmd |
data |
etx |
checksum |
|---|---|---|---|---|---|
|
|
|
Текст (ID устройства, валюта, номиналы) |
|
|
Cmd 0x35 — Вывод мультивалютной информации¶
Возвращает агрегированные данные по всем валютам: валюта, количество банкнот, сумма. Записи для разных валют разделяются точкой с запятой.
Пример data: USD,100,10000;EUR,100,5000
Поля данных (повторяются для каждой валюты):
Порядок |
Значение |
|---|---|
1 |
Валюта |
2 |
Количество банкнот |
3 |
Сумма |
stx |
seq |
cmd |
data |
etx |
checksum |
|---|---|---|---|---|---|
|
|
|
Текст (валюта, количество, сумма — через точку с запятой (;) для каждой валюты) |
|
|
Cmd 0x36 — Вывод информации об отклонённых купюрах¶
Передаёт данные о банкнотах, не прошедших проверку: валюта, номинал, серийный номер, информация об отбраковке.
Пример data: USD100,AC1234567,IR50
Поля данных:
Порядок |
Значение |
|---|---|
1 |
Валюта и номинал |
2 |
Серийный номер |
3 |
Информация об отбракованной банкноте (код ошибки) |
stx |
seq |
cmd |
data |
etx |
checksum |
|---|---|---|---|---|---|
|
|
|
Текст (валюта, номинал, серийный номер, причина отклонения) |
|
|
Cmd 0x37 — Вывод полной информации об устройстве¶
Возвращает конфигурацию прибора: идентификатор устройства, версия ПО, версия сборки, версия интерфейса, дата сборки, версия FPGA, версия аппаратного обеспечения, версия CIS.
Примечание
Данные отправляются автоматически при включении счётчика или при
переходе в меню ВЕРСИЯ ПО.
Пример data: 600008441951,1.0,20241125100637,2.0,20241122122855,03C01220,2C1G,CIS30T9:ALC
Поля данных:
Порядок |
Значение |
|---|---|
1 |
Идентификатор устройства |
2 |
Версия ПО |
3 |
Версия сборки |
4 |
Версия интерфейса |
5 |
Дата сборки |
6 |
Версия FPGA |
7 |
Версия аппаратного обеспечения |
8 |
Версия CIS |
stx |
seq |
cmd |
data |
etx |
checksum |
|---|---|---|---|---|---|
|
|
|
Текст (ID устройства, версия ПО, версия сборки, версия интерфейса, дата сборки, FPGA, версия HW, версия CIS) |
|
|
Cmd 0x38 — Вывод информации о статусе устройства¶
Возвращает полный статус устройства: идентификатор, модель, режим суммирования, скорость, фасовку, режим работы, уровень детекции, сторону, ориентацию, способ начала пересчёта, валюту, серийный номер, версию номинала.
Пример data: 600008761E11,C-120,0,1,0100,0,2,0,0,1,1,0
Поля данных:
Порядок |
Значение |
|---|---|
1 |
Идентификатор устройства |
2 |
Модель ( |
3 |
Режим суммирования ( |
4 |
Скорость |
5 |
Фасовка (количество или |
6 |
Режим работы ( |
7 |
Уровень детекции |
8 |
Сторона ( |
9 |
Ориентация ( |
10 |
Начало пересчёта ( |
11 |
Валюта |
12 |
Серийный номер ( |
13 |
Версия номинала, режим |
Примечание
Значения режима работы (поле 6) в протоколе передаются числами. Соответствие с подписями на экране устройства:
На экране устройства |
В протоколе |
Расшифровка |
|---|---|---|
МИКС |
|
Смешанный счёт |
СЧЁТ |
|
Простой подсчёт |
НОМИНАЛ |
|
Счёт по номиналу |
stx |
seq |
cmd |
data |
etx |
checksum |
|---|---|---|---|---|---|
|
|
|
Текст (ID устройства, модель, режим суммирования, скорость, фасовка, режим, детекция, сторона, ориентация, начало пересчёта, валюта, серийный номер, версия номинала) |
|
|