Артем ТрэйсМодФан
Junior Member / Новичок
Участник № / Member № 9130
отправлено / posted
Коллеги, прошу помощи: Появилась трудность с преобразованием данных. По ссылке ниже пример проектика в котором указал, что делаю, и указал ожидаемые данные (проект накидан в базовой бесплатной версии). Коротко проблема в следующем: из ОВЕН ПЛК210 получаю два регистра типа WORD в скаду. Создав программу по склейке слов, ожидаю получить на выходе переменную с точкой типа FLOAT. У меня не выходит, что я делаю не так. Заранее спасибо. ссылка на проект: https://disk.yandex.ru/d/CRiQfvO9BDQm0AСообщения / Posts 1 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
WORD – целочисленное значение. Его нельзя просто так взять и привести к вещественному виду (FLOAT).
Обычно либо с устройства считывают непосредственно вещественное число с плавающей запятой, либо в описании к устройству указано как преобразовывать считанное значение в необходимое (какие операции необходимо провести, например, разделить на 10, что бы из 123 получить 12,3).
Так как Вам необходимо из двух целочисленных (431B и BD00) получить одно вещественное (155.74), то не достаточно "склеить" два целочисленных.
После склейки необходимо произвести преобразование из целочисленного в вещественное. Описание преобразования изложено в IEEE 754.
Рекомендую использовать FBD-блоки. Сначала разбить оба WORD'а на биты, из всех бит выделить биты знака, экспоненты и мантиссы. Затем собрать их в три числа и провести мат.обработку.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |