Вход

Просмотр полной версии : "offset" для драйвера Modbus



Макс Электрический
02.12.2025, 12:19
Планируется ли сделать поддержку Modbus параметра - "offset"?
Столкнулся с потребностью математической модификации полученных из регистра данных, функция Калькулятор не поддерживается. Суть была в нахождении по прочитанному из регистру данному (температура наружного воздуха) точку в графике с линейной зависимостью (Х==8 У=34, Х==-30; У=70), получается нужно Х * -0,94736842 + 41.576. Решил попробовать через "multiplier": "-0.94736842", и "offset": "41.576". Мультиплеер ругается на отрицательное значение, а офсета совсем нету.

Еще хотелось бы в параметре "value_descriptions": иметь поддержку < и > (Поясню: в описании к регистрам модбас для TTR-02A-230, есть "< -8192 = ОШИБКА, -24576 = КОРОТ, -16384 = ОБРЫВ", значит, что ошибку я могу записать только одним значением...)

Спасибо.
В целом спасибо Вам за простой и удобный инструмент

Алексей Фомин
03.12.2025, 11:12
Добры день


Планируется ли сделать поддержку Modbus параметра - "offset"?

Да, планируется в 1 квартале 2026 года


Мультиплеер ругается на отрицательное значение

На данный момент "Множитель" задается числом строго больше нуля. Мы посмотрим чем вызвано это ограничение и, если будет возможность, изменим это.


в описании к регистрам модбас для TTR-02A-230

Приложите, пожалуйста, описание регистров modbus вашего устройства.


< -8192 = ОШИБКА, -24576 = КОРОТ, -16384 = ОБРЫВ

Это означает, что значение меньше чем -8192 означает "ОШИБКА"? Значение -24576 тоже меньше чем -8192, но видимо означает "КОРОТ"?

Макс Электрический
03.12.2025, 12:03
Спасибо за ответы.


Добры день
Это означает, что значение меньше чем -8192 означает "ОШИБКА"? Значение -24576 тоже меньше чем -8192, но видимо означает "КОРОТ"?

Справедливо. Возможно, имеется логика, что с определённого значения мы можем это точно интерпретировать, как конкретное событие. В прочем оставим на совесть разработчикам этого «милого» прибора. Фрагмент прикладываю.

87052

melky
03.12.2025, 12:08
есть "< -8192 = ОШИБКА, -24576 = КОРОТ, -16384 = ОБРЫВ" три старших бита, пам-пара-пам :)

111, 101, 110 - просто наложить маску (не знаю, есть ли в облаке) чтобы отсекать старшие биты Int16 и потом их обрабатывать. (поправил)

melky
03.12.2025, 12:28
а знак минуса там для чего? или это просто тире для указания? По идее значения в HEX E000, C000, A000 но могу ошибаться

capzap
03.12.2025, 12:36
а знак минуса там для чего? или это просто тире для указания? По идее значения в HEX E000, C000, A000 но могу ошибаться

да, старший разряд за минус отвечает, возможно используется для идентификации аварии