Собственный регистр Modbus (со знаком) в 32-битное число с плавающей запятой с заменой байтов с прямым порядком байтовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Собственный регистр Modbus (со знаком) в 32-битное число с плавающей запятой с заменой байтов с прямым порядком байтов

Сообщение Anonymous »

Я пытаюсь преобразовать данные из собственного регистра Modbus (со знаком) в 32-битное число с плавающей запятой с заменой байтов с прямым порядком байтов в Python, но, похоже, мне не удалось выполнить преобразование правильно. Я попробовал несколько разных подходов, но ни один из них пока не сработал, и я не уверен, кроется ли проблема в моем методе или в самих данных.
В моей ссылке первоначальный тип данных — «Собственный регистр Modbus — со знаком». Преобразование, которого я пытаюсь достичь, - это преобразование этого типа в «32-битное число с плавающей запятой — замена байтов с прямым порядком байтов». Вот пример входных и ожидаемых выходных значений:

Код: Выделить всё

SlewEncoder_input_and_output = [
(2100, -1533, -601.2821),
(2100, -1533, -3395.887),
(1592, -1502, 19834.04),
(-305, 1807, -106.4646),
(-463, -1566, -1045.991)
]
У меня также есть другая ссылка, содержащая некоторые образцы данных, которые, похоже, находятся в 32-битном формате обмена байтами с прямым порядком байтов (результат). Однако я не совсем уверен в исходном типе данных; он похож на предыдущий (родной регистр Modbus — подписанный), но объединен в одно подписанное значение регистра:

Код: Выделить всё

SlewEncoder_input_and_output = [
(1505910957, -0.963)
]
Вот последнее, что я пробовал (безуспешно, результат представляет собой просто огромное значение):

Код: Выделить всё

upper = 2100
lower = -1533
int_value = ((upper & 0xFFFF) 

Подробнее здесь: [url]https://stackoverflow.com/questions/79121602/native-modbus-register-signed-to-32-bit-float-with-little-endian-byte-swap[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»