Добрый день. В ходе наладочных работ на одном из объектов города, я столкнулся с весьма интересным случаем реализации передачи данных формата Float в одном двухбайтовом слове. Преобразователи частоты Emotron серии FDU 2.1, а возможно и другие серии данного производителя, для передачи данных с плавающей запятой используют свой формат данных - Eint. Описание формата из руководства: "Формат EInt используется только с протоколами Modbus-RTU и Modbus-TCP.
Параметр в формате Eint может быть представлен в двух различных форматах (F). Либо в формате 15-битного целого числа без знака (F= 0), либо в
формате с плавающей запятой Emotron (F=1). Самый старший бит (B15) указывает на используемый формат. Если бит установки формата (В15) равен 0, то все биты можно рассматривать как стандартное
беззнаковое целое число (UInt) Если бит установки формата данных равен 1, тогда данные следует интерпретировать по следующей формуле:
Значение = M * 10^E, где M = m10..m0 — мантисса со знаком в двоичном дополни