Просмотр полной версии : ПР200: чтение чисел с плавающей точкой по Modbus
temp_guest@rambler.ru
13.03.2019, 17:31
Здравствуйте.
Подскажите пожалуйста как расшифровать то, что отдает по Modbus ПР200.
В настройках прибора для Slave интерфейса очередность байт для float: 2143 (читал, что это не переключается для Slave, но пишу что вижу на экране...). В проекте имеется выходной блок сетевой переменной которому из блока константы присваивается значение, например 1,111111.
При чтении по rs485 получаю величину в десятичном представлении которая выглядит как 1456316398.
Вот табличка что я вижу при разных значениях переменной:
1,111111 = 1456316398
2,222222 = 2184516469
3,333333 = 1456316526
Как преобразовать считанные данные в исходное значение?
Ревака Юрий
13.03.2019, 17:45
Здравствуйте.
Подскажите пожалуйста как расшифровать то, что отдает по Modbus ПР200.
В настройках прибора для Slave интерфейса очередность байт для float: 2143 (читал, что это не переключается для Slave, но пишу что вижу на экране...). В проекте имеется выходной блок сетевой переменной которому из блока константы присваивается значение, например 1,111111.
При чтении по rs485 получаю величину в десятичном представлении которая выглядит как 1456316398.
Вот табличка что я вижу при разных значениях переменной:
1,111111 = 1456316398
2,222222 = 2184516469
3,333333 = 1456316526
Как преобразовать считанные данные в исходное значение?
Настраивать очередность лучше в мастере.
https://www.h-schmidt.net/FloatConverter/IEEE754.html
Для слейв режима вроде 2301 (ну или 3412)...
я бы пока не стал предлагать порядок байт менять, потому что у ТС совершенно не адекватные значения приходят единица похожа на тройку. Возможно он считывает совершенно другие адреса
temp_guest@rambler.ru
13.03.2019, 22:33
В описании ПР200 нигде не сказано по какому стандарту кодируется число с плавающей запятой, вот я и подумал может должен быть не ieee754... Завтра попробую разобраться где я смог накосячить, может правда что-то совсем не то умудряюсь прочитать. Большое спасибо за помощь.
Галочки действуют только для режима Мастер, когда к ПР необходимо подключить сторонний модуль, для режима Слейв они бесполезны. Мы вроде это опытным путем в какой-то теме выяснили....
temp_guest@rambler.ru
14.03.2019, 09:50
Галочки действуют только для режима Мастер, когда к ПР необходимо подключить сторонний модуль, для режима Слейв они бесполезны. Мы вроде это опытным путем в какой-то теме выяснили....
да, http://www.owen.ru/forum/showthread.php?t=28675&page=2 вот здесь это обсуждалось, правда тоже возникли разночтения о порядке следования. Но я вроде и местами переставлял байты, все равно не получается получить исходное значение...
Ревака Юрий
14.03.2019, 12:39
да, http://www.owen.ru/forum/showthread.php?t=28675&page=2 вот здесь это обсуждалось, правда тоже возникли разночтения о порядке следования. Но я вроде и местами переставлял байты, все равно не получается получить исходное значение...
Мне кажется получить значения один в один будет проблематично, по причине округления.
Сергей0308
14.03.2019, 12:45
Пусть целочисленным значением передаёт, если нужна абсолютная точность!
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot