Modbus TCP: Некорректные данные MBAP Header!

Стартовая страница Форумы Ошибки в работе Modbus TCP: Некорректные данные MBAP Header!

Просмотр 15 сообщений - с 1 по 15 (из 89 всего)
  • Автор
    Сообщения
  • #6104
    baur
    Участник

    Добрый день,
    пытаюсь получить данные из весового терминала 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.
    #6117
    baur
    Участник

    Остальные клиентские программы опрашивает без проблем

    #6118
    manjey73
    Участник

    попробовать Holding Registr и нумерацию увеличить на +1, то есть 1879 указать
    Порядок байт зависит от устройства, не обязательно может оказаться 2301
    Хотя в запросе вроде верно, 1878.

    Еще указать адрес Modbus для RTU режима, иногда это требуется, например ПЛК Овен не ответят, если так же не указывается адрес для RTU режима.

    Особенности железа…

    • Этот ответ был изменен 6 лет, 9 месяцев назад от manjey73.
    • Этот ответ был изменен 6 лет, 9 месяцев назад от manjey73.
    #6124
    Mikhail
    Модератор

    Если другие программы показывают передаваемые пакеты, скопируйте их сюда.
    Обязательно его попробуйте, то что написал manjey73.

    #6132
    Evgen
    Участник

    Еще как вариант попробовать не только float но и другие типы int ushot к примеру, поскольку я не увидел тип данных в описании.

    #6135
    manjey73
    Участник

    Как не увидели ? Read IEEE Values, по номерам регистров видно что их два.

    • Этот ответ был изменен 6 лет, 9 месяцев назад от manjey73.
    #6137
    Evgen
    Участник

    может быть int32 тогда занимает 4 байта

    #6138
    manjey73
    Участник

    Int32 не может быть формата IEEE

    #6153
    baur
    Участник

    к сожалению терминала обратно забрали в объект, пока не могу проверить

    #10347
    ValeraMar
    Участник

    Здравствуйте, столкнулся с такой же проблемой, все методы решения попробовал предложенные Manjey73, результата нет. Какие варианты еще кто может предложить?

    #10350
    Mikhail
    Модератор

    Добрый день!

    Пробовали ли опрашивать другими программами?
    Скопируйте сюда часть журнала линии связи.

    #10351
    baur
    Участник

    Если другие программы показывают передаваемые пакеты, скопируйте их сюда

    тут успешные запросы и ответы от устройства, по 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
    #10352
    Mikhail
    Модератор

    Пакеты, которые прислал baur, относятся к тому же самому случаю?
    Если да, то их нужно сравнить с некорректными пакетами из Коммуникатора — нужен журнал линии связи.

    #10353
    baur
    Участник

    да, это одно и то же оборудование, отличается начало пакета RapidScada сплошные нули посылает 00 00 00 а на правильном начинается с C2 02 00

    #10354
    manjey73
    Участник

    Transaction Identifier (Идентификатор транзакции): 2 байта устанавливаются Master, чтобы однозначно идентифицировать каждый запрос. Может быть любыми. Эти байты повторятся устройством Slave в ответе, поскольку ответы устройства Slave не всегда могут быть получены в том же порядке, что и запросы.

    Protocol Identifier (Идентификатор протокола): 2 байта устанавливаются Master, всегда будут = 00 00, что соответствует протоколу Modbus.

    Мне кажется тут весы прикалываются и требуют не нулевого значения Transaction Identifier , тоже где-то встречал что-то подобное только в собственном протоколе прибора, требовался свой ID и если прибор не ответил с таким же ID то ошибка.
    Похоже надо будет дорабатывать драйвер, чтобы он генерировал ID транзакции и проверял потом этот же ID на соответствие (хотя можно и без проверки, если ответ пришел)

Просмотр 15 сообщений - с 1 по 15 (из 89 всего)
  • Вы должны авторизироваться для ответа в этой теме.