PDA

Просмотр полной версии : ПР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

melky
13.03.2019, 17:58
Для слейв режима вроде 2301 (ну или 3412)...

capzap
13.03.2019, 18:05
я бы пока не стал предлагать порядок байт менять, потому что у ТС совершенно не адекватные значения приходят единица похожа на тройку. Возможно он считывает совершенно другие адреса

temp_guest@rambler.ru
13.03.2019, 22:33
В описании ПР200 нигде не сказано по какому стандарту кодируется число с плавающей запятой, вот я и подумал может должен быть не ieee754... Завтра попробую разобраться где я смог накосячить, может правда что-то совсем не то умудряюсь прочитать. Большое спасибо за помощь.

melky
14.03.2019, 09:11
Галочки действуют только для режима Мастер, когда к ПР необходимо подключить сторонний модуль, для режима Слейв они бесполезны. Мы вроде это опытным путем в какой-то теме выяснили....

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
Пусть целочисленным значением передаёт, если нужна абсолютная точность!