Протокол POS2-M/POS2-M Pro

Данный протокол обмена предназначен для информационного обмена между управляющим устройством (хостом) и весами. Инициатором обмена всегда является хост.

При обмене хост и весовой модуль оперируют сообщениями. Сообщение может содержать команду (от хоста) или ответ на команду (от весового модуля).

Структура сообщения:

Байт

Содержимое

Байт 0

Признак начала сообщения — STX

Байт 1

Длина сообщения N — двоичное число. В длину не включаются

байты 0, LRC и этот байт

Байт 2

Код команды или ответа — двоичное число

Байты 3–(N+1)

Параметры, зависящие от команды (могут отсутствовать)

Байт N+2

Контрольная сумма сообщения — байт LRC

Контрольная сумма LRC вычисляется поразрядным сложением (XOR) всех байтов сообщения, кроме байта 0 (STX).

Примечание

Все команды протокола передаются в HEX.

Каждое принятое сообщение подтверждается передачей одного байта: ACK — положительное подтверждение, NAK — отрицательное.

Ответ NAK свидетельствует об ошибке интерфейса (данные приняты с ошибкой или не распознан STX), но не о неверной команде. Отсутствие подтверждения в течение тайм-аута означает, что сообщение не принято.

После включения питания весовой модуль ожидает байт запроса — ENQ. Ответ NAK означает, что весовой модуль находится в состоянии ожидания очередной команды; ответ ACK — что весовой модуль подготавливает ответное сообщение; отсутствие ответа — отсутствие связи между хостом и весовым модулем.

ASCII

HEX

Двоичный код

STX

02

00000010

ENQ

05

00000101

ACK

06

00000110

NAK

15

00010101

Примечание

Все числовые величины передаются в двоичном формате, если не указано другое. Первым передаётся самый младший байт, последним — самый старший.

Запрос состояния весового канала

Содержимое запроса

Длина

Команда

Пароль администратора

05

3A

30 30 33 30

Содержимое ответа

Длина

Команда

Код ошибки

Состояние

Вес

Тара

Reserved

11

3A

00

ZZ ZZ

XX XX XX XX

YY YY

00

Флаги состояния — 2 байта (little-endian):

  • Bit-0 — вес стабилен

  • Bit-1 — нулевой вес на платформе

  • Bit-2 — вид протокола: 0 — упрощённый, 1 — расширенный (Pro)

  • Bit-3 — установлена тара

  • Bit-4 — вес стабилен

  • Bit-5 — ошибка установки нуля при включении

  • Bit-6 — вес больше max

  • Bit-7 — вес нестабилен при включении

  • Bit-8 — не используется

  • Bit-9 — требуется калибровка, ошибка «отрицательное отклонение более диапазона установки нуля при включении»

Примечание

В упрощённом протоколе все биты состояния всегда равны 0, расширенный протокол возвращает фактические биты состояния.

Команда «Установить ноль»

Содержимое запроса

Длина

Команда

Пароль администратора

05

30

30 30 33 30

Содержимое ответа

Длина

Команда

Код ошибки

02

30

00

Команда «Установить тару»

Содержимое запроса

Длина

Команда

Пароль администратора

05

31

30 30 33 30

Содержимое ответа

Длина

Команда

Код ошибки

02

31

00

Команда «Задать тару»

Содержимое запроса

Длина

Команда

Пароль администратора

Тара

07

32

30 30 33 30

YY YY

Содержимое ответа

Длина

Команда

Код ошибки

02

32

00

Запрос версии протокола

Команда

Ответ

47 70 72 6F 76 0D 0A

70 72 6F 76 3D 50 4F 53 32 4D 50 72 6F 56 31 0D 0A

Такой ответ означает протокол POS2-M Pro (расширенный) — в ASCII это prov=POS2MProV1.

Дополнительные команды POS2-M Pro

Внимание

Применяется для весов моделей M-ER 221, 224, 225, 226, 828.

Важно

Для данных команд формат запроса включает в себя только байты команды; остальные элементы сообщения не используются.

Запрос модели весов

Команда

Ответ

47 6D 6F 64 65 0D 0A

6D 6F 64 65 3D 32 32 34 46 20 20 0D 0A

Пример ответа для модели M-ER 224F.

Запрос серийного номера весов

Команда

Ответ

47 73 65 72 6E 0D 0A

73 65 72 6E 3D 32 30 42 33 31 36 32 33 0D 0A

Пример ответа с серийным номером 20B31623.

Запрос максимального предела взвешивания весов

Команда

Ответ

47 6D 61 78 0D 0A

6D 61 78 3D 30 33 32 0D 0A

Пример ответа с MAX 32 кг.

Запрос цены деления весов

Команда

Ответ

47 64 69 76 0D 0A

64 69 76 3D 32 0D 0A

Пример ответа с ценой деления 5 г.

Примечание

Значения в ASCII 0/1/2/3/4/5/6/7/8/9 соответствуют параметрам 1 г/2 г/5 г/10 г/20 г/50 г/100 г/2 диапазона/ 3 диапазона.

Запрос значения счётчика количества калибровок

Команда

Ответ

47 63 6E 74 0D 0A

63 6E 74 3D 30 30 31

Пример ответа с количеством 1.

Запрос времени автоотключения весов

Команда

Ответ

47 6F 66 66 0D 0A

6F 66 66 3D 30 0D 0A

Пример ответа с отключенным режимом.

Примечание

Значения в ASCII 0/1/2/3 соответствуют параметрам OFF/3/5/10 мин.

Запрос времени перехода в режим сна

Команда

Ответ

47 73 61 76 0D 0A

73 61 76 3D 30 0D 0A

Пример ответа с отключенным режимом.

Примечание

Значения в ASCII 0/1/2/3 соответствуют параметрам OFF/10/15/30 сек.