PDA

Просмотр полной версии : Modbus-снифер



VaBo
23.09.2020, 20:44
Коллеги, подскажите программку для прослушивания (подслушивания) линии, по которой Modbus гуляет.
Advanced serial Com-port monitor слушает, но Modbus пакеты не умеет разбирать, все в кучу валит. Modbus Pull не умеет просто линию слушать, а хочет из себя мастера изобразить (или я с ним не разобрался??).
Кто чем пользуется?

VaBo
24.09.2020, 07:18
Ну-у, разобрать непонятки с трафиком между ПЛК и панелью, к примеру. Подключив на линию комп.

VaBo
24.09.2020, 16:21
Зачем кодесис-то приплетать?
Нужна сторонняя прога для РС. Два примера дал выше.
Видел (давно) у приезжавшего наладчика, ноутом прицепился к сети из сотни приборов, задал маску для своих, увидел, что один из приборов периодически сильно тормозит с ответом, в течение часа решил проблему.
Вот примерно такая нужна.

Вот обзор подобного ПО на хабре
https://habr.com/ru/post/281430/

Но вот модбас+сниффер, - нет. Отсюда и вопрос.

Cs-Cs
25.09.2020, 09:41
Я недавно смотрел через купленный на Алишке логический анализатор Saleae. Стоит он там 2-5 тыр.
Качаешь под него официальную прогу с сайта, и вуаля. Даже все данные байтов расшифровывает.
Вот например общая картина. СПК1хх опрашивает пару датчиков: 51140
Слева идут запросы от СПК, а ответа нет (узкие палочки). В середине видно, что есть какой-то обмен с устройством (запросы и ответы).

Вот увеличил крупнее: 51141
Слева огрызок пустого запроса, справа идут запрос-ответ, запрос-ответ.

И вот как он декодирует данные, если линия в порядке: 51142
Видим данные в HEX: 2E, 03, 00 01, 00 01, D2 55.
Расшифровываем: Адрес 2E (46), Команда чтения регистров (03), прочитать 1 штуку регистра с адресом 1, CRC (CRC можно сверять тут онлайн: https://crccalc.com/)
Соображаем в моём примере, что запрос идёт к датчику с адресом 46, который я отключил. Вот СПК и долбится в него периодически.
Причём можно даже увидеть (я про это позже напишу пост), что пока СПК (CodeSys v3) долбится в неотвечающее устройство, оно забивает и не опрашивает другие. То есть, видно что идут попытки связаться с мёртвым датчиком, и их много. А потом раз - и быстрый опрос датчика, который отвечает.

VaBo
25.09.2020, 10:38
Чем ОНО отличается от Advanced serial Com-port monitor? Только тем, что интересующие пакеты нужно искать в осциллограмме, а не в таблице (что неудобней, на мой взгляд).
Но тайминги да, как на ладони...

Cs-Cs
25.09.2020, 10:58
VaBo Тем, что тут показывается всё на сигнальном уровне.
У меня одно устройство глючило так, что когда терминатор в линию подключаешь - оно переставало отвечать. И фиг знает почему.
Анализатором тут можно посмотреть, что было кривое CRC посылок из-за того, что когда в линии был терминатор, устройство почему-то гадило в линию и выдавало кривые стартовые биты. А программа, которая работает с уже принятыми данными, не покажет этого. Точнее, покажет что-то типа CRC_ERROR, но не покажет почему.
Я советую, потому что на Алишке эти анализаторы стоят копейки и тем, кто постоянно таким занимается, это будет удобнее. Тьфу, короче, это мой опыт, и я раньше от этого плевался и открещивался, а щас вот, пока с CodeSys v3 разбирался, всё это оценил.
Например, по анализатору я увидел что в CodeSys v3 штатная реализация Modbus кривая: она опрашивает по одному регистру (запросу - строчке из конфигурации Slave) за один раз, а косяк вот в чём: если устройство не ответило, то CodeSys v3 ждёт указанный таймаут и.... пытается опросить второй регистр этого же устройства. И так далее.
И в итоге общий таймут опроса устройства получается равен не тому таймауту, который мы задали в настройках слейва, а этом таймауту, умноженному на число регистров. И вот это ОФИГЕТЬ!

LordN
15.04.2022, 05:55
Коллеги, подскажите программку для прослушивания (подслушивания) линии, по которой Modbus гуляет.
Advanced serial Com-port monitor слушает, но Modbus пакеты не умеет разбирать, все в кучу валит. Modbus Pull не умеет просто линию слушать, а хочет из себя мастера изобразить (или я с ним не разобрался??).
Кто чем пользуется?

https://npulse.net/en/online-modbus

умеет разбирать пакет

keysansa
15.04.2022, 17:52
Возможно опять забанят, за стороннее ПО )
IO Ninja.
Бесплатен, при наличии инет соединения с их сервером во время работы.
Лучшее, из того что встречал.