Унифицированная архитектура OPC

Протокол компьютерной сети

Унифицированная архитектура OPC (OPC UA)
Международный стандартIEC62541, унифицированная архитектура OPC (ядро, полевой обмен данными, устройства, управление активами, сопоставление типов данных XML)
РазработаноФонд ОПК
Введено28 июля 2006 г. ; 18 лет назад (2006-07-28)
ПромышленностьОперационные технологии и информационные технологии
Совместимое оборудованиеПЛК , полевые устройства, Windows , Linux , IIOT
Веб-сайтhttps://opcfoundation.org/about/opc-technologies/opc-ua/

OPC Unified Architecture ( OPC UA ) — кроссплатформенный стандарт IEC62541 с открытым исходным кодом для обмена данными от датчиков к облачным приложениям, разработанный OPC Foundation . Отличительные характеристики: [1]

  • Стандартизированные модели данных, доступные бесплатно для более чем 60 типов промышленного оборудования, опубликованы OPC Foundation через Companion Specifications
  • Расширяемые профили безопасности, включая аутентификацию, авторизацию, шифрование и контрольные суммы
  • Расширенное управление ключами безопасности, включая X.509, токен и пароль
  • Поддержка моделей взаимодействия клиент-сервер и публикация-подписка
  • Независимый протокол связи. Определены соответствия нескольким протоколам связи, таким как TCP/IP, UDP/IP, WebSockets, AMQP и MQTT.
  • Первоначально успешно применялся в стандартизированном обмене данными с промышленным оборудованием (дискретное производство, непрерывное производство, энергетика) и системами сбора и управления данными, но теперь также используется в автоматизации зданий, весовом и кухонном оборудовании, а также в облачных приложениях.
  • Открыто – эталонные реализации с открытым исходным кодом, доступные бесплатно членам OPC Foundation, не являющимся членами, по лицензии GPL 2.0 [2]
  • Кроссплатформенность – отсутствие привязки к одной операционной системе или языку программирования
  • Сервисно-ориентированная архитектура (SOA)
  • Спецификация находится в свободном доступе на веб-сайте OPC Foundation и разделена на несколько частей для упрощения реализации, но ее необходимо прочитать только поставщикам стека OPC UA, конечные пользователи просто используют существующие коммерческие и/или открытые стеки, доступные во всех популярных языках программирования.

История

Хотя OPC UA разработан той же организацией, он существенно отличается от своего предшественника Open Platform Communications (OPC). Целью Фонда для OPC UA было обеспечить путь вперед от первоначальной модели коммуникаций OPC (а именно Microsoft Windows -только обмен процессами COM/ DCOM ), который бы лучше отвечал новым потребностям промышленной автоматизации . [3]

После более чем трех лет работы над спецификацией и еще одного года на реализацию прототипа, в 2006 году была выпущена первая версия унифицированной архитектуры. [4]

Текущая версия спецификации — 1.04 (22 ноября 2017 г. [5] ). Новая версия OPC UA теперь добавила публикацию/подписку в дополнение к инфраструктуре клиент/серверных коммуникаций.

Хотя первоначальная привязка к COM/ DCOM способствовала успешному распространению OPC , у нее было несколько недостатков:

  • Частые проблемы с настройкой DCOM;
  • Нет настраиваемых тайм-аутов;
  • Только Microsoft Windows ;
  • Более низкий уровень безопасности;
  • Отсутствие контроля над DCOM (COM/DCOM — это своего рода черный ящик, разработчики не имеют доступа к исходникам и поэтому вынуждены иметь дело с ошибками или несовершенными реализациями).

Эти недостатки, а также ряд других соображений подтолкнули к решению разработать новый и независимый стек для OPC UA, который заменяет COM/DCOM. Основные характеристики этого коммуникационного стека были:

  • Многоплатформенная реализация, включая переносимые реализации ANSI C , Java и .NET ;
  • Масштабируемость: от интеллектуальных датчиков и интеллектуальных исполнительных механизмов до мэйнфреймов;
  • Многопоточная, а также однопоточная/однозадачная работа — необходима для переноса стека на встраиваемые устройства;
  • Безопасность, основанная на новых стандартах;
  • Настраиваемые тайм-ауты для каждой службы;
  • Разделение больших датаграмм на фрагменты.

Этот стек коммуникаций отражает начало различных инноваций. Архитектура OPC UA является сервисно-ориентированной архитектурой (SOA) и основана на различных логических уровнях.

OPC Base Services — это абстрактные описания методов, которые не зависят от протокола и обеспечивают основу для функциональности OPC UA. Транспортный уровень помещает эти методы в протокол, что означает, что он сериализует/десериализует данные и передает их по сети. Для этой цели определены два протокола . Один — это двоичный протокол TCP , оптимизированный для высокой производительности, а второй — ориентированный на веб-сервисы .

Информационная модель OPC представляет собой ячеистую сеть, основанную на узлах . Эти узлы могут включать в себя любой вид метаинформации и похожи на объекты объектно-ориентированного программирования (ООП). Узел может иметь атрибуты для доступа на чтение (DA, HDA), методы, которые могут быть вызваны (Commands), и инициированные события, которые могут быть переданы (AE, DataAccess, DataChange). Узлы содержат данные процесса, а также другие типы метаданных . Пространство имен OPC содержит модель типов.

Клиентское ПО может проверять, какие профили поддерживает сервер. Это необходимо для получения информации, поддерживает ли сервер только функциональность DA или дополнительно AE, HDA и т. д. Кроме того, можно получить информацию о том, поддерживает ли сервер заданный профиль. Новые и важные функции OPC UA:

  • Поддержка избыточности
  • Heartbeat для соединений в обоих направлениях (чтобы указать, «жив» ли другой конец). Это означает, что и сервер, и клиент распознают прерывания.
  • Буферизация данных и подтверждения переданных данных. Потерянные соединения больше не приводят к потере данных. Потерянные датаграммы могут быть повторно получены.

На конференции OPC UA DevCon в октябре 2006 года в Мюнхене были представлены первые прототипы вживую. Различные серверы UA были показаны на программируемом логическом контроллере Beckhoff и встроенной тестовой плате от Euros. ПЛК Beckhoff основан на Windows XP Embedded, а встроенный контроллер основан на операционной системе реального времени Euros. Компания Embedded Labs Ltd продемонстрировала сервер OPC UA на основе собственного стека C++ UA, работающего на однокристальном микроконтроллере ARM с 64 КБ ОЗУ . В октябре 2012 года немецкий центр приложений Fraunhofer IOSB-INA и Институт промышленных информационных технологий (inIT) показали, что сервер OPC UA масштабируется до 15 КБ ОЗУ и 10 КБ ПЗУ и, следовательно, может использоваться на уровне чипа. [6]

Технические характеристики

Спецификация OPC UA является многочастной и состоит из следующих частей:

  1. Концепции
  2. Модель безопасности
  3. Модель адресного пространства
  4. Услуги
  5. Информационная модель
  6. Отображения
  7. Профили
  8. Доступ к данным
  9. Сигнализации и состояния
  10. Программы
  11. Исторический доступ
  12. Открытие и глобальные услуги
  13. Агрегаты
  14. PubSub
  15. Безопасность
  16. Государственные машины
  17. Псевдонимы Имена
  18. Безопасность на основе ролей
  19. Справочник словаря
  20. Передача файлов
  21. Подключение устройства
  22. Базовая сетевая модель
  23. Распространенные типы ссылок
  24. Планировщик


Кроме того, также доступны часть 100 Устройства и часть 200 Промышленная автоматизация. Они основаны на основном наборе спецификаций и добавляют новые общие определения, которые затем используются в различных сопутствующих спецификациях. Например, и OPC UA для Анализаторов Устройств , и OPC UA для Машин построены непосредственно на части 100.

В отличие от спецификаций на основе COM, спецификации UA не являются чистыми спецификациями приложений. Они описывают типичные внутренние механизмы UA, которые обрабатываются через стек связи и обычно представляют интерес только для тех, кто портирует стек на определенную цель или тех, кто хочет реализовать свой собственный стек UA.

Разработчики приложений OPC UA пишут код на основе API OPC UA и поэтому в основном используют документацию API. Тем не менее, части 3, 4 и 5 могут быть интересны разработчикам приложений. [7]

Стек связи UA

Архитектура приложения UA, независимо от того, является ли оно серверной или клиентской частью, структурирована по уровням.

Некоторые части соответствуют бывшим COM Proxy/Stubs и предоставляются OPC Foundation. Уровень переносимости новый; он упрощает перенос стека UA ANSI C на другие целевые платформы. Уровень порта для Windows и Linux также предоставляется OPC Foundation.

безопасность UA

Безопасность UA состоит из аутентификации и авторизации, шифрования и целостности данных с помощью подписей. Для веб-сервисов используется WS-SecureConversation , который, следовательно, совместим с .NET и другими реализациями SOAP . Для бинарного варианта алгоритмы WS-SecureConversation были соблюдены и также преобразованы в бинарный эквивалент. Это называется UA Secure Conversation.

Существует также смешанная версия, в которой код является двоичным, но транспортный уровень — SOAP. Это компромисс между эффективным двоичным кодированием и дружественной к брандмауэру передачей. Двоичное кодирование всегда требует UA Secure Conversation. Аутентификация использует исключительно сертификаты X.509 . Она полагается на разработчика приложения, чтобы выбрать, к какому хранилищу сертификатов будет привязано приложение UA. Например, можно использовать инфраструктуру открытых ключей (PKI) Active Directory .

Встроенные типы данных

Стандарт OPC UA определяет 25 встроенных типов данных:

Встроенные типы данных OPC UA
Встроенный типЭквивалент C/C++ПодробностиТип NodeId
Булевбул0/1 (ложь или правда)0 (числовой)
СБайтint8_t-128 до 127
Байтuint8_tот 0 до 255
Инт16int16_t-32768 до 32767
UInt16uint16_t0 до 65535
Int32int32_t-2147483648 по 2147483647
UInt32uint32_t0 до 4294967295
Int64int64_t-9223372036854775808 по 9223372036854775807
UInt64uint64_t0 до 18446744073709551615
ПлаватьплаватьЗначение с плавающей запятой одинарной точности IEEE (32 бита)
ДвойнойдвойнойЗначение с плавающей запятой двойной точности IEEE (64 бита)
КодСтатусаuint32_t
Нитьuint8_t* / std::string3 (строка)
ДатаВремяint64_tколичество 100-наносекундных интервалов с 1/1/1601 (UTC)
GUIDзависит от реализации16-байтовое число, используемое как уникальный идентификатор4 (GUID-идентификатор)
ByteString(то же самое, что и строка)5 (байтовая строка)
XmlElement(то же самое, что и строка)
NodeIdиндекс пространства имен и тип NodeId
ExpandedNodeId(аналогично NodeId)
КвалифицированноеИмяиндекс пространства имен и строка
ЛокализованныйТекстстрока и индикатор локали
ЧисловойДиапазонстрока (например, "0:4,1:5" для массива [0..4][1..5])
Вариант(только встроенные типы данных)
РасширениеОбъектаскаляры любого типа
ДанныеЗначениесовокупность значения, временных меток и кода статуса
Диагностическая информацияподробная информация об ошибках/диагностике

API OPC UA

API UA доступны на нескольких языках программирования. Коммерческие SDK доступны для C, C++, Java и .NET. Стек с открытым исходным кодом доступен как минимум для C, C++, Java, Javascript(node), Tcl и Python.

Реализация .NET

Реализация .NET использует ANSI C для нижних уровней и реализует остальное нативно в .NET. Это означает, что только обработка сокета и Message-Chunking интегрируется из стека ANSI C. Десериализация происходит непосредственно в .NET и, следовательно, преобразуется непосредственно в структуры и объекты .NET. Это обеспечивает лучшую производительность, чем десериализация сначала в структуру C, а затем копирование данных в структуру .NET.

Реализация Java

Разрабатывались различные стеки для Java. [ когда? ] Подобно .NET, существуют три основных варианта:

  1. Инкапсулировать весь стек ANSI C через JNI , что усложняет переносимость. Хотя стек можно переносить на разные операционные системы, его необходимо компилировать для них по отдельности. Кроме того, данные необходимо копировать на границу JNI, но при этом используется производительность C во время десериализации.
  2. Код непосредственно на сетевом уровне (аналогично текущей реализации .Net) и десериализация в Java. Это экономит одно выполнение копирования данных, но все еще зависит от стека C.
  3. Напишите собственный стек Java OPC UA. Это было отмечено как наиболее переносимое, но, по оценкам, потребует наибольших инженерных усилий для реализации. Проект Eclipse Milo предоставляет реализацию клиентской и серверной спецификации UA 1.03 на чистом Java с открытым исходным кодом. [8]
  4. Проект Apache PLC4X предоставляет реализацию клиента UA с открытым исходным кодом на чистом Java, а также описания фреймов на сетевом уровне, которые можно использовать для кросс-языковых реализаций. [9]

