Чтение данных типа double float

12 Feb Чтение данных типа double float

Здравствуйте.
Считываю с устройства по Modbus RTU значения, которые хранятся в  одном, двух и четырех регистрах.
Со значениями в одном регистре никаких проблем не возникло.
Для считывания данных типа float которые хранятся в двух регистрах , получилось в Web HMI настроить 
представление регистра (Тип данных Double word, формат данных Знаковое с плавающей запятой 32 бита).
А для считывания данных типа double float, которые хранятся в четырех регистрах – ничего не получается.
Помогите правильно настроить преобразование данных.

1 answer

Добрый день, может быть 2 подхода

  1. В существующем соединении Modbus RTU вычитывать данные регистры как 2 регистра типа Double UINT ()беззнак. целое). Затем скриптом луа сцепить их 2 х Double, затем преобразовать в битовую строку и побитно обработать мантиссу и порядок, обрезав мантиссу на несколько десятичных знаков – см. пример.
  2. Под регистры double float создать custom protocol Modbus RTU (пример есть на сайте) и внутри него сделать такую обработку (вычитывать соотвественно 4 слова на каждый регистр, а потом их вернуть в систему как обычный float)

 

#1

Пожалуйста войдите или зарегистрируйтесь чтобы добавить ответ