Описание команд бинарного протокола обмена
Формат сообщений для бинарного протокола
Все команды бинарного протокола обмена имеют одинаковый вид, представленный в Таблице:
Порядковый номер поля | Название поля | Размер поля, байт | Описание |
---|---|---|---|
1 | Префикс | 1 | Поле является маркером начала сообщения Входящие сообщения должны иметь префикс 31h, а исходящие сообщения должны выдаваться программой с префиксом 3Eh |
2 | Сетевой адрес | 1 | Для префикса 31h сетевой адрес получателя сообщения Для префикса 3Eh сетевой адрес отправителя сообщения |
3 | Код операции | 1 | Для префикса 31h код операции, которую программа должна выполнить Для префикса 3Eh код операции, на которую выдаётся ответ |
4 | Данные | Зависит от кода операции | Состав данных и формат поля зависит от кода операции |
5 | Контрольная сумма | 1 | Поле используется для контроля целостности данных |
Однократное считывание данных (команда 06h)
Команда предназначена для чтения текущих данных: относительный уровень, температура, частота. Данные передаются младшим байтом вперёд.
Формат команды:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 31h | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес получателя |
+2 | 1 | 06h | Код операции |
+3 | 1 | 00h…FFh | Контрольная сумма |
Формат ответа:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 3Eh | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес отправителя |
+2 | 1 | 06h | Код операции |
+3 | 1 | -128…127 | Температура в градусах Цельсия |
+4 | 2 | 0000h…FFFFh | Относительный уровень |
+6 | 2 | 0000h…FFFFh | Значение частоты |
+8 | 1 | 00h…FFh | Контрольная сумма |
Периодическая выдача данных (команда 07h)
Команда предназначена для включения периодической выдачи данных.
После обработки команды датчик Omnicomm LLS производит периодическую выдачу данных: уровня, температуры и частоты, с интервалом времени, заданным командой 13h.
Отключение периодической выдачи данных производится после получения любой достоверной команды, сброса процессора или отключения напряжения питания (если не установлен режим выдачи данных по умолчанию).
Формат команды:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 31h | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес получателя |
+2 | 1 | 07h | Код операции |
+3 | 1 | 00h…FFh | Контрольная сумма |
Формат ответа:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 3Eh | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес отправителя |
+2 | 1 | 07h | Код операции |
+3 | 1 | 00h | Команда выполнена успешно |
01h | Команда не может быть выполнена | ||
+4 | 1 | 00h…FFh | Контрольная сумма |
Формат периодически выдаваемых данных:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 3Eh | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес отправителя |
+2 | 1 | 07h | Код операции |
+3 | 1 | -128…127 | Температура в градусах Цельсия |
+4 | 2 | 0000h…FFFFh | Относительный уровень |
+6 | 2 | 0000h…FFFFh | Значение частоты |
+8 | 1 | 00h…FFh | Контрольная сумма |
Изменение интервала периодической выдачи (команда 13h)
Команда предназначена для установки интервала периодической выдачи данных.
Формат команды:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 31h | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес получателя |
+2 | 1 | 13h | Код операции |
+3 | 1 | 0…255 | Интервал выдачи данных в секундах |
+4 | 1 | 00h…FFh | Контрольная сумма |
Формат ответа:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 3Eh | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес отправителя |
+2 | 1 | 13h | Код операции |
+3 | 1 | 00h | Команда выполнена успешно |
01h | Команда не может быть выполнена | ||
+4 | 1 | 00h…FFh | Контрольная сумма |
Режим выдачи данных по умолчанию (команда 17h)
Команда определяет порядок выдачи данных после включения питания или сброса процессора.
После включения питания или сброса программа будет отправлять по интерфейсу данные периодически с интервалом времени, задаваемым командой 13h.
Формат команды:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 31h | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес получателя |
+2 | 1 | 17h | Код операции |
+3 | 1 | 00h | Данные не выдаются |
01h | Данные выдаются в бинарном виде | ||
02h | Данные выдаются в символьном виде | ||
+4 | 1 | 00h…FFh | Контрольная сумма |
Формат ответа:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 3Eh | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес отправителя |
+2 | 1 | 17h | Код операции |
+3 | 1 | 00h | Команда выполнена успешно |
01h | Команда не может быть выполнена | ||
+4 | 1 | 00h…FFh | Контрольная сумма |
Установка глубины фильтрации (команда 0Еh)
Команда предназначена для установки значения длины фильтра в датчике Omnicomm LLS 30160.
Формат команды:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 31h | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес получателя |
+2 | 1 | 0Еh | Код операции |
+3 | 1 | от 0 до 20 | Длина фильтра |
+4 | 1 | 00h…FFh | Контрольная сумма |
Формат ответа:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 3Eh | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес отправителя |
+2 | 1 | 0Еh | Код операции |
+3 | 1 | 00h | Команда выполнена успешно |
01h | Команда не может быть выполнена | ||
+4 | 1 | 00h…FFh | Контрольная сумма |
Чтение истории изменений настроек датчика (0Fh)
Команда позволяет целиком скачать область памяти, которая содержит записи изменения настроек для датчика Omnicomm LLS 30160. Формат записей представлен в таблице. В ПЗУ зафиксированы только первые 5 записей, остальные переписываются по правилу кольцевого буфера.
Формат команды:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 31h | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес получателя |
+2 | 1 | 0Fh | Код операции |
+3 | 1 | 00h…FFh | Контрольная сумма |
Формат ответа:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 3Eh | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес отправителя |
+2 | 1 | 0Fh | Код операции |
+3 | 2 | 00h…FFFFh | Количество данных (байт), передаваемых за заголовком (length) |
+5 | length | 00h…FFh | Данные |
+5+length | 1 | 00h…FFh | Контрольная сумма |
Формат записи лога:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 4 | 0h…FFFFFFFFh | Порядковый номер записи |
+4 | 2 | 0 | Изменение сетевого адреса |
1 | Изменение скорости обмена | ||
2 | Изменение минимального значения Nmin | ||
3 | Изменение максимального значения Nmax | ||
4 | Изменение длины фильтра | ||
5 | Изменение режима автоматической выдачи | ||
6 | Изменение интервала выдачи данных | ||
7 | Изменение CNT1 – пустой | ||
8 | Изменение CNT2 – полный | ||
0Аh | Программирование датчика | ||
+6 | 4 | 0h…FFFFFFFFh | Время изменения настройки (unix time) |
+10 | 4 | 0h…FFFFFFFFh | Новое значение параметра |
+14 | 1 | 00h…FFh | Контрольная сумма |
Формат ответа при ошибке:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 3Eh | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес отправителя |
+2 | 1 | 0Fh | Код операции |
+3 | 1 | 01h | Команда не может быть выполнена |
+4 | 1 | 00h…FFh | Контрольная сумма |
Чтение текущих настроек датчика (команда 10h)
Команда предназначена для чтения текущих настроек датчика Omnicomm LLS 30160.
Формат команды:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 31h | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес получателя |
+2 | 1 | 10h | Код операции |
+3 | 1 | 00h…FFh | Контрольная сумма |
Формат ответа:
Смещение, байт | Размер поля, байт | Значение | Описание |
---|---|---|---|
0 | 1 | 3Eh | Префикс |
+1 | 1 | 00h…FFh | Сетевой адрес отправителя |
+2 | 1 | 10h | Код операции |
+3 | 16 | LLS 30160¹ | Имя датчика. Тип – строковая константа. Значение устанавливается на заводе-изготовителе при прошивке платы |
+19 | 11 | LLS 1.0.0.0¹ | Обозначение программы и ее версии |
+30 | 1 | 00h…03h | Режим выдачи данных |
+31 | 1 | 00h…FFh | Интервал выдачи результатов измерения |
+32 | 1 | 0…20 | Длина фильтра |
+33 | 2 | 0…4095 | Нижняя граница изменения уровня |
+35 | 2 | 1…4095 | Верхняя граница изменения уровня |
+37 | 3 | 000000h…FFFFFFh | CNT1 – нижняя граница диапазона изменения периода входного сигнала |
+40 | 3 | 000000h…FFFFFFh | CNT2 – верхняя граница граница диапазона изменения периода входного сигнала |
+43 | 1 | 00h…FFh | Контрольная сумма |
¹ - имя датчика, номер версии и обозначение ПО может отличаться от приведённого в таблице.