Здравствуйте, я только начинаю разбираться с ПЛК и Modbus, у меня задача прочитать с компьютера значения из ПЛК СПК110. Подключение по Ethernet TCP.
Я формирую двоичный запрос: 00 04 00 00 00 04 F0 18, т.е. хочу прочитать 4 входных регистра.

Но ПЛК на этот запрос выдаёт мне что-то вроде 00 04 00 00 00 03 71 <CRC> (CRC сейчас не помню).

А когда использую программу Modbus Poll, указывая в окне mb2595138.png все необходимые параметры, программа выдаёт правильные значения регистров.

В поле Request RTU программа пишет тот же код, что я отправлял на ПЛК, но в окне Display -> Communication я вижу совсем другой запрос к ПЛК: 0D15 00000006 00 04 0000 0004

И вот именно этот запрос реально работает и считывает регистры! И когда я из своей программы отправляю этот запрос, ПЛК тоже выдаёт всё правильно.

Вопрос: почему реальный запрос не такой, как в спецификации Modbus RTU?