Стартовая страница › Форумы › Ошибки в работе › Modbus TCP: Некорректные данные MBAP Header!
- В этой теме 88 ответов, 9 участников, последнее обновление 8 месяцев, 4 недели назад сделано Mikhail.
-
АвторСообщения
-
12.06.2017 в 06:38 #6104baurУчастник
Добрый день,
пытаюсь получить данные из весового терминала Shenk по Modbus TCP протоколу.как бы не задавал адрес получаю ошибку Некорректные данные MBAP Header!
По логу видно, что приём данных все время отличается хотя у меня значение не меняется.2017-06-09 16:48:08 Установка TCP-соединения с 192.168.240.1:502 2017-06-09 16:48:08 Сеанс связи с КП 9, тип: KpModbus, позывной: 192.168.240.1 Запрос значений группы элементов "GRP" Отправка (12): 00 00 00 00 00 06 00 04 07 55 00 02 Приём (7/7): 00 00 00 00 00 03 01 Некорректные данные MBAP Header! Запрос значений группы элементов "GRP" Отправка (12): 00 00 00 00 00 06 00 04 07 55 00 02 Приём (7/7): 84 02 00 00 00 00 00 Некорректные данные MBAP Header! Запрос значений группы элементов "GRP" Отправка (12): 00 00 00 00 00 06 00 04 07 55 00 02 Приём (7/7): 03 01 84 02 00 00 00 Некорректные данные MBAP Header! 2017-06-09 16:48:08 Отключение от 192.168.240.1 2017-06-09 16:48:09 Установка TCP-соединения с 192.168.240.1:502 2017-06-09 16:48:09 Сеанс связи с КП 9, тип: KpModbus, позывной: 192.168.240.1 Запрос значений группы элементов "GRP" Отправка (12): 00 00 00 00 00 06 00 04 07 55 00 02 Приём (7/7): 00 00 00 00 00 03 01 Некорректные данные MBAP Header! Запрос значений группы элементов "GRP" Отправка (12): 00 00 00 00 00 06 00 04 07 55 00 02 Приём (7/7): 84 02 00 00 00 00 00 Некорректные данные MBAP Header! Запрос значений группы элементов "GRP" Отправка (12): 00 00 00 00 00 06 00 04 07 55 00 02 Приём (7/7): 03 01 84 02 00 00 00 Некорректные данные MBAP Header! 2017-06-09 16:48:09 Отключение от 192.168.240.1 2017-06-09 16:48:10 Установка TCP-соединения с 192.168.240.1:502 2017-06-09 16:48:10 Сеанс связи с КП 9, тип: KpModbus, позывной: 192.168.240.1 Запрос значений группы элементов "GRP" Отправка (12): 00 00 00 00 00 06 00 04 07 55 00 02 Приём (7/7): 00 00 00 00 00 03 01 Некорректные данные MBAP Header! Запрос значений группы элементов "GRP" Отправка (12): 00 00 00 00 00 06 00 04 07 55 00 02 Приём (7/7): 84 02 00 00 00 00 00 Некорректные данные MBAP Header!
- Эта тема была изменена 6 лет, 9 месяцев назад от baur.
13.06.2017 в 11:10 #6117baurУчастникОстальные клиентские программы опрашивает без проблем
13.06.2017 в 11:22 #6118manjey73Участникпопробовать Holding Registr и нумерацию увеличить на +1, то есть 1879 указать
Порядок байт зависит от устройства, не обязательно может оказаться 2301
Хотя в запросе вроде верно, 1878.Еще указать адрес Modbus для RTU режима, иногда это требуется, например ПЛК Овен не ответят, если так же не указывается адрес для RTU режима.
Особенности железа…
13.06.2017 в 13:00 #6124MikhailМодераторЕсли другие программы показывают передаваемые пакеты, скопируйте их сюда.
Обязательно его попробуйте, то что написал manjey73.13.06.2017 в 13:53 #6132EvgenУчастникЕще как вариант попробовать не только float но и другие типы int ushot к примеру, поскольку я не увидел тип данных в описании.
13.06.2017 в 15:26 #6135manjey73УчастникКак не увидели ? Read IEEE Values, по номерам регистров видно что их два.
- Этот ответ был изменен 6 лет, 9 месяцев назад от manjey73.
13.06.2017 в 15:37 #6137EvgenУчастникможет быть int32 тогда занимает 4 байта
13.06.2017 в 15:51 #6138manjey73УчастникInt32 не может быть формата IEEE
14.06.2017 в 05:58 #6153baurУчастникк сожалению терминала обратно забрали в объект, пока не могу проверить
05.10.2018 в 06:07 #10347ValeraMarУчастникЗдравствуйте, столкнулся с такой же проблемой, все методы решения попробовал предложенные Manjey73, результата нет. Какие варианты еще кто может предложить?
05.10.2018 в 17:12 #10350MikhailМодераторДобрый день!
Пробовали ли опрашивать другими программами?
Скопируйте сюда часть журнала линии связи.08.10.2018 в 06:49 #10351baurУчастникЕсли другие программы показывают передаваемые пакеты, скопируйте их сюда
тут успешные запросы и ответы от устройства, по Modbus TCP
08-10-2018 09:40:38.327 vesy::Device1:(10.28.198.42:502) Rx: [0013] C3 02 00 00 00 07 01 04 04 3E 98 05 6C 08-10-2018 09:40:38.296 vesy::Device1:(10.28.198.42:502) Tx: [0012] C3 02 00 00 00 06 01 04 07 5C 00 02 08-10-2018 09:40:38.265 vesy::Device1:(10.28.198.42:502) Rx: [0017] C2 02 00 00 00 0B 01 04 08 4E EE 7F 1E 4E F3 96 97 08-10-2018 09:40:38.265 vesy::Device1:(10.28.198.42:502) Tx: [0012] C2 02 00 00 00 06 01 04 07 54 00 04 08-10-2018 09:40:38.249 vesy::Device1:(10.28.198.42:502) Rx: [0017] C1 02 00 00 00 0B 01 03 08 44 6B 29 77 4A 02 6A 27 08-10-2018 09:40:38.218 vesy::Device1:(10.28.198.42:502) Tx: [0012] C1 02 00 00 00 06 01 03 07 50 00 04 08-10-2018 09:40:37.154 vesy::Device1:(10.28.198.42:502) Rx: [0013] C0 02 00 00 00 07 01 04 04 3E 97 A7 0C
08.10.2018 в 15:04 #10352MikhailМодераторПакеты, которые прислал baur, относятся к тому же самому случаю?
Если да, то их нужно сравнить с некорректными пакетами из Коммуникатора — нужен журнал линии связи.08.10.2018 в 18:16 #10353baurУчастникда, это одно и то же оборудование, отличается начало пакета RapidScada сплошные нули посылает 00 00 00 а на правильном начинается с C2 02 00
09.10.2018 в 10:42 #10354manjey73УчастникTransaction Identifier (Идентификатор транзакции): 2 байта устанавливаются Master, чтобы однозначно идентифицировать каждый запрос. Может быть любыми. Эти байты повторятся устройством Slave в ответе, поскольку ответы устройства Slave не всегда могут быть получены в том же порядке, что и запросы.
Protocol Identifier (Идентификатор протокола): 2 байта устанавливаются Master, всегда будут = 00 00, что соответствует протоколу Modbus.
Мне кажется тут весы прикалываются и требуют не нулевого значения Transaction Identifier , тоже где-то встречал что-то подобное только в собственном протоколе прибора, требовался свой ID и если прибор не ответил с таким же ID то ошибка.
Похоже надо будет дорабатывать драйвер, чтобы он генерировал ID транзакции и проверял потом этот же ID на соответствие (хотя можно и без проверки, если ответ пришел) -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.