Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > modbus rtu


Автор: Anton1313 14.7.2010, 13:46
Подскажите как интерпретируются данные, например: У меня есть прибор, мне надо с него прочитать данные с 4-ех каналов. Запрсо посылаю так: 
Код

BYTE BuffWrite[]={1, 3, 0, 0, 0, 4, 68, 9};


В ответ записывается:
Код

BYTE BuffRead[]={1, 3, 8, 255, 185, 0, 115, 0, 115, 127, 254, 167, 184 };


Первые три байта понятны это адрес прибора, код функции и 8 байт данных и последние два контрольная сумма, прибор показывает что на первом канале -7, на втором 11, на третем 11, четвертый обрыв. Каким образом 4 и 5 байты интерпретируюся как -7? 6 и 7 как 11 и 8 и 9 как 11? 

Автор: UniBomb 14.7.2010, 14:46
Anton1313, а каким способом закодированы эти регистры? Обычный ли это WORD?

Автор: Anton1313 14.7.2010, 15:22
UniBomb,  Этого я незнаю.

Автор: xvr 14.7.2010, 18:04
Похоже на двоичный дополнительный код (по 2 байта на канал) в формате MSF (старший байт первый), и умноженное на 10

Цитата

255, 185 => 0xFFB9 => -71 => -7.1
0,115 => 0x0073 => 115 => 11.5
127, 254 => 0x7FFE => Спец. значение


Автор: Anton1313 15.7.2010, 02:08
xvr,  Спасибо большое.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)