База знаний Waviot

Протокол Electro5

ID статьи: 7
Последнее обновление: 29 Apr, 2019

Протокол Electro v.5

Протокол подразумевает двухстороннюю связь с устройством. Каждое сообщение, как отправляемое, так и принимаемое устройством, имеет длину 8 байт.

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

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

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

Показать

Регулярные сообщения отправляются пакетом раз в 24 часа. При этом отправляемые данные должны фиксироваться на момент окончания календарного дня - на 00:00:00. Время фактической отправки определяется по формуле FIXTIME + TIMESHIFT, где FIXTIME - это время фиксации показаний (в данном случае это полночь), а TIMESHIFT - это константа временного сдвига (см. пояснения в разделе "Дополнительно"). Таким образом отправка сообщений с различных счетчиков разносится по времени и снижается вероятность коллизий.

Формат сообщения:

  • 8 бит - канал, для которого пересылаются показания
  • 16 бит - время в формате strijtime-d
  • 30 бит - накопленная энергия прямая
  • 10 бит - накопленная энергия обратная

Энергия передается в единицах Вт/ч.

Delta (deprecated)

Показать

ID типа: сумма фаз: 247, 248, фаза 1: 249, 250, фаза 2: 251, 252, фаза 3: 253, 254

Сообщение содержит сводные дельты потребления за прошедшие 24 часа и состоит из 2 частей (фактически это два разных сообщения). При этом дельта должна быть отправлена для каждой из фаз.

Формат первого сообщения:

  • 8 бит - тип сообщения
  • 16 бит - время в формате strijtime-d
  • 24 бита - старшие биты от почасовой разбивки потребления
  • 16 бит - первый блок третьих битов от почасовой разбивки потребления

Формат второго сообщения:

  • 8 бит - тип сообщения
  • 8 бит - второй блок третьих битов от почасовой разбивки потребления
  • 24 бита - вторые  биты от почасовой разбивки потребления
  • 24 бита - младшие биты от почасовой разбивки потребления

Расход электроэнергии за каждый час передается в 4х-битном формате:

1 - потребление в диапазоне 0 - 6.6% от максимального дневного потребления;
2 - потребление в диапазоне 6.6 - 13.3% от максимального дневного потребления;
*
*
*
7 - потребление в диапазоне 93.4 - 100% от максимального дневного потребления.

При этом потребление передается не по 3 бита сразу, разные биты передаются отдельно - см. выше в описании форматов первого и второго сообщений.

Первые три бита соответствуют потреблению за первый час суток, последние - за последний. 

Профиль мощности (UL) (deprecated)

Показать

ID типа: 48 = 0x30 (UL) 

Сообщение с профилем мощности отправляется сразу по срабатыванию таймера профиля (30 минут по умолчанию)
Формат сообщения:

  • 8 бит - тип сообщения = 0x30
  • 16 бит - strijtime (пояснение см. ниже)
  • 30 бит - значение параметра (int, значение без множителей)
  • 3 бита - номер тарифа (0 - сумма)
  • 7 бит - код параметра (берется из таблицы группы C OBIS, раздел 5.3.2, страница 13, см. приложенный документ IEC 62056-61-2006.pdf)

strijtime в профиле - это младшие 2 байта от значения unix timestamp / 60, где unix timestamp - 32-битная метка времени в секундах с 1.01.1970.

СOSEM кодирование OBIS:

OBIS может быть упакован 3 способами. Если в результате упаковки-распаковки 2 байтами не удалось получить первоначальное значение следует использовать 4 байтную упаковку, аналогично при неуспешной упаковке 4 байтами следует использовать 6 байтное. При распаковке при представлении в виде битового массива: первый бит = 1 - используется 2 байтная упаковка, первый,второй биты = 01 - 4 байтная упаковка, первый,второй биты = 00  - 6 байтная

typedef struct { // 2 байта
    uint8_t obis_C : 7;
    uint8_t is_ext : 1; // = 1b
    uint8_t obis_E : 3;
    uint8_t obis_A : 1;
    uint8_t obis_D : 4;
} OBIS16;


typedef struct { // 4 байта
    uint8_t obis_B : 3;
    uint8_t obis_A : 3;
    uint8_t is_ext : 2; // = 01b
    uint8_t obis_C : 8;
    uint8_t obis_D : 8;
    uint8_t obis_E : 8;
} OBIS32;
typedef struct { // 6 байт
    uint8_t obis_A : 6;
    uint8_t is_ext : 2; // = 00b
    uint8_t obis_B : 8;
    uint8_t obis_C : 8;
    uint8_t obis_D : 8;
    uint8_t obis_E : 8;
    uint8_t obis_F : 8;
} OBIS48;

COSEM мгновенные: u32 0x40, float 0x41 

COSEM профиль: u32 0x42, float 0x43

COSEM суточные: u32 0x44, float 0x45

COSEM месячные: u32 0x46, float 0x47

COSEM годовые: u32 0x48, float 0x49

COSEM профиль настраиваемый: u32 0x4A, float 0x4B

Формат упаковки:

  • 1 байт -  заголовок
  • 1 байт - индекс текущего сообщения (для мгновенных неопределен)
  • 1 байт - максимальный индекс (для мгновенных неопределен) в кольцевом архиве
  • 4 байта - timestamp Старшим байтом вперед.
  • OBIS
  • 4 байта - значение,
    при использовании u32: Старшим байтом вперед.
    энергия - u32 Втч, Варч, ВАч
    мощность - i32 Вт, Вар, ВА
    напряжение - i32 мВ
    ток - i32 мА
    частота - i32 мГц
    углы - i32 мградусы
    кос фи - i32 м/
  • [повторяемый блок из OBIS и значения]
  • CRC всего пакета 16 бит, алгоритм согласно HDLC(DLMS)

COSEM профиль: 0x43

Формат упаковки:

  • 1 байт - заголовок
  • 12 бит - индекс текущего сообщения
  • 1 бит - наличие А+
  • 1 бит - наличие А-
  • 1 бит - наличие R+
  • 1 бит - наличие R-
  • 4 байта - timestamp Старшим байтом вперед.
  • 2 байты – Pmax [Вт]
  • При наличии флага А+ 4байта Втч
  • При наличии флага А- 4байта Втч
  • При наличии флага R+ 3байта 256*Втч
  • При наличии флага R- 3байта 256*Втч

COSEM события: 0x4F

Формат упаковки:

  • 1 байт -  заголовок
  • 1 байт - индекс первого сообщения в пакете
  • 1 байт - максимальный индекс в кольцевом архиве
  • 1 байт -  индекс архива
  • 4 байта -  время работы счетчика для первого передаваемого события
    • ------------- индекс = 0 - события напряжений, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события
    • 2 байта - напряжение (фаза А если общее) видимо текущее значение
    • 2 байта - глубина провала, перенапряжения
    • ------------- индекс = 1 - события токов, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события
    • ------------- индекс = 2 - события включений/выключений, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события
    • ------------- индекс = 3 - события коррекции данных, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события
    • 1 байт - интерфейс
    • ------------- индекс = 4 - события внешних воздействий, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события
    • ------------- индекс = 5 - события коммуникационные, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события
    • 1 байт - интерфейс
    • 1 байт - адрес клиента
    • ------------- индекс = 6 - события контроля доступа, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события
    • ------------- индекс = 7 - события самодиагностики, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события
    • ------------- индекс = 8 - события превышения тангенса, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события
    • ------------- индекс = 9 - события качества сети, далее повторяемый блок
    • 4 байта - timestamp события
    • ? байт - статус качества сети
    • ------------- индекс = ? - события телесигнализации, далее повторяемый блок
    • 4 байта - timestamp события
    • 1 байт - код события по напряжению
    • 1 байт - срабатывания силового реле
    • 1 байт - код события?состояния внешнего воздействия
  • CRC всего пакета 16 бит, алгоритм согласно HDLC(DLMS)

COSEM управление/настройки: 0x50

Формат упаковки:

  • 1 байт -  заголовок
  • OBIS
  • атрибут/метод (0хххххххb - атрибут, без параметра - чтение, с параметром запись, 1хххххххb - метод)
  • данные в упаковке HDLC/PDU, например:
    u32 = 06 XX XX XX XX - старшим байтом вперед,
    1000 u32 = 06000003E8
  • CRC всего пакета 16 бит, алгоритм согласно HDLC(DLMS)

DL & UL совпадают, при записи атрибута результатом будет отправлено его чтение

COSEM тарифное расписание: 0x51

Формат упаковки:

  • 1 байт -  заголовок

отдельные блоки, входящие в состав других блоков:

zone:

  • 1бит - 0-последняя зона, 1-далее будет еще зона
  • 4бита - номер тарифа
  • 11бит - время с начала суток в минутах когда начитается зона

