Унифицированная архитектура OPC
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2020 г. ) |
Международный стандарт | IEC62541, унифицированная архитектура OPC (ядро, полевой обмен, устройства, управление активами, сопоставление типов данных XML) |
---|---|
Разработано | Фонд ОПК |
Представлено | 28 июля 2006 г |
Промышленность | Операционные технологии и информационные технологии |
Совместимое оборудование | ПЛК , полевые устройства , Windows , Linux , IIOT |
Веб-сайт | https://opcfoundation.org/about/opc-technologies/opc-ua/ |
Унифицированная архитектура OPC ( 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 — это описания абстрактных методов, которые не зависят от протокола и обеспечивают основу для функциональности OPC UA. Транспортный уровень помещает эти методы в протокол, что означает сериализацию/десериализацию данных и передачу их по сети. два протокола Для этой цели определены . Один из них представляет собой двоичный протокол TCP , оптимизированный для обеспечения высокой производительности, а второй ориентирован на веб-сервисы .
Информационная модель OPC представляет собой ячеистую сеть, основанную на узлах . Эти узлы могут включать в себя метаинформацию любого типа и аналогичны объектам объектно-ориентированного программирования (ООП). Узел может иметь атрибуты доступа для чтения (DA, HDA), методы, которые можно вызывать (команды), и запускаемые события, которые можно передавать (AE, DataAccess, DataChange). Узлы содержат данные процесса, а также все другие типы метаданных . Пространство имен OPC содержит модель типа.
Клиентское программное обеспечение может проверить, какие профили поддерживает сервер. Это необходимо для получения информации, поддерживает ли сервер только функционал DA или дополнительно AE, HDA и т.д. Дополнительно можно получить информацию о том, поддерживает ли сервер тот или иной профиль. Новые и важные особенности OPC UA:
- Поддержка резервирования
- Контрольное сообщение для соединений в обоих направлениях (чтобы указать, активен ли другой конец). Это означает, что и сервер, и клиент распознают прерывания.
- Буферизация данных и подтверждения переданных данных. Потерянные соединения больше не приводят к потере данных. Потерянные датаграммы могут быть восстановлены.
На конференции OPC UA DevCon в октябре 2006 года в Мюнхене были представлены первые прототипы. Различные UA-серверы были показаны на программируемом логическом контроллере Beckhoff и встроенной тестовой плате от Euros. ПЛК Beckhoff основан на Windows XP Embedded, а встроенный контроллер основан на операционной системе реального времени Euros. Компания Embedded Labs Ltd продемонстрировала OPC UA Server на базе собственного C++ UA Stack, работающего на однокристальном ARM- микроконтроллере с 64 КБ ОЗУ . В октябре 2012 года немецкий Центр приложений Фраунгофера IOSB-INA и Институт промышленных информационных технологий (inIT) продемонстрировали, что сервер OPC UA масштабируется до 15 КБ ОЗУ и 10 КБ ПЗУ и, следовательно, пригоден для использования на уровне чипа. [ 6 ]
Технические характеристики
[ редактировать ]Спецификация OPC UA представляет собой многочастную спецификацию и состоит из следующих частей:
- Концепции
- Модель безопасности
- Модель адресного пространства
- Услуги
- Информационная модель
- Сопоставления
- Профили
- Доступ к данным
- Сигналы тревоги и условия
- Программы
- Исторический доступ
- Дискавери и глобальные услуги
- Агрегаты
- ПабСаб
- Безопасность
- Государственные машины
- Псевдонимы
- Ролевая безопасность
- Справочник по словарю
- Передача файлов
- Подключение устройства
- Базовая сетевая модель
- Общие типы ссылок
- Планировщик
Кроме того, также доступны часть 100 «Устройства» и часть 200 «Промышленная автоматизация». Они основаны на базовом наборе спецификаций и добавляют новые общие определения, которые затем используются в различных сопутствующих спецификациях. Например, как OPC UA для анализаторов , так и OPC UA для машинного оборудования построены непосредственно на части 100.
В отличие от спецификаций на основе COM, спецификации UA не являются чистыми спецификациями приложений. Обычно они описывают внутренние механизмы UA, которые обрабатываются через коммуникационный стек и обычно представляют интерес только для тех, кто переносит стек на конкретную цель, или для тех, кто хочет реализовать свой собственный стек UA.
Разработчики приложений OPC UA используют API OPC UA и поэтому в основном используют документацию API. Тем не менее, части 3, 4 и 5 могут быть интересны разработчикам приложений. [ 7 ]
Стек связи UA
[ редактировать ]Архитектура UA-приложения, независимо от того, серверная это часть или клиентская, структурирована по уровням.
Некоторые части аналогичны прежним COM-прокси/заглушкам и предоставляются OPC Foundation. Уровень переносимости новый; это упрощает перенос стека UA ANSI C на другие целевые платформы. Уровень портов для Windows и Linux также предоставляется OPC Foundation.
безопасность Украины
[ редактировать ]UA Security состоит из аутентификации и авторизации, шифрования и целостности данных посредством подписей. Для веб-служб WS-SecureConversation используется , поэтому он совместим с .NET и другими реализациями SOAP . Для двоичного варианта были использованы алгоритмы WS-SecureConversation, которые также были преобразованы в двоичный эквивалент. Это называется UA Secure Conversation.
Существует также смешанная версия, в которой код двоичный, но транспортный уровень — SOAP. Это компромисс между эффективным двоичным кодированием и передачей с поддержкой межсетевого экрана. Двоичное кодирование всегда требует безопасного разговора UA. Для аутентификации используются исключительно сертификаты X.509 . Разработчик приложения должен выбрать, к какому хранилищу сертификатов будет привязано приложение UA. Например, можно использовать инфраструктуру открытых ключей (PKI) Active Directory .
Встроенные типы данных
[ редактировать ]Стандарт OPC UA определяет 25 встроенных типов данных:
Встроенный тип | Эквивалент C/C++ | Подробности | Тип NodeId |
---|---|---|---|
логическое значение | логическое значение | 0/1 (ложь или правда) | 0 (числовой) |
SByte | int8_t | от -128 до 127 | |
Байт | uint8_t | от 0 до 255 | |
Int16 | int16_t | от -32768 до 32767 | |
UInt16 | uint16_t | от 0 до 65535 | |
Int32 | int32_t | от -2147483648 до 2147483647 | |
UInt32 | uint32_t | от 0 до 4294967295 | |
Int64 | int64_t | от -9223372036854775808 до 9223372036854775807 | |
UInt64 | uint64_t | От 0 до 18446744073709551615 | |
Плавать | плавать | Значение IEEE одинарной точности (32 бита) с плавающей запятой | |
Двойной | двойной | Значение с плавающей запятой двойной точности IEEE (64 бита) | |
СтатусКод | uint32_t | ||
Нить | uint8_t* / std::string | 3 (строка) | |
ДатаВремя | int64_t | количество интервалов в 100 наносекунд с 01.01.1601 (UTC) | |
ГУИД | зависит от реализации | 16-байтовое число, используемое в качестве уникального идентификатора. | 4 (ГУИД) |
БайтСтрока | (то же, что и строка) | 5 (байтовая строка) | |
XmlElement | (то же, что и строка) | ||
идентификатор узла | индекс пространства имен и тип 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. Это означает, что из стека ANSI C интегрируется только обработка сокета и разделение сообщений. Десериализация происходит непосредственно в .NET и, следовательно, преобразуется непосредственно в структуры и объекты .NET. Это обеспечивает более высокую производительность, чем сначала десериализация в структуру C, а затем копирование данных в структуру .NET.
Java-реализация
[ редактировать ]Разрабатывались различные стеки для Java. [ когда? ] Как и в случае с .NET, существует три основных варианта:
- Инкапсулируйте весь стек ANSI C через JNI , что усложняет переносимость. Хотя стек можно портировать на разные операционные системы, его необходимо скомпилировать для каждой из них индивидуально. Кроме того, данные необходимо скопировать на границу JNI, но при этом выигрывает от производительности C во время десериализации.
- Кодируйте непосредственно на сетевом уровне (аналогично текущей реализации .Net) и десериализуйте на Java. Это экономит одно выполнение копирования данных, но все равно зависит от стека C.
- Напишите собственный стек Java OPC UA. Было отмечено, что это наиболее портативный вариант, но, по оценкам, для его реализации потребуется больше всего инженерных усилий. Проект Eclipse Milo предоставляет реализацию спецификации клиента и сервера UA 1.03 с открытым исходным кодом на чистой Java. [ 8 ]
- Проект Apache PLC4X предоставляет реализацию UA-клиента с открытым исходным кодом на чистом Java, а также описания кадров сетевого уровня, которые можно использовать для межъязыковых реализаций. [ 9 ]
Альтернативно существует простой вариант поддержки только протокола WebService. набор инструментов SOAP, поддерживающий WS-Security Для этого необходим .
МЭК 62541
[ редактировать ]МЭК 62541 [ 10 ] является стандартом унифицированной архитектуры OPC.
ИДЕНТИФИКАТОР | Дата выпуска | заголовок |
---|---|---|
МЭК/ТР 62541-1 | 2016 | Унифицированная архитектура OPC. Часть 1: Обзор и концепции |
МЭК/ТР 62541-2 | 2016 | Унифицированная архитектура OPC. Часть 2. Модель безопасности |
МЭК 62541-3 | 2020 | Унифицированная архитектура OPC. Часть 3. Модель адресного пространства |
МЭК 62541-4 | 2020 | Унифицированная архитектура OPC. Часть 4: Сервисы |
МЭК 62541-5 | 2020 | Унифицированная архитектура OPC. Часть 5: Информационная модель |
МЭК 62541-6 | 2020 | Унифицированная архитектура OPC. Часть 6. Сопоставления |
МЭК 62541-7 | 2020 | Унифицированная архитектура OPC. Часть 7: Профили |
МЭК 62541-8 | 2020 | Унифицированная архитектура OPC. Часть 8: Доступ к данным |
МЭК 62541-9 | 2020 | Унифицированная архитектура OPC – Часть 9: Сигналы тревоги и условия |
МЭК 62541-10 | 2020 | Унифицированная архитектура OPC. Часть 10: Программы |
МЭК 62541-11 | 2020 | Унифицированная архитектура OPC – Часть 11: Исторический доступ |
МЭК 62541-12 | 2020 | Унифицированная архитектура OPC. Часть 12. Обнаружение и глобальные сервисы. |
МЭК 62541-13 | 2020 | Унифицированная архитектура OPC. Часть 13. Агрегаты |
МЭК 62541-14 | 2020 | Унифицированная архитектура OPC. Часть 14: PubSub |
МЭК 62541-100 | 2015 | Унифицированная архитектура OPC. Часть 100: Интерфейс устройства |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Браун, Роланд; Мендоса, Франциско (17 ноября 2021 г.). «Интеграция устройств для полевых устройств, подключенных к OPC UA» . Журнал АТП . 63 (11-12). дои : 10.17560/atp.v63i11-12.2567 . ISSN 2364-3137 . S2CID 246122846 .
- ^ «Эталонная реализация OPC Foundation» . Гитхаб .
- ^ Манке, Вольфганг; Лейтнер, Стефан-Хельмут https://library.e.abb.com/public/75d70c47268d78bfc125762d00481f78/56-61%203M903_ENG72dpi.pdf Унифицированная архитектура OPC – будущий стандарт для коммуникационного и информационного моделирования в автоматизации], 3/2009 ABB Review 3 /2009, стр. 56-61
- ^ «Единый фонд – Фонд OPC» . Фонд ОПК . Проверено 13 декабря 2021 г.
- ^ «Члены» .
- ^ Самый маленький в мире сервер OPC UA родом из Германии.
- ^ Массаро, Симона Что такое OPC UA и как он влияет на ваш мир? , 15.05.2008 Planetengineering.com
- ^ «Функциональность клиента и/или сервера унифицированной архитектуры OPC (UA) в любом проекте на базе JVM» . 26 февраля 2016 года . Проверено 22 августа 2016 г.
- ^ «Параметры подключения клиента PLC4X OPC-UA» .
- ^ «Интернет-магазин МЭК по МЭК 62541» . Проверено 1 июня 2018 г.
Литература
[ редактировать ]- Вольфганг Манке, Стефан-Хельмут Ляйтнер, Маттиас Дамм: унифицированная архитектура OPC. Спрингер Верлаг 2009; ISBN 978-3-540-68898-3
- Ланге Дж., Иваниц Ф., Берк Т. OPC: от доступа к данным к унифицированной архитектуре, 2010 г.; ISBN 978-3-8007-3242-5