Создал файл с настройками шаблона и положил его в
/usr/share/wb-mqtt-serial/templates/
сделал
service wb-mqtt-serial restart
В web gui на вкладке редактирования /etc/wb-mqtt-serial.conf в дроп-дауне Device Type должен появится мой девайс с именем M-7051D. Правильно понимаю? Или я что-то упустил, так как пока в списке не появляется
Спасибо, ошибку в файле нашел. Появился в списке.
Однако теперь в логе
FATAL: Error parsing config file: invalid register type: descrete – M-7051d
Не нашел в доках описания возможных значений для reg_type .
Возможные варианты: “coil”, “discrete”, “holding”, “holding_single”, “holding_multi”, “input”, “direct”
Какой нужен в моем случае?
вы ввели ноль в шестнадцатеричной системе, ещё добавив незначащих нулей. Ввели бы десятичный ноль -r0 - ничего бы не поменялось, modbus_client всё это понимает. В вашей инструкции, очевидно, всё дано в десятеричной системе. Видите 1 - пишите 1, видите 16 - пишите 16.
В целом, прочитайте Протокол Modbus — Wiren Board, чтобы было понятнее, какие есть регистры, и какие у них адреса.
Спасибо, ничего не понял.
Я пишу на 6 языках, но с двоичным кодом не знаком. У меня не стоит задача вникать глубоко в тему контроллеров и построения систем на них. Я купил железки, мне нужно решить задачу и забыть об этом навсегда через минуту после получения нужного результата. Поэтому, прошу помощи а не отсылок к изучению документации которая мне больше никогда не пригодится.
Простой вопрос, к вам, уважаемые гуру, глядя в скрины моей инструкции, что мне нужно написать в шаблоне в поле адрес чтобы опросить входящие каналы счетчика?
Последняя задача - Обнулить счетчики из правила.
Мне в шаблон нужно добавить еще каких-то каналов с адресами регистров отвечающих за обнуление и из правила просто присваивать им значение = 0?
сделал так:
{
“name”: “Clear_1”,
“reg_type”: “coil”,
“address”: 513,
“type”: “value”
}
Верно?
Устройство понимает на запись лишь 0x05 и 0x0f. Будет работать?
Ребята, какая же у вас Ужасная навигация… На форуме нет ссылки на вики! она есть на основном сайте, на форуме нет и ссылки на основной сайт! В вики вообще отсутсвует навигация как таковая (ссылка только на главную страницу)! Где ссылки на примеры? Как их найти? Я уже 30 минут не могу найти нужный пример … уфф…
Последняя задача - Обнулить счетчики из правила.
Мне в шаблон нужно добавить еще каких-то каналов с адресами регистров отвечающих за обнуление и из правила просто присваивать им значение = 0?
сделал так:
{
“name”: “Clear_1”,
“reg_type”: “coil”,
“address”: 513,
“type”: “value”
}
Верно?
Устройство понимает на запись лишь 0x05 и 0x0f. Будет работать?
Я купил вашего оборудования на 50 тыс р., Отдал вам свои деньги, ломаю голову над скудной документацией и отсутствием понятной навигации жду ответа по 15 часов + слышу какие то упрёки о том, что что-то не так прошу. Давайте не будем учить друг друга жизни и поведению? Клиент спрашивает - вы оперативно отвечаете.
Я так понял, вас там гордыня закусила? ) ок. был любимый клиент - станет для вас не любимым. Получите ушат проклятий в адрес своей компании и продукции на широких просторах интернета. Пусть для вас будет уроком )
Ни в коем случае никого ничему не учим. Только проясняем, как мы работаем. Мы производитель оборудования, не компания-интегратор. Мы продаём оборудование, но не занимаемся его настройкой, или поиском ошибок в чужом коде. Если вам нужно решение под ключ, обратитесь, пожалуйста, к Партнёры - Wiren Board
Если с момента покупки прошло не более двух месяцев, можете вернуть исправное оборудование и получить деньги, кроме небольшой платы за перепроверку.
Согласен, ссылки можно добавить. Лучший способ поиска информации по всей документации, с учётом ограничений встроенного поиска Mediawiki - это искать в гугл, например, “wiren board примеры правил” - попадёте как раз на нужную страницу документации или форума.
Не очень понял, что нужно сделать. Если нужно записать ноль в регистр вашего устройства, сделайте это, например, через modbus_client. Если нужно показывать значение на сколько-то меньшее, чем находится в регистре, то создайте в правилах виртуальное устройство, которое будет следить за нужным контролом.
Очень некорректно. Пожалуйста, не пишите такое больше, иначе мы не будем больше с вами общаться.
Не очень понимаю, у вас в листинге 0x0f, а пишете про 0x05. Правильно ли я понял, что вы хотите записать значение coil непременно через 0x0F (force multiple coils), а не через 0x05 (force single coil)?
Я несколькими сообщениями выше писал, что добавил в тот же шаблон своего устройства новый канал
…
{
“name”: “Clear_1”,
“reg_type”: “coil”,
“address”: 513,
“type”: “value”
}
…
Я верно понимаю, что reg_type отвечает в то числе и за то каким способом (0x05, 0x06, 0x0F) записывается регистр? Какой reg_type, type (или еще что-то) мне нужно использовать чтобы записать регистр через 0x05 или 0x0F ? По умолчанию драйвер пишет через 0x06 (который не поддерживается моим устройством) ?
Да. Это даже не столько связано с драйвером, сколько с самим протоколом Modbus: Протокол Modbus — Wiren Board
Если у вас coil (он же регистр флага), то wb-mqtt-serial будет записывать его одной из поддерживаемых функций (0x05 или 0x0F). То есть при таком описании он уже у вас будет записывать правильной функцией.
Драйвер использует команду 0x06 для другого типа регистров, для которого она предназначена (Input registers и Holding registers). Для coil он её использовать не будет.