Для расширения функциональности систем на базе технологий 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 г.
|
А как должен выглядеть синтаксис любой из этих команд к счётчику, который расположен удалённо и подключен через RS485/Eth конвертер?
ОтветитьУдалитьСинтаксис не зависит от канала связи.
УдалитьУточню. Имеется счётчик "Меркурий 200.02", имеется конвертер QFC-PS1A.
ОтветитьУдалитьДоступ на конвертер осуществляется по протоколу TCP/IP (IP,Port);
Каким образом установить связь со счётчиком из консольного приложения?
т.е. первое что приходит в голову - это сокет(IP,Port) и stream.write(message)
где message - это byte[] Message = [{00}{00 00 00}{00},пустой байт,Адрес счётчика, команда]
но эта структура не работает.
На любой запрос, даже неверный приходит странный ответ 31 31 31 31 31 31 0d 0a
УдалитьС чем такое поведение может быть связано?
Покажите пожалуйста пример, как будет выглядеть чтение получасовых мощностей за сутки?
ОтветитьУдалитьПри чтении получаю записи только с 0 и 1 страниц, как правильно указать глубину архива для чтения?
Для разных моделей счетчиков подобные запросы будут отличаться. Нет возможности все это описывать здесь. Это все описано в протоколах на счетчики. Вам надо обратиться к протоколу, или еще есть форум, который ведет непосредственно программист. На него можно попасть через его блог: http://incotex-counter.blogspot.ru Там же есть его электронный адрес.
УдалитьПроживаю в Свердловской области
ОтветитьУдалитьНедавно приобрел счетчик Меркурий 206 и обнаружил, что он не считает выходные дни по льготному тарифу
хотя есть постановление РЭК Свердловской области от 23.12.2011 г. № 211-ПК в котором написано:
6. При наличии двухтарифных приборов учета применяются тарифы, дифференцированные по зонам суток, в том числе:
- тарифы, установленные для пиковой (дневной) зоны, применяются в будние дни с 07.00 до 23.00 часов;
- тарифы, установленные для ночной зоны, применяются в будние дни с 23.00 до 07.00 часов, в выходные и праздничные дни – круглосуточно.
и постановление на сегодняшний день вроде как действующее
постановление есть на официальном сайте РЭК Свердловской области
http://rek.midural.ru/uploads/document/434/2011_223.doc
можно ли это исправить если да то как?
С завода счётчик программируется на два тарифа. Выходные дни тарифицируются как и будничные. Если требуется работа по другому тарифному расписанию, то требуется перепрограммирование счётчика. Перепрограммирование производится в специализированной организации. Перечень таких организаций можно уточнить в местном энергосбыте. Мы оказываем такие услуги на базе нашего сервисного центра в г. Москве.
УдалитьПриветствую.Счетчики меркурий 203.2т lbo, 234, 233,программа NetMonitor3.1. И
ОтветитьУдалитьМобильный АРМ АСКУЭ.
В NetMonitor при вводе команд на ограничения мощности,(и любых других команд ,не прописанных в программе)выводит , незарегестрированная команда,но при этом счетчик команду принимает и исполняет ее.в основном надо считать действующее состояние счетчика,ограничения и работу реле.
Мобильный АРМ АСКУЭ снимает показания,но при этом не реагирует на запросы отключить счетчик или ограничить мощность.Пишет команда в очереди,или что то подобное.(команда в очереди 2ю неделю висит)
ОБратил внимание на команды чтения-записи индикации:
ОтветитьУдалить1. Байт, как известно, содержит 8 битов, но в описании их 9! Куда писать девятый?
2. Команда чтения индикации в таблице 2А, а в примере - 24. Пример вообще неудачный, так как из ответного кода 33 невозможно определить, какой бит старший, а какой младший.
Если можно, пришлите, пожалуйста, полный протокол однофазного счетчика М-203 на почту spec333.3@yandex.ru
Почему счетчик Меркурий 200 может не отвечать на Чтение максимумов?
ОтветитьУдалитьИ какое максимально напряжение он способен измерять? у меня максимальное отдает 249.00 В
Версия ПО 8.3. Спасибо!
Здравствуйте. Кто нибудь имеет опыт опроса ПУ Меркурий 201,8 TLO по ПО BQuark. Поделитесь пожалуйста примером написания программы опроса
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьЭтот комментарий был удален автором.
УдалитьЗдравсвуйте.
ОтветитьУдалитьПодскажите пожалуйста, как в BQuark/BMonitor получить вывод команды?
Например при таком задании где получить serial номер (запрашиваю через 225.11)?
OBJECTS
TYPE=PLC_I_CONCENTRATOR; ADDR=2001; PORT=1; BAUDRATE=38400; MAXIDLE=1000; COUNT=1
TYPE=COMMAND; RUN=M-200; HEX=2F; DEVICE=389