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

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

Просмотр 15 сообщений - с 31 по 45 (из 52 всего)
  • Автор
    Сообщения
  • #17251
    Алексей
    Участник

    Доброго времени суток. Итак, я немного сам разобрался и вот что я сделал.

    Установил эмулятор МодБас от ARDSOFT и создал точно-такую же картину как и у меня, только вместо шлюза использовал свой рабочий комп. Запустил и пробовал всяко, полет нормальный и в логах не разу не увидел ничего про MBAP и прочего …

    Тут я понял что дело походу в шлюзе. Залез в настройки шлюза и стал играться с переменными временных тайм-оутов. В итоге я нашел переменную, от которой зависит появление ошибки «Некорректные данные MBAP Header!» , а именно :

    MSG TimeOut(ms) — которая по дефолту стояла 2000

    Что она означает я не в курсе — может из Вас кто — что подскажет. В итоге игрался и нашел значение в 700 — самый оптимал. 600 Ставишь вообще связь со шлюзом постоянно отваливается, 800 начинает появляться ошибка по MBAP .. Как то так.

    Думаю менять шлюз … На данный момент использую шлюз NetCom-6000 от китайской компании Fineco Electric, который достался мне с ихним же эл. счетчиком. Думаю купить tGW-725i от компании ICP DAS (https://ipc2u.ru/catalog/tgw-725i) — НЕ РЕКЛАМА, как Вы думаете или что посоветуете ?

    Всем спасибо ! Может кому помог, а может нет. Но причины я так и не выяснил, как бы такая же проблема не начла вываливать с новыми шлюзами …

    С уважением Алексей

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

    Добрый день!
    Спасибо за полезную информацию.

    Какая причина использовать именно шлюз Modbus? Обычно шлюз нужен, чтобы опрашивать одни и те же устройства несколькими мастерами. Более простое решение — использовать «прозрачный» преобразователь типа Moxa NPort. Обычно он работает надёжно.

    #17260
    Алексей
    Участник

    Какая причина использовать именно шлюз Modbus?

    В моем случае шлюз исполняет доставку пакетов до сервера СКАДА. У меня имеются 5 устройств с ModBus-RTU и находятся далеко от сервера, но там имеется сеть. Я просто эти все устройства подключил к одной шине RS-485 а шлюзом передаю пакеты по сети как ModBus-TCP Master . Очень удобно.

    А что делает Moxa NPort ? По поиску интернета я так понял она просто конвертирует из RS-485 в RS-232 и так же передает по сети . Но в этом случае мне придется брать 2 штуки — 1 как передатчик и 2 — как приемник, при этом на сервере придется задействовать физически COM порт. Или я чего то не допонимаю ???

    С уважением Алексей

    • Этот ответ был изменен 1 год, 10 месяцев назад от Алексей.
    #17263
    manjey73
    Участник

    Алексей Моха обычный преобразователь Ethernet — RS485/422/232 разные модификации. Им обычно пофигу на протокол, но есть и преобразователи протоколов в том числе.

    Две не нужны, у вас Scada в сети, Moxa где-то через интернет тоже в сети. Scada умеет работать как TCP клиент данной Moxa, не надо даже виртуальные COM создавать.

    #17265
    a80808
    Участник

    МОХА вообще могучая вещь и надежная как танк. У нас их много, не слышал. чтобы отказывали. И модельный ряд широкий — там от ввода-вывода до панельных компьютеров.
    Возможно, что на целевом компе придется виртуальный порт создать при помощи утилиты (идет вместе с устройством или на сайте можно скачать) NPortAdmin кажется. Есть встроенный Web сервер для основных настроек.
    Вам скорее всего нужен какой то из серии 5ххх (от одного до 8-ми портов).
    Представитель в России Питерская компания «Ниешанц-Автоматика, сайт moxa.ru по существу это их сайт.

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

    Коммуникатор поддерживает режимы TCP-клиент и TCP-сервер, поэтому создавать виртуальные ком-порты не придётся.

    #22411
    VylegzhaninD
    Участник

    Здравствуйте!

    Также встретил аналогичную проблему, но с поправкой.
    Ошибка Некорректные данные MBAP Header! появляется периодически, т.е. примерно каждый третий ответ от устройства сопровождается ошибкой.

    Протокол — Modbus TCP
    Устройство — Частотный преобразователь Vacon 100 flow
    КП:
    КП 1 «Vacon100flow»
    ——————-
    DLL : KpModbus
    Состояние : норма
    Сеанс связи : 17.03.2022 2:22:01
    Команда ТУ : время неопределено

    Сеансы связи (всего / ошибок) : 36 / 8
    Команды ТУ (всего / ошибок) : 0 / 0
    Запросы (всего / ошибок) : 80 / 24

    Текущие данные тегов КП
    +———+——————+———-+——-+
    | Сигнал | Наименование | Значение | Канал |
    +———+——————+———-+——-+
    | ******** Параметры ************************* |
    +———+——————+———-+——-+
    | 1 | Частота | 3800 | 1 |
    +———+——————+———-+——-+
    | 2 | Ток | 128 | 2 |
    +———+——————+———-+——-+
    | 3 | Температура | 383 | 3 |
    +———+——————+———-+——-+
    | 4 | Уровень | 2668 | 4 |
    +———+——————+———-+——-+
    | 5 | Давление | 6670 | 5 |
    +———+——————+———-+——-+
    | 6 | Расход | 2030 | 6 |
    +———+——————+———-+——-+
    | ******** Состояние насоса ****************** |
    +———+——————+———-+——-+
    | 7 | Состояние насоса | 1 | 7 |
    +———+——————+———-+——-+

    Архивные данные отсутствуют

    События отсутствуют

    Команды ТУ отсутствуют

    Журнал линии:

    2022-03-17 02:03:17 Сеанс связи с КП 1 «Vacon100flow», тип: KpModbus, адрес: 1, позывной: 192.168.1.10
    Запрос значений группы элементов «Параметры»
    Отправка (12): 06 C0 00 00 00 06 01 04 29 68 00 06
    Приём (7/7): 06 C0 00 00 00 0F 01
    Приём (14/14): 04 0C 0E D8 00 80 01 7F 0A 6B 1A 0D 07 7B
    OK!
    Запрос значений группы элементов «Состояние насоса»
    Отправка (12): 06 C1 00 00 00 06 01 04 07 D0 00 01
    Приём (7/7): 06 C1 00 00 00 05 01
    Приём (4/4): 04 02 00 01
    OK!

    2022-03-17 02:03:18 Сеанс связи с КП 1 «Vacon100flow», тип: KpModbus, адрес: 1, позывной: 192.168.1.10
    Запрос значений группы элементов «Параметры»
    Отправка (12): 06 C2 00 00 00 06 01 04 29 68 00 06
    Приём (0/7):
    Ошибка связи!
    Запрос значений группы элементов «Параметры»
    Отправка (12): 06 C3 00 00 00 06 01 04 29 68 00 06
    Приём (7/7): 06 C2 00 00 00 03 01
    Некорректные данные MBAP Header!
    Запрос значений группы элементов «Параметры»
    Отправка (12): 06 C4 00 00 00 06 01 04 29 68 00 06
    Приём (7/7): 84 06 06 C3 00 00 00
    Некорректные данные MBAP Header!

    2022-03-17 02:03:19 Отключение от 192.168.1.10

    2022-03-17 02:03:20 Установка TCP-соединения с 192.168.1.10:502

    2022-03-17 02:03:21 Сеанс связи с КП 1 «Vacon100flow», тип: KpModbus, адрес: 1, позывной: 192.168.1.10
    Запрос значений группы элементов «Параметры»
    Отправка (12): 06 C5 00 00 00 06 01 04 29 68 00 06
    Приём (7/7): 06 C5 00 00 00 0F 01
    Приём (14/14): 04 0C 0E D8 00 80 01 7F 0A 69 1A 07 07 D6
    OK!
    Запрос значений группы элементов «Состояние насоса»
    Отправка (12): 06 C6 00 00 00 06 01 04 07 D0 00 01
    Приём (7/7): 06 C6 00 00 00 05 01
    Приём (4/4): 04 02 00 01
    OK!

    2022-03-17 02:03:22 Сеанс связи с КП 1 «Vacon100flow», тип: KpModbus, адрес: 1, позывной: 192.168.1.10
    Запрос значений группы элементов «Параметры»
    Отправка (12): 06 C7 00 00 00 06 01 04 29 68 00 06
    Приём (7/7): 06 C7 00 00 00 0F 01
    Приём (14/14): 04 0C 0E D8 00 80 01 7F 0A 68 1A 05 07 6B
    OK!
    Запрос значений группы элементов «Состояние насоса»
    Отправка (12): 06 C8 00 00 00 06 01 04 07 D0 00 01
    Приём (7/7): 06 C8 00 00 00 05 01
    Приём (4/4): 04 02 00 01
    OK!

    2022-03-17 02:03:23 Сеанс связи с КП 1 «Vacon100flow», тип: KpModbus, адрес: 1, позывной: 192.168.1.10
    Запрос значений группы элементов «Параметры»
    Отправка (12): 06 C9 00 00 00 06 01 04 29 68 00 06
    Приём (7/7): 06 C9 00 00 00 0F 01
    Приём (14/14): 04 0C 0E D8 00 80 01 7F 0A 68 1A 04 07 98
    OK!
    Запрос значений группы элементов «Состояние насоса»
    Отправка (12): 06 CA 00 00 00 06 01 04 07 D0 00 01
    Приём (7/7): 06 CA 00 00 00 05 01
    Приём (4/4): 04 02 00 01
    OK!

    Что примечательно опрос полгода работал без такого количества ошибок. Один КП, один прибор, всё как часы.
    Тут добавил в проект получение данных от OPC Owen. КП ОРС не глючит, а КП модбас — начало вот!

    Куда копать?!

    #22412
    VylegzhaninD
    Участник

    2022-03-17 03:10:40 Сеанс связи с КП 1 «Vacon100flow», тип: KpModbus, адрес: 1, позывной: 192.168.1.10
    Запрос значений группы элементов «Параметры»
    Отправка (12): 00 11 00 00 00 06 01 04 29 68 00 06
    Приём (0/7):
    Ошибка связи!
    Запрос значений группы элементов «Параметры»
    Отправка (12): 00 12 00 00 00 06 01 04 29 68 00 06
    Приём (0/7):
    Ошибка связи!
    Запрос значений группы элементов «Параметры»
    Ошибка при записи данных: Не удается записать данные в транспортное соединение: Удаленный хост принудительно разорвал существующее подключение.
    Приём (0/7):
    Ошибка связи!

    #22415
    manjey73
    Участник

    VylegzhaninD я бы убрал попытки опроса при неответе.

    После того, как драйвер не получил ответ, он делает повторную попытку и судя по всему меняет MBAP, а прибор отвечает с предыдущим MBAP…

    Еще попробовать увеличить timeout для ответа от прибора.

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

    Добрый день!
    Такое ощущение, что прибор не успевает передать свои данные и все пакеты «съезжают».

    #22452
    manjey73
    Участник

    з.ы. я бы в Modbus драйвере добавил бы настроек.
    Использовать MBAP Header или нет.
    Если используется, не менять при повторных запросах.

    По идее это ведь не очень сложно сделать?
    И если устройству плевать на MBAP то и выключать его вовсе.

    До появления MBAP вроде одно устройство ругалось и не хотело передавать данные без этого параметра, из-за чего собственно вы его и добавили.

    #22457
    VylegzhaninD
    Участник

    Увеличил таймаут и паузу в 1,5 раза, полёт нормальный.
    Спасибо!
    Почему могло перестать хватать заданного таймаута с добавлением другого КП (ОРС)?
    Железо: сеть, диск, ОЗУ? Или это программный нюанс?
    По наблюдениям ни машина с RapidScada ни одно из сетевых устройств не перегружены. Как определить кто виноват?

    #22459
    manjey73
    Участник

    А у вас OPC опрашивает не то же самое устройство? если да, то причина может быть во времени открытия/закрытия сокетов или их обработки.

    #22460
    VylegzhaninD
    Участник

    Нет, OPC берет данные с OwenCloud, в OwenCloud другие устройства, территориально все устройства (те, что в OwenCloud и те что опрашивает RapidScada) разнесены так что на трафик на конечном объекте тоже влияния нет.

    #22465
    manjey73
    Участник

    Ну вполне возможно это связано с текущими событиями и местами изменением связи у операторов. Они сейчас планомерно отказываются от цисок, переходя на хуавей и так далее…. Просто может изменились пути доступа к серверам, увеличился ping и так далее…

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