PDA

Просмотр полной версии : modbus TCP,МВ210, С/С++, ошибка при чтении входных регистров



evgen2
04.02.2019, 14:38
Здравствуйте,

Пытаюсь работать с модулем MB210 на С/C++

Поиск по форуму выдает тему http://www.owen.ru/forum/showthread.php?t=1574 однако пример из этой темы не скачивается и показывает квадрат Малевича,
поэтому использую описание протокола и примеры со сторонних сайтов

Читать регистры 0xf000 - 0xffxx могу, IP адрес c регистра 0x1a читаю

Но при запросе представляющего интерес регистра 0x33 получаю в ответ ошибку - код функции в ответе 0x83 при запросе 03 – Read Holding Registers или 0x84 при запросе 04 – Read Input Registers;
в поле данных получаю 0xccccc

Что делать/где читать/памагите...

Трофимов Артем
04.02.2019, 14:53
укажите полную маркировку модуля
какой modbus ID используете?
какое число регистров читаете?

лог обмена по 502 порту с модулем можете приложить?

evgen2
04.02.2019, 15:31
Модуль MB210-202

лог
send 12 bytes 00 01 00 00 00 06 01 03 f0 00 00 20
receive 73 bytes 00 01 00 00 00 43 01 03 40 c2 cc 31 32 2d 30 30 32 00 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e 30 35 31 31 2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
send 12 bytes 00 02 00 00 00 06 01 03 f0 10 00 20
receive 73 bytes 00 02 00 00 00 43 01 03 40 2e 30 35 31 31 2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 54 53 2d 4d 54 32 33 32 46 37 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
send 12 bytes 00 03 00 00 00 06 01 03 00 1a 00 04
receive 17 bytes 00 03 00 00 00 0b 01 03 08 01 63 c0 a8 ff 00 ff ff
send 12 bytes 00 04 00 00 00 06 01 03 00 33 00 04
receive 9 bytes 00 04 00 00 00 03 01 83 02
send 12 bytes 00 05 00 00 00 06 01 04 00 33 00 04
receive 9 bytes 00 05 00 00 00 03 01 84 02



ой. а данных-то нет в ответе на последние два запроса. И ошибка еще.

Трофимов Артем
04.02.2019, 15:48
код ошибки 2 - заданный адрес недоступен. что вполне логично, в 202 модуле 2 регистра битовой маски , а Вы запрашиваете 4 регистра, двух из которых нет в модуле, на что он Вам и говорит.
поставьте в запросе 2 регистра и получите ответ