Стартовая страница › Форумы › Ошибки в работе › Modbus TCP: Некорректные данные MBAP Header!
- В этой теме 88 ответов, 9 участников, последнее обновление 9 месяцев, 3 недели назад сделано Mikhail.
-
АвторСообщения
-
18.09.2020 в 14:08 #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) — НЕ РЕКЛАМА, как Вы думаете или что посоветуете ?
Всем спасибо ! Может кому помог, а может нет. Но причины я так и не выяснил, как бы такая же проблема не начла вываливать с новыми шлюзами …
С уважением Алексей
18.09.2020 в 17:51 #17254MikhailМодераторДобрый день!
Спасибо за полезную информацию.Какая причина использовать именно шлюз Modbus? Обычно шлюз нужен, чтобы опрашивать одни и те же устройства несколькими мастерами. Более простое решение — использовать «прозрачный» преобразователь типа Moxa NPort. Обычно он работает надёжно.
21.09.2020 в 08:25 #17260АлексейУчастникКакая причина использовать именно шлюз Modbus?
В моем случае шлюз исполняет доставку пакетов до сервера СКАДА. У меня имеются 5 устройств с ModBus-RTU и находятся далеко от сервера, но там имеется сеть. Я просто эти все устройства подключил к одной шине RS-485 а шлюзом передаю пакеты по сети как ModBus-TCP Master . Очень удобно.
А что делает Moxa NPort ? По поиску интернета я так понял она просто конвертирует из RS-485 в RS-232 и так же передает по сети . Но в этом случае мне придется брать 2 штуки — 1 как передатчик и 2 — как приемник, при этом на сервере придется задействовать физически COM порт. Или я чего то не допонимаю ???
С уважением Алексей
- Этот ответ был изменен 3 года, 7 месяцев назад от Алексей.
21.09.2020 в 09:59 #17263manjey73УчастникАлексей Моха обычный преобразователь Ethernet — RS485/422/232 разные модификации. Им обычно пофигу на протокол, но есть и преобразователи протоколов в том числе.
Две не нужны, у вас Scada в сети, Moxa где-то через интернет тоже в сети. Scada умеет работать как TCP клиент данной Moxa, не надо даже виртуальные COM создавать.
21.09.2020 в 10:18 #17265a80808УчастникМОХА вообще могучая вещь и надежная как танк. У нас их много, не слышал. чтобы отказывали. И модельный ряд широкий — там от ввода-вывода до панельных компьютеров.
Возможно, что на целевом компе придется виртуальный порт создать при помощи утилиты (идет вместе с устройством или на сайте можно скачать) NPortAdmin кажется. Есть встроенный Web сервер для основных настроек.
Вам скорее всего нужен какой то из серии 5ххх (от одного до 8-ми портов).
Представитель в России Питерская компания «Ниешанц-Автоматика, сайт moxa.ru по существу это их сайт.21.09.2020 в 15:52 #17275MikhailМодераторКоммуникатор поддерживает режимы TCP-клиент и TCP-сервер, поэтому создавать виртуальные ком-порты не придётся.
17.03.2022 в 00:33 #22411VylegzhaninDУчастникЗдравствуйте!
Также встретил аналогичную проблему, но с поправкой.
Ошибка Некорректные данные 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. КП ОРС не глючит, а КП модбас — начало вот!Куда копать?!
17.03.2022 в 01:11 #22412VylegzhaninDУчастник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):
Ошибка связи!17.03.2022 в 09:21 #22415manjey73УчастникVylegzhaninD я бы убрал попытки опроса при неответе.
После того, как драйвер не получил ответ, он делает повторную попытку и судя по всему меняет MBAP, а прибор отвечает с предыдущим MBAP…
Еще попробовать увеличить timeout для ответа от прибора.
17.03.2022 в 15:16 #22432MikhailМодераторДобрый день!
Такое ощущение, что прибор не успевает передать свои данные и все пакеты «съезжают».17.03.2022 в 16:39 #22452manjey73Участникз.ы. я бы в Modbus драйвере добавил бы настроек.
Использовать MBAP Header или нет.
Если используется, не менять при повторных запросах.По идее это ведь не очень сложно сделать?
И если устройству плевать на MBAP то и выключать его вовсе.До появления MBAP вроде одно устройство ругалось и не хотело передавать данные без этого параметра, из-за чего собственно вы его и добавили.
17.03.2022 в 19:22 #22457VylegzhaninDУчастникУвеличил таймаут и паузу в 1,5 раза, полёт нормальный.
Спасибо!
Почему могло перестать хватать заданного таймаута с добавлением другого КП (ОРС)?
Железо: сеть, диск, ОЗУ? Или это программный нюанс?
По наблюдениям ни машина с RapidScada ни одно из сетевых устройств не перегружены. Как определить кто виноват?17.03.2022 в 23:01 #22459manjey73УчастникА у вас OPC опрашивает не то же самое устройство? если да, то причина может быть во времени открытия/закрытия сокетов или их обработки.
18.03.2022 в 06:01 #22460VylegzhaninDУчастникНет, OPC берет данные с OwenCloud, в OwenCloud другие устройства, территориально все устройства (те, что в OwenCloud и те что опрашивает RapidScada) разнесены так что на трафик на конечном объекте тоже влияния нет.
18.03.2022 в 09:22 #22465manjey73УчастникНу вполне возможно это связано с текущими событиями и местами изменением связи у операторов. Они сейчас планомерно отказываются от цисок, переходя на хуавей и так далее…. Просто может изменились пути доступа к серверам, увеличился ping и так далее…
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.