Scadapy

API OPC UA

Реализация C ++ / C

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

Реализация .NET использует ANSI C для нижних уровней, а остальное реализует изначально в .NET. Это означает, что из стека 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.

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

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

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

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

Обсуждение

Спецификация протокола OPC UA состоит из 14 документов общим объемом 1250 страниц. Из-за этой сложности существующие реализации обычно являются неполными. Кроме того, наличие нескольких форматов сериализации, а также возможность выборочной реализации определенных сервисов, таких как PubSub, в конечном итоге приводят к большой неоднородности точек подключения OPC UA. В этих условиях, наконец, трудно разрабатывать клиентские приложения, независимые от конкретной реализации каждого сервера. В этом смысле OPC UA не выполняет своих обещаний по обеспечению хорошей совместимости систем. Обычно это можно увидеть в производственных и инфраструктурных проектах, объединяющих различные технологии ПЛК, каждая из которых поставляется с различной и ограниченной реализацией протокола OPC UA.

Спецификация все еще развивается, последний том 14 документа спецификации датирован 6 февраля 2018 года, а первая публикация стандарта OPC UA датируется 2006 годом.

В результате, несмотря на значительные маркетинговые усилия по поддержке его принятия, OPC UA на данном этапе можно рассматривать как попытку стандартизации, а не как установленный стандарт.

Multi-Protocol MasterOPC Server – модульный ОРС сервер

Данный сервер предоставляет возможность одновременного опроса разных устройств . Список поддерживаемых протоколов непрерывно пополняется. 

Кроме того в Multi-Protocol MasterOPC Server имеется возможность встраивания любых необходимых протоколов. Причем для их подключения можно либо создать внешний модуль на  языке C++, либо использовать встроенный сценарный язык.

Уникальные технические особенности:

  • OPC сервер поддерживает стандарты OPC DA (Data Access – текущие данные), OPC HDA (Historical Data Access – архивные данные), включая ведение архивов для опрашиваемых мгновенных значений переменных, а также современный кроссплатформенный стандарт OPC UA. Для организации хранения архивов используется встроенный SQL сервер.
  • Поддержка стандарта OPC UA, включая передачу текущих данных и архивов в открытом или зашифрованном виде. OPC UA —  базируется не на технологии Microsoft DCOM, а на открытых кроссплатформенных технологиях, что позволяет обеспечивать безопасную передачу данных не только в локальной сети, но через любые маршрутизируемые сети, включая Интернет. Также возможно взаимодействие с OPC UA клиентами в других операционных средах, например, Linux или Android.
  • Поддержка OPC DA/HDA клиента. Включение в состав сервера клиентов классических интерфейсов DA и HDA позволяет реализовать преобразование OPC DA — OPC UA. На удаленном компьютере при отсутствии OPC UA клиента можно с помощью Multi-Protocol MasterOPC сервера выполнить обратное преобразование из UA в DA или HDA, тем самым организовав туннельную передачу данных DA или HDA через марширутизируемые сети, в которых эти стандарты напрямую использовать невозможно. Мало того, использование такого туннеля может снять и проблемы сложной и снижающей безопасность настройки DCOM на компьютерах в локальной сети.
  • Встроенные средства создания сценариев позволяют проводить предварительную обработку данных после их считывания из внешних устройств, а также перед записью в них. Используя сценарный язык, возможно написать собственный драйвер, разработать симулятор сигналов, организовать передачу данных в другие программы или запись в базу данных. Встроенный редактор обеспечивает стандартный сервис — подсветку ключевых слов, удобную работу с тегами и библиотеками. В комплекте с сервером поставляется документация, пример разработки, простой симулятор сигналов.

OPC сервер протокола Bacnet

Insat

19.09.201612:00

