Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

Тема: Подскажите программу логгер/сниффер Modbus

  1. #1

    По умолчанию Подскажите программу логгер/сниффер Modbus

    Добрый день!

    Во время ПНР появилась задача разобраться с периодической ошибкой в обмене по Modbus RTU.
    Система содержит 8 модулей ввода-вывода, для опроса каждого требуется сделать по 9 запросов (1 для восьми измеренных значений и ещё 8 для восьми регистров качества измерений) - так уж устроены эти модули и получить все данные одним или двумя групповыми запросами невозможно и это оговорено в документации на модуль.
    Опрос модулей выполняется за счёт конфигуратора и применение другого способа (библиотеки обмена) невозможен.
    Периодически на разных модулях возникает какая-то ошибка, диагностика ПЛК просто выдаёт невразумительный код ошибки.

    Хочу разобраться с причиной ошибки.
    Для этого подключился к линии на прослушку, могу сохранить обмен.
    Имеющиеся логгеры-снифферы позволяют сохранять или сплошной дамп без отметок времени или просто сообщения вида "(дата-время) Modbus запрос к устройству с адресом XX и регистру YYYY".
    Ошибки возникают раз в 10-15 минут, объём сохранённых данных в логах очень велик, найти запрос+ответ с ошибкой трудно.
    Т.е. даже не понимаю характер ошибки - пропуск обмена (таймаут), искажения на линии (неправильный пакет).

    Поэтому вижу два варианта:
    - найти логгер с сообщениями вида "дата-время запрос (или ответ) устройство XX регистр YYYY: XX 03 YY YY LL LL CRC CRC"
    - или написать собственный парсер дампа для получения нужных сообщений с диагностикой ошибок в пакетах.

    Подскажите бесплатный логгер с такой возможностью или, может быть, готовую библиотеку разбора дампа с диагностикой.

  2. #2

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    ...........
    Подскажите бесплатный логгер с такой возможностью или, может быть, готовую библиотеку разбора дампа с диагностикой.
    Не поверите, Эксель, вкладка данные.
    При создании фильтра сразу увидите аномальные строки, можно удалить дубликаты и увидеть что то лишнее, там дофига всего можно. Да;е на другом листе сделать выборку почти ка SQL запрос
    Последний раз редактировалось BETEP; 26.05.2026 в 21:34.

  3. #3

    По умолчанию

    Обосновал?
    Вложения Вложения
    • Тип файла: rar Excel.rar (3.36 Мб, Просмотров: 10)
    Последний раз редактировалось BETEP; 26.05.2026 в 21:53.

  4. #4

    По умолчанию

    Как понимаю, VBA for Excel, как и макросы и функции Excel - Тьюринг-полные машины и позволяют воспроизвести любой алгоритм.

    У меня в наличие просто бинарные дампы на десятки и сотни килобайт. Думаю, что после их открытия в Hex-редакторе смогу скопировать их hex представление и отправить в Excel, а может и сам Excel может работать с бинарными файлами.

    Но, наверное, вместо изучения нового языка и его особенностей мне проще сделать парсер на знакомом FreePascal - неделю сэкономлю. У меня с середины декабря было всего 6 выходных дней - сейчас реально не способен и не расположен к обучению.

  5. #5

    По умолчанию

    У вас лог бинарник? жесть. Логи ведь понятными для человека делают.
    Как разбирать лог? так как вам удобнее. Но иметь поверхностное знакомство с Экселем нам не помешает. VBA for Excel.... есть фича, запись макроса, т.е. что то делаете в Экселе, потом это воспроизводите, нажав на кнопочку.

  6. #6

    По умолчанию

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

  7. #7
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,834

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    А что за модули? И чем читаете?
    Почему вот у меня ни одной ошибки нет интересно, приходится изобретать как ошибку сделать.
    Вы вероятно сами делаете или под вашим чутким руководством, а у товарища кто-то делает, я так понимаю, кто в тонкостях процесса не разбирается.

    Я так понимаю что и у товарища процент ошибок очень-очень маленький, непонятно зачем этим заморачиваться, в смысле, ничего идеального не бывает, даже на Солнце пятна, сейчас особенно на противоположной к Земле стороне, короче, никто же не рвётся, как Ленин в Петроград, эти пятна устранять, надеюсь, смысл понятен?
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  8. #8

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    А что за модули? И чем читаете?
    Почему вот у меня ни одной ошибки нет интересно, приходится изобретать как ошибку сделать.
    Контроллер Regul R500.
    Среда программирования - кастомизованный CODESYS 3.5. Кроме конфигурации Modbus - других средств нет, в официальных документах не рассматривается.
    https://reglab.ru/upload/iblock/c63/...1_v1.7_rus.pdf
    Модули RealLab NLS-8TI на 8 каналов термодатчиков, в данном случае термопар. https://www.reallab.ru/Support/download/

    Диагностика обмена по Modbus в ПЛК не очень внятная, обобщённая.
    У меня есть подозрение, что модули иногда пропускают ответ или помеха на линии искажает пакеты.
    Интересует - причина диагностирования ошибки и период между опросами при такой диагностики.

    Снял логи программой Serial Advansed Monitor (trial) - пишу по памяти. Пробовал ещё HHM Advansed Serial Logger - тоже название по памяти. Пару дней назад на хабре было описание какого-то нового логгера - и им пробовал.
    При сохранении получаю бинарик.
    Если лог без дампа типа "(дата-время) Modbus запрос к устройству с адресом XX и регистру YYYY" - то в тексте.
    Преобразовать бинарный в текстовый дамп - труда не предоставляет - делал такое даже на ассемблере.
    Сделать парсер на Free Pascal - думаю по силам, только время потребуется. Но, подозреваю, что не первым вижу такую задачу.

    В идеале - сразу из логгера получать лог с диагностикой ошибок и разбором "запрос / ответ / адрес / регистр / время / ошибки". Самодельный парсер - это на крайний случай.
    Последний раз редактировалось FPavel; 27.05.2026 в 06:39.

  9. #9

    По умолчанию

    Цитата Сообщение от BETEP Посмотреть сообщение
    Обосновал?
    Спасибо за пример. На работе посмотрю - на домашнем пользуюсь Libre Office, открыть не смогу.

  10. #10

    По умолчанию

    Отчитаюсь о поисках.

    Для получения логов обмена Modbus с отметками времени использовал программу HTerm
    https://www.der-hammer.info/pages/terminal.html
    Это именно терминал, а не инструмент работы с каким-либо протоколом.

    Не скажу, что идеал, но с конкретной задачей помог справиться.
    Парсинга обмена Modbus в нём нет, но в моём случае оказались важны только отметки времени между запросами и ответами. Можно сохранять просто бинарный лог, а можно лог с вкраплениями отметок времени.

    Формат логов несколько неудобный - в бинарный файл с логом обмена периодически вставлены ASCII строки с отметками времени, но это лучше, чем ничего.

    Разбор логов выполнял в HEX-редакторе PSPad editor
    https://www.pspad.com
    У меня просто отсутствовали любые HEX-редакторы и первым нашёл этот.

    Сама проблема оказалась в модулях ввода - для одного модуля опрос значений измерений показаний 8 термопар занимал 15 мс (одним запросом), а опрос достоверности измерений (обрывов) 8 термопар занимал 8х200мс=1600мс (8 запросов - одним запросом невозможно согласно РЭ на модуль и по результатам эксперимента).
    Таким образом, для 8 модулей ввода оказалось, что период обновления показаний составляет 8х1600мс=12800мс=12,8с и это не удовлетворяет требованиям ТЗ.
    Было принято решение о замене модулей ввода.
    Таким образом, для анализа проблемы оказалось достаточно отметок времени возле данных запросов и ответов.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Подскажите по выбору электросчетчика с ModBus RTU
    от Harp в разделе Трёп (Курилка)
    Ответов: 20
    Последнее сообщение: 08.04.2026, 16:26
  2. Ответов: 28
    Последнее сообщение: 20.01.2017, 18:38
  3. PCLogger - универсальный логгер для CDS v3
    от Mikhail Shvetsov в разделе ПЛК3xx (архив)
    Ответов: 0
    Последнее сообщение: 23.11.2012, 13:39
  4. Ответов: 2
    Последнее сообщение: 30.06.2011, 09:45
  5. Подскажите ссылочку на спецификацию modbus?
    от Gosha в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 29.03.2010, 07:39

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •