Opc foundation что это

Обновлено: 16.06.2024

Так нам говорит Википедия. С точки зрения АСУТП это весьма удобный протокол для обмена данными между ПЛК и чем-нибудь на верхнем уровне(да здравствует SCADA).

Однако, не всегда на проект охота заводить целую SCADA или пользоваться типовыми решениями от производителя, особенно когда требуется подружить целый зоопарк или проект делался из того, что есть под рукой, всякие бывают ситуации. И вот если у нас есть контролер, который умеет поднимать сам на себе OPC UA сервер, то нам даровано счастье.

Проблемы OPC UA библиотек.

С чем мне пришлось столкнутся, так это с фактом того, что все библиотеки, которые позволяют максимально просто и быстро работать с OPC являются платными и дают вам время на ознакомление. Так сказать пробную сессию от 30 минут до часа, после чего соединение обрубается, а вы получаете исключение.

Но у нас есть стандартная библиотека, предоставленная OPC Foundation , однако документация на нее такая, что мы будем очень долго в ней разбираться. Так что самым верным вариантом было разобраться в стандартных примерах и без изысков сделать рабочий продукт.

Разработку всего этого будем вести на Visual Studio. Первым дело нам потребуется сама библиотека. Ее можно найти в менеджере пакетов NuGet

Конфигуратор серверов

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

Для данной цели был написан «Конфигуратор серверов» на библиотеке PyQt5.

image

Принцип работы:

— создается база данных на sqlite3
— формируются таблицы для slave и master частей сервера.
— таблицы заполняются необходимыми параметрами.
— формируется скрипт запуска.

Структура каталогов:
srvconf.py – программа «Конфигуратор сервера»
db – находится файл базы данных srvDb.db.
img – файлы .jpg для кнопок
source – файлы шаблонов серверов

Для Windows будет создан файл типа start_XX.bat, для Linux файл типа start_XX.sh, где ХХ порядковый номер сервера в таблице servers.

Содержимое файла start_XX.bat:


Содержимое файла start_XX.sh для Linux:

В параметрах запуска для Linux используется xfce4-terminal, т.к. работаю в Xubuntu 17.04,
но можно указать и другой тип запуска, вроде gnome-terminal.


В примерах довольно понятно описаны параметры заполнения таблиц.

Управление на данный момент реализовано частично и только в master_dcon, поэтому используется только телесигнализация и телеизмерения. В дальнейшем думаю добавить и телеуправление.

Проблемы OPC UA библиотек.

С чем мне пришлось столкнутся, так это с фактом того, что все библиотеки, которые позволяют максимально просто и быстро работать с OPC являются платными и дают вам время на ознакомление. Так сказать пробную сессию от 30 минут до часа, после чего соединение обрубается, а вы получаете исключение.

Но у нас есть стандартная библиотека, предоставленная OPC Foundation , однако документация на нее такая, что мы будем очень долго в ней разбираться. Так что самым верным вариантом было разобраться в стандартных примерах и без изысков сделать рабочий продукт.

Разработку всего этого будем вести на Visual Studio. Первым дело нам потребуется сама библиотека. Ее можно найти в менеджере пакетов NuGet

СОДЕРЖАНИЕ

Установка библиотек

Для работы с OPC UA и modbus серверами используются Xubuntu 17.04 Desktop и Windows 8.1. В Xubuntu 17.04 уже установлены Python 2.7 и Python 3.5 по умолчанию. Выбираем Python 3.5.

Если после установки операционной системы на компьютер не были добавлены необходимые пакеты, то нужно выполнить:


Решаем проблему зависимостей:


После поставим еще необходимые библиотеки:


Для windows можно установить через pip3.exe, библиотека и примеры находятся здесь

Для запуска сервера, библиотеку нужно импортировать:


Теперь создаем OPC UA сервер.


Вот и весь код на python для запуска OPC UA. Как оказалось ничего сложного, и если теперь подключиться к запущенному серверу с помощью UA Expert, то можно увидеть иерархический список наших объектов и переменных со значениями.

Для модификации значений переменных используется функция set_value типа:


Конечно это очень примитивный пример, но в библиотеке OPC UA заложено намного больше возможностей, о которых можно прочитать здесь.

Единственное в чем не удалось разобраться, так это, как установить логин и пароль на сервер, вроде как-то посредством politics, думаю позже решу эту проблему.

