г. Москва, ул. Азовская, 14
+7 (495) 310-97-15
Пн-пт: с 9.00 до 18.00
Заказать звонок
Обратный звонок
Ваше имя *
Ваш телефон *
Ваш Email *
Перезвоните мне
Отлаживаем проекты с ПЛК200 Овен

ПЛК210

Об особенностях программирования контроллеров ОВЕН на базе IDE Codesys 3.5


Цитата с форума ОВЕН – «CODESYS V3.5 – достаточно сложный программный продукт, и довольно часто у пользователей возникают вопросы по работе с ним».

Так ли все непонятно и сложно? Пробуем разобраться вместе.

 ПЛК200 с модулями

Цель статьи: поделиться опытом работы с данным продуктом, помочь новым пользователям избежать наступления на те «грабли», на которые я сам наступал. Приведу ниже полезные советы по настройке. Возможно, это спасет кому-то немного времени.

Объектов разных на СПК107, ПЛК200, ПЛК210 сдал более 30 и уже могу сформировать некое пусть субъективное, но суждение, основанное на личном опыте внедрения данных ПЛК.
Если вы не согласны с какими-то тезисами, оставьте комментарий внизу страницы, обязательно опубликую.

Насколько данные контроллеры мощные и для чего они подходят (частное и субъективное мнение):
СПК107 (М01) хорошо подходит по своим данным для реализации небольшой системы автоматизации, состоящей примерно из пяти-шести приточно-вытяжных систем. Это примерно 15 модулей ввода-вывода по 8 каналов. С записью нарушений в журнал аварий и трендами технологического процесса, с выводом данных в облако OwenCloud. Больше нагружать не советую, так как панель при загрузке процессора и памяти выше 70% начнет вести себя менее предсказуемо. Грузить сложной графикой или большим количеством быстродействующих алгоритмов не советую. Столкнетесь с зависаниями процесса или отказами интерфейсов.

ПЛК200 (М02) хорошо подходит для средних систем автоматизации (тепловых пунктов и прочего) с количеством модулей ввода вывода до 20 единиц. Подвесить модулей можно и больше, но у меня уже при этом количестве загрузка процессора подходила до 100% (была подвешена по OPC UA панель визуализации DELTA DOP-110WS) . Web-интерфейс в моем случае не прошел, пришлось удалить. Боролся за оптимизацию контроллера и убирал все «лишнее».
В дальнейшем пришлось отказаться от OPC UA и загрузка процессора пришла в норму.

ПЛК210 (М02) видится лучшим из всей линейки за счет характеристик памяти и процессора. Хорошо подходит для систем емкостью до 40 модулей ввода вывода. Сдавал на них довольно крупные системы, с большим составом PID регуляторов и прочей довольно ветвистой логикой. 

Важно заметить, что до конца 2023 года у данного направления был весьма динамичный рост. Прошивки контроллеров, смена сервиспаков у Codesys 3.5 были примерно по два раза в году, что приводило к увеличению трудозатрат. Уходили старые проблемы, приходили новые.

На мой взгляд, частая смена прошивок и/или частая смена платформ не приводит к успеху интегратора, скорее, наоборот. С каждой новой версией начинаешь бороться с неизвестностью, так как не знаешь о тех сюрпризах, которые заложены в купленном тобой оборудовании. Всегда есть риски, что всплывут какие-либо очередные проблемы и невозможно будет рассчитывать на ранее накопленный опыт.

Вышеуказанные контроллеры создаются на базе предустановленной операционной системы Linux с надстройкой Realtime OS. Если Вы не являетесь активным разработчиком и/или, человеком, который хорошо понимает работу ядра данной системы, то предполагаю, что вы обязательно найдёте сложности в работе с этими устройствами.

Совет: для разработки программ под данные типы контроллеров необходимо резервировать чуть больше времени на разработку, чем вы предполагаете. Потребуется отлаживать не только программу, которая связана с технологией процесса, но и сам контроллер. Причем важно заметить, что компилятор контроллера отсеет только самые простые ошибки программиста, позволяя загрузить ПЛК с рядом довольно неприятных ошибок.
Итогом загрузки данных ошибок может явиться внезапный останов контроллера (переход в режим ИСКЛЮЧЕНИЯ). Такой режим, при котором ПЛК вроде бы работает по внешним проявлениям, но по факту он остановлен или ведет себя как остановленный.

Ниже привожу распространенные ошибки/особенности в работе с данными ПЛК, которые могут привести к переходу в режим ИСКЛЮЧЕНИЯ:

1. Аварийные сообщения без ограничений
Аварии 
Вы решили использовать вывод аварийных сообщений в системных таблицах Codesys. Тогда не забывайте выставлять ограничение. Без ограничений память используется непредсказуемо для пользователя.

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

Состав библиотек
 
В погоне за типизацией решения я часто просто копировал свой же проект, с предыдущего сданного объекта и немного настраивал его под новые таргеты и новые условия. Этот подход хорош организационно (экономит время), но и несет в себе риски затянуть в проект неиспользуемые библиотеки. Для исключения ошибок вызова приходилось удалять неиспользуемые библиотеки. Каждый раз, когда заказчик просит дополнить проект какой-то новой функцией вроде записи аварий на флешку – не спешите выполнять. Отладка всей системы с этой новой функцией может пойти совсем по плохому сценарию, если проект был уже не маленький.

3. Облако ОВЕН.
Использование интерфейса Owencloud в проекте, если вы по факту его не используете, продолжает «кушать» память, занимать ресурсы процессора.

Отключение Овенклауд
  
Сам топик Owencloud нужно отключить через опцию в свойствах.

Отключение Овенклауд
 
Задачу вызова Owencloud стоит исключить из компиляции.

4. Менеджер задач. Старайтесь выставлять такие значения циклов у задач, чтобы минимальное значения джиттера не превышало 10000, максимальное время цикла каждой из задач не превышало бы выставленное значение. Не бойтесь выставлять у задач визуализации значений до 800 мс, наблюдая, конечно на реакцию операторов.
 
Цикл контроллера

5. В веб-конфигураторе есть опция перезагрузки по исключению, однако не советую на это надеяться – к сожалению, не работает (пробовал у ПЛК200). Был случай, когда объект встал и пришлось срочно выезжать для поиска причин с этой выставленной опцией. Проще отлавливать останов контроллера какими-то сторонними средствами (мигающая лампа от DO, тикающий индикатор управления, сторонний ПЛК, способный перезагрузить ваш контроллер релейно, если отсутствует инкремент данных на диагностическом тэге).

Перезагрузка ПЛК
 
Это на практике – не работает, верить не советую.

6. Используйте опцию Debug и «утечка дескрипторов»
 
Утечка дескриптеров

Нижнее поле, если в нем значение более 100, свидетельствует об «утечке дискриптеров» или бесконтрольном росте числа текстовых файлов, связанных с операционной системой. При достижении данного значения до 1024 контроллер предсказуемо войдет в режим ИСКЛЮЧЕНИЕ. В моем случае на ПЛК210 ложилась Web-визуализация и операторы оставались без экранов (все гасло).

Утечка дескриптеров

Так выглядит «Утечка дескрипторов»


7. Журнал контроллера

Журнал ПЛК  

К сожалению, журнал может не давать однозначного ответа о возникшей проблеме, но косвенно можно понять, что здесь есть проблемы с обращением к памяти контроллера + есть проблемы по связи между панелью Delta по протоколу OPC UA (в панели был выставлен по умолчанию пароль). Сообщений может быть огромное значение, если не чистить и открыть впервые.

8. Ошибка связи с модулями ввода вывода
Решается установкой в каждом модуле и в ПЛК адреса шлюза (для модулей логически это адрес ПЛК; для ПЛК, если в сегменте сети нет роутера, можно указать адрес ближайшего модуля), установкой галочки (флага). Нужно установить опцию «Автоподключение» в настройках мастера, и таймаута сокета 50 мс.

9. Таргет визуализация
Довольно важная ошибка. Возникает, когда вы ранее разрабатывали проект для СПК107, а затем переконвертировали его (изменив таргет файл) для использования с ПЛК200 или ПЛК210. В итоге таргет визуализация остается как неработающий рудимент и портит работу контроллера. Сходу это сложно понять.

Журнал ПЛК
 
Это заметно по этой ошибке
 
10. Символьная конфигурация.
Если добавлена символьная конфигурация, но не выбрано ни одного параметра, то, скорее всего, именно это приведёт к утечке дескрипторов, так как символьную конфигурацию всегда неявно использует узел OwenCloud (известная ситуация, которую компания ОВЕН планирует поправить в прошивках 3.х).

11. Файлы журналов
Для выгрузки файлов нужно подключиться к ПЛК через WinSCP (root/owen), в папке /root/CODESYS помимо основного файла PlcLog.csv скорее всего есть другие файлы следующего вида PlcLog_x.csv. Нужно помнить, что сделать это нужно сразу после события. Через сутки эта информация будет перезатерта. Выкачивал эти файлы. Там информация максимум на двое суток, другой истории не сохраняется.

12. Крайне важной ошибкой разработчика является использование в символьной конфигурации глобальных переменных, где происходят одновременные операции на чтение и на запись. У меня была «вредная привычка» складывать все переменные как для скады (HMI), так и для опроса модулей ввода/вывода в один раздел. Это было и проще и быстрее сделать, но так делать НЕЛЬЗЯ!!! 
Нужно создавать отдельные разделы для переменных. Стараться расставлять для всех переменных права на чтение и/или на запись.
 
Стрелка «от нас» это стрелка «только чтение» со стороны HMI, в обратную «только запись», туда и обратно «чтение и запись».

Символьная конфигурация

Следует минимизировать последнее

13. Автосохранение проектов

Пустой проект
 
Иногда бывало и так, что весь дневной труд превращается в ноль. Просто антивирусу не понравилась активность внутри файла проекта Codesys и он обнулил все байты программы, разумеется, включая файл бэкапа. Это жесть. Пришлось все переделывать по памяти. Сохраняйтесь еще чаще, со скачиванием полученного результата. Удаленная работа имеет такие риски.

14. Особенности настройки панели управления DELTA по OPC UA.
В панели DELTA по умолчанию задаются "адрес" и "пароль". По умолчанию в ПЛК работает анонимный логин OPC UA, без какой-либо защиты. Кроме того, непонятно, что означает галочка (флаг) «Оптимизировать» в панели Delta.

15. По износу памяти: каждое создание загрузочного проекта выполняется во Flash-память и, соответственно, расходует ресурс. При достижении 100% возникает вероятность получить исключение и остановку проекта, если программа не сможет получить данные из какого-либо блока памяти (в силу его износа).

16. Два порта Ethernet в режиме моста у ПЛК200.
Крайне не рекомендуют объединять на ПЛК200 порты в мост, так как это приводит к критической нагрузке на процессор Именно поэтому из мастера настройки сети убрали такой вариант. По необходимости настраивайте проброс портов или статические маршруты.

https://ftp.owen.ru/CoDeSys3/99_ForumFiles/Plc210_PortForwarding.pdf

https://ftp.owen.ru/CoDeSys3/99_ForumFiles/Plc2xx_StaticRoutes.pdf


Изучаю труды Евгения Кислова

Отладка проектов важная веха при работе с контроллерами ОВЕН, потребуется и кофе и костыли и наверно велосипед и кучу душевного спокойствия.
Учтите это при закладывании дельт времени на разработку своих решений

#Отладка, #Овен, #Codesys3.5, #ПЛК210, #ПЛК200, #СПК107

1

24.04.2024

В общем после ряда ненужных исследований выяснилось следующее —— внимательно проверять имена переменных (по длине ) , а также обязательно использование оных где-нибудь в POU .Иначе вообще все переменные недоступны в Owencloud ,даже при наличии связи и полной работоспособности в общем .

12.04.2024

Спасибо, как раз собирался познакомиться с этим ПЛК
Ваш комментарий добавлен