Функції та вимоги - OpenSCADAWiki

# Функції та вимоги

This page is a translated version of the page Functions and demands and the translation is 100% complete.

English • ‎mRussian • ‎Українська

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

## 1 Сфери застосування OpenSCADA

Поділ на сфери застосування виконано для спрощення сприйняття функціональних можливостей програми у світлі традиційної області проєкту OpenSCADA — автоматизація технологічних процесів. Хоча можлива як змішана, так і більш спеціалізована конфігурація програми для роботи з даними у реальному часі, наприклад, у сферах: ERP, Білінг, Розумний будинок та інше.

Рис.1. Ролі OpenSCADA.

### 1.1 Сервер SCADA системи

Середовище Візуалізації та Управління (СВУ) кінцевого користувача
Віддалений сервер візуалізації на основі рушія візуалізації та керування СВУ — локальний запуск модуля візуалізації UI.Vision, підключеного до цього серверу візуалізації. | Модуль рушія СВУ VCAEngine
Віддалений WEB інтерфейс | WEB-браузер Модуль візуалізатору WebVision Модуль рушія СВУ VCAEngine
Прості віддалені Web-інтерфейси користувача | WEB-браузер Модуль WebUser
Надання даних системам вищого рівня
За інтерфейсами
Послідовний інтерфейс: RS232, RS485, Modem, ... | Модуль Serial
Сокети IP-мереж та протоколи мережевого рівня TCP, UDP та Unix | Модуль Sockets
Шар безпечних сокетів (SSL) | Модуль SSL
За протоколами
Власний протокол OpenSCADA | Модуль SelfSystem
Протоколи сімейства ModBus: TCP, RTU та ASCII | Модуль ModBus
Протокол "OPC-UA" | Модуль OPC-UA
Прості спеціалізовані протоколи, розроблені за посередництвом користувацького протоколу | Модуль UserProtocol
Через СУБД
MySQL | Модуль MySQL
PostgreSQL | Модуль PostgreSQL
FireBird | Модуль FireBird
DBGate — БД іншої OpenSCADA станції | Модуль DBGate
ODBC — СУБД, для якої є ODBC драйвер | Модуль ODBC (не завершено)
Конфігурація та розробка (програміст SCADA та адміністратор)
Віддалено, через WEB-інтерфейс | Web-браузер Модуль WebCfgD або WebCfg
Віддалено, зі станції конфігурації за інтерфейсом керування OpenSCADA | Модуль SelfSystem
Мови програмування та обчислень користувача
JavaLikeCalc — мова високого рівня подібна до JavaScript та Java | Модуль JavaLikeCalc
Блокові схеми | Модуль BlockCalc
Зберігання даних станції
Конфігураційний файл | Ядро OpenSCADA
БД
SQLite | Модуль SQLite
MySQL | Модуль MySQL
PostgreSQL | Модуль PostgreSQL
FireBird | Модуль FireBird
DBGate — БД іншої OpenSCADA станції | Модуль DBGate
ODBC — СУБД, для якої є ODBC драйвер | Модуль ODBC (не завершено)
DBF | Модуль DBF
Директорії через LDAP | Модуль LDAP
Збір та контроль за внутрішніми та зовнішніми даними (DAQ)
Логічні та фізичні джерела різноманітного типу, які мають утиліти доступу до даних або досяжні посередництвом простих спеціалізованих мережевих протоколів. Здійснюється шляхом написання процедури користувацького протоколу отримання даних, на мові користувацького програмування. Реалізація найбільш відомих протоколів як протокол користувача: Бібліотека промислових пристроїв Промислова автоматика: Elemer TM510x, EDWARDS TURBOMOLECULAR PUMPS (SCU750), Sycon Multi Drop Protocol, Блок живлення турбо-молекулярних насосів (TMP-xx03), Вимірювач температури IT-3, IVE-452HS-02, OPTRIS CT/CTL, CTR 100-101, IEC-60870-104, Shark Slave Communication Protocol, DCON (приклад), OWEN (приклад). Лічильники ресурсів: Комп'ютер обліку тепла VKT7, Меркурій 200, Меркурій 230, НІК2303І. Бібліотека низькорівневих сенсорів та чипів I2C: PCF8591, PCF8574, BMP180, BME280, DS3231, AT24CXX; 1Wire чипи через адаптери DS9097 та DS9097U: DS1820, DS1820/DS18S20/DS1920, DS1822, DS2413, DS2408, DS2450, DS2438; Низькорівневі пристрої через GPIO: DHT11,22 (DHT), 1602A(HD44780). | Модуль мови користувацького програмування JavaLikeCalc Модуль LogicLev Модуль користувацького протоколу UserProtocol
Формування логічних джерел та похідних структур параметрів, базуючись на шаблонах параметрів та даних інших джерел | Модуль LogicLev
Формування логічних джерел за допомогою блокових схем | Модуль BlockCalc
Зовнішні сервери та ПЛК побудовані на OpenSCADA, можливо для дублювання | Модуль DAQGate
Інформація про програмно-апаратну платформу | Модуль System
Промислові контролери та інші пристрої за протоколом ModBus | Модуль ModBus
Промислові контролери за протоколом DCON | Модуль DCON
Промислові контролери та інші пристрої за протокол OPC-UA | Модуль OPC-UA
Промислові контролери та інші пристрої за протокол MMS(IEC-9506) | Модуль MMS
Мережеві пристрої або інші джерела за протоколом SNMP (Простий Протокол Керування Мережею) | Модуль SNMP
Промислове обладнання фірми ICP DAS, модулі серії: I7k, I8k, I87K та на шині ISA | Модуль ICP_DAS
Промислові контролери фірми Siemens серії S7 | Модуль Siemens
DAQ-плати на шинах ISA, PCI, PCMCIA та USB | Бібліотека Comedi Модуль Comedi
Вхідні канали звукових контролерів | Модуль SoundCard
Автоматика птахівництва фірми "Big Dutchman" | Модуль BFN
Архівація-Історія
Архіви повідомлень за категоріями та рівнями
Файли у форматі XML або плаского тексту та упаковкою застарілих архівів | Модуль FSArch
До таблиць архівних БД OpenSCADA | Модуль DBArch
На інший, заснований на OpenSCADA, сервер архівації, можливо виділений | заплановано
Архіви значень зібраних даних
Буфера у пам'яті визначеної довжини | Ядро OpenSCADA
Файли з подвійною упаковкою: послідовною та стандартним архіватором gzip | Модуль FSArch
До таблиць архівних БД OpenSCADA | Модуль DBArch
На інший, заснований на OpenSCADA, сервер архівації, можливо виділений | заплановано

