Людино-машинні інтерфейси Автор і лектор: Олександр Пупена доц. кафедри АКСТУ НУХТ
Лабораторна робота №6.
Інтеграція SCADA/HMI зі сторонніми засобами та розробка HMI для мобільних гаджетів
Тривалість: 8 акад. годин (4 пари).
Мета: ознайомлення з принципами інтегрування SCADA/HMI з іншими програмним засобами з використанням технології OPC.
Завдання для виконання роботи
Цілі.
- Опанувати основні діяльності з налаштування OPC Server та OPC Client в технології OPC DA.
- Опанувати основні діяльності з налаштування OPC Server та OPC Client в технології OPC UA.
- Навчитися розробляти прикладне ПЗ на базі SCADA Citect з використанням драйверів OPC.
- Навчитися розробляти застосунки HMI для мобільних гаджетів з використанням спеціалізованого ПЗ та інтегрувати їх зі SCADA/HMI.
Лабораторна установка
Апаратне забезпечення: ПК.
Програмне забезпечення: UNITY PRO V>=7.0 або Control Expert, Citect 2016 (або новіше). . Увага! Графічна система, починаючи з Citect 2020 повністю змінена. Тому даний лабораторний практикум не призначений для версій Citect, новіших за Citect 2018R2.
Примітки щодо відео: представлені в роботі відеоматеріали є студентською інтерпретацією лабораторної роботи, носять ознайомчий характер і можуть містити помилки!
Порядок виконання роботи
1.Ознайомлення з додатками
- Поверхово ознайомтеся зі змістом додатків до лабораторної роботи:
- Додаток 6.1. Налаштування та перевірка роботи серверів OPC DA
- Додаток 6.2. Налаштування Citect для роботи в якості OPC DA Client
- Додаток 6.3. Налаштування та перевірка роботи серверів OPC UA
- Додаток 6.4. Налаштування Citect для роботи в якості OPC UA Client
- Додаток 6.5. Встановлення та налаштування OPC DA - OPC UA шлюза
- Додаток 6.6. Розробка HMI для мобільних гаджетів та їх інтегрування через OPC
2. Підготовка імітатору на ПЛК
- Завантажте в імітатор контролера підготовлений проект Unity PRO, що описаний у файлі Завдання, як це робили на попередній роботі. Якщо проект був збережений як
STU, варто відкрити його а не файл експорту. - Запустіть на виконання проект в Unity PRO. Перевірте його працездатність.
3. Відновлення власного проекту та перевірка його роботи
- Запустіть середовище розробки Citect.
- Якщо Ваш минулий проект не завантажено або змінено кимось іншим, зробіть відновлення свого проекту з резервної копії, збереженої минулої лабораторної роботи.
- За необхідності, зробіть компіляцію проекту.
- Запустіть свій проект на виконання і перевірте його працездатність, наприклад, змінюючи одну зі мінних у Citect і перевіряючи ці зміни в імітаторі ПЛК.
4. Експортування означення змінних з проекту
- Детально ознайомтеся з принципами налаштуванням OFS, які описані в додатку 6.1. Налаштування та перевірка роботи серверів OPC DA
- Після завантаження проекту UNITY PRO в ПЛК, зробіть експорт даних з типом
SFCSTEP_STATEв файл типу*.XVM
Увага! Кожне повне компілювання (Rebuild) розміщує дані в різних областях. Тому після компілювання для нормальної роботи змінних в OFS, потрібно робити експорт повторно
5. Встановлення та конфігурування OFS Server
- Завантажте та встановіть OFS Server. Деталі завантаження та встановлення описані в додатку 6.1. Налаштування та перевірка роботи серверів OPC DA
- Відкрийте конфігуратор OFS. Створіть та налаштуйте пристрій (псевдонім) на зв’язок з локальним емулятором ПЛК. У якості
symbol table fileвкажіть експортований до цього файл*.XVM. - Збережіть налаштування.
6. Перевірка роботи OFS Server за допомогою OFS Client
- Запустіть OFS Client.
- З’єднайтеся з сервером OFS.
- Створіть OPC групу та добавте в неї Item які стосуються кроку набору (
T1nabor). - При правильності налаштування та присутності з’єднання кружечки біля назви Item будуть зеленими (рис.6.1)
- Запустіть в ПЛК програму приготування. Перевірте, що в OFS Client значення
T1nabor.xвстановлено в 1 при активності кроку набору в Танк1, а зміннаT1nabor.t- збільшується.

рис.6.1. Перевірка роботи OFS Server.
7. Встановлення та конфігурування VIPA OPC
- Завантажте та встановіть VIPA OPC Server. Деталі завантаження та встановлення описані в додатку 6.1. Налаштування та перевірка роботи серверів OPC DA
- Відкрийте конфігуратор VIPA OPC (Від імені адміністратора).
- Видаліть усі мережі крім MPI та змініть назву пристрою на PLC1. Змініть налаштування, щоб він імітувався.
- Збережіть налаштування та переконфігуруйте службу як це вказано в додатку.
8. Перевірка роботи OPC VIPA за допомогою OFS Client
- Запустіть OFS Client.
- З’єднайтеся з сервером
VIPA.OPC-Server - Створіть OPC групу та добавте в неї дві змінні, які були сконфігуровані в сервері.
Спочатку змінні будуть відображатися як поганої якості (жовті трикутники), бо вони не ініціалізувалися.
- Запишіть (клік по елементу) в змінні якість значення.
Після цього індикатори зміняться на зелені кружечки, що свідчить про їх хорошу якість.
9. Створення пристрою I/O в Citect для з’єднання з OFS
- Уважно прочитайте Додаток 6.2. Налаштування Citect для роботи в якості OPC DA Client
- Використовуючи майстер створення пристроїв створіть I/O Device OFSM340, що буде зв’язуватися через драйвер OFSOPC. Зробіть зв’язок тегів Citect зі змінними OFS. При налаштуванні зв’язування вкажіть конфігурований в OFS псевдонім ПЛК.
- Після завершення майстра, передивіться теги, які були створені.
10. Перевірка роботи тегів з OFS
- У Citect створіть нову сторінку з назвою “OPCtest”.
- Виведіть 4-ри теги для відображення, які перевірялися в OFS Client (див. рис.6.1).
- Зробіть компілювання проекту та запустіть його на виконання. Перевірте чи співпадають значення з тими що показуються в OFS Client
11. Створення та перевірка пристрою I/O в Citect для з’єднання з VIPA OPC
- Використовуючи майстер створення пристроїв створіть I/O Device PLC1VIPA, що буде зв’язуватися через драйвер OPCClient. Зробіть зв’язок тегів Citect зі змінними OPC.
- Після завершення майстра, передивіться теги, які були створені.
12. Перевірка роботи тегів з VIPA OPC
- У Citect на сторінці “OPCtest” виведіть два теги для відображення та зміни (наприклад через джин KeyEntry.Parameter2), які перевірялися в OFS Client.
- Зробіть компілювання проекту та запустіть його на виконання. Введіть якісь значення. Перевірте чи співпадають значення з тими що показуються в OFS Client для VIPA OPC.
13. Завантаження та встановлення тестових застосунків OPC UA
- Уважно прочитайте Додаток 6.3. Налаштування та перевірка роботи серверів OPC UA
- Завантажте та встановіть OPC UA C++ Demo Server (під Winidows). Доступ до завантаження потребує реєстрації, але це безкоштовно.
- Завантажте та встановіть тестовий OPC UA Client UaExpert.
14. Запуск серверу та клієнту OPC UA
- Запустіть “OPC UA C++ Demo Server” та погодьтеся на внесення порту до списку дозволених брандмауером.
- У консольному вікні серверу знайдіть запис з URL кінцевої точки, на рис. 6.2 вона має таке значення
opc.tcp://DESKTOP-EJN0HKQ:48010

рис.6.2. Приклад кінцевої точки
- Запустіть UaExpert, натисніть “+” (Add server)
- Добавте тестовий OPC UA Server через меню Custom Discovery, шляхом копіювання URL, який наведений у консольному вікні серверу

рис.6.3. Добавлення OPC UA Server
- Виберіть підключення без захисту (None) і натисніть Ok

рис.6.4. Вибір з варіантів підлкючення
-
Для доданого серверу натисніть Connect.

рис.6.5. Підключення до серверу
-
У вікні що з’явиться, виберіть Trust Server Certificate, після чого натисніть Continue.

рис.6.6. Довіра до сертифікату серверу
15. Перегляд змісту OPC UA Сервера
- Використовуючи UaExpert проаналізуйте зміст об’єктів першого (Root) та другого рівня (Objects, Types, Views), проаналізуйте:
- перелік та зміст атрибутів: NodeID, NodeClass
- перелік та зміст посилань (References):
-
Проаналізуйте подібним чином ще одну з папок, вкладену в
Objects - Відкрийте для перегляду об’єкт
BuildingAutomation.AirConditioner_1 - Знайдіть DataVariable
Temperatureпроаналізуйте атрибутиValueтаDataType. - Проаналізуйте атрибути для властивостей
AirConditioner_1.Temperature.EURangeтаAirConditioner_1.Temperature.EngineeringUnits - Проаналізуйте атрибути
ValueтаDataTypeдля наступних об’єктів:Demo.Static.Arrays.AnalogMeasurementDemo.Static.Arrays.StructureDemo.Static.Matrix.Float
16.Використання Data Access View
- Якщо не відкрито вікно
Data Access View, створіть новий документ такого типу - Перетягніть
AirConditioner_1на вікноData Access View, повинні поміститися усі об’єкти, що знаходяться всередині - Подвійним кліком по полю
ValueвData Access Viewзмініть значенняTemperatureSetPointрівною 75 - Через контекстне меню в
Data Access Viewзайдіть в налаштуванняSubscription Settings, виставіть періодичність публікації рівною 4 секундам (4000). Перевірте, що значення змінюються не раніше ніж через 4 секунди. - Виставіть періодичність публікації рівною 1 секунді.
- Через контекстне меню
TemperatureвData Access Viewзайдіть в налаштуванняMonitoring Item Settingsзначення зони нечутливості 1 градус.

рис.6.7. Зміна інтервалу опитування
- Змініть налаштування уставки
TemperatureSetPointрівною 70. Тепер значення температури повинно оновлюватися тільки при зміні на 1 градус. - Зробіть копію екрану для звіту.
17. Створення пристрою I/O в Citect для з’єднання з OPC UA
- Уважно прочитайте Додаток 6.4. Налаштування Citect для роботи в якості OPC UA Client
- Використовуючи майстер створення пристроїв створіть новий I/O Device з іменем OPCUADEV та драйвером OPC UA.
- У якості OPC UA Серверу вкажіть UA CPP, який встановлений до цього.
- Зробіть лінкування тегів з гілкою
Demo->Dynamic->Scalar
18. Перевірка роботи тегів OPC UA
- У Citect на сторінці “OPCtest” виведіть теги
Scalar\Floatдля відображення. - Зробіть компілювання проекту та запустіть його на виконання. Перевірте чи співпадає значення з тим що показується в UA Expert.
19. Налаштування Citect для роботи як OPC DA Server
Citect може працювати не тільки як OPC DA Client, но і як OPC DA Server. Для цього необхідно явно вказати це в конфігурації. Крім того, для роботи в мережі, необхідно вірно налаштувати DCOM-конфігуратор.
- Створіть конфігурацію Citect OPC DA Server, як показано на рис.6.8
- Усі інші поля залиште за замовченням.

рис.6.8. Активування OPC DA серверу в проекті Citect.
20. Перевірка звязку з Citect як OPC DA Server
- Скомпілюйте та запустіть проект на виконання.
- Запустіть тестового OFS Client. У якості OPC серверу вкажіть
SchneiderElectric.SCADA.OpcDaServer.1

рис.6.9. З’єднання з Citect OPC DA Server.
- Створіть групу, та добавте якусь змінну, наприклад
HEA_TT1 - Перевірте чи співпадає значення змінної в SCADA.
21. Встановлення та налаштування OPC UA Gateway для зв’язку OPC UA Client з Citect
- Уважно прочитайте Додаток 6.5. Встановлення та налаштування OPC DA - OPC UA шлюза.
- Завантажте та встановіть OPC UA Gateway.
- Налаштуйте OPC UA Gateway для підключення до Citect як для OPC DA серверу.
- За допомогою UA Expert перевірте працездатність з’єднання, відображаючи одну зі змінних Citect.
22. Встановлення, налаштування та перевірка роботи HMI застосунку для Android
Дане завдання виконується за можливості та за бажанням.
-
Встановіть застосунок HMI з драйвером зв’язку OPC UA Client для Android або iOS на мобільний телефон або планшет. Один з прикладів -
Suppanel HMI, робота з яким описана в Додатку 6.6. Розробка HMI для мобільних гаджетів та їх інтегрування через OPC. - Налаштуйте зв’язок з тесовим OPC UA сервером
opc.tcp://opcuaserver.com:48010 - Розробіть примітив для відображення плинної температури одного з кондиціонерів.
- Налаштуйте зв’язок з OPC UA Gateway.
- Зробіть щоб можна було відображати плинну температуру на виході теплообмінника та змінювати задане значення з мобільного застосунку.
Питання до захисту
- Розкажіть про загальні принципи побудови обміну між SCADA/HMI та іншими засобами з використанням OPC DA.
- Яка програма називається OPC DA Server?
- Яка програма називається OPC DA Client?
- Чим виступає SCADA/HMI програма при з’єднанні з ПЛК OPC DA Client чи Server?
- Що необхідно налаштувати в OPC DA Server для забезпечення доступу до даних через його драйвер?
- Що необхідно налаштувати в SCADA/HMI програмі для забезпечення доступу до даних OPC DA Server, до якого він намагається підключитися?
- Що таке ОРС-Item і OPC-Group в OPC DA?
- Які специфікації є в OPC DA?
- Як у стандарті означені правила ідентифікації тегів?
- Як можна дізнатися про формування ідентифікатора OPC ItemID? Покажіть це на прикладі.
- Які основні атрибути, окрім Value, є в OPC Item?
- Яке призначення OPC-Group?
- Розкажіть про операції читання/записування OPC Item.
- Які процедури необхідно зробити, щоб налаштувати з’єднання з віддаленим OPC сервером? Покажіть на прикладі однієї з програм SCADA/HMI.
- У якій сфері застосовують технології OPC DA в проектах зі SCADA/HMI?
- Який порядок перевірки наявності зв’язку із джерелом даних при використанні OPC DA як універсального драйвера SCADA/HMI?
- Яка принципова відмінність OPC DA від OPC UA? Які в цьому переваги?
- Розкажіть про принципи організації адресного простору OPC UA (Address Space).
- Які класи вузлів Ви знаєте? Яке їх призначення?
- Що таке атрибути вузла?
- Як організовані зв’язки між вузлами? Що таке посилання?
- Розкажіть про призначення вузлів класу Змінні (Variables).
- Чим відрізняються типи вузлів класу змінних: Properties (Властивості) і DataVariables (Змінні Даних)?
- Розкажіть, як означується ідентифікатор NodeId для вузла.
- Що таке Namespace Index? Як URI простору імен пов’язаний з індексом?
- Як правильно звертатися до простору імен у різних сесіях?
- Які IdentifierType Ви можете назвати?
- Як представляється повний кваліфікатор NodeId в XML-нотації?
- Яким проводиться налаштування Контрольованих Елементів (Monitored Items) та Підписки (Subscription)?
- Розкажіть про призначення сервера виявлення (Discovery Server).
- Розкажіть про принципи автентифікації в OPC UA.
- Які режими безпеки доступні для OPC UA?
- Як в OPC UA організована довіра клієнтів і серверів через сертифікацію?
- Які варіанти параметрів безпеки доступні в OPC UA?
- Розкажіть про процедуру підключення OPC UA клієнта. Покажіть на прикладі однієї з програм SCADA/HMI.
- Розкажіть на прикладі як можна використати тестові утиліти OPC UA для виявлення проблем.