Людино-машинні інтерфейси та SCADA
Підсистема
введення/виведення.
OPC
автор і лектор: Олександр Пупена (pupena_san@ukr.net)
зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
13.10.2020 1
Передумови виникнення
13.10.2020 pupena_san@ukr.net 2
3
Передумови виникнення ОРС
 Вибір іншої промислової мережі, яка б підтримувалась з боку SCADA та контролеру.
 Написання спеціального драйверу, якого не існує в SCADA, для забезпечення зв’язку з
контролером.
 Заміна частини одних контролерів іншими, для яких є драйвери зв’язку.
 Використання шлюзів для промислових мереж.
 Використання “універсального драйверу” зі стандартним інтерфейсом.
SCADA X
драйвер
ЛОМИКОНТ
Modbus MPI
Підключення декількох контролерів до SCADA-
програми
"Сеть
ЛОМИКОНТ"
M340 S7-300 Л-110
ПК
драйвер
Modbus
драйвер
S7-MPI
Варіанти способів інтеграції програмних продуктів з засобами автоматизації різних виробників на прикладі
SCADA.
4
Стандарти ОРС
OPC DA (Data Access) – специфікація доступу до даних реального часу;
OPC AE (Alarms & Events) – для реалізації задач попереджувально-аварійних сигналізацій;
OPC HDA (Historical Data Access) – для реалізації задач ведення архіву та доступу до архівних даних;
OPC DX (Data eXchange) – для безпосереднього обміну між ОРС-серверами;
OPC XML – для обміну даними через інтермережі за допомогою структур XML на базі WEB-сервісів та SOAP;
OPC Batсh – для реалізації управління рецептурними задачами.
OPC UA (United Architecture) – самий новий платформо-незалежний стандарт, який об’єднує функції всіх наведених
вище специфікацій, але функціонує не на базі СОМ а WEB-сервісах .
OPC A&E Client
Alarm Management
OPC HDA Client
Trend Display
OPC A&E Server OPC HDA Server
COM/DCOM
OPC DA Client
SCADA
COM/DCOM
OPC DA Server OPC DA Server
PLCPLC DCSDCS
залежні від
виробника
Специфікації ОРС.
OPC – OLE For Process Control
- базуються на СОМ: OPC DA, AE, HDA, DX, Batch
Перші версії
Нові версії
OPC – Open Platform Communications
- базуються на WEB технологіях HTTP/XML/SOAP а не на
СОМ
Розробник
OPC Foundation – некомерційна організація заснована групою
всесвітньо-відомих компаній виробників ПТЗ автоматизації, що
розвиває та підтримує стандарти (www.opcfoundation.org)
Архітектура
Клієнт-Серверна архітектура, мультисерверність та
мультиклієнтність
5
Функціонування ОРС DA з точки зору інтегратора
SCADA програма "SamplSCADA"
Функціонування ОРС з точки зору інтегратора
змінні реального часу SCADA
драйвер для
X
драйвер для
Y
змінні реального
часу OPC
драйвер для Z
ОРС-Сервер "Sampl.OPC"
Інтерфейс ОРС
ПК
ПЛК1 ПЛК2
1
ПЛК3
1
ПЛК4
31
змінні реального
часу OPC
ОРС-Сервер
"Exmpl.OPC"
драйвер для Q
Інтерфейс ОРС
драйвер ОРС Client
Для реалізації зв’язку через ОРС DA:
• Налаштувати OPC-Сервер за допомогою спеціалізованої програми-конфігуратора: створити всі необхідні змінні
сервера, тобто дати їм ім’я (ItemID) та вказати джерела даних в ПЛК, на які вони посилаються.
• В SCADA-програмі вказати:
• назву ОРС-Сервера, з яким необхідно зв’язатися (ProgID). У нашому прикладі це будуть два сервери
"Sampl.OPC" та "Exmpl.OPC". Інколи SCADA надає можливість вибору ProgID зі списку зареєстрованих
ОРС-Серверів.
• для вибраної змінної в якості джерела даних вказати ім’я на ОРС-Сервері, тобто ItemID, що був
створений на 1-му кроці. Як правило ItemID вибирається зі списку, який надає Browser на стороні ОРС-
Клієнта.
6
Функціонування ОРС DA з точки зору інтегратора (Приклад)
Citect
Схема обміну даним SCADA Citect з використанням ОРС.
Temperat
ure
Modbus RTU
Schneder-Aut.OFS
ПК
Pressure
VIPA.OPCServer
MPI
Інтерфейс ОРС
VIPA
200
TSX Micro
PLC2 PLC1
%MW100 MW100
Інтерфейс ОРС
драйвер ОРС Client
T1 P1
Конфігурування ОFS
Конфігурування VIPA-OPC.
7
Функціонування ОРС DA з точки зору інтегратора (Приклад)
Citect
Схема обміну даним SCADA Citect з використанням ОРС.
Temperat
ure
Modbus RTU
Schneder-Aut.OFS
ПК
Pressure
VIPA.OPCServer
MPI
Інтерфейс ОРС
VIPA
200
TSX Micro
PLC2 PLC1
%MW100 MW100
Інтерфейс ОРС
драйвер ОРС Client
T1 P1
Створення в Citect IODevices, прив’язаних до OPC-
серверів .Створення в Citect Variable Tags .
Принципи функціонування ОРС DA
8
9
Принципи функціонування ОРС DA. Модель взаємодії.
SCADA
ПЛК %MW100
%MW101
%MW102
%MW103
OPC Client
435,45 438,49
Group 1
Item1
Item2
Group 2
Item3
Item4
драйвери зв’язку
дані
змінна1
змінна2
змінна3
змінна4
конфігуратор
OPC
конфігураційні
дані
Прикладна програма
X
Group 3
Item5
Item6
OPC Server
438,49435,45
OPC Client
Принципи функціонування
ОРС DA
ПК
VAR1
VAR2
VAR3
VAR4
OPC Server – прикладна програма, яка
надає доступ до обєктів через ОРС
інтерфейси
OPC Client – прикладна програма, яка
користується обєктами ОРС Серверу
через ОРС інтерфейс
OPC ProgID – символьний ідентифікатор
програми ОРС Серверу
OPC Item – обєкт ОРС Серверу, що
асоціюється з джерелом даних
OPC ItemID – унікальний в межах серверу
ідентифікатор джерела даних
Value – властивість OPC Item що
асоціюється зі значенням джерела даних;
TimeStamp – властивість OPC Item що
асоціюється з часом останнім
відновлення;
Quality - властивість OPC Item що
асоціюється з якістю джерела даних;
OPC Group – обєкт Серверу, який
призначений для виконання групових
операцій з OPC Item, належить Клієнту
OPC Browser – обєкт Серверу, який
дозволяє проводити навігацію по простору
імен ItemID
10
Принципи функціонування ОРС DA.
Механізми читання та запису даних процесу
Підписка
ОРС-client
Виклик
myGroup.IsSubscribed
myGroup_DataChange()
myGroup_AsyncReadComplete()
myGroup_DataChange()
ОРС-server
синхронне читання
myGroup.AsyncRead()
ОРС-client ОРС-server
асинхронне читання
періодичне читання з оповіщенням
Відповідь
Виклик
Відповідь
Оповіщення
Оповіщення
ОРС-client ОРС-server
myGroup.SyncRead()
Способи читання OPC-
Item в ОРС-Group
ОРС client
Виклик
myGroup_AsyncWriteComplete()
ОРС server
синхронний запис
myGroup.AsyncWrite()
ОРС client ОРС server
асинхронний запис
Відповідь
Виклик
Відповідь
myGroup.SyncWrite()
Способи запису OPC Group
11
Ідентифікація даних ОРС. ItemID
OPC ItemID – унікальний в межах серверу ідентифікатор
джерела даних, правила найменування не визначається
стандартом
OPC Browser – обєкт Серверу, який дозволяє проводити
навігацію по простору імен ItemID
PLC_Difuz
Tag
Tag
Tag
F_vyrobn
F_recyrk
F_300
F_120
T_kolon
T_oshpar
F_sp
F_value
F_Kp
root(корінь)
branch(гілка)
leave(лист) -
Item
ItemID="PLC_Difuz.F_recyrk.F_value"
OPC Browser.
Простір імен ItemID може бути доступний у вигляді:
- списку (flat)
- ієрархічне дерево (hierarchical)
12
Робота з віддаленим ОРС Сервером
SCADA
ПЛК2
драйвери зв’язку
OPC Server
DCOM
TCP/IP
TCP/IP
DCOM
ПЛК1
OPCServer2
OPC Client
драйвери зв’язку
OPC Server
OPCServer1
ПЛК3
драйвери зв’язку
OPC Server
TCP/IP
DCOM
OPCServer3
DCOM DCOM
ПЛК4
ПК1
ПК2 ПК3
192.168.1.1
192.168.1.2 192.168.1.3
Приклад з’єднання трьох пристроїв через DCOM
Послідовність
- на вузлах серверу ОРС Серверу та ОРС Клієнту
налаштовується DCOM та брандмауери ;
- в ОРС Клієнті крім ProgID вказується Server Node
Вимоги
- вузли ОРС Серверу та ОРС Клієнту в межах одного
домену або робочої групи
- на вузлах запущені необхідні служби (RPC, COM …)
- на вузлах налаштовані брандмауери
13
Область застосування ОРС
SCADA
ПЛК1
драйвери зв’язку
OPC Server
SCADA
OPC Client
ПЛК2
драйвери зв’язку
OPC Server
DCOM
ПЛК3
SCADA
ПК1
ПК2 ПК3
MES-
програма
OPC Client
ПК4
Excel
OPC Client
ПК5
Приклад використання ОРС в якості моста
SCADA програма "SamplSCADA"
приклад «класичного» використання ОРС
змінні реального часу SCADA
драйвер для X драйвер для Y
змінні реального
часу OPC
драйвер для Z
ОРС-Сервер "Sampl.OPC"
Інтерфейс ОРС
ПК
ПЛК1 ПЛК21 ПЛК31 ПЛК43
1
змінні реального
часу OPC
ОРС-Сервер
"Exmpl.OPC"
драйвер для Q
Інтерфейс ОРС
драйвер ОРС Client
Недоліки OPC DA
• на COM:
• тільки Windows/тільки PC
• складності DCOM
• небезпечний (чорний ящик)
• не прозорий для Інтернета/IIoT
• проблеми адресації (немає чітких правил,
адресація тільки всередині сервера, глибока
ієрархія…)
• декілька різних специфікацій (DA, HDA,
AE, Batch)
14
Основні концепції OPC UA:
інформаційна модель
Вступ в OPC UA
Єдиний стандарт для різних задач:
• інформаційні моделі:
• DA - Data Access
• AC - Alarms & Conditions
• HA - Historical Access
• Prog - Programs
• свої
• розширення
Комунікаційна архітектура
https://reference.opcfoundation.org/v104/Core/docs/Part6/4/
https://reference.opcfoundation.org/v104/Core/docs/Part6/7.6/
Transport
Mapping
URL
OPC UA TCP
opc.tcp://localhost:4840/UADiscover
y
OPC UA
WebSockets
opc.wss://localhost:443/UADiscovery
OPC UA
HTTPS
https://localhost:443/UADiscovery
Кодування даних
• XML/text;
• UA Binary;
• JSON.
Об’єктна модель
• Client-Server
• Сервер надає сервіси, при
підключенні говорить які
доступні
• данні і сервіси доступні через
об'єкти
• об'єкти мають методи,
властивості, події …
• об'єкти і їх складові пов'язані в адресні простори (Address
Space)
Адресний простір
Object - folder
Object
Data Variable
Method
Property
• об'єкти і їх частини – вузли
• вузли ідентифікуються в адресному просторі
Модель вузла
• атрибути (набор характеристик)
• посилання (організація зв'язку вузлів)
Модель вузла: атрибути
Атрибути:
• не видимі (не представлені) як
вузол в адресному просторі
• елементарні дані про вузол
• набір атрибутів незмінний
• набір залежить від класу
об'єкта
• зчитуються/пишуться
• мають: ID, ім'я, опис, тип даних,
індикатор
Класи вузлів
• Object (обєкт) – аналогія екземпляра в ООП
• Variable (змінн) – зміст об'єкта
• Method (Метод)
• View (прдеставлення) – організація свого виду адресного простору
• ObjectType (тип обєкту) – аналогія класу об'єкта в ООП
• VariableType (тип змінної) – означує набір властивостей для змінної
• ReferenceType (тип посилання)
• DataType (тип даних)
• означує
• набір атрибутів
• типів посилань
• не розширюються (не
можна добавити свій)
Object
• Контейнер (посилань) для методів, змінних,
властивостей, інших об'єктів; сам не містить
значення
• може ініціювати події (для ідентифікації події)
Variable
• Представляють зміст об'єкта (об'єкт не має
атрибута Value)
• Читання, запис, підписка
• Типи Variables:
• Properties (Властивості)
• DataVariables (Змінні даних)
Variable - DataVariable
• представляють зміст об'єкту
• можуть включати (посилання) інші об'єкти і
властивості
Variable - Property
• для опису об'єкта/змінної
• добавляються за необхідності (атрибути добавити не
можна)
• не можуть мати вкладених властивостей
Атрибути vs властивості
Method
• для дії над об'єктом (в контексті об'єкта)
• приймають аргументи
• повертають результат
• повинні виконуватися швидко, в іншому випадку -
Programs
Ідентифікація вузлів
Ідентифікація вузлів OPC UA
NodeID – унікальний ідентифікатор вузла на сервері:
• Namespace Index
• Identifier Type
• Identifier
Namespace Index
• посилається по номеру на URI простору імен
NS
• в межах NS ID унікальні
• глобальні URI або локальний сервер
• список URI зберігається в таблиці Namespaces,
індекс списку и є Namespace Index
• таблиці і індекси можуть змінюватися від сесії
до сесії, 0 – завжди OPC UA
Ідентифікатори
Identifier type – формат і тип даних NodeID:
• Numeric, String, GUID, opaque (ByteString)
Identifier – сам ідентифікатор
Ідентифікатори: XML-нотація
<namespace index> - індекс простору імен, якщо 0 можна не писати
<identifier type>:
• i – NUMERIC (UInteger);
• s – STRING (String);
• g – GUID (Guid);
• b – OPAQUE (ByteString)
<identifier> - у форматі string
ns=2;s=MyTemperature
namespace index 2, string
identifier
i=2045
namespace index 0, numeric
identifier
ns=1;g=09087e75-8e5e-499b-
954f-f2a9603db28a
namespace index 1, GUID
identifier
ns=1;b=M/RbKBsRVkePCePcx24o
RA==
namespace index 1,
Opaque/ByteString identifier
Унікальність NodeID
Читання/запис в OPC UA
Підписка
Підключення до OPC UA
Endpoints
• усі параметри підключення в кінцевих точках (endpoint)
• URL: протокол + адреса
• Security Policy – алгоритм безпеки і размір ключа
• Message Security Mode – рівень безпеки для повідомлень
• User Token Type – тип автентифікації
• Discovery Server (LDS) – для означення серверів
• OPC UA сервер надає як
мінімум одну кінцеву точку
без захисту, що дає
перелік доступних кінцевих
точок
LDS - opc.tcp://targetHost:4840
Утиліти
Тестові сервери: OPC Unified
Architecture Server
Тестові сервери
node-opcua wiki
publicly available OPC UA Servers and
Clients
http://opcuaserver.com
Name Endpoint URL Vendor Vendor web site
Local Discovery Server opc.tcp://opcuaserver.com:4840
OPC
Foundation
https://opcfoundation.or
g
OPC UA C++ Demo
Server
opc.tcp://opcuaserver.com:48010
Unified
Automation
https://www.unified-
automation.com
OPC UA Demo
Weather Server
(provides real weather
data with 15 minute
rate for majority of
countries and cities
around world)
opc.tcp://opcuaserver.com:48484
Open source project at
GitHub
Тестові клієнти
UaExpert
https://www.uaclient.com
Для Android (Prosys OPC UA Client)
opc.tcp://opcuaserver.com:48010
1 2 3
4 5 6
2
7
1
8
HMI з OPC UA для Android (Suppanel
HMI)1
https://youtu.be/35Tt8GHt58U
2 3 4 5
6
7
opc.tcp://opcuaserver.com:48010
8
HMI з OPC UA для Android (Suppanel
HMI)
https://youtu.be/35Tt8GHt58U
1 2 3 4
5
тримати
6
7
8
9
10
подвійний
11
45
SCADA – клієнти (Citect)
SCADA – клієнти (Citect)
SCADA – клієнти (zenon)

5 Підсистема введення/виведення. OPC

  • 1.
    Людино-машинні інтерфейси таSCADA Підсистема введення/виведення. OPC автор і лектор: Олександр Пупена (pupena_san@ukr.net) зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua) 13.10.2020 1
  • 2.
  • 3.
    3 Передумови виникнення ОРС Вибір іншої промислової мережі, яка б підтримувалась з боку SCADA та контролеру.  Написання спеціального драйверу, якого не існує в SCADA, для забезпечення зв’язку з контролером.  Заміна частини одних контролерів іншими, для яких є драйвери зв’язку.  Використання шлюзів для промислових мереж.  Використання “універсального драйверу” зі стандартним інтерфейсом. SCADA X драйвер ЛОМИКОНТ Modbus MPI Підключення декількох контролерів до SCADA- програми "Сеть ЛОМИКОНТ" M340 S7-300 Л-110 ПК драйвер Modbus драйвер S7-MPI Варіанти способів інтеграції програмних продуктів з засобами автоматизації різних виробників на прикладі SCADA.
  • 4.
    4 Стандарти ОРС OPC DA(Data Access) – специфікація доступу до даних реального часу; OPC AE (Alarms & Events) – для реалізації задач попереджувально-аварійних сигналізацій; OPC HDA (Historical Data Access) – для реалізації задач ведення архіву та доступу до архівних даних; OPC DX (Data eXchange) – для безпосереднього обміну між ОРС-серверами; OPC XML – для обміну даними через інтермережі за допомогою структур XML на базі WEB-сервісів та SOAP; OPC Batсh – для реалізації управління рецептурними задачами. OPC UA (United Architecture) – самий новий платформо-незалежний стандарт, який об’єднує функції всіх наведених вище специфікацій, але функціонує не на базі СОМ а WEB-сервісах . OPC A&E Client Alarm Management OPC HDA Client Trend Display OPC A&E Server OPC HDA Server COM/DCOM OPC DA Client SCADA COM/DCOM OPC DA Server OPC DA Server PLCPLC DCSDCS залежні від виробника Специфікації ОРС. OPC – OLE For Process Control - базуються на СОМ: OPC DA, AE, HDA, DX, Batch Перші версії Нові версії OPC – Open Platform Communications - базуються на WEB технологіях HTTP/XML/SOAP а не на СОМ Розробник OPC Foundation – некомерційна організація заснована групою всесвітньо-відомих компаній виробників ПТЗ автоматизації, що розвиває та підтримує стандарти (www.opcfoundation.org) Архітектура Клієнт-Серверна архітектура, мультисерверність та мультиклієнтність
  • 5.
    5 Функціонування ОРС DAз точки зору інтегратора SCADA програма "SamplSCADA" Функціонування ОРС з точки зору інтегратора змінні реального часу SCADA драйвер для X драйвер для Y змінні реального часу OPC драйвер для Z ОРС-Сервер "Sampl.OPC" Інтерфейс ОРС ПК ПЛК1 ПЛК2 1 ПЛК3 1 ПЛК4 31 змінні реального часу OPC ОРС-Сервер "Exmpl.OPC" драйвер для Q Інтерфейс ОРС драйвер ОРС Client Для реалізації зв’язку через ОРС DA: • Налаштувати OPC-Сервер за допомогою спеціалізованої програми-конфігуратора: створити всі необхідні змінні сервера, тобто дати їм ім’я (ItemID) та вказати джерела даних в ПЛК, на які вони посилаються. • В SCADA-програмі вказати: • назву ОРС-Сервера, з яким необхідно зв’язатися (ProgID). У нашому прикладі це будуть два сервери "Sampl.OPC" та "Exmpl.OPC". Інколи SCADA надає можливість вибору ProgID зі списку зареєстрованих ОРС-Серверів. • для вибраної змінної в якості джерела даних вказати ім’я на ОРС-Сервері, тобто ItemID, що був створений на 1-му кроці. Як правило ItemID вибирається зі списку, який надає Browser на стороні ОРС- Клієнта.
  • 6.
    6 Функціонування ОРС DAз точки зору інтегратора (Приклад) Citect Схема обміну даним SCADA Citect з використанням ОРС. Temperat ure Modbus RTU Schneder-Aut.OFS ПК Pressure VIPA.OPCServer MPI Інтерфейс ОРС VIPA 200 TSX Micro PLC2 PLC1 %MW100 MW100 Інтерфейс ОРС драйвер ОРС Client T1 P1 Конфігурування ОFS Конфігурування VIPA-OPC.
  • 7.
    7 Функціонування ОРС DAз точки зору інтегратора (Приклад) Citect Схема обміну даним SCADA Citect з використанням ОРС. Temperat ure Modbus RTU Schneder-Aut.OFS ПК Pressure VIPA.OPCServer MPI Інтерфейс ОРС VIPA 200 TSX Micro PLC2 PLC1 %MW100 MW100 Інтерфейс ОРС драйвер ОРС Client T1 P1 Створення в Citect IODevices, прив’язаних до OPC- серверів .Створення в Citect Variable Tags .
  • 8.
  • 9.
    9 Принципи функціонування ОРСDA. Модель взаємодії. SCADA ПЛК %MW100 %MW101 %MW102 %MW103 OPC Client 435,45 438,49 Group 1 Item1 Item2 Group 2 Item3 Item4 драйвери зв’язку дані змінна1 змінна2 змінна3 змінна4 конфігуратор OPC конфігураційні дані Прикладна програма X Group 3 Item5 Item6 OPC Server 438,49435,45 OPC Client Принципи функціонування ОРС DA ПК VAR1 VAR2 VAR3 VAR4 OPC Server – прикладна програма, яка надає доступ до обєктів через ОРС інтерфейси OPC Client – прикладна програма, яка користується обєктами ОРС Серверу через ОРС інтерфейс OPC ProgID – символьний ідентифікатор програми ОРС Серверу OPC Item – обєкт ОРС Серверу, що асоціюється з джерелом даних OPC ItemID – унікальний в межах серверу ідентифікатор джерела даних Value – властивість OPC Item що асоціюється зі значенням джерела даних; TimeStamp – властивість OPC Item що асоціюється з часом останнім відновлення; Quality - властивість OPC Item що асоціюється з якістю джерела даних; OPC Group – обєкт Серверу, який призначений для виконання групових операцій з OPC Item, належить Клієнту OPC Browser – обєкт Серверу, який дозволяє проводити навігацію по простору імен ItemID
  • 10.
    10 Принципи функціонування ОРСDA. Механізми читання та запису даних процесу Підписка ОРС-client Виклик myGroup.IsSubscribed myGroup_DataChange() myGroup_AsyncReadComplete() myGroup_DataChange() ОРС-server синхронне читання myGroup.AsyncRead() ОРС-client ОРС-server асинхронне читання періодичне читання з оповіщенням Відповідь Виклик Відповідь Оповіщення Оповіщення ОРС-client ОРС-server myGroup.SyncRead() Способи читання OPC- Item в ОРС-Group ОРС client Виклик myGroup_AsyncWriteComplete() ОРС server синхронний запис myGroup.AsyncWrite() ОРС client ОРС server асинхронний запис Відповідь Виклик Відповідь myGroup.SyncWrite() Способи запису OPC Group
  • 11.
    11 Ідентифікація даних ОРС.ItemID OPC ItemID – унікальний в межах серверу ідентифікатор джерела даних, правила найменування не визначається стандартом OPC Browser – обєкт Серверу, який дозволяє проводити навігацію по простору імен ItemID PLC_Difuz Tag Tag Tag F_vyrobn F_recyrk F_300 F_120 T_kolon T_oshpar F_sp F_value F_Kp root(корінь) branch(гілка) leave(лист) - Item ItemID="PLC_Difuz.F_recyrk.F_value" OPC Browser. Простір імен ItemID може бути доступний у вигляді: - списку (flat) - ієрархічне дерево (hierarchical)
  • 12.
    12 Робота з віддаленимОРС Сервером SCADA ПЛК2 драйвери зв’язку OPC Server DCOM TCP/IP TCP/IP DCOM ПЛК1 OPCServer2 OPC Client драйвери зв’язку OPC Server OPCServer1 ПЛК3 драйвери зв’язку OPC Server TCP/IP DCOM OPCServer3 DCOM DCOM ПЛК4 ПК1 ПК2 ПК3 192.168.1.1 192.168.1.2 192.168.1.3 Приклад з’єднання трьох пристроїв через DCOM Послідовність - на вузлах серверу ОРС Серверу та ОРС Клієнту налаштовується DCOM та брандмауери ; - в ОРС Клієнті крім ProgID вказується Server Node Вимоги - вузли ОРС Серверу та ОРС Клієнту в межах одного домену або робочої групи - на вузлах запущені необхідні служби (RPC, COM …) - на вузлах налаштовані брандмауери
  • 13.
    13 Область застосування ОРС SCADA ПЛК1 драйверизв’язку OPC Server SCADA OPC Client ПЛК2 драйвери зв’язку OPC Server DCOM ПЛК3 SCADA ПК1 ПК2 ПК3 MES- програма OPC Client ПК4 Excel OPC Client ПК5 Приклад використання ОРС в якості моста SCADA програма "SamplSCADA" приклад «класичного» використання ОРС змінні реального часу SCADA драйвер для X драйвер для Y змінні реального часу OPC драйвер для Z ОРС-Сервер "Sampl.OPC" Інтерфейс ОРС ПК ПЛК1 ПЛК21 ПЛК31 ПЛК43 1 змінні реального часу OPC ОРС-Сервер "Exmpl.OPC" драйвер для Q Інтерфейс ОРС драйвер ОРС Client
  • 14.
    Недоліки OPC DA •на COM: • тільки Windows/тільки PC • складності DCOM • небезпечний (чорний ящик) • не прозорий для Інтернета/IIoT • проблеми адресації (немає чітких правил, адресація тільки всередині сервера, глибока ієрархія…) • декілька різних специфікацій (DA, HDA, AE, Batch) 14
  • 15.
    Основні концепції OPCUA: інформаційна модель
  • 16.
    Вступ в OPCUA Єдиний стандарт для різних задач: • інформаційні моделі: • DA - Data Access • AC - Alarms & Conditions • HA - Historical Access • Prog - Programs • свої • розширення
  • 17.
    Комунікаційна архітектура https://reference.opcfoundation.org/v104/Core/docs/Part6/4/ https://reference.opcfoundation.org/v104/Core/docs/Part6/7.6/ Transport Mapping URL OPC UATCP opc.tcp://localhost:4840/UADiscover y OPC UA WebSockets opc.wss://localhost:443/UADiscovery OPC UA HTTPS https://localhost:443/UADiscovery Кодування даних • XML/text; • UA Binary; • JSON.
  • 18.
    Об’єктна модель • Client-Server •Сервер надає сервіси, при підключенні говорить які доступні • данні і сервіси доступні через об'єкти • об'єкти мають методи, властивості, події … • об'єкти і їх складові пов'язані в адресні простори (Address Space)
  • 19.
    Адресний простір Object -folder Object Data Variable Method Property • об'єкти і їх частини – вузли • вузли ідентифікуються в адресному просторі
  • 20.
    Модель вузла • атрибути(набор характеристик) • посилання (організація зв'язку вузлів)
  • 21.
    Модель вузла: атрибути Атрибути: •не видимі (не представлені) як вузол в адресному просторі • елементарні дані про вузол • набір атрибутів незмінний • набір залежить від класу об'єкта • зчитуються/пишуться • мають: ID, ім'я, опис, тип даних, індикатор
  • 22.
    Класи вузлів • Object(обєкт) – аналогія екземпляра в ООП • Variable (змінн) – зміст об'єкта • Method (Метод) • View (прдеставлення) – організація свого виду адресного простору • ObjectType (тип обєкту) – аналогія класу об'єкта в ООП • VariableType (тип змінної) – означує набір властивостей для змінної • ReferenceType (тип посилання) • DataType (тип даних) • означує • набір атрибутів • типів посилань • не розширюються (не можна добавити свій)
  • 23.
    Object • Контейнер (посилань)для методів, змінних, властивостей, інших об'єктів; сам не містить значення • може ініціювати події (для ідентифікації події)
  • 24.
    Variable • Представляють змістоб'єкта (об'єкт не має атрибута Value) • Читання, запис, підписка • Типи Variables: • Properties (Властивості) • DataVariables (Змінні даних)
  • 25.
    Variable - DataVariable •представляють зміст об'єкту • можуть включати (посилання) інші об'єкти і властивості
  • 26.
    Variable - Property •для опису об'єкта/змінної • добавляються за необхідності (атрибути добавити не можна) • не можуть мати вкладених властивостей
  • 27.
  • 28.
    Method • для діїнад об'єктом (в контексті об'єкта) • приймають аргументи • повертають результат • повинні виконуватися швидко, в іншому випадку - Programs
  • 29.
  • 30.
    Ідентифікація вузлів OPCUA NodeID – унікальний ідентифікатор вузла на сервері: • Namespace Index • Identifier Type • Identifier
  • 31.
    Namespace Index • посилаєтьсяпо номеру на URI простору імен NS • в межах NS ID унікальні • глобальні URI або локальний сервер • список URI зберігається в таблиці Namespaces, індекс списку и є Namespace Index • таблиці і індекси можуть змінюватися від сесії до сесії, 0 – завжди OPC UA
  • 32.
    Ідентифікатори Identifier type –формат і тип даних NodeID: • Numeric, String, GUID, opaque (ByteString) Identifier – сам ідентифікатор
  • 33.
    Ідентифікатори: XML-нотація <namespace index>- індекс простору імен, якщо 0 можна не писати <identifier type>: • i – NUMERIC (UInteger); • s – STRING (String); • g – GUID (Guid); • b – OPAQUE (ByteString) <identifier> - у форматі string ns=2;s=MyTemperature namespace index 2, string identifier i=2045 namespace index 0, numeric identifier ns=1;g=09087e75-8e5e-499b- 954f-f2a9603db28a namespace index 1, GUID identifier ns=1;b=M/RbKBsRVkePCePcx24o RA== namespace index 1, Opaque/ByteString identifier
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
    Endpoints • усі параметрипідключення в кінцевих точках (endpoint) • URL: протокол + адреса • Security Policy – алгоритм безпеки і размір ключа • Message Security Mode – рівень безпеки для повідомлень • User Token Type – тип автентифікації • Discovery Server (LDS) – для означення серверів • OPC UA сервер надає як мінімум одну кінцеву точку без захисту, що дає перелік доступних кінцевих точок LDS - opc.tcp://targetHost:4840
  • 39.
  • 40.
    Тестові сервери: OPCUnified Architecture Server
  • 41.
    Тестові сервери node-opcua wiki publiclyavailable OPC UA Servers and Clients http://opcuaserver.com Name Endpoint URL Vendor Vendor web site Local Discovery Server opc.tcp://opcuaserver.com:4840 OPC Foundation https://opcfoundation.or g OPC UA C++ Demo Server opc.tcp://opcuaserver.com:48010 Unified Automation https://www.unified- automation.com OPC UA Demo Weather Server (provides real weather data with 15 minute rate for majority of countries and cities around world) opc.tcp://opcuaserver.com:48484 Open source project at GitHub
  • 42.
  • 43.
    Для Android (ProsysOPC UA Client) opc.tcp://opcuaserver.com:48010 1 2 3 4 5 6 2 7 1 8
  • 44.
    HMI з OPCUA для Android (Suppanel HMI)1 https://youtu.be/35Tt8GHt58U 2 3 4 5 6 7 opc.tcp://opcuaserver.com:48010 8
  • 45.
    HMI з OPCUA для Android (Suppanel HMI) https://youtu.be/35Tt8GHt58U 1 2 3 4 5 тримати 6 7 8 9 10 подвійний 11 45
  • 46.
  • 47.
  • 48.