### 1.2 Станція оператора технологічного процесу, пульт диспетчера, панель моніторингу та інше

FPC-1701
PPC-L126
Asus Nexus 7 II

Середовище Візуалізації та Управління (СВУ) кінцевого користувача
Локальний (швидкий) інтерфейс, заснований на бібліотеці Qt, з можливістю візуалізації віддаленого рушія СВУ — серверу візуалізації | Модуль візуалізатору Vision Модуль рушія СВУ VCAEngine
Віддалений WEB інтерфейс | WEB-браузер Модуль візуалізатору WebVision Модуль рушія СВУ VCAEngine
Прості віддалені Web-інтерфейси користувача | WEB-браузер Модуль WebUser
Конфігурація та розробка (програміст SCADA та адміністратор)
Локально, через Qt-інтерфейс | Модуль QTCfg Модуль Vision
Віддалено, через WEB-інтерфейс | Web-браузер Модуль WebCfgD або WebCfg
Віддалено, зі станції конфігурації за інтерфейсом керування OpenSCADA | Модуль SelfSystem
Мови програмування та обчислень користувача
JavaLikeCalc — мова високого рівня подібна до JavaScript та Java | Модуль JavaLikeCalc
Блокові схеми | Модуль BlockCalc
Зберігання даних станції
Конфігураційний файл | Ядро OpenSCADA
БД
SQLite | Модуль SQLite
MySQL | Модуль MySQL
PostgreSQL | Модуль PostgreSQL
FireBird | Модуль FireBird
DBGate — БД іншої OpenSCADA станції | Модуль DBGate
ODBC — СУБД, для якої є ODBC драйвер | Модуль ODBC (не завершено)
DBF | Модуль DBF
Директорії через LDAP | Модуль LDAP
Збір та контроль за внутрішніми та зовнішніми даними (DAQ)
Зовнішні сервери та ПЛК побудовані на OpenSCADA, можливо для дублювання | Модуль DAQGate
Промислові контролери та інші пристрої за протокол OPC-UA | Модуль OPC-UA
Мережеві пристрої або інші джерела за протоколом SNMP (Простий Протокол Керування Мережею) | Модуль SNMP
Архівація-Історія
Архіви повідомлень за категоріями та рівнями
Файли у форматі XML або плаского тексту та упаковкою застарілих архівів | Модуль FSArch
До таблиць архівних БД OpenSCADA | Модуль DBArch
На інший, заснований на OpenSCADA, сервер архівації, можливо виділений | заплановано
Архіви значень зібраних даних
Буфера у пам'яті визначеної довжини | Ядро OpenSCADA
Файли з подвійною упаковкою: послідовною та стандартним архіватором gzip | Модуль FSArch
До таблиць архівних БД OpenSCADA | Модуль DBArch
На інший, заснований на OpenSCADA, сервер архівації, можливо виділений | заплановано

### 1.3 Середовище виконання контролерів (ПЛК)

LP-8781
LP-5141
SMH2Gi
PCA-6753
Raspberry Pi
Orange Pi

Надання даних системам вищого рівня
За інтерфейсами
Послідовний інтерфейс: RS232, RS485, Modem, ... | Модуль Serial
Сокети IP-мереж та протоколи мережевого рівня TCP, UDP та Unix | Модуль Sockets
Шар безпечних сокетів (SSL) | Модуль SSL
За протоколами
Власний протокол OpenSCADA | Модуль SelfSystem
Протоколи сімейства ModBus: TCP, RTU та ASCII | Модуль ModBus
Протокол "OPC-UA" | Модуль OPC-UA
Прості спеціалізовані протоколи, розроблені за посередництвом користувацького протоколу | Модуль UserProtocol
Через СУБД
MySQL | Модуль MySQL
PostgreSQL | Модуль PostgreSQL
FireBird | Модуль FireBird
DBGate — БД іншої OpenSCADA станції | Модуль DBGate
ODBC — СУБД, для якої є ODBC драйвер | Модуль ODBC (не завершено)
Конфігурація та розробка (програміст SCADA та адміністратор)
Віддалено, через WEB-інтерфейс | Web-браузер Модуль WebCfgD або WebCfg
Віддалено, зі станції конфігурації за інтерфейсом керування OpenSCADA | Модуль SelfSystem
Мови програмування та обчислень користувача
JavaLikeCalc — мова високого рівня подібна до JavaScript та Java | Модуль JavaLikeCalc
Блокові схеми | Модуль BlockCalc
Зберігання даних станції
Конфігураційний файл | Ядро OpenSCADA
БД
SQLite | Модуль SQLite
MySQL | Модуль MySQL
PostgreSQL | Модуль PostgreSQL
FireBird | Модуль FireBird
DBGate — БД іншої OpenSCADA станції | Модуль DBGate
ODBC — СУБД, для якої є ODBC драйвер | Модуль ODBC (не завершено)
DBF | Модуль DBF
Директорії через LDAP | Модуль LDAP
Збір та контроль за внутрішніми та зовнішніми даними (DAQ)
Логічні та фізичні джерела різноманітного типу, які мають утиліти доступу до даних або досяжні посередництвом простих спеціалізованих мережевих протоколів. Здійснюється шляхом написання процедури користувацького протоколу отримання даних, на мові користувацького програмування. Реалізація найбільш відомих протоколів як протокол користувача: Бібліотека промислових пристроїв Промислова автоматика: Elemer TM510x, EDWARDS TURBOMOLECULAR PUMPS (SCU750), Sycon Multi Drop Protocol, Блок живлення турбо-молекулярних насосів (TMP-xx03), Вимірювач температури IT-3, IVE-452HS-02, OPTRIS CT/CTL, CTR 100-101, IEC-60870-104, Shark Slave Communication Protocol, DCON (приклад), OWEN (приклад). Лічильники ресурсів: Комп'ютер обліку тепла VKT7, Меркурій 200, Меркурій 230, НІК2303І. Бібліотека низькорівневих сенсорів та чипів I2C: PCF8591, PCF8574, BMP180, BME280, DS3231, AT24CXX; 1Wire чипи через адаптери DS9097 та DS9097U: DS1820, DS1820/DS18S20/DS1920, DS1822, DS2413, DS2408, DS2450, DS2438; Низькорівневі пристрої через GPIO: DHT11,22 (DHT), 1602A(HD44780). | Модуль мови користувацького програмування JavaLikeCalc Модуль LogicLev Модуль користувацького протоколу UserProtocol
Формування логічних джерел та похідних структур параметрів, базуючись на шаблонах параметрів та даних інших джерел | Модуль LogicLev
Формування логічних джерел за допомогою блокових схем | Модуль BlockCalc
Зовнішні сервери та ПЛК побудовані на OpenSCADA, можливо для дублювання | Модуль DAQGate
Інформація про програмно-апаратну платформу | Модуль System
Промислові контролери та інші пристрої за протоколом ModBus | Модуль ModBus
Промислові контролери за протоколом DCON | Модуль DCON
Промислові контролери та інші пристрої за протокол OPC-UA | Модуль OPC-UA
Промислові контролери та інші пристрої за протокол MMS(IEC-9506) | Модуль MMS
Мережеві пристрої або інші джерела за протоколом SNMP (Простий Протокол Керування Мережею) | Модуль SNMP
Промислове обладнання фірми ICP DAS, модулі серії: I7k, I8k, I87K та на шині ISA | Модуль ICP_DAS
Промислові контролери фірми Siemens серії S7 | Модуль Siemens
DAQ-плати Diamond Systems | Модуль DiamondBoards
DAQ-плати на шинах ISA, PCI, PCMCIA та USB | Бібліотека Comedi Модуль Comedi
Вхідні канали звукових контролерів | Модуль SoundCard
Автоматика птахівництва фірми "Big Dutchman" | Модуль BFN
Дискретні входи/виходи загального призначення різних одноплатних комп'ютерів | Модуль GPIO
Архівація-Історія
Архіви повідомлень за категоріями та рівнями
Файли у форматі XML або плаского тексту та упаковкою застарілих архівів | Модуль FSArch
До таблиць архівних БД OpenSCADA | Модуль DBArch
На інший, заснований на OpenSCADA, сервер архівації, можливо виділений | заплановано
Архіви значень зібраних даних
Буфера у пам'яті визначеної довжини | Ядро OpenSCADA
Файли з подвійною упаковкою: послідовною та стандартним архіватором gzip | Модуль FSArch
До таблиць архівних БД OpenSCADA | Модуль DBArch
На інший, заснований на OpenSCADA, сервер архівації, можливо виділений | заплановано

