OpenSCADAWiki: Home Page Uk/Doc/ Web Vision
 
English (1 Kb) English
Russian (1 Kb) Российский

 (2 Kb) Сторінку заморожено, актуальна тут.

Модуль <WebVision> підсистеми "Користувацькі інтерфейси"

Модуль: WebVision
Ім'я: Робочий користувацький інтерфейс (WEB)
Тип: Користувацькі інтерфейси
Джерело: ui_WebVision.so
Версія: 2.2
Автор: Роман Савоченко, Максим Лисенко (2007-2012), Ксенія Яшина (2007-2008)
Опис: Web візуальний робочий користувацький інтерфейс для виконання проектів середовища візуалізації та управління (СВУ).
Ліцензія: GPL

Contents

Вступ

Модуль WebVision надає механізм кінцевої візуалізації середовища візуалізації та управління (СВУ) до системи OpenSCADA. Модуль засновано на WEB технологіях (XHTML, JavaScript, CSS, AJAX). У своїй роботі модуль використовує дані рушія СВУ (модуль VCAEngine).

Середовище візуалізації та управління (СВУ) є невід'ємною складовою SCADA системи. Воно застосовується на клієнтських станціях з метою доступного надання інформації про об'єкт управління та видачі керуючих дій на об'єкт. У різних практичних випадках та умовах можуть застосовуватися СВУ, побудовані на різних принципах візуалізації. Наприклад, це можуть бути бібліотеки віджетів Qt, GTK+, wxWidgets або гіпертекстові механізми на основі технологій HTML, XHTML, XML, CSS та JavaScript, або ж сторонні додатки візуалізації, реалізовані на різних мовах програмування: Java, Python та інше. Будь який з цих принципів має свої переваги та недоліки, комбінація яких може стати непереборною перепоною у можливості використання СВУ у тому або іншому практичному випадку. Наприклад, технології на кшталт бібліотеки Qt дозволяють створювати високопродуктивні СВУ, що безсумнівно важливо для станцій оператору управління технологічним процесом (ТП). Однак потреба у інсталяції такого клієнтського ПЗ у окремих випадках може зробити використання його неможливим. З іншого боку Web-технології не потребують інсталяції на клієнтські системи та є гранично багатоплатформеними (достатньо створити посилання на Web-сервер у будь якому Web-браузері), що більш важливо для різних інженерних та адміністративних станцій. Але продуктивність та надійність таких інтерфейсів нижче, що практично виключає їх використання на станціях оператору ТП.

Система OpenSCADA має гнучку архітектуру, яка дозволяє створювати зовнішні інтерфейси, в том числі і користувацькі, на будь якій основі та на будь який смак. Наприклад, середовище конфігурації системи OpenSCADA доступне як на Qt бібліотеці, так і на Web-основі.

В той-же час незалежне створення реалізацій СВУ на різній основі може потягти за собою неможливість використання даних конфігурації однієї СВУ у іншій, що незручно та обмежено з боку користувача, та накладне у плані реалізації та подальшої підтримки. З метою запобігти цих проблем, а також створення у коротші терміни повного спектру різних типів СВУ засновано проект створення концепції СВУ. Результатом цього проекту й став цей модуль безпосередньої візуалізації (на основі Web-технологій), модуль безпосередньої візуалізації Vision EN RU та рушій СВУ VCAEngine EN RU.

1. Призначення

Даний модуль безпосередньої візуалізації СВУ призначено тільки для виконання інтерфейсів СВУ у середовищі WEB-технологій!

Інтерфейс користувача формується у WEB-браузері шляхом звернення до WEB-серверу та отримання від нього XHTML-документу за протоколом HTTP. У цьому випадку у ролі WEB-серверу виступає система OpenSCADA, яка підтримує стандартні комунікаційні механізми TCP-мереж (модуль Transport.Sockets), протокол передачі гіпертексту (модуль Protocol.HTTP), а також шифрування трафіку між браузером та сервером (Transport.SSL). Виходячи з цього, для отримання доступу до інтерфейсу користувача, який надається цим модулем, потрібно у OpenSCADA налаштувати транспорт (Transport.Sockets або Transport.SSL) у поєднані з протоколом HTTP (Protocol.HTTP). У поставці з системою OpenSCADA йдуть конфігураційні файли, які містять налаштування Transport.Sockets для портів 10002 та 10004. Відповідно, інтерфейс модуля у конфігурації OpenSCADA по замовченню буде доступний за URL: "http://localhost:10002" и "http://localhost:10004".

Фінальна версія цього модуля СВУ, яка побудована на основі даного модуля, забезпечить:

2. Виконання інтерфейсів СВУ

Виконання інтерфейсу СВУ полягає в запуску нового сеансу проекту або підключення до існуючого на рівні рушія СВУ (рис.2). Перед запитом на підключення до сеансу здійснюється запит на аутентифікацію користувача. Далі модуль безпосередньої візуалізації відображає та керує даними сеансу. Головне вікно режиму виконання даного модуля має вигляд, наведений на рис.3.

Інтерфейс вікна виконання повністю будується динамічно скриптом JavaScript, виходячи із вмісту сеансу проекту шляхом прямих XML запитів до серверу.

Реалізовано оновлення вмісту відкритих сторінок інтерфейсу візуалізації з періодичністю виконання візуалізованого сеансу проекту візуалізації. В процесі оновлення здійснюється:

Механізм запиту тільки змінених даних засновано на абсолютному лічильнику виконання сеансу. При внесенні реальних змін до атрибутів віджетів здійснюється запам'ятовування значення цього лічильника, що й дозволяє ідентифікувати змінені атрибути. Такий підхід дозволяє підвищити продуктивність та зменшити трафік, у випадку доступу до рушія СВУ через мережу.

Ієрархічно модулем передбачається можливість розташування сторінок проекту як на головному вікні виконання WEB-браузеру (рис.3), так і вкладаючи всередину віджетів контейнерів.

Модуль підтримує багатомовність, яка вмикається динамічним перекладом повідомлень OpenSCADA (RU). Отримана мова передається модулем Protocol.HTTP та визначається шляхом та у послідовності:

Сторінка аутентифікації. (12 Kb)
Рис.1. Сторінка аутентифікації.


Підключення або створення нового сеансу виконання проекту СВУ. (23 Kb)
Рис.2. Підключення або створення нового сеансу виконання проекту СВУ.


Головне вікно режиму виконання. (112 Kb)
Рис.3. Головне вікно режиму виконання.

3. Представлення базових елементів (Примітиви)

У поточній версії модуля реалізовано не всі образи примітивів (та виглядів реалізованих) закладених цим проектом. В цілому ж проектом закладено примітиви:
Id Найменування Функція
ElFigure Елементарні графічні фігури Примітив є основою для отрисовки елементарних графічних фігур зі всілякою комбінацією їх в одному об'єкті. Передбачається підтримка наступних елементарних фігур:
  • Лінія.
  • Дуга.
  • Крива без'є.
  • Заливка замкненого простору.
Для всіх фігур, які містяться у віджеті, встановлюються єдині властивості товщини, кольору та інше, але це не виключає можливості визначення вищеперелічених атрибутів для кожної фігури окремо.
FormEl Елементи форми Включає підтримку стандартних компонентів форми:
  • Редагування рядку.
  • Редагування тексту.
  • Прапорець.
  • Кнопка.
  • Вибір із переліку.
  • Перелік.
  • Дерево.
  • Таблиця.
  • Слайдер.
  • Рядок прокрутки (ідентично Сладер).
Text Текст Елемент тексту(мітки). Характеризується типом шрифту, кольором, орієнтацією та вирівнюванням.
Media Медіа Елемент відображення растрових та векторних зображень різних форматів, програвання анімірованих зображень, програвання аудіо фрагментів та перегляд відео-фрагментів.
Diagram Діаграма Елемент діаграми з підтримкою можливості відображення декількох потоків трендів, частотного спектра, XY діаграм реального часу, ... .
Protocol Протокол Елемент протоколу, візуалізатора системних повідомлень з підтримкою декількох режимів роботи.
Document Документ Елемент формування звітів, журналів та іншої документації на основі доступних у системі даних.
Box Контейнер Містить механізм розташування/включення інших віджетів з метою формування нових, більш складних, віджетів та сторінок кінцевої візуалізації.
Function, у планах Функція API об'єктної моделі OpenSCADA Невізуальний, на боці виконання, віджет, який дозволяє включати обчислювальні функції об'єктної моделі OpenSCADA до СВУ.

Більш детально розглянемо реалізацію кожного примітиву.

3.1. Примітив елементарна фігура (ElFigure)


Реалізовано підтримку елементарних фігур: лінії, еліптичної дуги, кривої Без'є та заливка замкнених контурів кольором та зображенням з властивостями:

На рисунку представлено частину екрану з кадром, який містить елементарні фігури.

Частину екрану з кадром, який містить елементарні фігури (7 Kb)


3.2. Примітив тексту (Text)


Реалізовано підтримку елементу тексту з властивостями:

На рисунку представлено частину екрану з кадром, який містить приклади тексту з використанням різних параметрів.

Частина екрану з кадром, який містить приклади тексту з використанням різних параметрів. (10 Kb)


3.3. Примітив елементів форми (FormEl)


Реалізовано підтримку елементів форми на кадрах СВУ. Реалізовано закладені властивості, включаючи наступні елементи форми:

Реалізовано режими: "Включено" та "Активовано", а також передачу змін та повідомлень у модель даних СВУ (рушій). Для всіх реалізованих представлень підтримується активний режим, тобто елементи можуть бути використані для створення форм користувацького вводу.

На рисунку представлено частину екрану з кадром, який містить перелічені вище елементи форми.

Частина екрану з кадром, який містить елементи форми. (22 Kb)


3.4. Примітив відображення медіа-матеріалів (Media)


Реалізовано підтримку елементу відображення медіа-матеріалів з властивостями:

На рисунку представлено частину екрану з кадром, який містить приклади перегляду/програвання медіа-даних.

Частина екрану з кадром, який містить приклади перегляду/програвання медіа-даних. (20 Kb)


3.5. Примітив побудови діаграм/графіків (Diagram)


Реалізовано підтримку елементу побудови діаграм для типів "Графік", "Спектр" та "XY" з властивостями:

На рисунку представлено частини екрану з кадром, який містить приклади діаграм: "Графік", "Спектр" та "XY".

Частини екрану з кадром, який містить приклади діаграм: "Графік", "Спектр" та "XY". (11 Kb)


3.6. Примітив формування протоколу (Protocol)


Реалізовано підтримку елементу формування протоколу з властивостями:

На рисунку представлено частину екрану з кадром, який містить приклад протоколу.

Частина екрану з кадром, який містить приклад протоколу. (14 Kb)


3.7. Примітив формування звітної документації (Document)


Реалізовано підтримку елементу формування звітної документації з властивостями:

В основі будь якого документу лежить XHTML-шаблон. XHTML-шаблон це тег "body" WEB-сторінки, який містить статику документу у стандарті XHTML 1.0, та елементи виконуваних інструкцій на одній з мов користувацького програмування OpenSCADA у вигляді <?dp {procedure} ?>. Результуючий документ формується шляхом виконання процедур та вставки їх результату у документ.

Джерелом значень виконуваних інструкцій є атрибути віджету цього примітиву, а також всі механізми мови користувацького програмування. Атрибути можуть додаватися користувачем та лінкуватися на реальні атрибути параметрів або-ж бути автономними, значення яких будуть формуватися у скрипті віджету. У випадку із злінкованими атрибутами можуть вилучатися значення із історії, архіву.

На рисунку представлено кадр, який містить приклад документу.

Кадр, який містить приклад документу. (47 Kb)


3.8. Примітив контейнеру (Box)


Реалізовано підтримку примітиву контейнера, який за сумісництвом виконує роль сторінок проектів. Цей примітив є єдиним елементом/контейнером, який може включати у себе посилання на кадри із бібліотеки, формуючи тим самим користувацькі елементи потрібної конфігурації. Примітив реалізує передбачені проектом властивості. Перелічимо за пунктами властивості даного примітиву:

4. Загальна конфігурація модуля

Для налаштування загальної поведінки, модулем надається можливість налаштування низки параметрів за посередництвом інтерфейсу управління OpenSCADA (рис. 11):

Сторінка конфігурації модуля. (91 Kb)
Рис.11. Сторінка конфігурації модуля.

Заключення

На цьому етапі модуль може бути використаний для побудови реальних інтерфейсів користувача з підтримкою основних функцій. Однак окремі проблеми можуть виникати як з причини недоопрацьованості, так й різниці браузерів. На цей час достатньо якісно забезпечено працездатність на браузерах: FireFox, Konqueror, Opera та Google Chromium.

Посилання

Referring pages: HomePageUk/Developers
HomePageUk/Doc
HomePageUk/Doc/HTTP
HomePageUk/Function
HomePageUk/Using/PLC/firmware
HomePageUk/Using/PLC/firmwareARM
HomePageUk/Using/SmartHouse