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

Тема: MBA8 modbus RTU

  1. #1

    По умолчанию MBA8 modbus RTU

    Запрос:
    [10] -адрес
    [3] -команда
    [00][00]-начальный регистр
    [00][30]-конечный
    [CRC][CRC]

    Ответ:
    [10] -адрес
    [3] -команда
    [60] -счётчик байт 0x60=96

    [0][0][0][16][00][00][03][28][41][B3][D2][60] -вход1
    [0][0][0][00][F0][07][FF][FF][00][00][00][00] -вход2

    [0][0][0][00][F0][07][FF][FF][00][00][00][00] -вход3
    [0][0][0][00][F0][07][FF][FF][00][00][00][00] -вход4
    [0][0][0][00][F0][07][FF][FF][00][00][00][00] -вход5
    [0][0][0][00][F0][07][FF][FF][00][00][00][00] -вход6
    [0][0][0][00][F0][07][FF][FF][00][00][00][00] -вход7
    -вход8
    [00][00]-положение 10-ной точки в целом значении
    [00][00]-целое значение
    [F0][07]-регистр статуса 0xF007 Датчик отключен
    [FF][FF]-время измерения
    [00][00][00][00] - float32
    [FB][F8] -CRC

    В сопроводительной документации к МВА8 написано:
    " 4-х байтовых значениях с плавающей точкой (без времени) "
    а в таблице ещё обозначено "Float32"
    Нельзя ли расписать побайтно формат Float32

  2. #2

  3. #3

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Ну так и надо в книжке писать формат IEEE_754
    А где хвост где голова.
    Как я понимаю в "родном" модбасе 16-bit передаётся ст.-мл.
    В данном случае при передаче 32-bit пары байт случайно не перепутаны?
    Старшая пара, потом младшая?

  4. #4

    По умолчанию

    Путь число в формате IEEE 754 (32 бит) лежит в 4-х байтах 1(0..7бит),2(8..15),3(16..23),4(24..31 биты)
    В стандарте модбас описано, что используется Big Endian адреса и расположение байт данных в регистрах.
    Таким образом стандартно в памяти должны лежать два регистра формата 4,3,2,1 (наиболее часто воспринимаемый формат данных Modbus).

    Иногда согласно, например, Спецификации Modbus TCP (2.2b)используется Little Endian для адресов, таким образом данные в памяти лежат как 2,1,4,3.

    Для этого в разных Modbus мастерах введен режим переворачивания. В ПЛК он называется native mode(используем ARM в режиме Little Endian). Обычный режим называется Trcae Mode/
    Другой режим

  5. #5

    По умолчанию

    На самом деле вроде всё лежит так для COM-порта

    1 поступивший байт:

    1бит - знак числа
    2-7 бит - первые биты показателя степени со смещением 127

    2 поступивший байт:
    1 бит - продожение показателя степени
    2-7 бит - первый байт - начало двоичной дроби

    3 и 4 поступивший байты - продолжение дроби

    sppppppp p.1111111 11111111 11111111
    ................||||
    ................||| -------- 0.0625 1/16
    ................|| --------- 0.125 1/8
    ................| ---------- 0.25 1/4
    ................. ---------- 0.5 1/2
    Последний раз редактировалось aven; 01.05.2009 в 19:48.

  6. #6

    По умолчанию

    смущает фраза в начале - на самом деле...
    я вроде бы так и объяснял.

    забавно, что на текущий момент практически в любом контроллере есть поддержка плавающего у кого то есть необходимость реверсировать Ieee

Ваши права

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