### 1.4 Універсальний OPC-UA сервер

Завдяки реалізації протоколу OPC-UA у режимі агенту, OpenSCADA може надавати розповсюджену функцію OPC-сервера на клієнтські протоколи, які підтримуються і прямо реалізуються у OpenSCADA. Ця функція широко використовується на платформі MS Windows®, а багато SCADA-систем на ній працюють виключно з OPC—серверами, як джерелами даних. Таким чином, OpenSCADA може виступати універсальним OPC-сервером на платформі Linux (рис.2).

У планах. З адаптацією OpenSCADA до роботи на платформі MS Windows® та реалізацією роботи з OPC-DA за посередництвом системного DCOM, з'явиться можливість застосування OpenSCADA у ролі шлюзу OPC-DA -> OPC-UA, відтак і доступної інтеграції застарілих систем у нові або акумулюючі системи.

Рис.2. Роль OpenSCADA як OPC-UA сервер.

Збір та контроль за внутрішніми та зовнішніми даними (DAQ)
Логічні та фізичні джерела різноманітного типу, які мають утиліти доступу до даних або досяжні посередництвом простих спеціалізованих мережевих протоколів. Здійснюється шляхом написання процедури користувацького протоколу отримання даних, на мові користувацького програмування | Модуль мови користувацького програмування JavaLikeCalc Модуль LogicLev Модуль користувацького протоколу UserProtocol
Формування логічних джерел та похідних структур параметрів, базуючись на шаблонах параметрів та даних інших джерел | Модуль LogicLev
Формування логічних джерел за допомогою блокових схем | Модуль BlockCalc
Зовнішні сервери та ПЛК побудовані на OpenSCADA, можливо для дублювання | Модуль DAQGate
Інформація про програмно-апаратну платформу | Модуль System
Промислові контролери та інші пристрої за протоколом ModBus | Модуль ModBus
Промислові контролери за протоколом DCON | Модуль DCON
Промислові контролери та інші пристрої за протокол OPC-UA | Модуль OPC-UA
Промислові контролери та інші пристрої за протокол MMS(IEC-9506) | Модуль MMS
Мережеві пристрої або інші джерела за протоколом SNMP (Простий Протокол Керування Мережею) | Модуль SNMP
Промислове обладнання фірми ICP DAS, модулі серії: I7k, I8k, I87K та на шині ISA | Модуль ICP_DAS
Промислові контролери фірми Siemens серії S7 | Модуль Siemens
DAQ-плати Diamond Systems | Модуль DiamondBoards
DAQ-плати на шинах ISA, PCI, PCMCIA та USB | Бібліотека Comedi Модуль Comedi
Вхідні канали звукових контролерів | Модуль SoundCard
Автоматика птахівництва фірми "Big Dutchman" | Модуль BFN
Дискретні входи/виходи загального призначення різних одноплатних комп'ютерів | Модуль GPIO