В качестве альтернативы есть простой вариант поддержки только протокола WebService. Для этого необходим SOAP Toolkit, поддерживающий WS-Security .

МЭК 62541

IEC 62541 [10] — стандарт унифицированной архитектуры OPC.

Обзор МЭК 62541
ИДЕНТИФИКАТОРДата выпусказаголовок
МЭК/ТР 62541-12016Унифицированная архитектура OPC – Часть 1: Обзор и концепции
МЭК/ТР 62541-22016Унифицированная архитектура OPC – Часть 2: Модель безопасности
МЭК 62541-32020Унифицированная архитектура OPC – Часть 3: Модель адресного пространства
МЭК 62541-42020Унифицированная архитектура OPC – Часть 4: Услуги
МЭК 62541-52020Унифицированная архитектура OPC – Часть 5: Информационная модель
МЭК 62541-62020Унифицированная архитектура OPC – Часть 6: Сопоставления
МЭК 62541-72020Унифицированная архитектура OPC – Часть 7: Профили
МЭК 62541-82020Унифицированная архитектура OPC – Часть 8: Доступ к данным
МЭК 62541-92020Унифицированная архитектура OPC – Часть 9: Сигналы тревоги и состояния
МЭК 62541-102020Унифицированная архитектура OPC – Часть 10: Программы
МЭК 62541-112020Унифицированная архитектура OPC – Часть 11: Исторический доступ
МЭК 62541-122020Унифицированная архитектура OPC – Часть 12: Обнаружение и глобальные сервисы
МЭК 62541-132020Унифицированная архитектура OPC – Часть 13: Агрегаты
МЭК 62541-142020Унифицированная архитектура OPC – Часть 14: PubSub
МЭК 62541-1002015Унифицированная архитектура OPC – Часть 100: Интерфейс устройства

Смотрите также

Ссылки

  1. ^ Браун, Роланд; Мендоса, Франциско (17 ноября 2021 г.). «Интеграция для OPC UA angeschlossene Feldgeräte». Магазин АТП . 63 ( 11–12 ). дои : 10.17560/atp.v63i11-12.2567. ISSN  2364-3137. S2CID  246122846.
  2. ^ "Эталонная реализация OPC Foundation". GitHub .
  3. ^ Манке, Вольфганг; Лейтнер, Стефан-Хельмут https://library.e.abb.com/public/75d70c47268d78bfc125762d00481f78/56-61%203M903_ENG72dpi.pdf Унифицированная архитектура OPC – будущий стандарт для моделирования коммуникаций и информации в автоматизации], 3/2009 ABB Review 3/2009, стр. 56-61
  4. ^ "Unified Foundation – OPC Foundation". OPC Foundation . Получено 13 декабря 2021 г. .
  5. ^ «Участники».
  6. ^ Самый маленький в мире сервер OPC UA родом из Германии.
  7. ^ Массаро, Симоне Что такое OPC UA и как он влияет на ваш мир?, 15.05.2008 planetengineering.com
  8. ^ "Клиентская и/или серверная функциональность OPC Unified Architecture (UA) в любом проекте на базе JVM". 26 февраля 2016 г. Получено 22 августа 2016 г.
  9. ^ «Параметры подключения клиента PLC4X OPC-UA».
  10. ^ "IEC Webstore для IEC 62541" . Получено 1 июня 2018 г. .

Литература

  • Вольфганг Манке, Стефан-Хельмут Ляйтнер, Маттиас Дамм: Унифицированная архитектура OPC. Springer Verlag 2009; ISBN 978-3-540-68898-3 
  • Ланге, Дж., Иваниц, Ф., Берк, Т. OPC: от доступа к данным к унифицированной архитектуре 2010; ISBN 978-3-8007-3242-5 
Retrieved from "https://en.wikipedia.org/w/index.php?title=OPC_Unified_Architecture&oldid=1241688307"