WB7 + EKF PRO-Screen + Счетчик Меркурий

Очень хочу ответить, честное слово! Либо туплю, либо торможу.

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

У меня были мысли, что если мы на панель отправляем 32 битное, то должны полученное от счетчика 345.689 сначала преобразовать в целое 345689 и потом отправлять указывая в настройках, что оно идет со множителем.

Это как раз зависит от того что именно (какая работа с регистрами, их преобразование) настроена в панели.
Для проверки настройки - запишите в панель значение с помощтью modbus_client.

Спасибо, тогда буду более плотно прослеживать через modbus_client.

Благодарю за уделенное время!

P.S. Отдельное спасибо вашим коллегам, которые были на выставке “Электро_2025”. Навели на очень полезные и интересные мысли!

Да, покажите что выводится при записи.

Вопрос немного не в этом направление, но лучше переспросить.

Я начал перепроверять настройки и подключение с самого начала.
У меня на счетчик, выделен отдельный канал RS485. А Modbus устройство на втором.

Я заметил, что первый канал с счетчиком, имеет настройку по скорости в 9600, а второй канал с Modbus устройством - 115200, так же скорость самой панели имеет настройку 115200.

Может ли это как-то влиять на работу по отображению данных со счетчика? Учитывая что дорожная карта такая: Счетчик кидает данные на WB, а уже WB кидает данные на панель.

Или стоит счетчик добавить на одну шину?

Все устройства на одной шине должны иметь одинаковый параметра. На разных шинах - конечно могут отличаться, главное чтобы в пределах шины совпадали.

Нет, не может.

Буквально пару часов назад, пришла “тупая” идея, но вдруг, она имеет место быть, а возможно и жить.

Как я писал в самом начале, в самой среде по настройке HMI панели, я создаю “цифровой дисплей” и в него записываю значение с адреса WB. А почему бы мне не схалтурить и не разделить данные счетчика на 2 “цифровых дисплея” по 16-ть бит, раз 32 мы не можем переварить. Первый “до точки” и второй “после точки”? А уже графикой подправить, чтоб выглядело всё как единое целое.

Вопрос только в том, как корректно разделить данное значение на стороне WB?

Я вычленил целую часть:

  dev["wb-modbus-1-1/Total_consumption"] = Math.floor(dev["mercury230ar02_22/Total consumption"]);

И дробную:

 dev["wb-modbus-1-1/Total_consumption_2"] = dev["mercury230ar02_22/Total consumption"] % 1;

Минус всей моей затеи, пока один. Когда значение дробной части, после запятой, начинается с нуля, то этот ноль не отображается, выводится просто “пробел”. Может будут у Вас мысли, как и эту проблему победить?

Я думаю что, все ж, проще сконфигурировать HMI для работы ко значением регистра как float, например в соответствии со стандартом ieee754 (wb-mqtt-serial такое умеет).
Или добавить множитель для этого регистра…