Пока всё равно непонятно.
У 247 данные читаются только для адресов которые начинаются с 10
21.05.2025 16:55:03.166;TC_Loco_MKON;10.4.15.26:502;SEND;12;FC 01 00 00 00 06 F7 02 10 E5 00 02
21.05.2025 16:55:03.212;TC_Loco_MKON;10.4.15.26:502;REC;10;FC 01 00 00 00 04 F7 02 01 02
21.05.2025 16:55:08.008;TC_Loco_MKON;10.4.15.26:502;SEND;12;07 07 00 00 00 06 F7 01 10 F0 00 01
21.05.2025 16:55:08.071;TC_Loco_MKON;10.4.15.26:502;REC;10;07 07 00 00 00 04 F7 01 01 01
Это норма
А адреса которые начинаются с 12 или 13 уже ошибочный приходит ответ
21.05.2025 16:55:05.321;TC_Loco_MKON;10.4.15.26:502;SEND;12;26 04 00 00 00 06 F7 02 12 74 00 02
21.05.2025 16:55:05.399;TC_Loco_MKON;10.4.15.26:502;REC;9;26 04 00 00 00 03 F7 02 01
21.05.2025 16:55:06.180;TC_Loco_MKON;10.4.15.26:502;SEND;12;29 05 00 00 00 06 F7 02 13 2F 00 01
21.05.2025 16:55:06.243;TC_Loco_MKON;10.4.15.26:502;REC;9;29 05 00 00 00 03 F7 02 01
Странно то, что Modbus TCP заголовок сформирован корректно, а вот сам ответ нет, не хватает одного байта. И сформирован Modbus TCP заголовок именно на некорректный ответ.
Тут может быть три варианта, на вскидку:
1. Шлюз не принимает до конца ответ от контроллера и раньше времени пересылает его в сеть. Но, судя по всему, он преобразует из Modbus RTU в Modbus TCP и должен проверить контрольную сумму, прежде чем пересылать, а без приёма полного пакета, контрольная сумма не совпадет и такой ответ не должен пересылаться в сеть. Маловероятно. Ну или он реально не проверяет.
2. Контроллер не отвечает нормально и присылает пакет не совсем тот. Но у него, при прямом подключении, всё корректно работает, а значит эта версия так же не подходит.
3. Какой то баг в ПО шлюза.
Вы же напрямую опрашивали контролер, попробуйте подцепиться к 485 линии преобразователем, на прослушку. И посмотреть, что реально на 485 линии происходит.