week:

  • 1бит - 0-последняя зона, 1-далее будет еще зона
  • 7бит - маска дней недели когда активено расписание данного дня (старший?младший - пн)
  • 2бита - резерв
  • 6бит - id дня

season:

  • 1бит - 0-последняя зона, 1-далее будет еще зона
  • 4бита - месяц
  • 5бит - число месяца
  • 6бит - id недели

special_day:

  • 1бит - 0-последняя зона, 1-далее будет еще зона
  • 4бита - месяц
  • 5бит - число месяца
  • 6бит - id дня

самостоятельные блоки:

days:

  • 2бита - заголовок элемента дней = 2
  • 6бит - id дня
  • zone,[zone,...]

weeks:

  • 2бита - заголовок элемента недель = 3
  • 6бит - id недели
  • week,[week,...]

seasons:

  • 2бита - заголовок расширенного элемента = 1
  • 2бита - подзаголовок элемента сезонов = 1
  • 4бита - резерв
  • season,[season,...]

special_day:

  • 2бита - заголовок расширенного элемента = 1
  • 2бита - подзаголовок элемента специальных дней = 2
  • 4бита - резерв
  • special_day,[special_day,...]

activate:

  • 2бита - заголовок расширенного элемента = 1
  • 2бита - подзаголовок элемента даты активации = 3
  • 4бита - резерв
  • 32бита- timestamp активации расписания, если блок отсутсвует или время в прошлом - теекущее расписание

reserv:
2бита - резерв = 0
или
2бита - заголовок расширенного элемента = 1
2бита - подзаголовок элемента даты активации = 0

в конце пакета:

  • CRC всего пакета 16 бит, алгоритм согласно HDLC(DLMS)

Если отсутсвует activate - текущее расписание, иначе - пассивное расписание

Дневные накопленные значения: 49 = 0x31
Профиль мощности: 50 = 0x32

Сообщения на основе NB-Fi отличаются тем, что для них действует лимит на максимальную длину в 254 байта (вместо стандартных 8). Сообщения такого типа состоят из набора передаваемых параметров следующего формата:

ParamIdentifier [Timestamp] ParamData

где:

  • 16 бит - ParamIdentifier - набор данных для идентификации передаваемого параметра
  • 32 бита - Timestamp (опционально) - unix timestamp съема показания
  • 32 бита - ParamData - собственно, данные (переменная длина, зависит от того, какой именно параметр передается)

Формат ParamIdentifier:

  • 7 бит - код параметра (группа C кода OBIS, раздел 5.3.2, страница 13)
  • 1 бит - флаг наличия Timestamp. Если этот бит установлен в 1, то после ParamIdentifier следующие 4 байта занимает Timestamp
  • 1 бит - значение группы D кода OBIS (=1 => D=8 накопленные, =0 => D=7 мгновенные)
  • 1 бит - значение группы А кода OBIS (=0 - текущий тип прибора учета, =1 => А=0 - общее описание)
  • 2 бита - значение группы B кода OBIS - номер канала (=0 - первый или единственный канал)
  • 3 бита - значение группы E кода OBIS - идентификатор тарифа. Если этот идентификатор равен 0, то передается суммарное значение по всем тарифам.
  • 1 бит - зарезервировано = 0

Коэффициенты на которые необходимо домножить ParamData:

Условие

Коэффициент

Описание

(группа C кода OBIS % 20) = 11

0.001

ток в [мА], отображать 2 знака после точки в [А]

(группа C кода OBIS % 20) = 12

0.001

напряжение в [мВ], отображать 1 знак после точки в [В]

(группа C кода OBIS % 20) = 13

0.001

значения косинус фи в пределах 0..1, отображать 3 знака после точки, нет ед. изм.

(группа C кода OBIS % 20) = 14

0.001

частота в [мГц], отображать 2 знака после точки в [Гц]

0

OBIS = 81

0.0141

битовый массив

1 бит - 1 неверная фазировка 0 верная

15 бит - угол между напряжениями А-В в градусах

1 бит - резерв

15 бит угол между напряжениями В-С в градусах

остальное

1

Энергии. Действует оборачивание при переполнении

Журнал событий: 51 = 0x33

В пакете с id 51 передается (может передаваться) целый набор событий. Данные о каждой передаваемой записи в журнале событий занимают 7 байт, таким образом число передаваемых записей определяется исходя из общей длины пакета. Пакет имеет следующую структуру:

