База знаний Waviot

Протокол Water5

ID статьи: 6
Последнее обновление: 10 Jan, 2020

Протокол Water5

Протокол предназначен для однонаправленной передачи данных от удаленных устройств - расходомеров, которые в общем виде выполняют измерение расхода какого-либо параметра(воды, электроэнергии, тепла) путем подсчета количества импульсов.

Различают одно- и двух- канальную версии протокола.

Также, в зависимости от максимальной частоты следования импульсов, для различных устройств, существуют различные версии протокола, в которых выполняется деление количества подсчитанных импульсов на константу (10, 100) перед отправкой регулярного сообщения.

Протокол подразумевает отправку нескольких видов сообщений длиной 8 байт. Информация о типе сообщения содержится в первом байте. Перечень всех типов сообщений указан в таблице.

Типы сообщений

1-й байт

Тип сообщения

0bxxxxxxx0

Регулярное (daily)

0x73

Еженедельное (weekly) канал 1

0x7B

Еженедельное (weekly) канал 2

0x61

Ежемесячное (info) канал 1

0x69

Ежемесячное (info) канал 2

0x81

Расширенное ежемесячное (extended info) канал 1

0x89

Расширенное ежемесячное (extended info) канал 2

0x51

Команда (Command) канал 1

0x59

Команда (Command) канал 2

0x41

"Холодный сброс" (Reset) канал 1

0x49

"Холодный сброс" (Reset) канал 2

0x71

Еженедельное (weekly) Ранняя версия

0x91

Ежечасное (hourly) канал 1

0x99

Ежечасное (hourly) канал 2

0xA1

Парное (pair) канал 1

0xA9

Парное (pair) канал 2

0xB1, 0xB3 (0xB2 для ограниченной партии)

Архив (archive) канал 1

0xB5, 0xB7

Архив (archive) канал 2

0xEE01

Отправка серийного номера прибора(serial)

 

Регулярное сообщение (daily)

Cодержит младшие 15-бит счетчика импульсов а также значения почасового расхода за прошедший интервал времени 24 часа. 

Модем выполняет подсчет импульсов выполняя инкремент специального регистра - "счетчика" (counter). Разрядность данного регистра - 32 бит. В регулярном сообщении отправляется младшие 15 бит счетчика. В зависимости от реализации модема, значение счетчика предварительно делится на константу (коэффициент деления числа импульсов), значение которой обычно выбирается из ряда 1, 10, 100. Величину данной константы можно определить из параметра DIV, передаваемого в пакетах "Reset" и "Extended Info".

1-й байт:

MSB

1-й байт

LSB

b6

b5

b4

b3

b2

b1

b0

0

Младшие 7 бит счетчика

 

2-й байт:

MSB

 

 

 

 

 

 

LSB

b14

b13

b12

b11

b10

b9

b8

b7

Старшие 8 бит счетчика

 

3-й -  8-й  байты:

MSB

8-й байт

LSB
MSB

7-й байт

LSB
MSB

6-й байт

LSB
MSB

5-й байт

LSB
MSB

4-й байт

LSB
MSB

3-й байт

LSB

b1

b0

b1

b0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b1

b0

Почасовка

- 1 час

Почасовка

- 2 часа

. . .

Почасовка

- 24 часа

 

Почасовый расход представляется в виде 2-битного представления "вклада" расхода за каждый конкретный час в общий расход за 24 часа:

b1

b0

Часовой расход

0

0

Отсутствие расхода

0

1

0.1 - 33.3% макс. часового расхода

1

0

33.4 - 66.6% макс. часового расхода

1

1

66.7 - 100% макс. часового расхода

 

Регулярное сообщение отправляется каждые 24 часа, начиная с момента калибровки модема. Для двухканальных устройств выполняется поочередная отправка регулярных сообщений для каждого канала. Номер канала определяется четностью итератора сообщения:

Нечетный итератор

Четный итератор

Канал 1

Канал 2

Замечание

На устройстве "Тиффани" контакты имеют цветовое обозначение для удобства подключения счетчиков горячей и холодной воды. При этом контакты для подключения счетчика ГВС соответствуют каналу 1 (нечетный итератор), а контакты для подключения ХВС соответствуют каналу 2 (четный итератор).

 

Еженедельное сообщение (weekly)

Содержит младшие 27-бит счетчика импульсов, значения подневного расхода за прошедший интервал времени 7 суток а также напряжение батарейки. В модемах TIFFANY и DIN значение счетчика импульсов предварительно делится на параметр DIV.

 

1-й байт:

MSB

1-й байт

LSB

0

1

1

1

ch

0

1(0)

1

Код типа сообщения

фывфвф

0x73

Еженедельное (weekly) канал 1

0x7B

Еженедельное (weekly) канал 2

0x71

Еженедельное (weekly) Ранняя версия

2-й - 4-й байты:

MSB

4-й байт

LSB
MSB

3-й байт

LSB
MSB

2-й байт

LSB

b23

b22

b21

b20

b19

b18

b17

b16

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

Младшие 24 бит счетчика

5-й - 7-й байты:

MSB

7-й байт

LSB
MSB

6-й байт

LSB
MSB

5-й байт

LSB

b2

b1

b0

b2

b1

b0

 

 

 

 

 

 

 

 

 

 

 

 

b2

b1

b0

b26

b25

b24

Подневка

- 1 сутки

Подневка

- 2 суток

. . .

Подневка

- 7 суток 

Старшие 3 бита счетчика

Подневный расход представляется в виде 3-битного представления "вклада" расхода за каждые конкретные сутки в общий расход за неделю:

b2

b1

b0

Суточный расход

0

0

0

0.1 - 12.5% макс. суточного расхода

0

0

1

12.6 - 25.0% макс. суточного расхода

0

1

0

25.1 - 37.5% макс. суточного расхода

0

1

1

37.6 - 50.0% макс. суточного расхода

1

0

0

50.1 - 62.5% макс. суточного расхода

1

0

1

62.3 - 75.0% макс. суточного расхода

1

1

0

75.1 - 87.5% макс. суточного расхода

1

1

1

87.6 - 100% макс. суточного расхода

 

 

8-й байт:

MSB

8-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

Напряжение батарейки

 

Напряжение батарейки представляется в следующем формате:

Старший бит = 1, если U ≥ 3В 

Младшие 7 бит  - десятые доли вольта

Формула перевода данного поля(D) в вольты:   U = 2 + (D>>7) + (D&0x7F)/100

 

Измерение напряжения батарейки выполняется в момент отправки сообщения, когда наблюдается наибольшая "просадка" данного напряжения.

 

Еженедельное сообщение отправляется каждые 7 суток, начиная с момента калибровки модема. Для двухканальных устройств выполняется поочередная отправка  сообщений для каждого канала.

 

В первых версиях водомеров Стриж Аква выполнялось деление счетчика на 10 перед отправкой еженедельного сообщения. Такие сообщения содержат в первом байте код 0x71.

Ежемесячное сообщение (info)

Содержит полное значение счетчика (32 бита), общее количество отправленных сообщений за все время работы модема, а также уровень передачи радиосигнала и максимально зафиксированный расход. 

В модемах TIFFANY и DIN значение счетчика импульсов предварительно делится на параметр DIV.

1-й байт:

MSB

1-й байт

LSB

0

1

1

0

ch

0

0

1

Код типа сообщения

фывфвф

0x61

Ежемесячное (info) канал 1

0x69

Ежемесячное (info) канал 2

2-й - 5-й байты:

MSB

5-й байт

LSB

MSB

4-й байт

LSB
MSB

3-й байт

LSB
MSB

2-й байт

LSB

b31

b30

b29

b28

b27

b26

b25

b24

b23

b22

b21

b20

b19

b18

b17

b16

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

полное значение 32-битного счетчика импульсов

 

6-й - 7-й байты:

MSB

7-й байт

LSB
MSB

6-й байт

LSB

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

Кол-во отправленных сообщений

 

8-й байт:

MSB

8-й байт

LSB

b1

b0

b5

b4

b3

b2

b1

b0

PowLevel

Макс. расход

 

Максимальный расход - максимально зафиксированное с момента калибровки  модема кол-во импульсов за одну минуту.

 

PowLevel - уровень мощности радиопередатчика модема, с которым отправляются сообщения. 

 

b1

b0

Уровень сигнала

0

0

-9dB

0

1

-6dB

1

0

-3dB

1

1

Макс. мощность

 

