Показано с 1 по 10 из 16

Тема: СТГ 3 и modbus

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,595

    По умолчанию

    (как правильно запятую расставлять?)
    Это описано на втором скриншоте из вашего первого поста.

    У вас есть HEX-строка, содержащее сырое значение: 05 87 00 00

    Три младших байта нужно интерпретировать как целое беззнаковое (870000).

    Старший байт - это битовое поле.

    05 = 0b00000101

    Для наглядности визуально выделим отдельные наборы бит: 0b0_00_00_101

    0 - знак значения (1 - минус, 0 - плюс)
    00 - не используются
    00 - состояния сигнализации двух порогов (0 - не сработала, 1 - сработала); каждый бит из двух бит соответствует одному из двух порогов
    101 - положение точки в значении (0b101 = 5)

    Теперь мы знаем, что реальное значение - это 870000 / 10^5 = 8.7
    Если бы бит знака соответствовал минусу - то нужно было бы домножить на -1.0.

    В общем, для начала стоит погуглить, как в Python работать с битами - проверить заданный бит целого числа, извлечь порцию бит в отдельную переменную и т. д.

Похожие темы

  1. Ответов: 26
    Последнее сообщение: 31.01.2023, 17:42
  2. Ответов: 2
    Последнее сообщение: 04.06.2019, 16:55
  3. Ответов: 10
    Последнее сообщение: 10.06.2018, 16:36
  4. Ответов: 2
    Последнее сообщение: 17.03.2016, 08:47
  5. Ответов: 5
    Последнее сообщение: 14.10.2010, 13:42

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •