Просмотр полной версии : Float разделить по битам на числа
Добрый день.
я по modbus считываю значение float
и мне необходимо преобразовать ее по следующей формуле
83310
не могу понять как мне разделить подобным образом значение числа в owen logic
Вопрос а нафига ? ПР понимает IEEE754 из коробки. Взяли float, при необходимости умножили на 10 и перевели в INT.
Добрый день.
я по modbus считываю значение float
и мне необходимо преобразовать ее по следующей формуле
не могу понять как мне разделить подобным образом значение числа в owen logic
А зачем необходимо его преобразовывать - считывается неверное значение?
да пока считывает неверное. может не так считываю
Вопрос а нафига ? ПР понимает IEEE754 из коробки. Взяли float, при необходимости умножили на 10 и перевели в INT.
можете обьяснить пожалуйста, не понимаю что нужно сделать
я считываю адрес 4112 тип флоат, функция чтения 04 как в инструкции
считывает непонятные значения. и я не понимаю что нужно сделать
переставить регистры, байты, или байты с регистрами. Там в мастере ПР это настраивается.
Если ПР слейв, попробуйте переставить регистры но у себя в Scada или чем вы читаете. На Slave эти галочки не действуют.
можете обьяснить пожалуйста, не понимаю что нужно сделать
я считываю адрес 4112 тип флоат, функция чтения 04 как в инструкции
считывает непонятные значения. и я не понимаю что нужно сделать
Переставить байты или регистры местами в настройках мастера
Переставить байты или регистры местами в настройках мастера
да я поставил галочку старшим регистром вперед и нормально стало читать
только так и не понимаю как это работает
Да вот так и работает. В modbus нет никаких float, есть регистры. 32-хбитное float занимает два регистра, 4 байта. Поэтому в регистрах modbus float может храниться в 4-х видах:
порядок байт:
1 0 3 2
3 2 1 0
0 1 2 3
2 3 0 1
Чаще всего используются первые два представления, поэтому обычно достаточно порядок слов поменять. Но, тут уж как повезёт.
Короче, "запомнытэ эта, дэты, панят эта нэвазможна!"
Да вот так и работает. В modbus нет никаких float, есть регистры. 32-хбитное float занимает два регистра, 4 байта. Поэтому в регистрах modbus float может храниться в 4-х видах:
порядок байт:
1 0 3 2
3 2 1 0
0 1 2 3
2 3 0 1
Чаще всего используются первые два представления, поэтому обычно достаточно порядок слов поменять. Но, тут уж как повезёт.
Короче, "запомнытэ эта, дэты, панят эта нэвазможна!"
понял) так и буду действовать
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot