Добрый день! Есть ли какая-то вики по настройке modbus-устройств сторонних производителей через Web UI. В частности, интересует информация по добавлению регистров для чтения, когда устройство уже найдено (в вебе это меню “Каналы, заданные пользователем”), и конкретно чтение holding регистров, когда нужно прочесть более одного регистра за один запрос.
Добрый день!
В вики только тут описано. Как вы и сказали, каналы добавляются, как “Каналы, заданные пользователем”. Там можно настраивать тип параметра, тип регистров и формат. Последний влияет на количество читаемых регистров для этого параметра.
Не могли бы тогда уточнить в чем отличие между типами регистров holding, holding_single и holding_multi, и вкратце описать для чего нужны поля формат, множитель и смещение?
Конкретно мне нужно считать два holding регистра начиная с 0x1120, формат float(4 байта), порядок little-endian. С помощью утилиты modbus_client успешно считываю эти регистры, как добавить их в web не могу понять.
Подробно шаблоны описаны вот тут: GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver
Я не про шаблоны спрашивал, а как у вас в вебе добавляется регистр для чтения, хотя по указанной вами ссылке есть описание некоторых полей, но не всех. Вы можете утончить, я правильно все указываю в вебе для чтение регистра 0x1120, в котором хранится значение типа IEEE-754 Floating Point порядок little-endian? Повторюсь, при запросе через modbus_client и конвертировании полученного 32-битного значения в указанный тип, получаю актуальное десятичное значение. Так что тут либо я что-то не правильно в вебе ввожу, либо у вас ошибка в методе для расчета 32-битного числа с плавающей точкой.
Покажите, пожалуйста, как вы считываете регистры в консоли и какой результат, и что выводится в web-интерфейсе с такой настройкой, как на скрине.
Все я понял. Ваше поле “Порядок 16-битных слов” делает Little-endian следующим образом:
AA:BB:CC:DD = > CC:DD:AA:BB,
а мне нужно чтобы было
AA:BB:CC:DD => DD:CC:BB:AA.
Можно как-то добавить новый порядок байт?
Подскажите ещё, пожалуйста, какая у вас модель контроллера и версия прошивки
Надеюсь, тут вся необходимая информация есть:
Как правило в случае необходимости подобных преобразований - проще прочитать “как есть” и уже программно переставить слова.
Подскажите, если не секрет, что за устройство подключаете?
Задача получить данные с вычислителя Карат-307. По поводу считать как есть и программно переставить байты, в принципе так и делал при чтении данных через консоль. Нужно будет разбираться как впилить скрипт на питоне в ваш веб. Опыт работы с вашим контроллером у меня не большой.
В web-интерфейсе можно делать Правила - скрипты на js.
Я добавлю в пожелания настройку порядка байт в словах.
Можете поделиться картой регистров устройства?
Спасибо большое! Посмотрю.
Карта регистров в 5 и 6 разделах
2021 06 17 ModBus307 export 2021 редакция 7-8.pdf (949,3 КБ)
Спасибо большое за помощь! Далее буду разбираться самостоятельно с вашими рекомендациями. Тему закрываю.
Коллеги заметили, что на 64 странице описано, как поменять порядок байт в Конфигураторе Карата.
Спасибо! Будет полезно, если есть возможность подключиться к прибору на месте. Увы, мы пока можем только удаленно считывать параметры через Wirenboard.