В предыдущих нескольких статьях, мною были описаны возможности применения протокола modbus для создания собственной Scada системы на базе python. В этот раз хочется поделиться опытом построения системы опроса подчиненных устройств с использованием ОРС технологии.
Недостатки OPC серверов в том, что их можно использовать только в операционных системах семейства Microsoft Windows (как правило они платные), а об устройствах использующих ОС Linux можно было забыть.

Но со временем была создана спецификация OPC Unified Architecture (англ. Унифицированная архитектура OPC), что дало возможность использовать данную технологию передачи данных на иных операционных системах отличных от Windows. Это касается и встраиваемых систем, где может быть запущен полноценный Linux.

Подробнее можно прочитать здесь.

Например, на одноплатном компьютере Raspberry Pi можно запустить одновременно несколько различных OPC UA серверов для опроса терминальных устройств, счетчиков, датчиков и т.д., при этом система будет работать вполне стабильно.

image

Стандарт OPC UA

OPC UA (Unified Architecture) – это современный стандарт, описывающий передачу данных в промышленных сетях. Он обеспечивает защищенную и надежную коммуникацию между устройствами, являясь при этом аппаратно- и платформо-независимым, что позволяет обеспечить обмен данными между устройствами с разными операционными системами.

Сильными сторонами OPC UA является объектно-ориентированная информационная модель, которая позволяет «просматривать» данные (в стиле web-браузера), и сервис ориентированная архитектура (SOA). Если раньше приходилось использовать несколько OPC серверов: OPC DA для данных в реальном времени, OPC HDA для истории и OPC AE для событий, то теперь все это и многое другое доступно в одном стандарте OPC UA. Вместо дерева тегов, теперь вводится понятие узлов или объектов. Каждый узел включает в себя переменные, методы и другие структуры данных реального объекта.



Реализована обратная совместимость с OPC DA через специальную оболочку (wrapper) и proxy-модуль. Для передачи данных через маршрутизаторы и межсетевые экраны OPC DA требовал использовать промежуточное ПО, OPC UA же работает без прослойки. Спецификация OPC UA включает в себя несколько частей, которые описывают логику работы серверов и клиентов. Детальная версия спецификации доступна в стандарте IEC 62541.

Просто о стандартах OPC DA и OPC UA

Просто о стандартах OPC DA и OPC UA

OPC (аббр. от англ. Open Platform Communications, ранее англ. OLE for Process Control) – это набор программных технологий, которые предоставляют единый интерфейс для управления различными устройствами и обмена данными. Спецификации OPC были разработаны международной некоммерческой организацией OPC Foundation, которую создали в 1994 году ведущие производители средств промышленной автоматизации. Целью создания OPC было предоставить инженерам универсальный интерфейс для управления различными устройствами.

Реализовав поддержку OPC-клиента, разработчики SCADA систем избавились от необходимости поддерживать сотни драйверов для различных устройств, а производители оборудования, добавив OPC-сервер, обрели уверенность в том, что их продукт может применяться пользователями любых SCADA систем.

Технология OPC включает несколько стандартов, которые описывают набор функций определенного назначения. Текущие стандарты:

Самое широкое распространение получил стандарт OPC DA, но у него есть существенный недостаток. Во времена его разработки он был построен на современных Windows-технологиях: OLE, ActiveX, COM/DCOM, но с тех пор в отрасли прошли изменения и большое распространение получили другие ОС и технологии. Поэтому технологию OPC сделали платформонезависимой и разработали стандарт OPC UA (Unified Architecture) на открытых кроссплатформенных технологиях.

Применение OPC

Обычно технологию OPC применяют для обмена данными между контроллерами и SCADA системой, но также возможна организация сложных систем на разных уровнях АСУ ТП.

OPC состоит из двух частей: OPC клиента и OPC сервера. ПО OPC сервера через драйверы устройств по полевым шинам опрашивает различные устройства. ПО OPC клиента обычно встроено в SCADA систему и предназначено для получения данных с OPC сервера.

На предприятии можно выделить несколько уровней АСУ:

Каждый из этих уровней может обслуживаться OPC-сервером, поставляя данные OPC-клиенту на более высоком уровне или соседнему устройству.


Минусы применения OPC

Конечно у любой хорошей технологии есть свои минусы. Например, разработчики SCADA Trace Mode 6 из компании АдАстра Рисерч Груп, выделяют типовые ошибки в проектировании АСУ ТП.

