-
Пользователь
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 в 17:25.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума