Определитесь с необходимыми вам параметрами установки и попробуйте по аналогии сделать шаблон для начала для одного канала (регистра). Если возникнут трудности, то постараемся вам помочь.
Ну не знаю насчет не потребуется
Попробовал поработать с генератором, в целом получилось… пришлось много чего вспоминать… но попутно возникает много вопросов:
Например мне нужно прочитать общее состояние генератора, оно в виде битов в слове u16. Пытался прочитать как coil, выдает ошибку. Только слово целиком отдает без ошибок. Методом тыка нашел, что можно прочитать все слово, указав какой бит определяет состояние
{
“name”: “TEST mode”,
“type”: “switch”,
“reg_type”: “input”,
“address”: “0x220F:3:1”,
“format”: “u16”
}
Ну и не придумал ничего лучше, как описать таким образом все 16 бит. Есть ли более красивый способ?
В утилите modbus_client есть параметр -0, он говорит о том, что нужно каждому адресу сделать -1. Удобно, т.к. в мануале все адреса идут с 1. Есть ли подобный параметр для шаблона? Не то, чтобы критично, но когда сотни адресов, неудобно пересчитывать каждый.
Где найти описание типов элементов управления? В wb-mqtt-serial приведены только “// “temperature”, “text”, “switch””?
На генераторе есть несколько состояний - “OFF”, “MANUAL”, “AUTO”, “TEST”. Определяется записью 0,1,2,3 в соответствующий регистр. Читать оттуда нельзя, только запись. Как такой контрол описать, который не цифрами, а значениями бы переключал, аля радиобаттон?
Вот такая штука работает своеобразно:
{
“name”: “status”,
“type”: “range”,
“reg_type”: “holding_single”,
“address”: “0x2EFF”,
“format”: “u16”,
“min”: 0,
“max”: 3
}
На запись все ок, переключает. Только горит красным везде, т.к. на попытке чтения обламывается. Как заставить не читать из запрещенных на чтение регистров?
Отлично, спасибо, все работает.
С состояниями только никак не разберусь. range не подходит совсем. Хороший вариант был бы несколько pushbutton и писать нужное значение. Для pushbutton есть возможность записи по нажатию конкретного значения, а не только “1”?