0x33 EventRecord [EventRecord] ... [EventRecord]

Формат EventRecord:

  • 4 байта - unix timestamp записи в журнале событий
  • 1 байт - числовой идентификатор типа события
  • 2 байта - параметр события

Обновленные коды событий:

Название

HEX

DEC

Описание

ME_update_fw

0x01

1

Обновление прошивки

ME_back_fw

0x02

2

Возврат к заводской прошивке

ME_update_rts

0x09

9

Синхронизация времени

ME_update_rts_old

0x0A

10

Резерв (не отображать)

ME_tariff_new

0x11

17

Смена тарифного расписания

ME_k_new

0x12

18

Смена коэффициента трансформации

ME_quality_set_new

0x13

19

Смена порога параметров качества электрической энергии

ME_load_set_new

0x14

20

Изменение режима ограничения мощности (предел в Вт)

ME_btn_cover_up

0x21

33

Вскрытие клемной крышки

ME_btn_cover_down

0x22

34

Закрытие клемной крышки

ME_btn_body_up

0x23

35

Вскрытие корпуса

ME_btn_body_down

0x24

36

Закрытие корпуса

ME_over_magnetic_field_start

0x25

37

Начало воздействия сверхнормативного магнитного воздействия

ME_over_magnetic_field_stop

0x26

38

Окончание воздействия сверхнормативного магнитного воздействия

ME_diff_I_more_limit

0x27

39

превышение лимита разници токов

ME_diff_I_lower_limit

0x28

40

разница токов в норме

ME_light_normal 

0x29

41

потребление лампы освещения в норме

ME_light_fail

0x2A

42

лампы нет или неисправна

ME_over_load

0x31

49

Превышение ограничения режима мощности

ME_under_load

0x32

50

Конец превышения ограничения режима мощности 

ME_load_up

0x33

51

Превышение некритичного порога мощности

ME_load_down

0x34

52

Возвращение нагрузки после превышения некритичного порога мощности

ME_clear_values

0x39

57

Сброс показаний (интеграторов)

ME_clear_arch_data1

0x3A

58

Очистка журнала суточных данных

ME_clear_arch_data2

0x3B

59

Очистка журнала профиля

ME_clear_arch_event 

0x3C

60

Очистка журнала событий

ME_set_arch_data1

0x41

65

Резерв (не отображать)

ME_set_arch_data2

0x42

66

Новые настройки для профиля

ME_set_new_settings

0x4F

79

новые настройки(не отображать)

ME_max_U1_start

0x50

80

Начало повышения напряжения фазы А выше верхнего порога

ME_max_U1_stop

0x51

81

Конец повышения напряжения фазы А выше верхнего порога

ME_min_U1_start

0x52

82

Начало понижения напряжения фазы А ниже нижнего порога

ME_min_U1_stop

0x53

83

Конец понижения напряжения фазы А ниже нижнего порога

ME_max_U2_start

0x54

84

Начало повышения напряжения фазы В выше верхнего порога

ME_max_U2_stop

0x55

85

Конец повышения напряжения фазы В выше верхнего порога

ME_min_U2_start

0x56

86

Начало понижения напряжения фазы В ниже нижнего порога

ME_min_U2_stop

0x57

87

Конец понижения напряжения фазы В ниже нижнего порога

ME_max_U3_start

0x58

88

Начало повышения напряжения фазы С выше верхнего порога

ME_max_U3_stop

0x59

89

Конец повышения напряжения фазы С выше верхнего порога

ME_min_U3_start

0x5A

90

Начало понижения напряжения фазы С ниже нижнего порога

ME_min_U3_stop

0x5B

91

Конец понижения напряжения фазы С ниже нижнего порога

ME_max_F_start

0x5C

92

Начало повышения частоты сети выше верхнего порога (в Гц*100)

ME_max_F_stop

0x5D

93

Конец повышения частоты сети выше верхнего порога (в Гц*100)

ME_min_F_start

0x5E

94

Начало понижения частоты сети ниже нижнего порога (в Гц*100)

ME_min_F_stop

0x5F

95

Конец понижения частоты сети ниже нижнего порога (в Гц*100)

0x70

112

Резерв для сохранения события "Перезагрузка счетчика" (код используется в ЛК)

ME_power_on

0x71

113

Перезагрузка счетчика(0xFFFF) либо Подача сети питания(0x0000) (в ЛК только "Подача сети питания")

