четверг, 26 мая 2016 г.

Протокол однофазных счетчиков Меркурий. Основные команды.



Для расширения функциональности систем на базе технологий PLC требуется знание  основных команд счетчиков. В предыдущей статье я приводил выжимки из описания системы команд трехфазных счетчиков. Теперь очередь однофазных.
Команды из числа приведенных ниже можно передавать счетчикам пользуюсь специально предусмотренными возможностями в программном обеспечении BQuark, BMonitor и NetMonitor. 








Команды на установку



Установка лимита мощности


CMD = 03

CMD-mpower

CMD
mpower – значение лимита мощности xx,xx кВт
имеет длину 2 байта и диапазон значений от 0 до 9999

Пример: команда на запись лимита мощности в 15 кВт

03 15 00

Установка флага сезонного времени


CMD = 05

CMD-flag

CMD
Flag – один байт, значение от 0 до FF
0 – запрещение, любое другое заначение – разрешение.

Пример: команда разрешения перехода на сезонное время

05 11

Установка функции выходного оптрона


CMD = 07

CMD-function

CMD
function - функциональное назначение выходного ключа импульсного выхода
длина 1 байт
Возможные значения:
0 -        телеметрический выход 5000 имп/кВт.ч
1 -        телеметрический выход 10000 имп/кВт.ч
2 -        выход частоты встроенного кварца поделенной на 8
3 -        управление нагрузкой

Пример: команда на перевод импульсного выхода в режим управление нагрузкой

07 03

Установка режима индикации


CMD = 09

CMD-displ

CMD
displ -   длина один байт имеет позиционный формат:

1111 1111
           
По порядку:
1-ый бит - индикация текущего тарифа
2-ой бит - разрешает индикацию 1 тарифа
3-ий бит - разрешает индикацию 2 тарифа
4-ый бит - разрешает индикацию 3 тарифа
5-ый бит - разрешает индикацию 4 тарифа
6-ой бит - разрешает индикацию суммы
7-ой бит - разрешает индикацию мощности
8-ой бит - разрешает индикацию времени
9-ый бит - разрешает индикацию даты

Пример: команда на включение индикации 1-го, 2-го тарифов, суммы и мгновенной мощности.

байт ”disp” в двоично-позиционном формате будет иметь вид:  00110011 - в hex - 33

09 33


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


CMD = 71

CMD-RELE

CMD
RELE – режим работы реле. Длина 1 байт. Возможные значения:
55 – управление по лимитам,
AA - выключено.
5A – имитация нажатия кнопок на панели счетчика
Любое другое значение - включено.

Пример: команда на включение  реле

71 FF

Ответ:

71

Примечание, в счетчиках выпущенных раньше 13 года возможно отсутствие функции дистанционного включения реле. Решить эту проблему может команда 5A – имитация нажатия кнопок на панели счетчика. Команд на дистанционное включение реле таким образом будет две:

71 FF
71 5A

В противном случае включение реле можно будет произвести только отправив команду 71 FF и нажав и удерживая в течении 5 сек.  две кнопки на панели счетчика.


Команды на чтение



Чтение тарифа


CMD = 60

CMD

CMD- Tarif
Tarif – номер действующего тарифа

Пример: команда на чтение номера действующего тарифа

60

Ответ:

60 01 – действующий тариф 1-ый

Чтение времени последнего вскрытия крышки счётчика


CMD = 61

CMD

CMD- timedate
Timedate - структура, включающая в себя поля с текущим временем и датой (см.ниже)
Длина 7 байт
Структура: dow-hh-mm-ss-dd-mon-yy

Ss - 0...59      Секунды
Mm - 0…59   Минуты
Hh - 0…23     Часы
Dd - 1…31    День месяца
Mon - 1…12   Месяц (1-январь, 2-февраль и т.д.)
Yy - 0…99     Последние 2 цифры года
Dow - 0…7    День недели (0-воскр., 1-пон. … 6-субб., 7- праздник)

Пример расшифровки параметра timedate см. выше

Чтение времени последнего закрытия крышки счётчика


CMD = 62

CMD

CMD- timedate

См выше.


Чтение  значений U,I,P


CMD = 63

CMD

CMD-V-I-P

Пример: команда запроса мгновенных значений параметров сети напряжения , тока и мощности

63

Ответ:

63 21 92 00 30 00 00 59

63 – команда

21 92 – напряжение 219,2 В

00 30 – 300 мА

00 00 59 – 59 Вт

Чтение времени последней парам. счётчика


CMD = 6B

CMD

CMD- timedate

См. описание параметра timedate выше



Чтение режима управления реле


CMD = 6D

CMD

CMD-RELE

RELE – режим работы реле. Длина 1 байт. Возможные значения:
55 – управление по лимитам,
AA - выключено.
Любое другое значение - включено.

Пример: команда чтения режима реле

6D

Ответ:

6D FF – реле включено


Чтение лимита мощности


CMD = 22

CMD

CMD-mpower
mpower – значение лимита мощности xx,xx кВт
имеет длину 2 байта и диапазон значений от 0 до 9999

Пример: запрос значения лимита

22

Ответ:  

22 15 00 – 15 00 = 15000 Вт

Чтение флага сезонного времени 


CMD = 24

CMD

CMD-flag
Flag – один байт, значение от 0 до FF
0 – запрещение, любое другое заначение – разрешение.


Пример: команда чтения активности функции перехода на сезонное время

24

Ответ:

24 FF

Чтение текущей мощности в нагрузке


CMD = 26

CMD

CMD-m
m – значение мощности
Пример: команда чтения мгновенной потребляемой мощности

26

Ответ:

26 00 00 – мгновенная потребляемая мощность = 0 Вт

Чтение содержимого тарифных аккумуляторов


CMD = 27

CMD

CMD- count*4
Count - 4-х байтовое значение потребленной эл.энергии в десятках Вт.ч Старшие разряды вперёд.

Пример: команда на чтение тарифных аккумуляторов

27

Ответ:

27  88 94 19 27   88 95 41 00   88 94 86 00   88 88 88 00

  T1 = 889419,27 кВтч
  T2 = 889541,00 кВтч
  T3 = 889486,00 кВтч
  T4 = 888888,00 кВтч

Чтение режима индикации


CMD = 2A

CMD

CMD-displ
displ -   длина один байт имеет позиционный формат:

1111 1111
           
По порядку:
1-ый бит - индикация текущего тарифа
2-ой бит - разрешает индикацию 1 тарифа
3-ий бит - разрешает индикацию 2 тарифа
4-ый бит - разрешает индикацию 3 тарифа
5-ый бит - разрешает индикацию 4 тарифа
6-ой бит - разрешает индикацию суммы
7-ой бит - разрешает индикацию мощности
8-ой бит - разрешает индикацию времени
9-ый бит - разрешает индикацию даты

Пример: команда на чтение режима индикации 

24

Ответ:

24 33

33 в двоичном формате = 0011 0011
Исходя из позиционной расшифровки получаем указанные к индикации параметры:
1-ый тариф
2-ой тариф
Сумма
Мгновенная мощность

Чтение времени последнего отключения напряжения


CMD = 2B

CMD

CMD- timedate
Timedate - структура, включающая в себя поля с текущим временем и датой (см.ниже)
Длина 7 байт
Структура: dow-hh-mm-ss-dd-mon-yy

Ss - 0...59h       Секунды
Mm - 0…59h    Минуты
Hh - 0…23h      Часы
Dd - 1…31h      День месяца
Mon - 1…12h    Месяц (1-январь, 2-февраль и т.д.)
Yy - 0…99h      Последние 2 цифры года
Dow - 0…7h     День недели (0-воскр., 1-пон. … 6-субб., 7- праздник)

Пример: команда на чтение даты/времени последнего отключения

2B

Ответ :

2B 01 10 49 50 23 05 16

2B – возврат команды
01 – понедельник
10 – 10 часов утра
49 – 49 минут
50 – 50 ссекунд
23 05 16 – 23 мая 2016 года

Чтение времени последнего включения напряжения


CMD = 2C

CMD

CMD- timedate

Аналогично предыдущей команде.


Чтение функции выходного оптрона


CMD = 2D

ADDR-CMD-CRC

ADDR-CMD- function -CRC
function - функциональное назначение выходного ключа импульсного выхода
длина 1 байт
Возможные значения:
0 -        телеметрический выход 5000 имп/кВт.ч
1 -        телеметрический выход 10000 имп/кВт.ч
2 -        выход частоты встроенного кварца поделенной на 8
3 -        управление нагрузкой

Пример: команда на чтение функции импульсного выхода

2D

Ответ:

2D 01 – импульсный выход в режиме телеметрии с передаточным числом 10000 имп. на кВт/ч

Чтение серийного номера


CMD = 2F

CMD

CMD- serial
serial – серийный номер в hex формате

Пример: команда на чтение серифного номера счетчика

2F

Ответ:

2F 00 7E 03 1B

2F – команда

00 7E 03 1B  - серийный номер 8258331

Чтение максимумов


CMD = 33

CMD-ii4

CMD-max-maxr
Ii4 – указывает тип параметра: 00 – напряжение, 01 – ток, 02 – мощность

max, maxr – не сбрасываемый и сбрасываемый параметр соответственно, длина 8 байт, формат:
V-hh-mm-ss-dd-mon-yy
I-hh-mm-ss-dd-mon-yy
m-hh-mm-ss-dd-mon-yy           

V – напряжение
I – ток
m – мощность
Ss - 0...59h       Секунды
Mm - 0…59h    Минуты
Hh - 0…23h      Часы
Dd - 1…31h      День месяца
Mon - 1…12h    Месяц (1-январь, 2-февраль и т.д.)
Yy - 0…99h      Последние 2 цифры года
Dow - 0…7h     День недели (0-воскр., 1-пон. … 6-субб., 7- праздник)