Ежемесячное сообщение отправляется каждые 30 суток, начиная с момента калибровки модема, а также 10 раз с интервалом 1 мин после ввода любой команды за исключением начальной калибровки модема. Для двухканальных устройств выполняется поочередная отправка  сообщений для каждого канала. 

Вместо каждого шестого сообщения(пары сообщений для двухканальных устройств) отправляется расширенное ежемесячное сообщение.

 

Расширенное ежемесячное сообщение (extended info)

Содержит информацию о версии аппаратного и программного обеспечения, температуру внутри устройства, напряжение батарейки, уровень выходного радиосигнала и максимальный зафиксированный расход. 

Отправляется вместо каждого шестого ежемесячного сообщения.

 

1-й байт:

MSB

1-й байт

LSB

1

0

0

0

ch

0

0

1

Код типа сообщения

фывфвф

0x81

Расширенное ежемесячное (extended info) канал 1

0x89

Расширенное ежемесячное (extended info) канал 2

2-й  - 4-й байты:

MSB

2-й байт

LSB
MSB

3-й байт

LSB
MSB

4-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

b7

b6

b5

b4

b3

b2

b1

b0

b7

b6

b5

b4

b3

b2

b1

b0

HARDWARE_REV

DIV

SOFTWARE_REV

CRC строки __TIME__(время компиляции)

 

5-й байт:

MSB

5-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

Температура модема

 

6-й байт:

MSB

6-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

Напряжение батарейки

 

7-й байт:

MSB

7-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

PowLevel

8-й байт:

MSB

8-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

Макс. расход

 

 DIV - Десятичный логарифм коэффициента деления числа импульсов.  

"01" -  коэффициент деления равен 1

"10" или "00" -  коэффициент деления равен 10 ("00" - данное значение передается в счетчиках Аква и Нептун, при этом коэффициент деления в этих счетчиках равен 10)

"11" -  коэффициент деления равен 100

Сообщение о вводе команды (command)

 

Содержит полное значение счетчика (32 бита), номер введенной команды, температуру и напряжение батарейки модема. 

В модемах TIFFANY и DIN значение счетчика импульсов предварительно делится на параметр DIV.

1-й байт:

MSB

1-й байт

LSB

0

1

0

1

ch

0

0

1

Код типа сообщения

фывфвф

0x51

Команда (Command) канал 1

0x59

Команда (Command) канал 2

2-й - 5-й байты:

MSB

5-й байт

LSB

MSB

4-й байт

LSB
MSB

3-й байт

LSB
MSB

2-й байт

LSB

b31

b30

b29

b28

b27

b26

b25

b24

b23

b22

b21

b20

b19

b18

b17

b16

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

полное значение 32-битного счетчика импульсов

 

6-й байт:

MSB

6-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

Код команды

 

7-й байт:

MSB

7-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

Температура модема

 

8-й байт:

MSB

8-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

Напряжение батарейки

 

Данное сообщение отправляется 1 раз при вводе в модем команды, путем поднесения к модему магнита (нажатия на кнопку для модемов с кнопкой ). Номер команды определяется количеством миганий светодиода до момента удаления магнита от модема (отпускания кнопки).

Для двухканальных устройств выполняется поочередная отправка  сообщений для каждого канала. 

Первая введенная команда после прошивки модема идентифицируется как команда начальной калибровки и отправляется с кодом команды 33 (0x21).

 Комманды 40(0x28) и 41(0x29) - используются в версии BIGTIFFANY с дискретным контролем (версия  ПО 48). Означают замыкание контактов и размыкание соответственно.

 

Ежечасное сообщение (Hourly)

Опциональные версии прошивок содержат ежечасную отправку показаний. В этом случае, помимо стандартного набора посылок отправляются также сообщения данного типа.

Данное сообщение отправляется 24 раза за сутки. Отправка ежедневного сообщения не выполняется для устройств отправляющих ежечасные пакеты..

В модемах TIFFANY и DIN значение счетчика импульсов предварительно делится на параметр DIV.

1-й байт:

MSB

1-й байт

LSB

1

0

0

1

ch

0

0

1

Код типа сообщения

0x91

Ежечасное (hourly) канал 1

0x99

Ежечасное (hourly) канал 2

2-й - 5-й байты:

MSB

5-й байт

LSB

MSB

4-й байт

LSB
MSB

3-й байт

LSB
MSB

