12 Feb Чтение данных типа double float
Posted at 11:41h
in
Здравствуйте.
Считываю с устройства по Modbus RTU значения, которые хранятся в одном, двух и четырех регистрах.
Со значениями в одном регистре никаких проблем не возникло.
Для считывания данных типа float которые хранятся в двух регистрах , получилось в Web HMI настроить
представление регистра (Тип данных Double word, формат данных Знаковое с плавающей запятой 32 бита).
А для считывания данных типа double float, которые хранятся в четырех регистрах – ничего не получается.
Помогите правильно настроить преобразование данных.
1 answer
Добрый день, может быть 2 подхода
- В существующем соединении Modbus RTU вычитывать данные регистры как 2 регистра типа Double UINT ()беззнак. целое). Затем скриптом луа сцепить их 2 х Double, затем преобразовать в битовую строку и побитно обработать мантиссу и порядок, обрезав мантиссу на несколько десятичных знаков – см. пример.
- Под регистры double float создать custom protocol Modbus RTU (пример есть на сайте) и внутри него сделать такую обработку (вычитывать соотвественно 4 слова на каждый регистр, а потом их вернуть в систему как обычный float)