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

Тема: Modbus ASCII МСД-100

  1. #1

    Post Modbus ASCII МСД-100

    Подключил МСД-100. В роли ведомого выступает порт компьютера.
    Протокол Modbus ASCII. Запрос от МСД получаю следующий:


    BA B0 B1 B0 B3 B0 B0 B0 B0 B0 B0 B0 C1 C6 B2 8D 8A


    Но ведь значения всех байтов смещены на 0x80! Почему так ???

    Должно же приходить следующее:

    3A 30 31 30 33 30 30 30 30 30 30 30 41 46 32 0D 0A


    Т.е. в ASCII символах:

    : 01 03 0000 000A 2F CR LF

    : (aka 0x3A) - символ двоеточия - начало фрейма

    0x01 - адрес,
    0x03 - номер фукнции,
    0x0000 - начальный адрес (начиная с нулевого регистра)
    0x000A - до 10 регистра (т.е. 11 регистров),
    0x2F - байт LCR (Longitudinal Redundancy Check)

    конец фрейма:
    CR (aka 0x0D) - Возврат каретки
    LF (aka 0x0A) - Подача строки

    Сомневаюсь, что это хоть как то связано с signed и unsigned char.

    P.S. Конечно в алгоритме можно сделать смещение на 128 (0x80) позиций назад и дело в шляпе. Да вот правильно ли это ???
    Последний раз редактировалось eupsychian; 29.04.2011 в 18:25.

  2. #2

    По умолчанию

    Вопрос решился сам собой через установку размера байта данных 7 бит вместо 8 как в Modbus RTU.

Ваши права

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