К ошибкам можно отнести:

Например, вы узнали о хорошей технологии OPC и стремитесь заменить все протоколы нижнего уровня только на OPC. Но конвертация промышленных протоколов Modbus, Profibus и любых других на ПК будет занимать дополнительное время и тратить ресурсы компьютера. Тесты показали, что SCADA система работает в 2 раза быстрее напрямую с промышленными протоколами, чем через промежуточный OPC сервер. Конечно, есть системы где процесс не нужно контролировать в реальном времени, но это нужно учитывать при проектировании АСУ ТП.

К недостаткам также можно отнести сложность настройки OPC сервера и необходимость ручной привязки тысячи тегов. Кроме того, OPC-сервер не всегда поставляется бесплатно и чаще всего на каждый ПК придется покупать отдельную лицензию.

Если система отправляет данные через Интернет в Облако, то наличие слабого шифрования может стать потенциальной уязвимостью и целью для атак хакеров, что ставит под сомнение безопасность всей АСУ ТП.

Стандарты и группы спецификаций OPC

Доступ к данным OPC Эта группа стандартов предоставляет спецификации для передачи данных в реальном времени от устройств сбора данных, таких как ПЛК, на устройства отображения и взаимодействия, такие как человеко-машинные интерфейсы (HMI). Спецификации ориентированы на непрерывную передачу данных. Сигналы тревоги и события OPC Стандарты передачи данных о тревогах и событиях по запросу, в отличие от непрерывной связи в группе доступа к данным OPC OPC Batch Стандарты для удовлетворения потребностей пакетных процессов Обмен данными OPC Эта группа стандартов предназначена для обмена данными между серверами в промышленных сетях. Стандарты также касаются удаленной настройки, диагностики, мониторинга и управления. Доступ к историческим данным OPC Стандарты передачи сохраненных данных Безопасность OPC Стандарты для управления доступом клиентов к устройствам и системам, совместимым с OPC OPC XML-DA Основывается на спецификациях доступа к данным OPC для передачи данных в XML. Включает SOAP и веб-службы Комплексные данные OPC Стандарты для определения передачи сложных типов данных, таких как двоичные данные и XML-документы Команды OPC Стандарты передачи команд управления устройствам и системам Унифицированная архитектура OPC Совершенно новый набор стандартов, который включает в себя все функции вышеперечисленных стандартов (и многое другое), но делает это с помощью кроссплатформенных веб-сервисов и других современных технологий. Сертификация OPC У OPC Foundation есть хорошо налаженный процесс сертификации. Организация OPC Foundation называет это программой расширенной сертификации OPC.

Организация OPC Foundation расширила диапазон сертификации продуктов OPC, чтобы удовлетворить растущий спрос на надежную функциональность и гарантированную совместимость. Самостоятельная сертификация с использованием ComplianceTestTool (CTT) и участие в семинаре по совместимости (IOP) теперь усилены сертификацией в независимом испытательном центре. В соответствии со спецификацией тестирования здесь тестируется не только интерфейс доступа к данным OPC (DA2 / 3), но также проверяется общее поведение продукта в реальной среде. Сертификация OPC

Фонд OPC - OPC Foundation

OPC Foundation (OPC официально известный как связывание и внедрение объектов для Process Control) представляет собой промышленный консорциум , который создает и поддерживает стандарты открытых связанности автоматизации промышленных устройств и систем, такие как промышленные системы управления и контроль процесса в целом. В OPC стандартов указать передачу данных промышленных процессов, аварийные сигналов и событий, исторических данных и пакетной обработка данных между датчиками , приборами , контроллерами , системами программного обеспечения и устройствами оповещения .

OPC Foundation начал свою деятельность в 1994 году как целевая группа, состоящая из пяти поставщиков промышленной автоматизации ( Fisher-Rosemount , Rockwell Software, Opto 22 , Intellution и Intuitive Technology), с целью создания базовой OLE для спецификации управления процессами . OLE - это технология, разработанная корпорацией Microsoft для операционной системы MS Windows . Целевая группа выпустила стандарт OPC в августе 1996 года. Организация OPC Foundation была уполномочена продолжать разработку спецификаций взаимодействия и включает производителей и пользователей устройств, инструментов, контроллеров, программного обеспечения и корпоративных систем.

OPC Foundation сотрудничает с другими организациями, такими как MTConnect , которые разделяют схожие миссии.

OPC UA для работы в реальном времени


Технология Ethernet с TSN дополняет существующие средства Ethernet в том, что касается обеспечения качества обслуживания трафика (QoS), включая выделение полосы пропускания, синхронизацию, гарантию низких значений задержки и обеспечения резервирования. Данные, которые передают различные устройства по Ethernet сети, представляют собой потоки. Ethernet коммутаторы с TSN позволяют выделить для каждого потока свою полосу пропускания и обеспечить его передачу в реальном времени. Несколько потоков можно объединить (это называется сетевой конвергенцией) и организовать их передачу по одной сети в режиме реального времени. Получается без технологии TSN по одной Ethernet сети можно передавать только один протокол реального времени, а с TSN несколько.

Объединение технологий OPC UA over TSN позволяет организовать коммуникацию между оборудованием от разных производителей и гарантировать непрерывное получение данных в режиме реального времени.

OPC Foundation планирует использовать OPC UA не только для передачи данных между контроллерами и SCADA системой, но и на полевом уровне от датчиков и IoT устройств к контроллерам, а также от локальных систем в Облако. Для этого планируют разбить стандарт OPC UA на 4 части в зависимости от производительности устройства и необходимых ему возможностей.

Пример OPC UA сервера

Примером OPC UA сервера может стать набор ПО MX-AOPC UA Suite от компании MOXA. В MX-AOPC UA Suite входит 3 программы:

В первую очередь MX-AOPC UA Server ориентирован на модули ввода-вывода MOXA, т.к. там реализована функция Active Tag, но также поддерживается подключение сторонних устройств по протоколам Modbus RTU и Modbus TCP. ФункцияActive Tagпозволяет обновлять состояние каналов сразу после их изменения, не дожидаясь команды со стороны сервера.

MX-AOPC UA Logger позволяет отправлять данные в Облако Microsoft Azure и базы данных Microsoft SQL Server, MySQL, Oracle, Microsoft Office 2003 Access или Excel через ODBC.

В MX-AOPC UA реализована защита данных через шифрование ключом Basic128Rsa15 и подтверждение сертификатом X509.

Работа OPC DA сервера

OPC DA сервер обеспечивает обмен данными (запись и чтение) между клиентской программой (обычно SCADA системой) и конечными устройствами. Данные в OPC представляют собой переменную Тег с некоторыми свойствами. Переменная может быть любого типа, допустимого в OLE: различные целые и вещественные типы, логический тип, строковый, дата, массивом и т. д. Свойства могут быть обязательными, рекомендуемыми и пользовательскими.

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

Для чтения данных из ОРС сервера можно использовать различные режимы:

Клиент получает данные от ОРС сервера либо из буфера, либо сразу из конечного устройства. Чтение из буфера выполняется быстрее, но данные в нем могут устареть к моменту чтения. ОРС сервер периодически обновляет данные, запрашивая информацию у конечных устройств.

Примеры OPC DA сервера

Для примера возьмём SCADA систему Trace Mode 6, в которой реализована функция OPC DA сервера. Trace Mode 6 можно поставить на ПК, либо сразу на контроллер.

SCADA Trace Mode 6 может опрашивать различные модули ввода-вывода и управлять контроллерами по стандартным промышленным протоколам типа: Modbus, МЭК 60870-5-104, HART и другим. Но промышленные протоколы не предназначены для обмена данными между SCADA и ERP, MES системами. Тут придет на помощь стандарт OPC DA, который позволит собрать различные данные с исполнительных модулей SCADA. OPC DA сервер для получения данных с Trace Mode доступен как отдельный модуль, так и в составе модулей OPC МРВ+ или OPC ДокМРВ+.

Также Trace Mode 6 может выступать в качестве OPC клиента и получать данные с OPC DA серверов различных производителей. Например, есть видео урок подключения Trace Mode 6 к NAPOPC DA Server – это OPC DA сервер от компании ICP DAS.

NAPOPC DA Server – это бесплатный OPC DA сервер для опроса модулей ввода-вывода ICP DAS. Его можно установить на ПК, либо прямо контроллеры ICP DAS с ОС:

NAPOPC DA Server позволяет опрашивать модули: I-7000, M-7000, ET-7000, I-8K, I-87K и корзины RU-87Pn.

Читайте также: