Протокол POS2-M/POS2-M Pro¶
Данный протокол обмена предназначен для информационного обмена между управляющим устройством (хостом) и весами. Инициатором обмена всегда является хост.
При обмене хост и весовой модуль оперируют сообщениями. Сообщение может содержать команду (от хоста) или ответ на команду (от весового модуля).
Структура сообщения:
Байт |
Содержимое |
|---|---|
Байт 0 |
Признак начала сообщения — STX |
Байт 1 |
|
Байт 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 сек.