Показано с 1 по 4 из 4

Тема: ПЛК200 и модули Мх110 по Modbus RTU

  1. #1

    По умолчанию ПЛК200 и модули Мх110 по Modbus RTU

    Имеется конфигурация - один ПЛК200-01 и десять модулей МВ110-32ДН, подключенные по линии RS-485. Обмен ПЛК с модулями реализован по протоколу Modbus RTU (скорость 115200 бод, формат 8N1) на основе библиотек OwenCommunication (COM_Control, MB_SerialRequest). Программа ПЛК производит запрос только битовой маски входов из двух регистров (32bit) каждого модуля. Функция обмена вынесена в отдельную задачу с временем цикла 1мс. Итоговый период опроса всех модулей составляет ~160мс. Можно попробовать посчитать теоретическое время цикла (без учета вспомогательных бит обмена): скорость линии - 115200 бод = 11520 байт/с, пакет запроса - 8 байт, пакет ответа - 9 байт, задержка ответа модуля - 2мс, время цикла ПЛК 1мс, время между фреймами (по стандарту > 0.143мс) пусть 2мс, получается время цикла опроса = (8 байт + 9 байт) / 11520 байт/с + 0,002 с + 0,001 с + 0,002 с = 0,00648 секунды * 10 модулей = 65 мс, что далеко от реальности.
    Почему фактическое время цикла намного больше расчётное и как его уменьшить?

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,825

    По умолчанию

    Почему фактическое время цикла больше расчётного
    1. MB_SerialRequest выполняется в течение нескольких циклов контроллера - он асинхронный.
    2. Интервал задачи в 1 мс может быть недостижим для вашего проекта + надо учитывать джиттер - см. информацию онлайн-мониторинга конфигурации задач.
    3. Задержка ответа модуля (rs.dl) может отрабатываться им с погрешностью.

    Всё это в сумме прибавит еще пару десятков миллисекунд к расчетным значениям.

    как его уменьшить?
    Навскидку два варианта:
    1. https://owen.ru/forum/showthread.php...l=1#post410365 (IoDrvModbus.ModbusRequest2)
    2. Использовать библиотеки SysCom - она предоставляет синхронные функции для работы с COM-портом.
    Потребуется поверх нее реализовать нужную вам часть спецификации Modbus (или захардкодить запросы и разбор ответов, если это приемлемо в рамках вашей задачи).

  3. #3

    По умолчанию

    Для чистоты эксперимента исключил из работы все задачи, кроме обмена по Modbus RTU, в результате максимальное время цикла 302 мкс, среднее 33 мкс, максимальный джиттер 203 мкс. В данной конфигурации время цикла обмена с модулями чуть уменьшилось до ~140мс. При задании tTimeout функции обмена меньше 15мс начинают появляться ошибки, что соответствует ~160мс/10модулей. Евгений, у вас есть возможность в лабораторных условиях проверить время задержки ответа от модулей МВ110-32ДН?
    Попробовал использовать функцию IoDrvModbus.ModbusRequest2, но результат стал только хуже - начали сыпать ошибки UNDEFINED (The request’s result is undefined or not yet known, e.g. initial state). Изменение параметра uiSendTimeout (в диапазоне 0-100) на количество ошибок особо не повлияло. Возможно я неправильно использую эту функцию (мой код во вложении).
    Изображения Изображения
    • Тип файла: png 1.png (45.6 Кб, Просмотров: 9)
    Вложения Вложения

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,825

    По умолчанию

    Евгений, у вас есть возможность в лабораторных условиях проверить время задержки ответа от модулей МВ110-32ДН?
    В данный момент возможности нет.
    Но в целом:
    - Modbus RTU - это не протокол реального времени
    - "ускорение" обмена никогда не являлось одной из задач библиотеки OwenCommunication

    Если в рамках вашей системы текущий достигнутый период опроса (~140-160 мс) десятка модулей является неприемлемо высоким - то, на мой взгляд, вам следует выбрать другое оборудование для решения вашей задачи.

Похожие темы

  1. Ответов: 43
    Последнее сообщение: 28.04.2023, 14:54
  2. Связь ПЛК200 и ПР103 по Modbus TCP
    от Shera_Best в разделе Подбор Оборудования
    Ответов: 4
    Последнее сообщение: 06.03.2022, 06:10
  3. модули ввода/выводв Мх110 [М01]
    от yurya в разделе Мх110
    Ответов: 4
    Последнее сообщение: 06.07.2019, 14:03
  4. Модули МХ110 для CODESYS 3.5
    от Осинский Алексей в разделе СПК2xx (архив)
    Ответов: 429
    Последнее сообщение: 13.12.2017, 13:53
  5. Ответов: 4
    Последнее сообщение: 10.02.2015, 16:12

Метки этой темы

Ваши права

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