Пример: команда запроса значений сбрасываемого и не сбрасываемого значений максимумов напряжения

33 00

Ответ:

33 23 95 05 51 24 01 05 16 23 95 05 51 24 01 05 16

33 – команда

23 95  - 239,5 Вольта

05 51 24 01 05 16  - в 5:51:24  первого мая 2016 г.

23 95  - 239,5 Вольта

05 51 24 01 05 16  - в 5:51:24  первого мая 2016 г.

14 комментариев:

  1. А как должен выглядеть синтаксис любой из этих команд к счётчику, который расположен удалённо и подключен через RS485/Eth конвертер?

    ОтветитьУдалить
  2. Уточню. Имеется счётчик "Меркурий 200.02", имеется конвертер QFC-PS1A.
    Доступ на конвертер осуществляется по протоколу TCP/IP (IP,Port);
    Каким образом установить связь со счётчиком из консольного приложения?
    т.е. первое что приходит в голову - это сокет(IP,Port) и stream.write(message)
    где message - это byte[] Message = [{00}{00 00 00}{00},пустой байт,Адрес счётчика, команда]
    но эта структура не работает.

    ОтветитьУдалить
    Ответы
    1. На любой запрос, даже неверный приходит странный ответ 31 31 31 31 31 31 0d 0a

      С чем такое поведение может быть связано?

      Удалить
  3. Покажите пожалуйста пример, как будет выглядеть чтение получасовых мощностей за сутки?
    При чтении получаю записи только с 0 и 1 страниц, как правильно указать глубину архива для чтения?

    ОтветитьУдалить
    Ответы
    1. Для разных моделей счетчиков подобные запросы будут отличаться. Нет возможности все это описывать здесь. Это все описано в протоколах на счетчики. Вам надо обратиться к протоколу, или еще есть форум, который ведет непосредственно программист. На него можно попасть через его блог: http://incotex-counter.blogspot.ru Там же есть его электронный адрес.

      Удалить
  4. Проживаю в Свердловской области
    Недавно приобрел счетчик Меркурий 206 и обнаружил, что он не считает выходные дни по льготному тарифу
    хотя есть постановление РЭК Свердловской области от 23.12.2011 г. № 211-ПК в котором написано:

    6. При наличии двухтарифных приборов учета применяются тарифы, дифференцированные по зонам суток, в том числе:
    - тарифы, установленные для пиковой (дневной) зоны, применяются в будние дни с 07.00 до 23.00 часов;
    - тарифы, установленные для ночной зоны, применяются в будние дни с 23.00 до 07.00 часов, в выходные и праздничные дни – круглосуточно.

    и постановление на сегодняшний день вроде как действующее
    постановление есть на официальном сайте РЭК Свердловской области
    http://rek.midural.ru/uploads/document/434/2011_223.doc

    можно ли это исправить если да то как?

    ОтветитьУдалить
    Ответы
    1. С завода счётчик программируется на два тарифа. Выходные дни тарифицируются как и будничные. Если требуется работа по другому тарифному расписанию, то требуется перепрограммирование счётчика. Перепрограммирование производится в специализированной организации. Перечень таких организаций можно уточнить в местном энергосбыте. Мы оказываем такие услуги на базе нашего сервисного центра в г. Москве.

      Удалить
  5. Приветствую.Счетчики меркурий 203.2т lbo, 234, 233,программа NetMonitor3.1. И
    Мобильный АРМ АСКУЭ.
    В NetMonitor при вводе команд на ограничения мощности,(и любых других команд ,не прописанных в программе)выводит , незарегестрированная команда,но при этом счетчик команду принимает и исполняет ее.в основном надо считать действующее состояние счетчика,ограничения и работу реле.
    Мобильный АРМ АСКУЭ снимает показания,но при этом не реагирует на запросы отключить счетчик или ограничить мощность.Пишет команда в очереди,или что то подобное.(команда в очереди 2ю неделю висит)

    ОтветитьУдалить
  6. ОБратил внимание на команды чтения-записи индикации:
    1. Байт, как известно, содержит 8 битов, но в описании их 9! Куда писать девятый?
    2. Команда чтения индикации в таблице 2А, а в примере - 24. Пример вообще неудачный, так как из ответного кода 33 невозможно определить, какой бит старший, а какой младший.
    Если можно, пришлите, пожалуйста, полный протокол однофазного счетчика М-203 на почту spec333.3@yandex.ru

    ОтветитьУдалить
  7. Почему счетчик Меркурий 200 может не отвечать на Чтение максимумов?
    И какое максимально напряжение он способен измерять? у меня максимальное отдает 249.00 В
    Версия ПО 8.3. Спасибо!

    ОтветитьУдалить
  8. Здравствуйте. Кто нибудь имеет опыт опроса ПУ Меркурий 201,8 TLO по ПО BQuark. Поделитесь пожалуйста примером написания программы опроса

    ОтветитьУдалить
  9. Этот комментарий был удален автором.

    ОтветитьУдалить