Подключение WB7 к генератору

Доброго дня!

Есть такая компания, LOVATO. Делают в т.ч. очень распространенные контроллеры для ДГУ, например моделька RGK800 (https://catalogue.lovatoelectric.com/ru_ru/RGK800/snp). Есть описание modbus https://catalogue.lovatoelectric.com/ru_ru/Product/GetDocument?doc=Technical\TechInstructions\Engine%20and%20generator%20controllers\I375IGB08_22.pdf
Возможно превратить это хотя бы в элементарный вариант шаблона для WB7 с несколькими полями данных, например температурой ОЖ, током по фазам? В качестве бонуса или за плату. Опыт программирования был 20 лет назад, сейчас даже страшно начинать :slight_smile:

Добрый день. По сути для написания шаблона вам и не потребуются знания программирования. Просто вбить требуемые параметры в корректные поля.
Информацию про создание шаблонов можно почитать здесь:
https://wirenboard.com/wiki/WB_FAQ/thirdparty-modbus-devices-conection

и здесь:
GitHub - wirenboard/wb-mqtt-serial: wb-mqtt-serial .

Примеры шаблонов для различных устройств можно найти по ссылке: wb-mqtt-serial/wb-mqtt-serial-templates at master · wirenboard/wb-mqtt-serial · GitHub

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

Ну не знаю насчет не потребуется :slight_smile:
Попробовал поработать с генератором, в целом получилось… пришлось много чего вспоминать… но попутно возникает много вопросов:

  1. Например мне нужно прочитать общее состояние генератора, оно в виде битов в слове u16. Пытался прочитать как coil, выдает ошибку. Только слово целиком отдает без ошибок. Методом тыка нашел, что можно прочитать все слово, указав какой бит определяет состояние
    {
    “name”: “TEST mode”,
    “type”: “switch”,
    “reg_type”: “input”,
    “address”: “0x220F:3:1”,
    “format”: “u16”
    }
    Ну и не придумал ничего лучше, как описать таким образом все 16 бит. Есть ли более красивый способ?

  2. В утилите modbus_client есть параметр -0, он говорит о том, что нужно каждому адресу сделать -1. Удобно, т.к. в мануале все адреса идут с 1. Есть ли подобный параметр для шаблона? Не то, чтобы критично, но когда сотни адресов, неудобно пересчитывать каждый.

  3. Где найти описание типов элементов управления? В wb-mqtt-serial приведены только “// “temperature”, “text”, “switch””?

  4. На генераторе есть несколько состояний - “OFF”, “MANUAL”, “AUTO”, “TEST”. Определяется записью 0,1,2,3 в соответствующий регистр. Читать оттуда нельзя, только запись. Как такой контрол описать, который не цифрами, а значениями бы переключал, аля радиобаттон?
    Вот такая штука работает своеобразно:
    {
    “name”: “status”,
    “type”: “range”,
    “reg_type”: “holding_single”,
    “address”: “0x2EFF”,
    “format”: “u16”,
    “min”: 0,
    “max”: 3
    }
    На запись все ок, переключает. Только горит красным везде, т.к. на попытке чтения обламывается. Как заставить не читать из запрещенных на чтение регистров?

Более красивого способа нет.

Попробуйте “address”: “{{2002 + 1}}”

Control Types

Попробуйте “write_address”: 2621, вместо “address”:

Отлично, спасибо, все работает.
С состояниями только никак не разберусь. range не подходит совсем. Хороший вариант был бы несколько pushbutton и писать нужное значение. Для pushbutton есть возможность записи по нажатию конкретного значения, а не только “1”?

Ну прочитайте ж документацию, on_value

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.