ME_power_off

0x72

114

Пропадание сети питания(0x0000)

ME_power_up_f1

0x73

115

Отсутствие напряжения фазы А при наличии тока в измерительных цепях(начало события)

ME_power_down_f1

0x74

116

Отсутствие напряжения фазы А при наличии тока в измерительных цепях(конец события)

ME_power_up_f2

0x75

117

Отсутствие напряжения фазы B при наличии тока в измерительных цепях(начало события)

ME_power_down_f2

0x76

118

Отсутствие напряжения фазы B при наличии тока в измерительных цепях(конец события)

ME_power_up_f3

0x77

119

Отсутствие напряжения фазы C при наличии тока в измерительных цепях(начало события)

ME_power_down_f3

0x78

120

Отсутствие напряжения фазы C при наличии тока в измерительных цепях(конец события)

ME_direction_I1

0x79

121

Смена направления тока фазы А

ME_direction_I2

0x7A

122

Смена направления тока фазы В

ME_direction_I3

0x7B

123

Смена направления тока фазы С

Журнал событий: 52 = 0x34

отправка раз в час без подтверждения текущий А+

Формат пакета:

  • 8 бит - код = 0х34
  • 24 бита - младшие биты Timestamp
  • 32 бита - значение энергии А+, формат согласно пакетам 0х31,0х32

Прозрачный канал: 200...205 = 0xC8...0xCD

специфичные команды для Спутника (см описание спутника)

Прозрачный канал: 210 = 0xD2

заголовок присутсвует при запросе/ответе

для Спутника(см описание спутника) и для DLMS (APDU)

Прозрачный канал: 211 = 0xD3

заголовок присутсвует при запросе/ответе

для Спутника(см описание спутника) и для DLMS (HDLC)

ID типа: 240 = 0xF0 (DL), 242 = 0xF2 (UL)

Сообщение типа set tarif ext - сообщения, посылаемые станцией при изменении расширенной тарифной сетки посредством  веб-интерфейса, а также, посылаемые модемом на сервер при изменении расширенной тарифной сетки по локальному интерфейсу (RS-485 и др.),

Поддерживается 4 тарифа - задается 2 битами, причем 00b = Т1, 01b = Т2, 10b = Т3, 11b = Т4.

Формат тарифного расписания в рамках одних суток (TariffTable)  представлен последовательным описанием действующего тарифа каждые 30 минут начиная с 00:00.

Пример:

00:00-00:30

00:30-01:00

...

23:00-23:30

23:30-00:00

00b = T1

01b = T2

00b = T1

11b = T4

всего 48 зон по полчаса по 2 бита каждый = 12 байт

Формат сообщения:

0xF0 Packet [Tariff] [Tariff] ... [Tariff] [TariffDayOff] [TariffSpecial] [TariffSpecial]

Формат Packet:

  • 4 бита - всего пакетов
  • 4 бита - номер текущего пакета

если пакет единственный Packet = 0x11

Формат Tariff:

  • 4 бита - заголовок = 1 для тарифного расписания рабочего дня, = 2 для выходного дня, = 3 для специального 1, = 4 для специального 2 
  • 12 бит - маска по месяцам (например: = 1 - только для января, = 3 - для января и февраля, = FFF для всего года), для рабочего и выходного для, = FFF для специального 1 и 2 
  • TariffTable

Формат TariffDayOff:

  • 4 бита - заголовок = 5 выходные дни
  • 5 бит - резерв  = 0
  • 7 бит - маска по дням недели, где первый день недели - воскресенье (например: = 0x01 - только для вс, = 0x03 - для вс и пн, = 0x7F для всей недели)

Формат TariffSpecial:

  • 4 бита - заголовок = 6 для специального 1, = 7 для специального 2
  • 5 бита - резерв = 0
  • 7 бит - длина в байтах последующих блоков
    повторяемый блок:
  • 2 бита - = 0 день, действия данного расписания, = 1 день начало, = 2 день окончания интервала действия данного расписания
  • 2 бита - резерв = 0
  • 4 бита - месяц
  • 3 бита - резерв = 0
  • 5 бит - день, месяца

Допускается не более 10 повторяемых блоков в обоих TariffSpecial.

В первой версии не используется разбивка по месяцам, т.е.  маска по месяцам = FFF для всего года.


Set Tarif Ext (UL & DL)

Set Profile (UL & DL)

ID типа: 241 = 0xF1

Настройки записи и отправки профиля мощности

Формат сообщения:

  • 8 бит - тип сообщения = 0хF1
  • 12 бит - время в минутах, период записи профиля (30 мин по умолчанию)
  • 2 бит - выравнивание: 0 = нет выравнивания, 1 = час,  2 = сутки
  • 1 бит - флаг необходимости отправки по радио при каждой записи
  • 1 бит - резерв
    повторяемый блок (4 раза) : 
  • ParamIdentifier
    хвост:
  • 8 бит - резерв

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

Идентификаторы устройства: 238 = 0xEE

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

  • 1 байт = 0 - номер прошивки
  • 2 байта - HW
  • 2 байта - SW
    пример пакета для версии ПО (SW) 1.0.2.3 исполнения (HW) 1.0.2.15: EE 00 10 2F 10 23

    расшифровка HW:
  • 4 бита  = 1 однофазник, = 3 трехфазник
  • 1 бит  = 0 обычный, = 1 сплит
  • 1 бит = резерв
  • 2 бита  = 0,=1 прямого включения, =2 полукосвенного включения, =3 косвенного включения
  • 8 бит - ревизия 
  • 1 байт = 1 - серийный номер(штрихкод)
  • X байт до конца пакета - серийный номер,
    пример пакета для серийника 11060012 : EE 01 11 06 00 12

Внимание! Для версии software 3.1.2.3 не работает downlink-команда для запроса мгновенных показаний (EF0A).

Events (deprecated)

Показать

ID типа: 246

Сообщение типа events отправляется сразу после запуска электросчетчика и при возникновении каких-либо событий на счетчике

Формат сообщения:

  • 8 бит - тип сообщения
  • 32 бит - время в формате unix time
  • 8 бит - тип события (см. Коды событий)
  • 8 бит - напряжение питания
  • 8 бит - температура

Коды событий

код

Описание

01

Рестарт счетчика

02

Обнаружено линейное напряжение

03

Линейное напряжение пропало

04

Открытие крышки счетчика

05

Закрытие крышки счетчика

06

Обнаружено магнитное поле*

07

Включено ограничение по потреблению

08

Ограничение по потреблению отключено

09

Отключение реле счетчика

10

Коррекция времени

11

Изменение тарифного расписания

* - магнитное поле присутствует более 10 секунд  

Отправка архива данных на сервер: 239 = 0xEF

Пример сообщения: EF10 AA iiii iiii

Формат сообщения:

  • 16 бит - тип сообщения
  • 8 бит - тип отправляемых данных
  • 32 бит - индекс младшим байтом наперед в архиве

Типы отправляемых данных:

AA = 00 - суточные
AA = 01 - профиль
AA = 02 - события
0B = 11 - настройки клеммников и корпусов


Пример отправляемого пакета: EF0B06014B00
Пример получаемого пакета: EF0B060196005C0194000100 (где EF0B-заголовок
0601 - клемник настройка
9600 - корпус настройка
5C01 - текущий клемник
9400 - текущий корпус
01 - магнит
00 - текущие воздействия)

Set Time

ID типа: 245

Сообщение типа set time - сообщение, посылаемое станцией, При получении такого сообщения, электро счетчик выполняет установку времени.

Формат сообщения:

  • 8 бит - ID тип сообщения
  • 32 бит - время в формате unix time
  • 24 бит - зарезервировано

Set Limit

ID типа: 244

Сообщение типа set limit - сообщение, посылаемое станцией, При получении такого сообщения, электросчетчик устанавливает и отслеживает лимит потребления.  Ноль - отключение ограничения.

Формат сообщения:

  • 8 бит - ID тип сообщения
  • 16 бит - Лимит мгновенной мощности, Вт
  • 40 бит - зарезервировано

Set Tarif (UL & DL) (deprecated)

Показать

ID типа: 242 (UL)  243 (DL)

Сообщение типа set tarif- сообщения, посылаемые станцией при изменении тарифной сетки посредством  веб-интерфейса, а также, посылаемые модемом на сервер при изменении тарифной сетки по локальному интерфейсу (RS-485 и др.),

Тариф и время начала тарифной зоны задается след. форматом:

Формат сообщения:

ID тип сообщения

1 зона

2 зона

3 зона

4 зона

5 зона

6 зона

7 зона

8 бит

  • 2 бита - номер тарифа (0-2*)
  • 6 бит - резерв

48 - битная маска принадлежности каждого получаса суток

