Аналогичные проблемы.
Соединяю два ПЛК через радиомодем "Спектр 433". Передаю всего 4 байта: два на чтение, два на запись. Настройки портов 9600, 8 бит, 1 стоп, без паритета, ModBus ASCII. Max time out 1000мс, Polling time 2000мс, задержка ответа 300 мс.
Два байта который записываются 16 командой работают так как надо, а вот с чтением 02 командой творится какая-то мистика. При чтении байта начиная с 0 бита реально читается с 8 бита, при чтении с 8-го реально читается с 16-го а при чтении начиная с 16 бита читаются нули.
Пока выкрутился путем добавления в мастер чтения еще одной переменной которая в моем случае не читается.
Читал снифером на стороне слейва и на стороне мастера данные идут нормально. Т.е. проблема в ПЛК на стороне Масетра.
Где-то читал про настройки таймаута порта для GSM модема, но сейчас не могу найти.