Доповідь на тему «Розробка середовища програмування системи OpenSCADA для хіміко-технологічних процесів.»

Вступ

SCADA(Supervisory Control and Data Aquisition) системи це комплекс програмного забезпечення який використовується для керування технологічними процесами у складі автоматизованих систем керування технологічними процесами (АСУТП).

Структура SCADA систем, див плакат 1, взагалі, є розгалуженою і складається з наступних апаратно-програмних компонентів:

контролер технологічного процесу;

сервери збору даних;

сервер архівації значень;

сервер протоколювання;

сервер сигналізації;

місце оператора;

місце інженера;

місце технолога-програміста;

місце технолога;

місце керівника.

Часто на практиці ці апаратно-програмні компоненти поєднуються один з одним у різноманітних комбінаціях, але така структура все одно залишається.

Система OpenSCADA є відкритою SCADA системою яка розробляється за принципами: відкритості, багатоплатформності, модульності та масштабованості.

Завдяки своїй гнучкості, яка обумовлена модульністтю, система OpenSCADA може використовуватися у ролі будь якого компонента SCADA системи.

Архітектуру системи OpenSCADA приведено на плакаті 2.

Середовище програмування

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

У відношенні до системи OpenSCADA, середовище програмування може застосовуватися на будь якому рівні, починаючи з контролера технологічного процесу (у вигляді керуючої програми) і закінчуючи місцем технолога (у вигляді математичної моделі технологічного процесу).

Даний дипломний проект і присвячено створенню середовища програмування для системи OpenSCADA. Ця розробка дозволить виконувати наступні завдання:

алгоритми керування технологічними процесами;

моделі: технологічних, хімічних та інших процесів;

програми користувача для керування системою OpenSCADA;

гнучке керування структурами параметрів;

допоміжні обчислення.

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

Архітектура

Виходячи з того що функція та обчислювач можуть бути реалізовано окремо, тобто у вигляді модулів було створено проміжний рівень у ядрі системи OpenSCADA у вигляді підсистеми «Функції».

Архітектуру повністю можна побачити на четвертому плакаті. Чітко видно відокремлення джерела функції від обчислювача та проміжний шар між ними у вигляді підсистеми «Функції». Ця структура також чітко відслідковується в реалізації середовища програмування що видно з статичної діаграми класів цього плакату.

Компоненти

Звісно, середовище програмування саме по собі не складає практичної цінності оскільки не містить не функцій та їх алгоритмів не обчислювачів. Тому були створені компоненти середовища програмування у складі:

модуль «JavaLikeCalk» підсистеми «Контролери»;

модуль «BlockCalc» підсистеми «Контролери»;

модуль «StaticFuncLibs» підсистеми «Спеціальні».

Модуль «StaticFuncLibs» підсистеми «Спеціальні» надає бібліотеки статичних функцій:

Complex1 – бібліотека сумісності зі SCADA Compex1 фірми НІП «ДІЯ»;

бібліотека стандартних математичних функцій.

Модуль «BlockCalc» підсистеми «Контролери» надає механізм обчислень на основі мови блоків.

Власне, модулів «StaticFuncLibs» та «BlockCalc» вже достатньо для забезпечення обчислень на основі алгоритмів статичних блоків.

Однак, цього не досить, оскільки залишаються значні обмеження обумовлені чіткою границею функціональності функцій статичної бібліотеки. Крім того, хоча мова блоків і проста у освоєні але вона і стає громіздкою при реалізаціях складних задач.

Тому і створено модуль «JavaLikeCalk». Цей модуль надає механізм створення функцій користувачем на мові подібній до Java. Тобто, за допомогою цього модуля можна створювати будь які алгоритми. Окрім можливості створення бібліотек функцій на Java-подібній мові модуль, також дозволяє створювати безпосередні обчислення на цій же мові.

В межах модуля «JavaLikeCalk» були розроблені компілятор та віртуальна машина. Використання віртуальної машини для виконання програми дозволило досягти максимальної продуктивності обчислень.

Розроблена мова достатньо проста та гнучка. В подальших розробках планується наблизити цю мову до мови JavaScript.

Математична модель

У межах дипломного проекту була реалізована математична модель окремої ділянки хіміко-технологічного процесу. Принципову схему вузла хіміко-технологічного процесу наведено на плакаті 6.

В процесі реалізації, технологічний процес було представлено блочною схемою яку також приведено на плакаті 6.

Для кожного типу блоків, тобто для кожного апарату було створено математичну модель на Java-подібній мові. Отримані моделі апаратів було поєднано у блочну схему за допомогою мови блоків.

Модель апарату на основі Java-подібної мови було наведено на плакаті 6. на прикладі модель діафрагми.

Поєднання моделей апаратів у блочну схему приведено на цьому ж плакаті на прикладі діафрагми PP3.

Висновки

Завдяки цим компонентам система OpenSCADA отримала нові можливості які дозволяють:

створювати алгоритми керування технологічними процесами;

створювати моделі технологічних, хімічних, фізичних та інших процесів;

створювати програми користувача для керування внутрішніми функціями системи OpenSCADA та її підсистемами і модулями;

виконувати допоміжні обчислення.

Так, вже зараз можна створювати потужні математичні моделі технологічних процесів у чому ми впевнилися на демонстраційній математичній моделі. До того ж, розробка нових моделей та компонентів буде становитися простіше завдяки накопиченню бібліотек математичних моделей технологічних апаратів та інших компонентів.

Завдяки новим можливостям, система OpenSCADA тепер може виконувати функції середовища виконання програмованих логічних контролерів. Так, найближчим часом планується адаптувати систему OpenSCADA до роботи на процесорній платі ATH400 формату PC104 фірми Diamond Systems.

Треба врахувати, що розроблені компоненти не є панацеєю оскільки вони лише користуються середовищем програмування або надають свої функції, тобто можна легко створювати власні компоненти, які наприклад, додають підтримку іншої мови програмування.

Однак, розвиток середовища програмування не зупиняється. Вже зараз розглядається питання створення повноцінної об'єктної моделі системи OpenSCADA на основі середовища програмування та дерева об'єктів системи OpenSCADA.

Оскільки, розроблені компоненти середовища програмування є відкритим програмним забезпечення, то на його основі можна будувати власні рішення або використовувати для навчання.

Дипломний проект та компоненти середовища програмування повністю розроблені за допомогою відкритого програмного забезпечення, тобто взагалі без використання дорогого комерційного програмного забезпечення!

Перелік плакатів:

- Розгалужена структура SCADA

- Архітектура системи OpenSCADA

- Мета розробки та основа середовища програмування

- Архітектура середовища програмування

- Компоненти середовища програмування

- Математична модель на основі компонентів середовища програмування

2005-11-23T08:45:14