Виртуальный ПЛК – следующий шаг в цифровой трансформации архитектур автоматизации
Приводим статью Дэвида Хамфри (David Humphrey) – директора по исследованиям аналитического агентства ARC Europe, в которой рассматривается появление программно-определяемой автоматизации на уровне контроллера и ее влияние на то, как АСУ ТП будут проектироваться, развертываться и управляться в будущем. Конкретно речь идет о виртуальных ПЛК (vPLC) – программных средств, эмулирующих функции физических программируемых логических контроллеров.
Информационные технологии оказывают влияние на системы промышленной автоматизации с момента появления Индустрии 4.0 более десяти лет назад. Эта инициатива показала ценности и преимуществам использования подобных ИТ архитектур, например, в процессах непрерывной оптимизации. Она также создала основанное на данных видение будущего, в котором продукты и производственные процессы моделируются и тестируются с использованием цифровых двойников. «ИТ-фикация» архитектур автоматизации началась с промышленных сетей на основе Ethernet и привела к слиянию на производстве классической автоматизации с миром ИТ. Эта тенденция продолжается, и сейчас мы наблюдаем миграцию управления со специализированного оборудования в управляемую ИТ-среду.
Базовые положения:
Виртуальный ПЛК (vPLC) не заменит полностью классические ПЛК (PLC). Они будут сосуществовать, поскольку пользователи сами решают, какое решение лучше и где его развернуть.
В программной среде vPLC дает множество преимуществ по сравнению с классическим PLC в таких категориях, как простота развертывания, управляемость, масштабируемость и гибкость. Однако эти преимущества будут реализованы только тогда, когда пользователи перейдут на действительно IT-подобные архитектуры и обучат свой персонал проектированию и эксплуатации.
vPLC – это всего лишь часть комплексного решения для архитектуры автоматизации, которая также включает инфраструктуру, приложения и сторонние компоненты.
От программного к виртуальному ПЛК
vPLC приобретается и загружается как приложение, а затем устанавливается и интегрируется в периферийную среду. Обычно производители ПЛК оставляют выбор оборудования для хостинга за пользователем, но предоставляют список справочного оборудования. В остальном новый vPLC ничем не отличается по функциональности от классических ПЛК.
Концепция, определяемая программным обеспечением: решения станут предоставляться в виде ПО и будут работать на стандартизированном оборудовании.
Все началось с центров обработки данных
Центры обработки данных (ЦОД) были пионерами виртуализации. До виртуализации ЦОДы состояли из выделенных функциональных серверов, на которых работало одно приложение (база данных, электронная почта, файлообмен, CRM, ERP). Каждый сервер должен был администрироваться, настраиваться и масштабироваться индивидуально для поддержки максимального спроса, предъявляемого к его приложению или услуге. Виртуализация значительно сократила количество требуемых физических серверов, снизила потребление энергии и обеспечила лучшую видимость и управляемость ИТ-операций. Виртуализация серверов была первым шагом к сегодняшнему программно-определяемому центру обработки данных и инфраструктуре облачных вычислений.
Технология промышленной автоматизации следует по схожему пути. Для решений автоматизации эта трансформация означает консолидацию нескольких функций, таких как визуализация, управление производством или контроль партий товара, в виртуальных машинах, работающих на общей аппаратной и программной платформе (производственном сервере). В то время как электромеханические устройства, такие как датчики, приводы и двигатели, остаются на машине, традиционная функция ПЛК, установленного в щите автоматики, теперь виртуализирована в контейнере и развернута на сервере завода, рядом с другим программным обеспечением. Для рабочего в цеху ежедневная функция системы автоматизации должна оставаться прежней, но обслуживающему персоналу, возможно, придется освоить новые навыки для решения эксплуатационных проблем.
Как виртуальные ПЛК изменят автоматизацию?
Концепция виртуального ПЛК поднимает множество вопросов:
Является ли vPLC прямой заменой классического ПЛК?
Какова производительность?
Какие приложения останутся областью классического ПЛК?
Какие новые возможности создает vPLC?
Ниже приведены описания потенциальных преимуществ и предостережений vPLC.
Виртуальное развертывание
vPLC приобретается в магазине приложений, загружается и затем развертывается в контейнере на промышленной периферии. Платформы периферии обычно поддерживают приложения и устройства из постоянно растущей экосистемы продуктов и решений, в том числе от третьих лиц. Специализированные платформы предлагают инструменты для развертывания и мониторинга производительности активов и служб автоматизации, которые позволяют приложениям и устройствам легко взаимодействовать друг с другом, сохраняя при этом небольшой размер.
Развертывание для конечных пользователей
В то время как традиционные ПЛК развертываются вручную, часто с параметрами, также установленными вручную, vPLC развертываются как цифровые активы посредством «оркестровки», т.е. процесса автоматической настройки, предоставления и управления активами с использованием обычных ИТ-инструментов. После освоения определенных ИТ-навыков инженеры по автоматизации могут развертывать и контролировать целые парки контроллеров на машинах, линиях и целых заводах в смешанной конфигурации программно-определяемых и физических устройств. Крупный завод сегодня может включать несколько сотен ПЛК, поэтому потенциальная экономия средств, возможная при централизованном управлении активами автоматизации, огромна.
Развертывание для машиностроителей
Хотя большинство производителей предпочли бы поставлять устройства с идентичными конфигурациями и программами ПЛК, в реальности даже стандартные контроллеры часто модифицируются для удовлетворения требований клиентов. vPLC предлагает производителям несколько преимуществ: в то время как классическое оборудование ПЛК предлагается в разных форм-факторах и мощностях, vPLC поставляется только в одной «модели», которую можно масштабировать для соответствия требованиям каждого устройства.
Снижение капитальных затрат
vPLC работает на сервере, и пользователи могут сократить капитальные затраты, если несколько vPLC установлены на одном хост-устройстве. Выбор хостингового оборудования остается за пользователем, что возлагает на него ответственность за обеспечение соответствия требованиям приложений. Но сколько vPLC можно установить на сервере и каковы ограничения? Пользователи рекомендуют следующее: вычислительный кластер из 10 – 20-ти vPLC на сервер является реалистичным, но это зависит от того, какие функции выполняют vPLC. Жесткое управление движением с детерминированной производительностью – это испытание на прочность ПЛК. Виртуальный ПЛК выполняет стандартные задачи управления движением также, как и его аппаратные собратья, но для расширенного управления движением (координация нескольких сервоосей) производители рекомендуют применять классический PLC и использование выделенного технологического модуля (T-CPU).
Масштабируемость и гибкость
vPLC делают системы автоматизации более гибкими и масштабируемыми. Размер системы можно увеличивать или уменьшать, просто изменяя количество используемых экземпляров виртуальных ПЛК, а не устанавливая или удаляя физическое оборудование. Пользователи, которые платят только за контроллеры, используемые в данный момент – весьма привлекательная модель для производителей.
Управление устройствами и приложениями
Виртуализированные системы «оркестрируются» – это означает, что приложения и устройства могут быть быстро развернуты с помощью автоматизированных задач по настройке. Это позволяет эффективно развертывать, контролировать и управлять целыми парками программно-определяемых систем автоматизации, интеллектуальных устройств и приложений с использованием общих инструментов.
Поддержка прежних версий
Производители вложили огромные суммы в разработку кода ПЛК, поэтому неслучайно vPLC обычно поддерживают устаревший код и структуры данных, позволяя пользователям использовать свою существующую интеллектуальную собственность и знакомые инженерные инструменты. (Например, Simatic S7-1500V настраивается так же, как традиционный ПЛК). Это также работает в обратном направлении: пользователи могут легко переключиться на классический ПЛК, если это необходимо с тем, чтобы снизить риск изменений и осуществлять пошаговое развертывание.
Более высокая эффективность
Виртуальный ПЛК развертывается в промышленной среде – пространстве, где новые и устаревшие системы автоматизации интегрируются в ИТ-инфраструктуру. vPLC работает в среде, в которой приложения и устройства могут контролироваться централизованно, и которая способствует открытому обмену данных. Например, пользователи могут управлять и обслуживать производственное оборудование с помощью аналитических данных, которые помогают оптимизировать процессы и даже предсказать остановки и поломки до того, как они произойдут (предикативная аналитика). Эти возможности могут быть дополнительно расширены другими приложениями, такими как мониторинг, работающими на той же периферийной платформе.
Расходы на закупку и жизненный цикл
Является ли система автоматизации, использующая vPLC, менее дорогой в приобретении, чем традиционная система автоматизации? Как затраты на жизненный цикл сравниваются с затратами на традиционную систему PLC? Пока еще не решен вопрос о сравнении стоимости виртуального и классического PLC. Хотя vPLC по-прежнему требует аппаратного обеспечения для работы, пользователи могут развертывать несколько экземпляров vPLC на одном сервере, что сокращает общее количество устройств и экономит место в шкафу автоматики. Однако vPLC просто заменяет центральный процессор системы автоматизации. Модули ввода-вывода, датчики, исполнительные механизмы и панели оператора по-прежнему необходимы, и они могут составлять большую часть общей стоимости системы. Дополнительная экономия средств может быть достигнута за счет снижения затрат на проектирование с помощью подхода DevOps к созданию ПО, который сокращает время разработки, обеспечивая при этом качество и согласованность кода.
Заключение
В то время как виртуальный ПЛК является относительно новый продуктом на достаточно зрелом рынке дискретного управления, появление виртуально развернутого контроллера является частью более широкой картины в русле цифровой трансформации. По мере появления новых вариантов использования vPLC бизнес-кейс для систем автоматизации станет более убедительным.
Виртуальный ПЛК следует по давно устоявшемуся пути в области информационных технологий: «переносить hard в soft на столько, насколько это возможно», более того применяет этот принцип к критическому управлению, осуществляемому в режиме реального времени.
Цель vPLC заключается не в замене классического ПЛК, а в развертывании и управлении функциями ПЛК в среде, ориентированной на данные, со всеми преимуществами современных ИТ-инструментов.
Материал подготовлен Московским заводом тепловой автоматики.
Программирование СПК107. Журнал аварий
Приветствую всех. Эта статья будет посвящена дистрибутиву CoDeSyS 3.5 SP17 Pacth 3 и панельному контроллеру ОВЕН СПК107.
Как сделать журнал аварий?
Аварии. Начало
Аварии бывают разные - предупреждение, аварии и сообщения. Ну смысл такой, что их нужно где-то отображать и фиксировать для своевременного реагирования персонала на внештатную ситуацию.
В CoDeSyS 3.5 это достаточно глубоко продумано. Создаем проект. И добавляем в дереве проектов менеджер Аварий.
Добавляем Конфигурацию тревог.
Error, Info, Warning - это у нас классы, где мы настраиваем цвет сработанной аварии, цвет квитирования и цвет отмеченной аварии. и, соответственно шрифт текста.
AlarmStorage - это настройки хранилища, где будем архивировать аварии.
После этого добавляем группу тревог и список сообщений.
Получаем вот такой список элементов.
Настройки Конфигуратора и вывод на экран
Настраиваем классы аварий, цвет, шрифт, действия, способ квитирования.
В списке текстов пишем названия сообщений - под каждую переменную своё название. ID - это номер строки.
Дальше настраиваем группы аварий, каждая со своей переменной, сообщением и способом квитирования.
Вот так выглядит сама настройка. Можно выбрать разные способы наблюдений.
Можно по дискретному сигналу, можно по верхней и нижней границе, можно за пределы, можно посередине, можно по изменению, можно по событию. Логика настраивается.
Далее добавляем визуализацию, либо баннер либо таблицу.
Мне удобнее всего в виде таблицы. Её можно очень гибко настроить. Шапку, столбцы, толщина столбца, шрифт ну и т.п.
Можно сделать несколько групп и разные аварии, можно делать сообщения и аварии в отдельных таблицах. Кому как надо.
Это готовые кнопки управления панелью алармов.
Вот так выглядит в одном из рабочих проектов. Там требовалось сделать просто сообщения.
Пишите комменты, как делаете вы?
Счётчики ПЛК c CODESYS: CTU, CTD и CTUD
ПЛК имеют счётчик с увеличением CTU, счётчик с уменьшением CTD и реверсивный счётчик CTUD. Счётчик увеличивает или уменьшает текущее значение, когда вход счётчика изменяется с «ложь» на «истина» или с ВЫКЛ на ВКЛ.
Каждое изменение входного сигнала счётчика увеличивает или уменьшает текущее значение на 1. Уставка счётчика — это числовое значение, определяющее диапазон счётчика. Счётчики используются для подсчёта изменений входных битов. Диапазон подсчитываемых битов определяется уставкой. Диапазон счётчика фиксированный.
Счётчик с увеличением (Up Counter) CTU в ПЛК
Счётчик с увеличением — это инкрементный счётчик. Когда вход счётчика изменяется с «ложь» на «истина», счётчик увеличивается на 1 до достижения установленного значения. Как только счётчик достигает установленного значения, выход счётчика Q включается. Ниже приведены входы и выходы для счётчика с увеличением:
Входы счётчика с увеличением:
CU: вход счётчика с увеличением, тип данных bool. Каждое изменение CU увеличивает счётчик на 1.
Reset: вход сброса счётчика. Когда Reset равен «истина», счётчик сбрасывается.
PV: установленное значение счётчика. Максимальное значение счётчика для подсчёта битов.
Выходы счётчика:
Q: выходной бит счётчика. Состояние Q становится «истина», когда текущее значение счётчика (CV) равно или больше установленного значения.
CV: выход счётчика. Это текущее значение счётчика.
Выше приведен пример счётчика с увеличением в ПЛК. Каждый нарастающий фронт CU увеличивает счётчик на 1. Когда значение счётчика (CV) равно или больше установленного значения, выход счётчика (Q) включается. Счётчик с увеличением сбрасывает текущее значение (CV) до нуля, если вход сброса счётчика включен. Текущее значение счётчика продолжает увеличиваться, даже если выход счётчика равен «истина».
Счётчик с уменьшением (Down Counter) CTD в ПЛК
CTD — это счётчик с уменьшением в ПЛК. При каждом нарастающем фронте счётчика с уменьшением значение счётчика уменьшается на 1. При инициализации счётчика или первом запуске установленное значение счётчика не задаётся, пока вход загрузки не станет «ложь», поэтому установите вход загрузки в «истина», чтобы задать установленное значение. Когда вход загрузки включен, установленное значение счётчика задаётся, и каждое изменение входа счётчика уменьшает значение счётчика на 1. Ниже приведены входы и выходы счётчика с уменьшением:
Входы счётчика с уменьшением:
CD: вход счётчика с уменьшением, тип данных bool. Каждое изменение CD уменьшает счётчик на 1.
LOAD: когда LOAD установлен в «истина», устанавливается предустановленное значение счётчика. В противном случае счётчик не уменьшается.
PV: установленное значение счётчика. Установленное значение счётчика задаётся, когда LOAD равен «истина».
Выходы счётчика:
Q: выходной бит счётчика. Состояние Q становится «истина», когда текущее значение счётчика (CV) равно нулю.
CV: выход счётчика. Это текущее значение счётчика.
Выше приведен пример счётчика с уменьшением в ПЛК. Установите LOAD в «истина», чтобы установить предустановленное значение счётчика, затем установите LOAD в «ложь». Если LOAD равен «истина» и вход счётчика (CD) изменяется с «ложь» на «истина», то текущее значение счётчика остаётся неизменным, поэтому всегда устанавливайте значение LOAD в «ложь», если установлено предустановленное значение счётчика.
Если значение счётчика установлено и вход LOAD равен «ложь», то каждый нарастающий фронт входа CD счётчика уменьшает значение CV счётчика на 1 до тех пор, пока значение счётчика не достигнет нуля. Как только значение счётчика становится равным нулю, выход счётчика Q устанавливается в «истина».
Реверсивный счётчик (Up/Down Counter) CTUD в ПЛК
CTUD — это инструкция реверсивного счётчика в ПЛК. CTUD работает как счётчик с увеличением и уменьшением при выборе соответствующего входа CTUD. Для счётчика с увеличением CU устанавливается в «истина», а все остальные битовые входы устанавливаются в «ложь».
Для счётчика с уменьшением бит CD включается и устанавливается предустановленное значение. CTUD — это комбинация счётчика с увеличением и уменьшением, он работает как счётчик вверх или вниз. Каждый нарастающий фронт входа CU увеличивает счётчик на 1, а каждый нарастающий фронт CD уменьшает значение счётчика на 1.
Выше приведен пример реверсивного счётчика в ПЛК. Все входы и выходы представляют собой комбинацию входов и выходов счётчика с увеличением и уменьшением. Реверсивный счётчик работает как счётчик с увеличением, если CD, LOAD, Reset установлены в «ложь», и вход счётчика CU изменяется с «ложь» на «истина», то счётчик увеличивает значение на 1. QU — это выход счётчика с увеличением, он устанавливается, когда счётчик (CV) больше установленного значения счётчика.
Реверсивный счётчик работает как счётчик с уменьшением, когда CU, RESET и LOAD равны «ложь», и установлено предустановленное значение или текущее значение счётчика больше нуля. Каждый нарастающий фронт уменьшает значение счётчика на 1. QD — это выход счётчика с уменьшением, он включается, когда текущее значение счётчика равно нулю.
Codesys 2.3. Связь ОВЕН ПЛК100 с ПЧВ
Приветствую. Принципы связи одни и те же. У любого производителя ПЛК и преобразователя частоты. У ОВЕН просто есть примеры реализации. Если их поймёте, всё остальное не составит труда.
Сторона Преобразователя частоты
В принципе частотник должен работать уже "из коробки".
Важно найти параметры настроек сети по интерфейсу RS-485. И, если есть настройки управления по коммуникациям, настроить их.
Пример ПЧВ.
Открываем мануал, находим раздел параметры связи.
Настраиваем в соответствии с ваши задачами. Тут сразу можно заметить адресацию нужных регистров.
После этого открываем раздел Modbus.
В каждом ПЧ есть два главных командных слова, всегда. На запись, и на чтение.
Слово записи. Команда управления ПЧ.
Слово чтение - состояние ПЧ.
Все разложено по битам, которое преобразуется в слово.
Все остальное - это регистры типа WORD. Опрашиваются и записываются соответствующими функциями 03 (чтение) и 06 (запись).
Не забываем настроить откуда пуск.
И откуда задание частоты.
Сторона ПЛК
На всех ПЛК практически всё однотипно. Надо знать карту регистров и по каким адресам "Просить и отдавать".
Нашёл пример в Codesys 2.3
Это мы отдаем команды, com_word_55 присваиваем адрес с мануала.(2001)
Это получаем. Адрес слова с мануала.(2002)
Вся другая адресация соответствует коду параметра.
На этом я всё. Пишите комментарии. Ставьте лайки.
Новая менюшка в ОВЕН ПР225
ОВЕНовцы внесли изменения в проект #OwenLogic , в новом программируемом реле ПР225 можно добавлять и править эргономичное и удобное меню.
Такая прикольная фича, уже опробовал, правда пока в виртуальном режиме. В программе можно запустить симулятор экранов.
Как сделать меню?
Открываем проект, создаем несколько экранов. ПО можно скачать бесплатно на официальном сайте ОВЕН.
Я делал так, создавал отдельный экран "Менюшка" по длинному нажатию кнопки вызывается отдельное окно.
Где мы добавляем отдельный элемент "Меню".
Два раза кликаем, добавляем строчки и присваиваем соответствующие экраны. Пишем текст. И если надо будет скрывать и делать секретные разделы, добавляем переменную в поле видимость.
В других экранах присваиваем на кнопки, чтобы вызвать данное меню.