к данному тарифу.

Младший бит = период 00:00 - 00:30

Старший бит = период 23:30 - 24:00


Список типов передаваемых сообщений

Номер

UL/DL

Описание

1

UL

∑L ∑T A+

2

UL

∑L ∑T A-

3

UL

Накопленная энергия реактивная прямая (R+) по сумме фаз суммарная по тарифам

4

UL

Накопленная энергия реактивная обратная (R-) по сумме фаз суммарная по тарифам

5

UL

Накопленная энергия активная (A+, A-) по сумме фаз тариф 1

6

UL

Накопленная энергия активная (A+, A-) по фазе 1 тариф 1

7

UL

Накопленная энергия активная (A+, A-) по фазе 2 тариф 1

8

UL

Накопленная энергия активная (A+, A-) по фазе 3 тариф 1

9

UL

Накопленная энергия реактивная (R+, R-) по сумме фаз тариф 1

10

UL

Накопленная энергия реактивная (R+, R-) по фазе 1 тариф 1

11

UL

Накопленная энергия реактивная (R+, R-) по фазе 2 тариф 1

12

UL

Накопленная энергия реактивная (R+, R-) по фазе 3 тариф 1

13

UL

Накопленная энергия активная (A+, A-) по сумме фаз тариф 2

14

UL

Накопленная энергия активная (A+, A-) по фазе 1 тариф 2

15

UL

Накопленная энергия активная (A+, A-) по фазе 2 тариф 2

16

UL

Накопленная энергия активная (A+, A-) по фазе 2 тариф 2

17

UL

Накопленная энергия реактивная (R+, R-) по сумме фаз тариф 2

18

UL

Накопленная энергия реактивная (R+, R-) по фазе 1 тариф 2

19

UL

Накопленная энергия реактивная (R+, R-) по фазе 2 тариф 2

20

UL

Накопленная энергия реактивная (R+, R-) по фазе 3 тариф 2

21

UL

Накопленная энергия активная (A+, A-) по сумме фаз тариф 3

22

UL

Накопленная энергия активная (A+, A-) по фазе 1 тариф 3

23

UL

Накопленная энергия активная (A+, A-) по фазе 2 тариф 3

24

UL

Накопленная энергия активная (A+, A-) по фазе 3 тариф 3

25

UL

Накопленная энергия реактивная (R+, R-) по сумме фаз тариф 3

26

UL

Накопленная энергия реактивная (R+, R-) по фазе 1 тариф 3

27

UL

Накопленная энергия реактивная (R+, R-) по фазе 2 тариф 3

28

UL

Накопленная энергия реактивная (R+, R-) по фазе 3 тариф 3

29

UL

Накопленная энергия активная (A+, A-) по сумме фаз тариф 4

30

UL

Накопленная энергия активная (A+, A-) по фазе 1 тариф 4

31

UL

Накопленная энергия активная (A+, A-) по фазе 2 тариф 4

32

UL

Накопленная энергия активная (A+, A-) по фазе 3 тариф 4

33

UL

Накопленная энергия реактивная (R+, R-) по сумме фаз тариф 4

34

UL

Накопленная энергия реактивная (R+, R-) по фазе 1 тариф 4

35

UL

Накопленная энергия реактивная (R+, R-) по фазе 2 тариф 4

36

UL

Накопленная энергия реактивная (R+, R-) по фазе 3 тариф 4

37

UL

Накопленная энергия активная обратная (A-) по сумме фаз тариф 1

45

UL

Накопленная энергия активная обратная (A-) по сумме фаз тариф 2

48

UL

Профиль мощности

49

UL

NB-Fi: дневные накопленные значения

50

UL

NB-Fi: Профиль мощности

51

UL

NB-Fi: События

242

UL


Установка тарифов и временных зон

243

DL

244

DL

Установка ограничения по потреблению электроэнергии

245

DL

Установка времени на электросчетчике

246

UL

Событие электросчетчика

247

UL

Дельта потребления по сумме фаз - первое сообщение

248

UL

Дельта потребления по сумме фаз - второе сообщение

249

UL

Дельта потребления по фазе 1 - первое сообщение

250

UL

Дельта потребления по фазе 1 - второе сообщение

251

UL

Дельта потребления по фазе 2 - первое сообщение

252

UL

Дельта потребления по фазе 2 - второе сообщение

253

UL

Дельта потребления по фазе 3 - первое сообщение

254

UL

