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

Тема: Шаблоны модулей Mx210 для CODESYS V3.5

  1. #1

    Red face Шаблоны модулей Mx210 для CODESYS V3.5

    Добрый день, уважаемые коллеги.
    Представляем вашему вниманию шаблоны модулей Mx210 для CODESYS V3.5.
    Шаблоны разработаны для версии среды 3.5.11.5 и не могут быть использованы в более ранних версиях.
    В пакет входят шаблоны для всех модулей, кроме МУ210-402 и МУ210-403 – они будут добавлены в следующей версии шаблонов.

    13-05-2019 6-58-07.png

    Основные особенности шаблонов:

    1. Удобство использования:

      • прямая привязка переменных к каналам;
      • параметры каждого модуля структурированы по папкам;
      • возможность настройки конфигурационных параметров входов-выходов;
      • возможность исключения модулей из опроса;
      • для модулей с выходами – выбор режима записи: циклически или по изменению (для сетей с несколькими мастерами).


      13-05-2019 7-02-49.png

    2. При работе с аналоговыми модулями можно использовать структуры (для настроек аналоговых входов и их оперативных параметров) и перечисления (для кодов ошибок и типов датчиков). Эти типы данных содержатся в библиотеке Mx210 Assistant, которая автоматически добавляется в проект вместе с первым аналоговым модулем. Библиотека также содержит функции для преобразования кодов ошибок в строковые переменные типа STRING и WSTRING.

      13-05-2019 7-00-44.png

    3. На вкладке Информация перечислены особенности реализации шаблона и список Modbus-запросов, которые он генерирует.

      13-05-2019 7-03-12.png

    4. Доступ к отладочному интерфейсу – в коде программы введите имя модуля из дерева проекта, допишите постфикс _OwenDriver, поставьте точку (.) и выберите из списка нужные свойства (заводской номер, версия прошивки и т.д.). Полный список свойств и их типов содержится в библиотеке IoDrvMx210 в интерфейсе Debug.

      13-05-2019 6-57-26.png

    5. Внимание! Шаблоны не поддерживают команду контекстного меню Update Device (Обновить устройство).
    Скачать последнюю версию:

    Список изменений:

    Версия Дата Список изменений
    3.5.11.4 13.05.2019 Первая версия шаблонов модулей





    Документация:

    Руководство пользователя В разработке
    Использование модулей
    ввода\вывода Mx210 в CODESYS

  2. #2

    По умолчанию Сколько модулей Mx210 можно подключить к ПЛК?

    Это довольно непростой вопрос.

    Говоря о подключении устройств по RS-485/Modbus RTU достаточно легко определить их максимальное число на шине:
    спецификация протокола Modbus RTU четко определяет допустимый диапазон адресов устройств – 1…247 (при использовании зарезервированных адресов – 1…255).

    Модули Mx210 подключаются к контроллеру через интерфейс Ethernet с использованием протокола Modbus TCP.
    В этом протоколе нет специфического механизма адресации, так как каждое устройство в сегменте сети имеет уникальный IP-адрес.
    Доступное число IP-адресов в сети, в принципе, ограничено, но в рамках АСУ ТП рассматривать эти ограничения не имеет смысла (они слишком велики).
    По этой же причине не имеет смысла рассматривать ограничения, накладываемые Ethernet (1024 устройства в сегменте, сегменты соединяются коммутационным оборудованием).

    Таким образом, остается два основных источника ограничений: ресурсы ПЛК и настройки среды программирования.

    В качестве примера рассмотрим контроллер СПК1хх [М01], программируемый в среде CODESYS V3.5. Настройка обмена будет производиться с помощью стандартных средств конфигурации через дерево проекта.
    Процедура настройки выглядит следующим образом: добавляется компонент Ethernet, в него – компонент Modbus TCP Master, в него – компоненты Modbus TCP Slave.
    Каждый компонент Modbus TCP Slave соответствует одному подключенному устройству.

    В компонент Modbus TCP Master может быть добавлено максимум 32 компонента Modbus TCP Slave.
    Но в компонент Ethernet может быть добавлено неограниченное (по крайней мере – не меньше сотни) число компонентов Modbus TCP Master
    поэтому с точки зрения среды программирования явное ограничение на число подключаемых устройств отсутствует.

    Каждый компонент Modbus TCP Slave занимает один дескриптор (хэндл) контроллера.
    Число одновременно используемых дескрипторов для процесса в ОС СПК ограничено 1024.
    При этом пустой проект использует около 60 дескрипторов. Таким образом, теоретически можно подключить к контроллеру примерно 950 модулей.

    Но следует помнить, что ключевая задача контроллера – выполнение операций с заданным временем цикла.
    Увеличение числа опрашиваемых устройств пропорционально увеличивает время цикла контроллера.
    Для того чтобы привести конкретные цифры мы рассмотрим пример, в котором СПК опрашивает 20 модулей Mx210 с помощью шаблонов.
    Шаблоны – это кастомизированные компоненты Modbus TCP Slave, в которых настроен опрос всех оперативных и части конфигурационных параметров модуля,
    а также присутствует дополнительный программный код (конвертация значений, контроль диапазонов и т.д.).
    Все ключевые параметры модулей (маски входов, счетчики входов, маски выходов и т.д.) опрашиваются циклически с заданным периодом в 20 мс (за исключением модулей МВ210-101 – для них 400 мс).
    По возможности шаблоны используют групповые запросы. Информация о структуре запросов к модулю доступна в шаблоне на вкладке Информация.

    TemplatesInDeviceTree.png

    В рамках теста все модули имели прошивку 0.15.9:

    ModulesInOwenConf.png

    Модули подключены к коммутатору, связанному с локальной сетью офиса. Контроллер подключен к другому коммутатору, который также связан с офисной сетью.

    Проект CODESYS включает в себя:
    • 20 шаблонов Mx210 с привязанными ко всем каналам переменными;
    • Привязку переменных ко всем узлам таргет-файла (Drives, Network и т.д.);
    • Программу PLC_PRG с «заглушкой» для имитации пользовательского кода;
    • Два экрана визуализации.


    В проекте созданы три задачи:
    • MainTask: T=20ms, приоритет = 1. В этой задаче происходит обмен, обработка узлов таргет-файла и выполнение программы PLC_PRG;
    • VisuTask: T=200ms, приоритет = 25. В этой задаче происходит отрисовка визуализации;
    • TrendRecordingTask: T=100ms, приоритет = 31. В этой задаче происходит запись данных для исторического графика.


    «Заглушка» в PLC_PRG выглядит следующим образом:

    DummyJob.png

    Экран Visualization содержит тренд, на котором выводится загрузка процессора и текущее время цикла задачи MainTask.
    Также на экране отображается время работы контроллера (с момента подачи питания).
    На экране Modules (доступен только в web-визуализации) отображается статистика по модулям – в частности, число ошибок обмена.
    Под ошибкой подразумевается ситуация, когда ответ на запрос не был получен (или был получен ответ с Modbus Exception).
    Спустя 68 часов тестирования была получена следующая статистика:

    Task.png

    Stats.png

    Errors.png

    Пример влияния «заглушки» на время цикла и загрузку процессора:

    DummyJobStats.png

    Основные полученные результаты (68 часов тестирования):
    • Загрузка ЦПУ стабильно равна 100% при включенной «заглушке» и меняется в диапазоне 95-100% при отключенной «заглушке»;
    • Реальное время выполнения задачи MainTask составляет 16 мс при включенной заглушке и 8 мс – при отключенной (напомним, заданная периодичность вызова задачи – 20 мс);
    • Реальное время выполнения задачи VisuTask в среднем составляет 700…1500 мс, при этом джиттер (задержка запуска задачи) в отдельные моменты времени достигает 20 секунд.
      Обновление экрана визуализации в среднем занимает 10 секунд, при отключенной заглушке – 1-2 секунды. Работа с такой визуализаций является крайне некомфортной;
    • За время тестирования на 18 модулях не было ни одной ошибки обмена (одна ошибка, отображаемая в счетчике, появляется в момент старта проекта).
      На двух последних из опрашиваемых модулях число ошибок составило 60 и 90 соответственно. Вероятно, большая их часть проявилась при появлении джиттера задачи в момент подключения к контроллеру из CODESYS.
      Напомним, что модули подключены к локальной сети офиса, трафик в которой достаточно значителен.


    Для оценки таймингов мы выкладываем дамп обмена, снятый в Wireshark (содержит данные за 30 минут): скачать

    Оценка результатов:

    • Подключение 20-ти модулей Mx210 через шаблоны существенно замедляет обработку визуализации, при этом реальное время цикла задачи пользовательской логики не превышает заданного.
      В целом, при использовании шаблонов рекомендуется ограничить число подключенных модулей 10-ю;
    • Напомним, что удобство использования шаблонов обеспечивается затратой дополнительных ресурсов.
      При организации опроса через стандартные компоненты Modbus TCP Slave с добавлением только тех каналов, которые нужны в конкретной задаче –
      можно подключить и большее количество модулей с меньшим потреблением ресурсов. Рациональный лимит подключенных таким образом модулей – 40.
      При значительно большем количестве сигналов в системе рекомендуется разбивать ее на отдельные узлы,
      где в рамках каждого узла отдельный контроллер будет опрашивать меньшее количество модулей.


    Оценка скорости реакции системы:

    В рамках тестирования также измерялось время реакции системы. Измерение производилось следующим образом:
    выход первого опрашиваемого модуля (МУ210-410) был подключен в входу последнего опрашиваемого модуля (МВ210-202).
    Каждую минуту отправляется команда на включение выхода и запоминается время системного таймера контроллера.
    При получении информации о замыкании входа вычисляется разность между текущим и запомненным значением системного таймера. После этого выход отключается.
    Минимальное время реакции системы составило 60 мс, максимальное – 2400 мс (за тысячу итераций теста). Основная часть полученных значений лежит в диапазоне 200…600 мс.
    Такие колебания времени реакции связаны с тем, что команда на запись может генерироваться в различные моменты по отношению к текущему состоянию программы (в частности, к текущему обрабатываемому модулю).

    SystemReaction.png

    В ближайшее время мы планируем опубликовать результаты теста обмена с опросом через стандартные компоненты Modbus TCP Slave с минимально необходимым набором параметров (битовые маски, значения аналоговых входов и выходов).

  3. #3

    По умолчанию

    Мы повторили тест, описанный выше, заменив шаблоны на стандартные компоненты Modbus TCP Slave.
    Для дискретных модулей был настроен только циклический опрос битовых масок, для аналоговых - текущих значений и кодов ошибок (групповыми запросами).

    2019-05-22_9-38-41.png

    Результаты:
    • Загрузка ЦПУ находится в диапазоне 80-95% при включенной «заглушке»;
    • Реальное время выполнения задачи MainTask составляет 10 мс при включенной «заглушке» (напомним, заданная периодичность вызова задачи – 20 мс);
    • Реальное время выполнения задачи VisuTask в среднем составляет 50…250 мс, при этом джиттер (задержка запуска задачи) в отдельные моменты времени достигает 5 секунд.
    • Обновление экрана визуализации с трендом занимает около секунды, и работать с ним довольно некомфортно. На экране с кнопками и прямоугольниками скорость отлика визуализации является адекватной;
    • Скорость реакции системы стабильно равна 40 мс (удвоенное время цикла задачи MainTask).


    2019-05-22_9-39-55.png

    2019-05-22_9-44-04.png

    2019-05-22_9-42-29.png

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 18.01.2019, 13:48
  2. Шаблоны модулей МХ110 для CODESYS 3.5
    от Александр Приходько в разделе СПК2хх
    Ответов: 92
    Последнее сообщение: 24.04.2015, 18:29
  3. Шаблоны модулей МВА8 и МДВВ для Lectus.
    от Newsnowman в разделе Мх110
    Ответов: 1
    Последнее сообщение: 19.12.2014, 09:04
  4. Шаблоны модулей МВА8 и МДВВ для Lectus.
    от Newsnowman в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 19.12.2014, 09:04
  5. Ответов: 3
    Последнее сообщение: 07.12.2011, 20:06

Ваши права

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