Multi-Protocol MasterOPC сервер поддерживает множество разнообразных сетевых протоколов – Profinet, SNMP, IEC 60870-5-104, а также протоколы для различных счетчиков электроэнергии и концентраторов. Сегодня наша компания представляет выпуск ОРС сервера для самого популярного протокола автоматизации зданий – BACnet.Данный протокол использует сети на основе интерфейсов RS-232, RS-485, LonTalk и Ethernet. Наш OPC сервер поддерживает наиболее распространенную редакцию протокола – BACnet IP, работающую по сетям TCP/IP (Ethernet, Wi-Fi, GPRS).Учитывая сложность протокола BACnet, большое количество объектов и типов данных в нем, мы приложили максимум усилий, чтобы конфигурирование ОРС сервера было простым и удобным. Для этого нами была реализована специальная интегрированная утилита автоматизированного импорта устройств и тегов.Чтобы подключить устройство к нашему ОРС серверу нужно сделать всего несколько шагов.Добавить плагин протокола Bacnet в OPC сервер:Добавить устройство в плагин через контекстное меню:Задать BACnet номер устройства.Запустить утилиту импорта, через контекстное меню устройства – Вставить теги (Импорт).Утилита произведет поиск во всех доступных сетях Bacnet устройств, с указанным адресом и выведет их в дерево.Адрес устройства вам неизвестен? Не беда – есть функция автоматического поиска. Просто нажмите в утилите кнопку Автопоиск, и будет просканирована вся сеть и будут найдены все доступные BACnet устройства.Все что вам будет нужно после этого – лишь выбрать нужное устройство, а нажать на кнопку Импортировать. В результате чего появится специальное окно для выбора тегов импорта.Отметьте теги, чьи значения вас интересуют. При этом не поддерживаемые сервером теги, сразу выделяются серым цветом, и случайно добавить вы их не сможете.Кроме того, в окне реализованы два селектора – Выбор объекта и Выбор свойства. С помощью селектора Выбор объекта можно отметить только объекты определенного типа – например только AnalogInput. С помощью селектора Выбор свойства можно в уже выделенных группах выбрать только нужные переменные (например, только Present Value).Также есть возможность группового выделения – щелчок правой кнопкой мыши по элементу дерева приводит к установке/снятию всех флажков ниже по дереву.Используя селекторы и групповое выделение можно быстро отметить требуемые переменные. Таким образом процесс создания конфигурации становится предельно простым.После этого нажмите кнопку Готово, и теги будут вставлены в дерево ОРС сервера. При этом каждый объект Bacnet помещается в отдельную группу.После этого можно запускать ОРС сервер в режим исполнения.Наш ОРС сервер поддерживает групповое чтение значений и сегментацию, поэтому опрос даже большого количества значений производится максимально быстро. А при необходимости можно добавить несколько одинаковых BACnet узлов, настроенных на одно BACnet устройство, что позволит распараллелить опрос и сделать его еще быстрее.В настройках BACnet устройства есть функции настройки связи – задания таймаута, количества попыток чтения и записи. Поэтому даже если канал связи нестабилен, вы всегда сможете адаптировать ОРС сервер для надежной работы.Лицензирование OPC сервера, традиционно для нашей компании, имеет градацию по количеству опрашиваемых тегов, что позволяет подобрать нужную в каждом конкретном случае конфигурацию, не переплачивая лишних денег. При этом стоимость ОРС сервера существенно ниже представленных на Российском рынке BACnet OPCсерверов.Подробнее про BACnet OPC сервер можно узнать на станице продукта:/products/?category=2366Скачать Multi-Protocol MasterOPC сервер с поддержкой протокола BACnet можно со страницы:/products/?category=2350

Просмотров:2754

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

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

Встроенные типы данных OPC UA
Встроенный тип Эквивалент C / C ++ Детали Тип NodeId
Булево bool 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
Плавать плавать Значение с плавающей запятой одинарной точности (32 бита) IEEE
Двойной двойной Значение с плавающей запятой двойной точности (64 бита) IEEE
StatusCode uint32_t
Строка uint8_t * / std :: строка 3 (строка)
DateTime int64_t количество интервалов в 100 наносекунд с 01.01.1601 (UTC)
GUID зависит от реализации 16-байтовое число, используемое как уникальный идентификатор 4 (GUID)
ByteString (то же, что и String) 5 (байтовая строка)
XmlElement (то же, что и String)
NodeId индекс пространства имен и тип NodeId
ExpandedNodeId (аналогично NodeId)
QualifiedName индекс и строка пространства имен
LocalizedText строка и индикатор локали
NumericRange строка (например, «0: 4,1: 5» для массива)
Вариант (только встроенные типы данных)
ExtensionObject скаляры любого типа
DataValue сочетание значения, отметок времени и кода состояния
DiagnosticInfo подробная информация об ошибках / диагностике

Протоколы

OPC UA поддерживает два протокола. Это видно для прикладных программистов только через изменение URL-адреса. Бинарный протокол — opc.tcp: // Server, а http: // Server — для веб-службы. В противном случае OPC UA работает полностью прозрачно для API .

Бинарный протокол предлагает лучшую производительность / наименьшие накладные расходы, требует минимальных ресурсов (не требуется XML Parser, SOAP и HTTP , что важно для встроенных устройств), предлагает лучшую совместимость (двоичный код явно указан и допускает меньшее количество степеней свободы во время реализации) и использует один произвольно выбираемый порт TCP для облегчения туннелирования связи или легкого включения через брандмауэр.

Протокол веб-службы (SOAP) лучше всего поддерживается доступными инструментами, например, из сред Java или .NET, и совместим с брандмауэром, используя стандартные порты HTTP (S).

Двоичный формат поддерживается всеми реализациями, в то время как только реализация .NET поддерживает SOAP.

Инновации