## 2 Вимоги OpenSCADA

### 2.1 Виконання

Апаратні вимоги OpenSCADA для її виконання у різних ролях приведено у таблиці 1. Програмні вимоги для виконання OpenSCADA та її модулів представлено у таблиці 2.

Таблиця 1. Апаратні вимоги OpenSCADA та її модулів.

Роль | Вимоги
--- | ---
Сервер SCADA | CPU: x86 (i586 і вище), x86_64, ARM або MIPS, частотою більше 500 МГц MEM: 128 МБ HDD: 10 ГБ включаючи ОС та місце для архівів
Станція оператора технологічного процесу, пульт диспетчера, панель моніторингу та інше | CPU: x86 (i586 і вище), x86_64 або ARM, частотою більше 1 ГГц MEM: 512 МБ HDD: 4 ГБ включаючи ОС та без архівів
Середовище виконання контролерів (ПЛК) | CPU: x86 (i586 і вище), x86_64, ARM або MIPS, частотою більше 133 МГц MEM: 32 МБ (від 2 МБ для OpenSCADA) HDD: 32 МБ включаючи ОС та без архівів (від 8 МБ для OpenSCADA)

Таблиця 2. Програмні вимоги виконання OpenSCADA та її модулів.

Компонент | Опис
--- | ---
Залежності ядра OpenSCADA
ОС Linux | Дистрибутив операційної системи Linux (Debian, Ubuntu, CentOs, SuSELinux, ...)
"Стандартні бібліотеки" | Стандартний набір бібліотек: GLibC (>= 2.3) або uCLibC (>= 0.9.32) та libstdc++ (>= 3.3). За звичай вже наявні у встановленому дистрибутиві. Особиста вимога це використання "рідної" бібліотеки потоків NPTL, вже використовується у всіх сучасних дистрибутивах ОС Linux
zlib | Бібліотека компресії.
libpcre[3], libpcre2 | Бібліотека роботи з регулярними виразами старої і нової версій, сумісна з Perl.
libgd (опц: --enable-LibGD) | Графічна бібліотека GD версії 2, бажано без підтримки XPM (виключена залежність на бібліотеку X-сервера) та з підтримкою FontConfig.
Модуль DB.SQLite
libsqlite3 | Бібліотека доступу до вбудованої БД SQLite версії 3.
Модуль DB.MySQL
libMySQL або libMariaDB | Бібліотека доступу до споріднених СУБД MySQL.
Модуль DB.PostgreSQL
libpq | Бібліотека доступу до СУБД PostgreSQL версії більш за 8.3.0.
Модуль DB.FireBird
firebird | СУБД FireBird версії 2 або 3. Часто відсутня у дистрибутивах Linux та потребує індивідуального завантаження з офіційного сайту (http://www.firebirdsql.org)!
Модуль DB.ODBC
iodbc | iODBC бібліотека керування драйверами.
Модуль DB.LDAP
libldap | OpenLDAP бібліотека.
Модуль DAQ.System
libsensors (опц: авт.) | Бібліотека сенсорів апаратури версії 2 або 3.
Модуль DAQ.OPC_UA
libssl | Бібліотека шифрування OpenSSL.
Модуль DAQ.SNMP
libsnmp | Бібліотека доступу до пристроїв мережі за протоколом SNMP.
Модуль DAQ.Comedi
libcomedi | Бібліотека реалізації підтримки DAQ-плат різних виробників на шинах ISA, PCI, PCMCIA та USB.
Модуль DAQ.SoundCard
libportaudio | Бібліотека багатоплатформеного доступу до звукових контролерів версії 19 та вище (не 18).
Модуль Transport.SSL
libssl | Бібліотека шифрування OpenSSL.
Модуль: UI.QTStarter
libQt4 (libQtGui) або libQt5 (libQt5Widgets,libQt5PrintSupport) або libQt6 (libQt6Widgets,libQt6PrintSupport) | Бібліотеки побудови графічного інтерфейсу користувача Qt версії 4.3 та вище або 5.1 та вище або 6.1 та вище.
libQtSensors або libQt5Sensors або libQt6Sensors (опц: авт.) | Бібліотека Qt сенсорів.
Модуль: UI.QTCfg
libQt4 (libQtGui) або libQt5 (libQt5Widgets,libQt5PrintSupport) або libQt6 (libQt6Widgets,libQt6PrintSupport) | Бібліотеки побудови графічного інтерфейсу користувача Qt версії 4.3 та вище або 5.1 та вище або 6.1 та вище.
Модуль UI.Vision
libQt4 (libQtGui) або libQt5 (libQt5Widgets,libQt5PrintSupport) або libQt6 (libQt6Widgets,libQt6PrintSupport) | Бібліотеки побудови графічного інтерфейсу користувача Qt версії 4.3 та вище або 5.1 та вище або 6.1 та вище.
libQtWebKit (Qt4) або qtwebengine5, libqt5webkit5 (Qt5) або qtwebengine6 (Qt6) (опц: авт.) | Бібліотека рушія Web-рендерінгу.
libphonon (Qt4) або qtmultimedia5, libphonon4qt5 (Qt5) або qtmultimedia6 (Qt6) (опц: авт.) | Бібліотека відтворення повноформатного відео та аудіо.
libfftw3 (опц: авт.) | Бібліотека швидкого розкладу сигналу у ряд Фурье.
Модуль UI.WebCfgD
libgd (опц: --enable-LibGD) | Графічна бібліотека GD версії 2, бажано без підтримки XPM (виключена залежність на бібліотеку X-сервера) та з підтримкою FontConfig.
Модуль UI.WebVision
libgd | Графічна бібліотека GD версії 2, бажано без підтримки XPM (виключена залежність на бібліотеку X-сервера) та з підтримкою FontConfig.
libfftw3 (опц: авт.) | Бібліотека швидкого розкладу сигналу у ряд Фурье.
Модуль Special.FLibSYS
libssl (опц: авт.) | Бібліотека шифрування OpenSSL.
libfftw3 (опц: авт.) | Бібліотека швидкого розкладу сигналу у ряд Фурье.

* "опц: авт." — передбачає вимкнення використання бібліотеки під час збірки у випадку її відсутності.

### 2.2 Складання

Залежності OpenSCADA для складання її ядра та модулів зведено до таблиці нижче.

Таблиця 3. Залежності збірки OpenSCADA та її модулів.

Компонент | Опис
--- | ---
Загальні вимоги для збірки OpenSCADA
ОС Linux | Дистрибутив операційної системи Linux (Debian, Ubuntu, CentOs, SuSELinux, ...)
g++ | Компілятор мови C++ версії 3.3 або вище з колекції компіляторів GCC, включаючи бібліотеку GLibC (>=2.3), uCLibC (>= 0.9.32) або Android BioniC.
autotools (autoconf, automake, libtool, pkg-config) | Інструменти формування складального середовища OpenSCADA. Потрібні тільки у випадку зміни складального середовища OpenSCADA, наприклад для додання нового модуля або зміни фіксованих параметрів збірки. Automake >= 1.9.
gettext | Група утиліт для приготування та компіляції перекладів інтерфейсу програми на різні мови у відповідності зі стандартом інтернаціоналізації I18N.
sqlite3 | Утиліта керування файлами БД SQLite3.
zlib (devel) | Бібліотека компресії, пакет для розробки.
libpcre[3], libpcre2 (devel) | Бібліотека роботи з регулярними виразами старої і нової версій, сумісна з Perl, пакет для розробки.
libgd (devel, опц: --enable-LibGD) | Графічна бібліотека GD версії 2, пакет для розробки, бажано без підтримки XPM (виключена залежність на бібліотеку X-сервера). Використовується для побудови трендів та інших зображень у форматі PNG, GIF та JPEG.
Модуль DB.SQLite
libsqlite3 (devel) | Бібліотека доступу до вбудованої БД SQLite версії 3, пакет для розробки.
Модуль DB.MySQL
libMySQL або libMariaDB (devel) | Бібліотека доступу до спорідненої СУБД MySQL, пакет для розробки на мові C.
Модуль DB.PostgreSQL
libpq (devel) | Бібліотека доступу до СУБД PostgreSQL версії більше за 8.3.0, пакет для розробки.
Модуль DB.FireBird
firebird (devel) | СУБД FireBird версії 2 або 3, пакет для розробки. Часто відсутня в дистрибутивах Linux та потребує індивідуального завантаження з офіційного сайту (http://www.firebirdsql.org)!
Модуль DB.ODBC
iodbc (devel) | iODBC бібліотека контролю драйверів, пакет для розробки.
Модуль DB.LDAP
libldap (devel) | OpenLDAP бібліотека, пакет для розробки.
Модуль DAQ.JavaLikeCalc
bison | Програма генерації синтаксичних аналізаторів на основі граматики мови.
Модуль DAQ.System
libsensors (devel, опц: авт.) | Бібліотека сенсорів апаратури версій 2 або 3, пакет для розробки.
Модуль DAQ.OPC_UA
libssl (devel) | Бібліотека шифрування OpenSSL, пакет для розробки.
Модуль DAQ.SNMP
libsnmp (devel) | Бібліотека доступу до даних пристроїв мережі за протоколом SNMP, пакет для розробки.
Модуль DAQ.Comedi
libcomedi (devel) | Бібліотека реалізації підтримки DAQ-плат різних виробників на шинах ISA, PCI, PCMCIA та USB, пакет для розробки.
Модуль DAQ.SoundCard
libportaudio (devel) | Бібліотека багатоплатформеного доступу до звукових контролерів, пакет для розробки версії 19 та вище (не 18).
Модуль Transport.SSL
libssl (devel) | Бібліотека шифрування OpenSSL, пакет для розробки.
Модуль: UI.QTStarter
libQt4 або libQt5 або libQt6 (devel) | Бібліотека побудови користувацького графічного інтерфейсу Qt версії 4.3 та вище або 5.1 та вище або 6.1 та вище, пакет для розробки.
libQtSensors або libQt5Sensors або libQt6Sensors (devel, опц: авт.) | Бібліотека Qt сенсорів, пакет для розробки.
Модуль: UI.QTCfg
libQt4 або libQt5 або libQt6 (devel) | Бібліотека побудови користувацького графічного інтерфейсу Qt версії 4.3 та вище або 5.1 та вище або 6.1 та вище, пакет для розробки.
Модуль UI.Vision
libQt4 або libQt5 або libQt6 (devel) | Бібліотека побудови користувацького графічного інтерфейсу Qt версії 4.3 та вище або 5.1 та вище або 6.1 та вище, пакет для розробки.
libQtWebKit (Qt4) або qtwebengine5, libqt5webkit5 (Qt5) або qtwebengine6 (Qt6) (devel, опц: авт.) | Бібліотека рушія Web-рендерінгу, пакет для розробки.
libphonon (Qt4) або qtmultimedia5, libphonon4qt5 (Qt5) або qtmultimedia6 (Qt6) (devel, опц: авт.) | Бібліотека відтворення повноформатного відео та аудіо, пакет для розробки.
libfftw3 (devel, опц: авт.) | Бібліотека швидкого розкладу сигналу у ряд Фурье, пакет для розробки.
Модуль UI.WebCfgD
libgd (devel, опц: --enable-LibGD) | Графічна бібліотека GD версії 2, пакет для розробки, бажано без підтримки XPM (виключена залежність на бібліотеку X-сервера). Використовується для побудови трендів та інших зображень у форматі PNG, GIF та JPEG.
Модуль UI.WebVision
libgd (devel) | Графічна бібліотека GD версії 2, пакет для розробки, бажано без підтримки XPM (виключена залежність на бібліотеку X-сервера). Використовується для побудови трендів та інших зображень у форматі PNG, GIF та JPEG.
libfftw3 (devel, опц: авт.) | Бібліотека швидкого розкладу сигналу у ряд Фурье, пакет для розробки.
Модуль Special.FLibSYS
libssl (devel, опц: авт.) | Бібліотека шифрування OpenSSL, пакет для розробки.
libfftw3 (devel, опц: авт.) | Бібліотека швидкого розкладу сигналу у ряд Фурье, пакет для розробки.

* "опц: авт." — передбачає вимкнення використання бібліотеки під час збірки, у випадку відсутності її.

## 3 Масштабованість

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

Споживання пам'яті, загальні параметри на проєкті "АГЛКС":

Рівні вимірювання | Debian 9 X86_64, МБ | Debian 9 686, МБ | Debian 8 ARMHF (ARMv7), МБ
--- | --- | --- | ---
2019.02.01: OpenSCADA 1+r2600
1. Виконання моделі та архівування | 96 | 71 | 64
2. Завантаження проєктів СВУ | 147 | 104 | 95
3. Запуск сеансу проєкту "АГЛКС" (як сервер візуалізації) | 152 | 108 | 97
3.1. Запуск сеансу проєкту "АГЛКС" з UI.Vision, та для кадру першої мнемосхеми > графіку | 168 > 175 | 121 > 126 | 106 > 109
3.2. Запуск сеансу проєкту "АГЛКС" з UI.WebVision, та для кадру першої мнемосхеми > графіку | 159 > 167 | 113 > 125 | 100 > 106

Великі та складні проєкти:

- 2019.01.12: Debian 9 686, OpenSCADA 1+r2595, Проєкт пташників з: ModBus DAQ із 38 об'єктами контролерів, з 75 складними параметрами та ~900 сигналами у кожному, сумарно це 2850 комплексних параметрів та 34200 сигналів; проєкт СВУ із 39 об'єктами сигналізації, з 19 сторінками у кожному, сумарно це 741 сторінок:

    => Оптимізовано у UI.VCAEngine через реалізацію зв'язків на сторінки, що дозволило видалити 703 сторінки, перемкнувши типові сторінки у повністю динамічний режим.
    => Розширено у UI.WebVision через підтримку роботи у оперативному режимі, обмеживши кеш сторінок.
  - Виконання DAQ, обробка та архівація: 102 МБ
  - Завантаження проєктів СВУ: 271 МБ, після оптимізації: 148 МБ
  - Запуск сеансу проєкту (як сервер візуалізації): 437 МБ, після оптимізації: 174 МБ
  - Запуск сеансу проєкту з UI.WebVision: 460 МБ (один сеанс), після оптимізації: 198 МБ

### 3.1 Тести

Компонентів OpenSCADA:

- Ядро:
  - Тестування ядра OpenSCADA та його модулів на апаратній платформі ARM
  - Розширені тести продуктивності для Android на Asus Nexus7 II з різними параметрами компіляції, особливо для Hard та Soft float.
- БД: DBGate, SQLite, MySQL, PostgreSQL, FireBird
- DAQ: Обчислювач на мові подібній до Java (JavaLikeCalc)
- Архіви-Історія: FSArch
- UI: Vision, WebVision

Приймальні тести релізів OpenSCADA (LTS):

- 0.9
- 0.8.0
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.0

## 4 Посилання

- Діаграма: Ролі OpenSCADA
- Діаграма: Роль OpenSCADA Як "OPC-UA Сервер".

Functions_and_demands/uk - GFDL | May 2026 | OpenSCADA 0.9.9