PDA

Просмотр полной версии : СПК110 и запрос Modbus RTU



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

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

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

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

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

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

Cs-Cs
09.05.2025, 09:18
Так если у тебя по TCP подключение, то там и запрос будет для Modbus TCP (там часть байтов другие, а частть - как в Modbus RTU).

kondor3000
09.05.2025, 09:24
Здравствуйте, я только начинаю разбираться с ПЛК и Modbus, у меня задача прочитать с компьютера значения из ПЛК СПК110. Подключение по Ethernet TCP.
Я формирую двоичный запрос: 00 04 00 00 00 04 F0 18, т.е. хочу прочитать 4 входных регистра.
Но ПЛК на этот запрос выдаёт мне что-то вроде 00 04 00 00 00 03 71 <CRC> (CRC сейчас не помню).
В поле Request RTU программа пишет тот же код, что я отправлял на ПЛК, но в окне Display -> Communication я вижу совсем другой запрос к ПЛК: 0D15 00000006 00 04 0000 0004
И вот именно этот запрос реально работает и считывает регистры! И когда я из своей программы отправляю этот запрос, ПЛК тоже выдаёт всё правильно.
Вопрос: почему реальный запрос не такой, как в спецификации Modbus RTU?

Откройте калькулятор ТСР и забейте свою строку 83693
https://rapidscada.net/modbus/

romserg
09.05.2025, 10:56
Спасибо! Я же говорю, что только начал разбираться в modbus...