[solved] WB-MAP6S: нулевые мощности при ненулевых токе и напряжении

Несколько лет назад купил два WB-MAP6S под проект умного дома (реализован не был). Сейчас решил задействовать со своим контроллером. Пока лежали, приходило сообщение в почте о необходимости обновить прошивку. Потому сразу после распаковки было сделано:

  1. Прошивка обновлена до 2.7.1 (TL;DR: последняя рабочая 2.6.3, версии 2.7.0, 2.7.1 - нет).
  2. Прописаны коэффициенты трансформатора для канала 1 с наклейки.
  3. Подключена нагрузка на тестовом стенде.

Результаты:

  • напряжение, частота, ток показаны правильно;
  • все мощности нулевые.

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

Значения регистров (считаны через modbus_client):

Без нагрузки:

Model:          MAP6S 0x0200
Signature:      map6s51
FW:             2.7.1

4313: Urms      Data: 0x58ef
4344: F         Data: 0x1388
5146: Irms1     Data: 0x0000 0x0000
4870: P1        Data: 0x0000 0x0000
4878: Q1        Data: 0x0000 0x0000
4886: S1        Data: 0x0000 0x0000
4287: PF1       Data: 0x0000
4620: AP1       Data: 0x2e7c 0x0000 0x0000 0x0000
4636: AN1       Data: 0x0000 0x0000 0x0000 0x0000
4652: RP1       Data: 0x0000 0x0000 0x0000 0x0000
4668: RN1       Data: 0x21b2 0x0000 0x0000 0x0000
4347: PhA1      Data: 0x0000

С нагрузкой (светодиодная лампа с номиналом 10Вт):

Model:          MAP6S 0x0200
Signature:      map6s51
FW:             2.7.1

4313: Urms      Data: 0x58d7
4344: F         Data: 0x1389
5146: Irms1     Data: 0x0002 0x4400
4870: P1        Data: 0x0000 0x0000
4878: Q1        Data: 0x0000 0x0000
4886: S1        Data: 0x0000 0x0000
4287: PF1       Data: 0x0000
4620: AP1       Data: 0x2e7d 0x0000 0x0000 0x0000
4636: AN1       Data: 0x0000 0x0000 0x0000 0x0000
4652: RP1       Data: 0x0000 0x0000 0x0000 0x0000
4668: RN1       Data: 0x21b2 0x0000 0x0000 0x0000
4347: PhA1      Data: 0xff5c

Что может быть не так?

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

Поменял нагрузку на лампу 60Вт в предположении, что малые мощности просто не отображаются.
Результат: ток правильный, энергия нарастает тоже корректно. Мощности по прежнему считываются нулевыми. Еще несколько раз проверил номера регистров - увы…

Добрый день.
Попробуем разобраться. Для начала пришлите диагностический архив и серийные номера модулей.
Также покажите какими командами запрашиваете параметры через modbus_client.

1 Like
  1. Чтобы получить диагностический архив, нужно установить утилиту wb-diag-collect. Она тянет за собой несколько зависимостей, предполагая работу на WB контроллере. Как я написал в первом сообщении, у меня его нет. Если есть инструкция, как установить ее на чистом ubuntu (или любом другом линуксе) - я это сделаю.

Первый: Addr: 64, HW: 1.1, FW: 2.2.2 (сейчас 2.7.1), SN: 4972411, наклейка v1.1A.
Второй: Addr: 29, HW: 1.1, FW: 2.2.0 (сейчас 2.7.1), SN: 3267875, наклейка Batch №: 260.

  1. Вопрос странный, поскольку в первом сообщении я достаю эти данные вместе с рядом других, и очевидно, что теми же командами скриптом в цикле (адреса приведены, строка Data - это прямой вывод утилиты на запрос по приведенному в строке адресу). Во втором моем сообщении на картинке данные достаются встроенной интеграцией modbus_controller из ESPHome/Home Assistant. Другое всё (железо, код, RS485 адаптер), Те же только адреса и счетчик MAP6S. Ну и результаты чтения. Однако, вот:
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x03 -r200 -c 20
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t3 -r 290 -c 12
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x03 -r250 -c 16

modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4313 -c 1
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4344 -c 1
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 5146 -c 2
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4870 -c 2
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4878 -c 2
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4886 -c 2
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4287 -c 1
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4620 -c 4
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4636 -c 4
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4652 -c 4
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4668 -c 4
modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 4347 -c 1

modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x04 -r 0x1490 -c 6

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

Прочитайте пожалуйста 102 holding - что в нем?

На всякий случай прочитал 102 и 0x102:

# modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x03 -r 102 -c 1
SUCCESS: read 1 of elements:
        Data: 0x0001

# modbus_client -mrtu -b9600 -pnone -s2 /dev/ttyUSB0 -a64 -t0x03 -r 0x102 -c 1
SUCCESS: read 1 of elements:
        Data: 0x0000

Взял второй контроллер (сигнатура map6s), проверил с той же нагрузкой лампой 60Вт: читаются нулевые мощности (прошивка 2.7.1). Перешил прошивку 2.2.5 - стало все читаться, мощность в пересчете получилась 58 ватт. Буду пробовать постепенно подниматься выше.

Итого, прошивка 2.6.3: все хорошо, прошивка 2.7.0 - нули.
Сейчас повторю на втором экземпляре, но думаю, что результат будет тем же, Что-то сломалось при переходе от 2.6 к 2.7.

Актуальная на данный момент версия 2.7.1. Стоит с ней пробовать.

Если посмотреть на моё первое сообщение в теме, то и написано текстом, что прошивка обновлена на 2.7.1, и в выводе modbus_client тоже показано, что с прошивкой 2.7.1 нули…

  1. Прошивка обновлена до 2.7.1.

С нагрузкой (светодиодная лампа с номиналом 10Вт):

Model:          MAP6S 0x0200
Signature:      map6s51
FW:             2.7.1

Потому я пошел методом дихотомии, результат уже написал выше.

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

Прошивки версий 2.7.x нерабочие, мощности читаются нулями.
Прошивки версий до 2.6.3 включительно работают, все читается корректно. Проверено на ревизиях счетчиков с сигнатурами map6s и map6s51.

PS. А представителям поддержки я бы посоветовал не только писать, но еще и читать написанное…

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

1 Like

Запишите туда 0
102 - тут десятичный.

Записал 0, не помогло (прошивка 2.7.2).

$ modbus_client -mrtu -b115200 -pnone -s2 /dev/ttyUSB0 -a64 -t0x03 -r 102

SUCCESS: read 1 of elements:
        Data: 0x0000

$ ./mb.sh

Model:          MAP6S 0x0200
Signature:      map6s51
FW:             2.7.2

4313: Urms      Data: 0x5b6f
4344: F         Data: 0x1389
5146: Irms1     Data: 0x0002 0x4200
4870: P1        Data: 0x0000 0x0000
4878: Q1        Data: 0x0000 0x0000
4886: S1        Data: 0x0000 0x0000
4287: PF1       Data: 0x0000
4620: AP1       Data: 0x44f3 0x0000 0x0000 0x0000
4636: AN1       Data: 0x0002 0x0000 0x0000 0x0000
4652: RP1       Data: 0x0009 0x0000 0x0000 0x0000
4668: RN1       Data: 0x2442 0x0000 0x0000 0x0000
4347: PhA1      Data: 0xff5b
0x1490: CAL     Data: 0x4047 0x404a 0x4064 0x0109 0x00ee 0x00ee
102: R102       Data: 0x0000

Останавливаюсь на версии 2.6.3, убираю устройство (там, где мог бы сейчас применить, надо 3-фазное решение, увы). Будет ждать нового шанса.

И да, оно воспроизводится.
Где-то ошибка, отдал разработчикам.

1 Like