И получаем результат.
На этом заканчиваю, всем пока-пока. Пишите комментарии. Если хотите добавить свои проекты в качестве рекламы, можете бесплатно это сделать в каталоге проектов.
Программирование СПК107. Просто про таблицу
Приветствую всех. Эта статья будет посвящена дистрибутиву CoDeSyS 3.5 SP17 Pacth 3 и панельному контроллеру ОВЕН СПК107.
Как быстро освоить элемент таблицы?
Внутренний код Codesys 3.5
Для того, чтобы нам формировать таблицу и выдавать показания нужно подготовить все данные для работы с таблицей.
Создаем структуру данных. Дату и значение в формате STRING. Почему именно текстовый, чтобы в ячейках таблицы были пустые клетки, в противном случае будут нулевые значения. В своём проекте я делал REAL.
Далее назначаем массив данных (наши столбцы и строчки) ArrTable. В моей таблице достаточно 10 строк, если нужно больше, то указываем.
Всё остальное, можно посмотреть в примере. На скриншоте написаны комменты, дублировать тогда я не буду.
После этого мы создаем два столбца - это дата и время.
Когда жмём запись bTrigger, мы заполняем таблицы и создаём столбцы.
Визуализация элемента таблицы
Вытаскиваем элемент таблица в поле.
Присваиваем нашу переменную в поле Массив Данных.
Указываем ниже размер нашего массива.
В этих полях настраиваем наименование, количество, цвет, толщину столбцов.
Если нужно вводит данные в ячейки таблицы то ставим галочку Создать шаблон. И этот шаблон будет работать как обычный элемент прямоугольник и попадают те же свойства. Можно назначить аварийные цвета.
Жмем OnMouseClick, и настраиваем ту же переменную.
Вот так вводятся настройки конфигураций.

Конечный результат.
Если статья была полезна пишите комментарии и ставьте лайки.
С уважением, Гридин Семён.