2-й байт

LSB

b31

b30

b29

b28

b27

b26

b25

b24

b23

b22

b21

b20

b19

b18

b17

b16

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

полное значение 32-битного счетчика импульсов

6-й - 8-й байты:    зарезервированы, содержат значение 0xAA

Парное сообщение (Pair)

Данное сообщение отправляется каждые два часа и содержит показания на момент отправки, а также разницу между текущими показаниями и показаниями час назад. 

1-й байт:

MSB

1-й байт

LSB

1

0

1

0

ch

0

0

1

Код типа сообщения

0xA1

Парное(pair) канал 1

0xA9

Парное(pair) канал 2

2-й - 5-й байты:

MSB

5-й байт

LSB

MSB

4-й байт

LSB
MSB

3-й байт

LSB
MSB

2-й байт

LSB

b31

b30

b29

b28

b27

b26

b25

b24

b23

b22

b21

b20

b19

b18

b17

b16

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

полное значение 32-битного счетчика импульсов

6-й - 7-й байты:    

MSB

6-й байт

LSB
MSB

7-й байт

LSB

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

16-битное значение разницы между текущим значением счетчика импульсов и его значением час назад

8-й байт:    

MSB

8-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

Температура модема

Архивное сообщение (Archive)

Данное сообщение отправляется каждые два часа и содержит показания на момент отправки, а также разницу между текущими показаниями и показаниями час назад. 

1-й байт:

MSB

1-й байт

LSB

1

0

1

0

ch

0

0

1

Код типа сообщения

0xB1, 0xB5(канал 2)

Архив(Archive) 0-15 день

0xB3 (0xB2),

0xB7(канал 2)

Архив(Archive) 16-31 день

2-й - 5-й байты:

MSB

5-й байт

LSB

MSB

4-й байт

LSB
MSB

3-й байт

LSB
MSB

2-й байт

LSB

b31

b30

b29

b28

b27

b26

b25

b24

b23

b22

b21

b20

b19

b18

b17

b16

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

полное значение 32-битного счетчика импульсов на конец 2-часового интервала времени 

6-й - 7-й байты:    

MSB

6-й байт

LSB
MSB

7-й байт

LSB

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

16-битное значение разницы между значением счетчика импульсов на конец интервала и его значением час назад

8-й байт:    

MSB

8-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

Индекс архива(младшие 8 бит)

Индекс архива имеет значения 0 - 383. Старший бит индекса равен 0 если номер команды 0xB1(0xB5 для второго канала) и 1, если 0xB3 (0xB2 для небольшой серии тиффани с версией hardware 3.0 и software 48.0) (0xB7 для второго канала).

Весь архив отсылается 9-й командой (поднесением магнита к модему до 9-ти морганий индикатора) и состоит из  384 archive-пакетов, отсылаемых друг за другом в течении  40 минут. Индекс архива означает смещение во времени архивной записи относительно момента начала отправки архива (можно принимать время приема пакета). Дискретность смещения - 2 часа. Например, индекс 0 означает, что в пакете содержится значение счетчика на текущий момент времени и разница, позволяющая определить показание на момент времени минус один час от текущего.  Аналогично, индекс 383 означает, что в пакете содержится значение счетчика на момент времени минус 383*2 часов от текущего и разница, позволяющая определить показание на момент времени минус (383*2 + 1) часов от текущего.  Двухканальная версия модема регистрирует и отсылает архив на вдвое меньшую глубину - 16 дней. Количество отправленных пакетов по каждому каналу равно 192.

Archive-пакеты отсылаются начиная с самых недавних данных, заканчивая самыми старыми.

Если модем не успел накопить данные за весь архивный период, то отправлена будет только та часть, которая накоплена. 

Остановить отправку архива можно 7-й командой.

Сообщение "Холодный сброс" (Reset)

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

1-й байт:

MSB

1-й байт

LSB

0

1

0

0

ch

0

0

1

Код типа сообщения

ывфвф

0x41

"Холодный сброс" (Reset) канал 1

0x49

"Холодный сброс" (Reset) канал 2

 

2-й - 5-й байты:

MSB

5-й байт

LSB

MSB

4-й байт

LSB
MSB

3-й байт

LSB
MSB

2-й байт

LSB

b31

b30

b29

b28

b27

b26

b25

b24

b23

b22

b21

b20

b19

b18

b17

b16

b15

b14

b13

b12

b11

b10

b9

b8

b7

b6

b5

b4

b3

b2

b1

b0

полное значение 32-битного счетчика импульсов

 

6-й  - 8-й байты:

MSB

6-й байт

LSB
MSB

7-й байт

LSB
MSB

8-й байт

LSB

b7

b6

b5

b4

b3

b2

b1

b0

b7

b6

b5

b4

b3

b2

b1

b0

b7

b6

b5

b4

b3

b2

b1

b0

HARDWARE_REV

DIV

SOFTWARE_REV

CRC строки __TIME__(время компиляции)

 DIV - см. Extended Info сообщение

Сообщение с серийным номером прибора (Serial)

 Данное сообщение предназначено для отправки серийного номера прибора с целью привязки данного номера к ID радиомодема на верхнем уровне. 

Достаточно отправлять эту информацию один раз при производстве прибора либо при его конфигурировании если при этом происходит присвоение серийного номера. Однако для случаев потери пакетов с серийным номером при первоначальной отправке, необходимо периодически повторять отправку данного пакета(не реже 1 раза в месяц), а также выполнять отправку пакета при нажатии на кнопку или посредством какого-либо другого органа управления. 

Особенность пакета данного типа - его длина(в отличие от всех других типов пакетов протокола) равна 7 байт.

1-й и 2-й байты:

MSB

1-й байт

LSB

1

1

1

0

1

1

1

0

 Код типа сообщения

ывфвф

MSB

2-й байт

LSB

0

0

0

0

0

0

0

1

 Код типа сообщения

ывфвф

0xEE01

Отправка серийного номера

 

3-й - 6-й байты:  

Серийный номер прибора в двоично-десятичном формате. 

Пример пакета "serial", содержащего серийный номер 1234567890:   0xEE011234567890

Примечания

 

В более ранних версиях протокола отсутствуют некоторые передаваемые параметры(например, версия ПО, максимальный расход, мощность передатчика ). В этих случаях соответствующие поля данных  заполняются значением 170 (0xAA).

  

Таблица соответствия приборов и их Software и Hardware ID:

Название прибора

Вариант исполнения

Hardware

ID

Software

ID

DIV

Количество 

каналов****

Название протокола  в ЛК

AQUA 1

?

1

20

?

1

Water v.5

?

2

30

?

?

2

31

?

2

Water v.6

Тионил-хлоридная батарея, DU15

2

32-33

10

1

Water v.5

Марганцевая батарея, DU15

3

Тионил-хлоридная батарея, DU20

12

Марганцевая батарея, DU20

13

AQUA 2

?

0

40

10

?

11

6

1

DIN***

Вода

8

0* - 2

1, 100

2

Water v.6

Импульсный электросчетчик

16 - 18

100

1

Electro v.6

TIFFANY***

Тионил-хлоридная батарея, вода 

5

0* - 2

1,
10,

100

2

Water v.6

Марганцевая батарея, вода

6

Тионил-хлоридная батарея, импульсный электросчетчик

5

16 - 18

100

1

Electro v.6

Марганцевая  батарея, импульсный электросчетчик

6

BIGTIFFANY

Тионил-хлоридная батарея, вода

2

40** - 41

1, 100

2

Water v.6

Марганцевая батарея, вода

3

?

42

?

2

Water v.6

Марганцевая батарея, вода, отправка раз в час

43

1

1


Water v.6/Electro v.6

?

44

?

2

Марганцевая батарея, импульсный электросчетчик

45

100

1

Electro v.6

Одноканальный с двухчасовыми pair-пакетами и архивными сообщениями

48, 49

1 1 Water v.5

КАРАТ

Марганцевая батарея

50

1

1

Water v.5

*- версия с багом "if (iterator == 6) iterator = 7"

**-версия с багом отсутствия данных о величине делителя в инфо-пакетах 

*** - в модемах TIFFANY и DIN счетчик импульсов делится на параметр DIV при отправке всех типов пакетов 

**** - Если устройство отправляет hourly-сообщения, то оно одноканальное

Эта статья была:   Полезна | Не полезна
Сообщить об ошибке
ID статьи: 6
Последнее обновление: 10 Jan, 2020
Ревизия: 23
Просмотры: 149
Комментарии: 0