PDA

Просмотр полной версии : Шаблоны модулей Mx210 для CODESYS V3.5



Евгений Кислов
13.05.2019, 13:40
Добрый день, уважаемые коллеги.
Представляем вашему вниманию шаблоны модулей Mx210 (https://www.owen.ru/catalog/moduli_vvoda_vivoda/info/general_information_Mx210) для CODESYS V3.5.
Шаблоны разработаны для версии среды 3.5.11.5 (и выше) и не могут быть использованы в более ранних версиях.

42665

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


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

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


42667

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

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

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

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



Скачать последнюю версию:



Mx210Templates_v3.5.11.6.package (https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/01_Components/Mx210Templates_v3.5.11.6.package)



Версия
Дата
Список изменений


3.5.11.6
30.12.2019
Добавлены шаблоны модулей МВ210-212, МВ210-214, МУ210-402, МУ210-403, МЭ210-701


3.5.11.4
13.05.2019
Первая версия шаблонов модулей








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



Руководство пользователя
CODESYS V3.5. Протокол Modbus [2.0] (https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Modbus_v2.0.pdf)


Использование модулей
ввода\вывода Mx210 в CODESYS

https://youtu.be/vItmuaRHHH4

Евгений Кислов
21.05.2019, 11:37
Это довольно непростой вопрос.

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

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

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

В качестве примера рассмотрим контроллер СПК1хх [М01] (https://www.owen.ru/product/spk1xx), программируемый в среде 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 с помощью шаблонов (https://www.owen.ru/forum/showthread.php?t=31176).
Шаблоны – это кастомизированные компоненты Modbus TCP Slave, в которых настроен опрос всех оперативных и части конфигурационных параметров модуля,
а также присутствует дополнительный программный код (конвертация значений, контроль диапазонов и т.д.).
Все ключевые параметры модулей (маски входов, счетчики входов, маски выходов и т.д.) опрашиваются циклически с заданным периодом в 20 мс (за исключением модулей МВ210-101 – для них 400 мс).
По возможности шаблоны используют групповые запросы. Информация о структуре запросов к модулю доступна в шаблоне на вкладке Информация.

42800

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

42801

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

Проект CODESYS включает в себя:

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


В проекте созданы три задачи:

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


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

42802

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

42803

42804

42805

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

42806

Основные полученные результаты (68 часов тестирования):

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


Для оценки таймингов мы выкладываем дамп обмена, снятый в Wireshark (https://www.wireshark.org/) (содержит данные за 30 минут): скачать (https://ftp.owen.ru/CoDeSys3/99_ForumFiles/Test_SPK_Mx210_v0.15.9.zip)

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


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


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

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

42807

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

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

42834

Результаты:

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


42835

42836

42837

Евгений Кислов
27.11.2019, 06:43
Добрый день, коллеги.
Мы выпустили обновленную версию пакета шаблонов модулей Mx210 для CODESYS V3 - 3.5.11.6.
Она включает в себя новые шаблоны для модулей:

МВ210-212
МВ210-214
МУ210-402
МУ210-403
МЭ210-701


Скачать обновленный пакет шаблонов: Mx210Templates_v3.5.11.6.package (https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/01_Components/Mx210Templates_v3.5.11.6.package)

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