Дельта потребления по фазе 3 - второе сообщение

255

Header

Порядок заполнения данных при отсутствии в пакете 

на первом этапе считает только для суммы фаз(т.к. разные алгоритмы для трехфазника и однофазника), если пришла отдельно фаза, не учитываем

при расчете, если отсутствует данное в пакете => должно быть прочитано из базы, причем timestamp прочитанного <= время из пакета, и значение не фейковое

обозначения:

А+ - OBIS.C  = 1

A-  - OBIS.C  = 2

A  - OBIS.C  = 15

R+ - OBIS.C  = 3

R-  - OBIS.C  = 4

Т0 - OBIS.E  = 0

Т1 - OBIS.E  = 1

отсутствует

присутствует в пакете

рассчет

А+Т0

А+Т1 | А+Т2 | А+Т3 | А+Т4

А+Т0 = А+Т1 + А+Т2 + А+Т3 + А+Т4

А+Т1

А+Т0 & А+Т2 & А+Т3 & А+Т4

А+Т1 = А+Т0 - А+Т2 - А+Т3 - А+Т4

А+Т2

А+Т0 & А+Т1 & А+Т3 & А+Т4

А+Т2 = А+Т0 - А+Т1 - А+Т3 - А+Т4

А+Т3

А+Т0 & А+Т1 & А+Т2 & А+Т4

А+Т3 = А+Т0 - А+Т1 - А+Т2 - А+Т4

А+Т4

А+Т0 & А+Т1 & А+Т2 & А+Т3

А+Т4 = А+Т0 - А+Т1 - А+Т2 - А+Т3

А-Т0

А-Т1 | А-Т2 | А-Т3 | А-Т4

А-Т0 = А-Т1 + А-Т2 + А-Т3 + А-Т4

А-Т1

А-Т0 & А-Т2 & А-Т3 & А-Т4

А-Т1 = А-Т0 - А-Т2 - А-Т3 - А-Т4

А-Т2

А-Т0 & А-Т1 & А-Т3 & А-Т4

А-Т2 = А-Т0 - А-Т1 - А-Т3 - А-Т4

А-Т3

А-Т0 & А-Т1 & А-Т2 & А-Т4

А-Т3 = А-Т0 - А-Т1 - А-Т2 - А-Т4

А-Т4

А-Т0 & А-Т1 & А-Т2 & А-Т3

А-Т4 = А-Т0 - А-Т1 - А-Т2 - А-Т3

АТ0

А+Т0 & А-Т0

АТ0 = А+Т0 + А-Т0

АТ1

А+Т1 & А-Т1

АТ1 = А+Т1 + А-Т1

АТ2

А+Т2 & А-Т2

АТ2 = А+Т2 + А-Т2

АТ3

А+Т3 & А-Т3

АТ3 = А+Т3 + А-Т3

АТ4

А+Т4 & А-Т4

АТ4 = А+Т4+ А-Т4

АТ0

АТ1 | АТ2 | АТ3 | АТ4

АТ0 = АТ1 + АТ2 + АТ3 + АТ4

АТ1

АТ0 & АТ2 & АТ3 & АТ4

АТ1 = АТ0 - АТ2 - АТ3 - АТ4

АТ2

АТ0 & АТ1 & АТ3 & АТ4

АТ2 = АТ0 - АТ1 - АТ3 - АТ4

АТ3

АТ0 & АТ1 & АТ2 & АТ4

АТ3 = АТ0 - АТ1 - АТ2 - АТ4

АТ4

АТ0 & АТ1 & АТ2 & АТ3

АТ4 = АТ0 - АТ1 - АТ2 - АТ3

Дополнительно

Формат Strijtime-d

Формат предполагает передачу порядкового номера дня, извлеченного из UNIX timestamp. Фактически рассчитывается как FLOOR( UNIXTIME / 86400 ), где UNIXTIME - это время Unix timestamp, а 86400 - это константа, количество секунд в сутках (3600 * 24).

Константа TIMESHIFT

Эта константа определяется случайным образом при первом запуске электросчетчика после прошивки, сохраняется в памяти и затем используется для определения временного сдвига отправки регулярных сообщений. Значение константы должно находиться в диапазоне от 1 до 86400.

Эта статья была:   Полезна | Не полезна
Сообщить об ошибке
ID статьи: 7
Последнее обновление: 29 Apr, 2019
Ревизия: 4
Просмотры: 90
Комментарии: 0