Хотя исходная привязка к 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 — это так называемая Full Mesh Network, основанная на узлах . Эти узлы могут включать любой вид метаинформации и похожи на объекты объектно-ориентированного программирования (ООП). Узел может иметь атрибуты для доступа для чтения (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 на основе собственного стека C ++ UA, выполняющийся на однокристальном микроконтроллере ARM с 64 КБ ОЗУ . В октябре 2012 года Немецкий центр прикладных программ им. Фраунгофера IOSB-INA и Институт промышленных информационных технологий (inIT) показали, что сервер OPC UA масштабируется до 15 КБ ОЗУ и 10 КБ ПЗУ и, следовательно, может использоваться на уровне микросхемы.

Лицензирование Multi-Protocol MasterOPC Server

Драйверы всех протоколов в Multi-Protocol MasterOPC Server представляют собой плагины (подключаемые программы), включаемые в дистрибутив сервера. Также в состав сервера входят плагины User Protocol – для создания пользовательских протоколов на С++, и User Script – для создания протоколов на встроенном языке. Созданные пользователями плагины могут распространяться через сбытовую сеть ИнСАТа.

В Demo версию OPC сервера входят  наиболее востребованные  из поддержанных плагинов, имеющие ограничение в 1 устройство или 32 тега (в зависимости от схемы лицензирования).

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

Название

Описание

Скачать 

Multi-Protocol MasterOPC сервер 

Скачать Multi-Protocol с поддержкой всех драйверов с ограничением в 32 тега или Trial-версию с ограничением на время работы в режиме непрерывного исполнения – 1 час, но без ограничения на количество тегов

Список поддерживаемых протоколов и устройств:

  • Протокол FINS для оборудования Omron;
  • Протокол SNMP;
  • Протокол МЭК-61850;
  • Протокол МЭК-60870-5-104;
  • Протокол BACnet;
  • Протокол Profinet;
  • Счётчики Энергомера (СЕ301, СЕ303, СЕ304, ЦЭ6850);
  • Счётчики НЗИФ (СЭТ-4, ПСЧ-4, СЭБ-1);
  • Счётчики Милур;
  • Счётчики Меркурий;
  • Концентратор Меркурий 225;
  • Теплосчетчики ТЭМ-104, ТЭМ-106, ТЭСМА-106;
  • УСПД УМ-31;
  • ОРС сервер корректоров объема газа ЕК-260, ЕК-270.

OPC Simatic Unsolicited TCP/IP Ethernet

Данный драйвер выступает в качестве имитатора реальных устройств семейства S7-300. Поддержка до 256 виртуальных устройств. Служит полезным инструментом для отладки проектов на этапе разработки, когда отсутствуют реальные устройства.

Simatic S5 AS511 OPC сервер

OPC сервер поддерживает обмен по протоколу AS511 со следующими устройствами:  Siemens S5-90U, Siemens S5-95U, Siemens S5-100U (ЦП-100), Siemens S5-100U (ЦП-101), Siemens S5-100U (ЦП-103), Siemens S5-101U, Siemens S5-115U (ЦП-941), Siemens S5-115U (ЦП-942), Siemens S5-115U (ЦП-943), Siemens S5-115U (ЦП-944), Siemens S5-115U (ЦП-945), Siemens S5-135U (ЦП-921), Siemens S5-135U (ЦП-922), Siemens S5-135U (ЦП-928), Siemens S5-155U (ЦП-946), Siemens S5-155U (ЦП-947).

SIEMENS OPC серверы (СИМЕНС OPC)

Предлагаемые ОРС-серверы обеспечивают надежный способ обмена данными широкого круга устройств Siemens через Ethernet либо промышленные последовательные интерфейсы с OPC-клиентами на базе SCADA, MES, ERP и другими приложениями, использующими в качестве источника данных технологию ОРС. Эти ОРС-серверы позволяет вести одновременный опрос устройств Siemens по протоколам ТCP/IP, PPM, PPI и AS511.

Поддерживаемые стандарты ОРС:

  • OPC Data Access (OPC DA) Versions 1.0a, 2.0, 2.05a, 3.0
  • OPC Alarms and Events (OPC AE) Version 1.10
  • OPC Unified Architecture (OPC UA) Version 1.01OPC .NET Service (OPC .NET) Version 1.00

IEC 62541

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

Обзор IEC 62541
Я БЫ Дата выпуска заглавие
IEC / TR 62541-1 2016 г. Унифицированная архитектура OPC — Часть 1: Обзор и концепции
IEC / TR 62541-2 2016 г. Унифицированная архитектура OPC — Часть 2: Модель безопасности
МЭК 62541-3 2020 г. Унифицированная архитектура OPC — Часть 3: Модель адресного пространства
МЭК 62541-4 2020 г. Унифицированная архитектура OPC — Часть 4: Услуги
МЭК 62541-5 2020 г. Унифицированная архитектура OPC — Часть 5: Информационная модель
IEC 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: Обнаружение и глобальные услуги
IEC 62541-13 2020 г. Унифицированная архитектура OPC — Часть 13: Агрегаты
МЭК 62541-14 2020 г. Унифицированная архитектура OPC — Часть 14: PubSub
МЭК 62541-100 2015 г. Унифицированная архитектура OPC — Часть 100: Интерфейс устройства

История

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *