Показано с 1 по 7 из 7

Тема: проблема декодирования параметров прибора МВ110-224.4ТД по протоколу ModBus RTU

  1. #1

    По умолчанию проблема декодирования параметров прибора МВ110-224.4ТД по протоколу ModBus RTU

    Привет всем!
    У меня такая проблема. Не могу понять, почему прибор МВ110-224.4ТД на функцию 03, протокола ModBus RTU, при чтении параметра v.Max (максимальное значение физической величины) выдает мне неверные данные. А именно, я посылаю в прибор запрос 10 03 00 1D 00 02 57 4C, что значит - считать значения регистров с адресом 1D(hex) и 1E(hex). Я заранее знаю, что это значение должно ровняться 2000.000(float32), как я задавал в конфигураторе, однако я получил следующий пакет: 10 03 04 44 FA 00 00 CF F3. 44FA(hex) - это 17658(dec), а 2000(dec) - 7D0(hex). Как видите, полное несоответствие
    И так происходит со всеми двух регистровыми параметрами данного прибора! Подскажите, пожалуйста, в чем тут дело!?
    Пытался работать с этим прибором через библиотеку owen_io.dll - и тут неудача! Все функции чтения вещественного параметра заканчиваются с ошибкой -104. То есть прибор обрабатывает запрос и возвращает уведомление о неверном формате команды. А вот конфигуратор работает нормально и выдает значения всех параметров верно. Что здесь не так?

  2. #2

    По умолчанию

    И? Я знаю - float32! Только это мне ничего не говорит. Мне бы хотелось узнать как дешифрировать эти 4-е байта (0000FA44), алгоритм или хотя бы пример. То что готовые программы это могут я знаю, а мне это нужно реализовать в своей.

  3. #3

    По умолчанию

    0000FA44 - где тут мантисса, основание, порядок??? Как это расшифровать??? Люди добрые, помогите!!!!!

  4. #4

    По умолчанию

    Так я учитываю все 4-е байта! Вы с С++ или Delphi знакомы? Как hex формат перевести во float?

  5. #5

    По умолчанию

    Чтобы поменять байты местами указателями пользоваться не обязательно! Почему указателями?

  6. #6

  7. #7

    По умолчанию

    С сокетами TCP/IP (как ходят пакеты в сетях ) и с некоторыми полевыми протоколами (HART, CAN Open, ModBus) я знаком не понаслышке, тем более, что компонент для RS232 и компонент ModBus RTU я писал собственными руками еще в 2009 году. В том то и проблема, что у меня не язык функциональных блоков, а объектный язык. Поэтому, чтобы мне расшифровать число нужно не только знать расположение байт, ну и сам механизм дешифрации их hex во float32.

Похожие темы

  1. Настройка параметров сети ModBus TCP
    от Солнечный заяц в разделе СПК2хх
    Ответов: 1
    Последнее сообщение: 10.02.2012, 10:30
  2. Ответов: 3
    Последнее сообщение: 19.12.2011, 09:18
  3. Ответов: 3
    Последнее сообщение: 12.09.2011, 12:35
  4. Ответов: 9
    Последнее сообщение: 25.04.2011, 22:33
  5. Ответов: 21
    Последнее сообщение: 27.11.2008, 20:41

Ваши права

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