Функціональні характеристики та вимоги системи OpenSCADA
Сторінка містить інформацію яка дозволяє отримати загальне бачення про функції які може виконувати система OpenSCADA на цей час. Функції згуртовано за сферами застосування системи OpenSCADA. Для отримання картини в цілому включено також заплановані або реалізовані на цей час функції. Сторінка також містить вимоги системи OpenSCADA для її виконання та збірки.
Сфера застосування системи OpenSCADA
Розбиття на сфери застосування виконано для спрощення сприйняття функціональних можливостей системи у світлі традиційної області для проекту OpenSCADA — автоматизація технологічних процесів. Хоча можлива як змішана, так і більш спеціалізована конфігурація систем роботи з даними у реальному часі, наприклад, у сферах: ERP, Білінг, Розумний дім та інше.
Рис. 1. Ролі системи OpenSCADA
Сервер SCADA системи
Візуальний контроль та керування за посередництвом інтерфейсів:
Віддалений сервер візуалізації на основі рушія візуалізації та керування СВК VCAEngine (RU). Локальний запуск модуля UI.Vision, підключеного до сервера візуалізації.
Віддалений WEB інтерфейс. За посередництвом WEB-браузера, модуля візуалізації WebVision та модуля ядра середовища візуалізації та керування VCAEngine(RU).
Прості віддалені Web-інтерфейси користувача. За посередництвом WEB-браузера та UI-модуля WebUser (RU).
Збір даних (DAQ) з джерел:
Інформація про платформу (програмно-апаратну) на якій працює сервер. За допомогою модуля System.
Збір даних з джерел які підтримують протокол SNMP (Simple Network Management Protocol). За допомогою DAQ-модуля SNMP (RU).
Збір даних промислових контролерів фірми Siemens серії S7. За допомогою DAQ-модуля Siemens.
Збір даних промислових контролерів за протоколом ModBus. За допомогою DAQ-модуля ModBus (RU).
Збір даних промислових контролерів за протоколом DCON. За допомогою DAQ-модуля DCON.
Формування похідних структур параметрів базуючись на шаблонах параметрів та даних інших джерел. За допомогою DAQ-модуля LogicLev (RU).
Збір даних з інших серверів та PLC побудованих на OpenSCADA, можливо для дублювання. За допомогою DAQ-модуля DAQGate.
Збір даних через вхідні канали звукових контролерів. За посередництвом DAQ-модуля SoundCard (RU).
Збір даних обладнання фірми ICP DAS. За посередництвом DAQ-модуля ICP_DAS.
Збір даних з джерел які підтримують протокол OPC-UA. За посередництвом DAQ-модуля OPC-UA.
Збір даних з автоматики птахівництва фірми "Big Dutchman". За посередництвом DAQ-модуля BFN (RU).
Збір даних із джерел DAQ-плат на шинах ISA, PCI, PCMCIA та USB за посередництвом бібліотеки проекту Comedi та DAQ-модуля Comedi.
Збір даних з джерел різноманітного типу, які мають утиліти для доступу до даних або досяжні за посередництвом простих спеціалізованих мережевих протоколів. Відбувається шляхом написання процедури отримання даних на мові користувацького програмування DAQ-модуля JavaLikeCalc, а також модуля транспортного протоколу User Protocol (RU). Реалізація найбільш відомих протоколів як Протокол користувача EN: SMS, SMTP, Elemer TM510x, EDWARDS TURBOMOLECULAR PUMPS (SCU750), Комп'ютер обліку тепла VKT7, Sycon Multi Drop Protocol, Блок живлення турбо-молекулярних насосів (TMP-xx03), Вимірювач температури IT-3, OWEN, IVE-452HS-02, OPTRIS CT/CTL, CTR 100-101, IEC-60870-104, I2C чипи (PCF8591, PCF8574, DS3231, AT24CXX), 1Wire чипи через адаптери DS9097 та DS9097U (DS1820, DS1820/DS18S20/DS1920, DS1822, DS2413, DS2408, DS2450, DS2438), Низькорівневі пристрої через GPIO (DHT, 1602A), інше.
Надання даних системам верхнього рівня:
За посередництвом інтерфейсів:
Послідовного інтерфейсу (RS232, RS485, Modem, ...), за допомогою модуля транспорту Serial.
Сокетів IP-мереж та протоколів мережевого рівня TCP, UDP та Unix, за допомогою модуля транспорту Sockets (RU).
Безпечного шару сокетів (SSL), за допомогою модуля транспорту SSL (RU).
За посередництвом протоколів:
Власний протокол OpenSCADA, за допомогою модуля транспортного протоколу SelfSystem.
Протоколів сімейства ModBUS (TCP, RTU та ASCII), за допомогою модуля транспортного протоколу ModBUS (RU).
Протоколу "OPC-UA", за допомогою модуля транспортного протоколу OPC-UA.
Простих спеціалізованих протоколів, розроблених за посередництвом модуля транспортного протоколу User Protocol (RU).
Виконання обчислень користувача на мовах:
Мова блокових схем. За допомогою DAQ-модуля BlockCalc.
На подібній до Java мові високого рівня. За допомогою DAQ-модуля JavaLikeCalc.
Архівація повідомлень, ведення протоколів за різними категоріями та рівнями за допомогою механізмів:
Файли у XML-форматі або плоскому тексті, та упаковкою застарілих архівів. За допомогою модуля архівації FSArch.
До таблиць архівних БД. За допомогою модуля архівації DBArch.
Заплановано. На інший сервер, можливо виділений сервер архівації, базований на OpenSCADA.
Архівація значень зібраних даних за посередництвом механізмів:
Файли з подвійною упаковкою: послідовною та стандартним архіватором gzip. За посередництвом модуля архівації FSArch.
До таблиць архівних БД. За посередництвом модуля архівації DBArch.
З віддаленої конфігураційної станції. За посередництвом UI-модуля на конфігураційній станції QTCfg (RU) та інтерфейсу керування OpenSCADA відображеного у протоколі SelfSystem.
FireBird. За посередництвом DB-модуля FireBird (RU).
Заплановано. БД які доступні на іншому сервері, базованому на OpenSCADA.
Заплановано. LDAP.
Станція оператора технологічного процесу, пульт диспетчера, панель моніторингу та інше
Візуальний контроль та керування за допомогою інтерфейсів:
Локальний (швидкий) інтерфейс який засновано на бібліотеці QT. За посередництвом модуля візуалізації Vision (RU) та модуля ядра середовища візуалізації та керування VCAEngine (RU) з можливістю візуалізації з віддаленого рушія СВК, серверу візуалізації.
Віддалений WEB інтерфейс. За посередництвом WEB-браузера, модуля візуалізації WebVision та модуля ядра середовища візуалізації та керування VCAEngine (RU).
Прості віддалені Web-інтерфейси користувача. За посередництвом WEB-браузера та UI-модуля WebUser (RU).
Збір даних (DAQ) з джерел:
Збір даних з інших серверів та PLC побудованих на OpenSCADA, для перекидання даних серверів та дублювання. За допомогою DAQ-модуля DAQGate.
Збір даних з джерел які підтримують протокол SNMP (Simple Network Management Protocol). За допомогою DAQ-модуля SNMP (RU).
Збір даних з джерел які підтримують протокол OPC-UA. За посередництвом DAQ-модуля OPC-UA.
Виконання обчислень користувача на мовах:
Мова блокових схем. За допомогою DAQ-модуля BlockCalc.
На подібній до Java мові високого рівня. За допомогою DAQ-модуля JavaLikeCalc.
Архівація локальних повідомлень, ведення протоколів за різними категоріями та рівнями за допомогою механізмів:
Файли у XML-форматі або плоскому тексті, та упаковкою застарілих архівів. За допомогою модуля архівації FSArch.
До таблиць архівних БД. За допомогою модуля архівації DBArch.
Заплановано. На інший сервер (можливо навіть виділений сервер архівації), базований на OpenSCADA.
QT-інтерфейс. За посередництвом UI-модуля QTCfg (RU).
З віддаленої конфігураційної станції. За посередництвом UI-модуля на конфігураційній станції QTCfg (RU) та інтерфейсу керування OpenSCADA відображеного у протоколі SelfSystem.
Інформація про платформу (програмно-апаратну) на якій працює сервер. За допомогою модуля System.
Збір даних з джерел які підтримують протокол SNMP (Simple Network Management Protocol). За допомогою DAQ-модуля SNMP (RU).
Збір даних промислових контролерів за протоколом ModBus. За допомогою DAQ-модуля ModBus (RU).
Збір даних промислових контролерів за протоколом DCON. За допомогою DAQ-модуля DCON.
Формування похідних структур параметрів базуючись на шаблонах параметрів та даних інших джерел. За допомогою DAQ-модуля LogicLev (RU).
Збір даних з інших серверів та PLC побудованих на OpenSCADA, можливо для дублювання. За допомогою DAQ-модуля DAQGate.
Збір даних через вхідні канали звукових контролерів. За посередництвом DAQ-модуля SoundCard (RU).
Збір даних обладнання фірми ICP DAS. За посередництвом DAQ-модуля ICP_DAS.
Збір даних з джерел які підтримують протокол OPC-UA. За посередництвом DAQ-модуля OPC-UA.
Збір даних із джерел DAQ-плат на шинах ISA, PCI, PCMCIA та USB за посередництвом бібліотеки проекту Comedi та DAQ-модуля Comedi.
Збір даних з джерел різноманітного типу, які мають утиліти для доступу до даних або досяжні за посередництвом простих спеціалізованих мережевих протоколів. Відбувається шляхом написання процедури отримання даних на мові користувальницького програмування DAQ-модуля JavaLikeCalc, а також модуля транспортного протоколу User Protocol (RU). Реалізація найбільш відомих протоколів як Протокол користувача EN: SMS, SMTP, Elemer TM510x, EDWARDS TURBOMOLECULAR PUMPS (SCU750), Комп'ютер обліку тепла VKT7, Sycon Multi Drop Protocol, Блок живлення турбо-молекулярних насосів (TMP-xx03), Вимірювач температури IT-3, OWEN, IVE-452HS-02, OPTRIS CT/CTL, CTR 100-101, IEC-60870-104, I2C Чипи (PCF8591, PCF8574, DS3231, AT24CXX), 1Wire Чипи через адаптери DS9097 та DS9097U (DS1820, DS1820/DS18S20/DS1920, DS1822, DS2413, DS2408, DS2450, DS2438), Низькорівневі пристрої через GPIO (DHT, 1602A), інше.
Надання даних системам верхнього рівня:
За посередництвом інтерфейсів:
Послідовного інтерфейсу (RS232, RS485, Modem, ...), за допомогою модуля транспорту Serial.
Сокетів IP-мереж та протоколів мережевого рівня TCP, UDP та Unix, за допомогою модуля транспорту Sockets (RU).
Безпечного шару сокетів (SSL), за допомогою модуля транспорту SSL (RU).
За посередництвом протоколів:
Власний протокол OpenSCADA, за допомогою модуля транспортного протоколу SelfSystem.
Протоколів сімейства ModBUS (TCP, RTU та ASCII), за допомогою модуля транспортного протоколу ModBUS (RU).
Протоколу "OPC-UA", за допомогою модуля транспортного протоколу OPC-UA.
Простих спеціалізованих протоколів, розроблених за посередництвом модуля транспортного протоколу User Protocol.
Керування, регулювання та виконання інших обчислень користувача на мовах:
Мова блокових схем. За допомогою DAQ-модуля BlockCalc.
На подібній до Java мові високого рівня. За допомогою DAQ-модуля JavaLikeCalc.
Архівація повідомлень, ведення протоколів за різними категоріями та рівнями за допомогою механізмів:
Файли у XML-форматі або плоскому тексті, та упаковкою застарілих архівів. За допомогою модуля архівації FSArch.
До таблиць архівних БД. За допомогою модуля архівації DBArch.
Заплановано. На інший сервер (можливо навіть виділений сервер архівації), базований на OpenSCADA.
Архівація значень зібраних даних за допомогою механізмів:
Буфера у пам'яті визначеної довжини. За допомогою вбудованого механізму архівації значень ядра OpenSCADA.
Файли з подвійною упаковкою: послідовною та стандартним архіватором gzip. За посередництвом модуля архівації FSArch.
До таблиць архівних БД. За посередництвом модуля архівації DBArch.
З віддаленої конфігураційної станції. За посередництвом UI-модуля на конфігураційній станції QTCfg (RU) та інтерфейсу керування OpenSCADA відображеного у протоколі SelfSystem.
FireBird. За посередництвом DB-модуля FireBird (RU).
Заплановано. БД які доступні на іншому сервері, базованому на OpenSCADA.
Заплановано. LDAP.
Універсальний 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 Сервер".
Джерела даних та протоколи, доступні за посередництвом універсального OPC-UA сервера:
Широкий спектр DAQ-плат УСО різних виробників на шинах ISA, PCI, PCMCIA та USB за посередництвом бібліотеки проекту Comedi, DAQ.Comedi.
Широкий спектр промислових контролерів та інших джерел даних за протоколом ModBus, DAQ.ModBus (RU).
Широкий спектр промислових контролерів та інших джерел даних за протоколом DCON, DAQ.DCON.
Широкий спектр даних мережевого обладнання за протоколом "Simple Network Management Protocol (SNMP)", DAQ.SNMP (RU).
Джерела даних які підтримують протокол OPC-UA (шлюзування "OPC-UA") або широкий спектр джерел даних які доступні для всіх різновидів OPC, за посередництвом відповідного шлюзу у OPC-UA, DAQ.OPC_UA.
Широкий спектр промислових контролерів та інших джерел даних за протоколом MMS(IEC-9506), DAQ.MMS.
Дані інших серверів та ПЛК, основаних на OpenSCADA, DAQ.DAQGate.
Робота всередині контролеру SMH 2Gi фірми Segnetics, з його УСО, DAQ.SMH2Gi.
Апаратні вимоги системи OpenSCADA для її виконання у різних ролях приведено у таблиці 1. Програмні вимоги для виконання системи OpenSCADA та її модулів представлено у таблиці 2.
Таблиця 1. Апаратні вимоги системи OpenSCADA та її модулів.
Роль
Вимоги
Сервер SCADA системи
CPU: x86_32 (більш i586), x86_64 або ARM, частотою більш 500 МГц MEM: 128 МБ HDD: 10 ГБ включаючи ОС та місце для архівів
Станція оператора технологічного процесу, пульт диспетчера, панель моніторингу та інше.
CPU: x86_32 (більш i586), x86_64 або ARM, частотою більш 1 ГГц MEM: 512 МБ HDD: 4 ГБ включаючи ОС та без архівів
Середовище виконання контролерів (PLC)
CPU: x86_32 (більш i586), x86_64 або ARM, частотою більш 133 МГц MEM: 32 МБ HDD: 32 МБ включаючи ОС та без архівів.
Таблиця 2. Програмні вимоги виконання системи OpenSCADA та її модулів.
Компонент
Опис
Залежності ядра системи OpenSCADA
ОС Linux
Дистрибутив операційної системи Linux (ALTLinux, SuSELinux, Mandriva, ASPLinux, Fedora, Debian, Ubuntu ...)
"Стандартні бібліотеки"
Стандартний набір бібліотек: GLibC (>= 2.3) або uCLibC (>= 0.9.32) та libstdc++ (>= 3.3). За звичай вже наявні у встановленому дистрибутиві. Особиста вимога це використання нативної бібліотеки потоків NPTL, вже використовується у всіх сучасних дистрибутивах ОС Linux.
zlib
Бібліотека компресії.
libpcre
Бібліотека роботи з регулярними виразами, сумісна з Perl.
libgd
(опц: --enable-LibGD)
Графічна бібліотека GD версії 2, бажано без підтримки XPM (виключена залежність на бібіліотеку X-сервера) та з підтримкою FontConfig.
Модуль DB.MySQL
libMySQL
Бібліотека доступу до СУБД MySQL.
Модуль DB.SQLite
libsqlite3
Бібліотека доступу до вбудовану БД SQLite версії 3.
Модуль DB.PostgreSQL
libpq
Бібліотека доступу до СУБД PostgreSQL версії більш за 8.3.0.
Модуль DB.FireBird
FirebirdSS
СУБД FireBird версії 2. Часто відсутня у дистрибутивах Linux та потребує індивідуального завантаження з офіційного сайту (http://www.firebirdsql.org)!
Модуль Transport.SSL
libssl
Бібліотека шифрування OpenSSL.
Модуль DAQ.SNMP
libsnmp
Бібліотека доступу до пристроїв мережі за протоколом SNMP.
Модуль DAQ.System
libsensors (опц: авт.)
Бібліотека сенсорів апаратури версії 2 або 3.
Модуль DAQ.SoundCard
libportaudio
Бібліотека багатоплатформного доступу до звукових контролерів версії 19 та більше (не 18).
Модуль DAQ.OPC_UA
libssl
Бібліотека шифрування OpenSSL.
Модуль DAQ.Comedi
libcomedi
Бібліотека реалізації підтримки DAQ-плат різних виробників на шинах ISA, PCI, PCMCIA та USB.
Модулі: UI.QTStarter, UI.QTCfg
libQT4 (libQtGui) або
libQt5 (libQt5Widgets,libQt5PrintSupport)
Бібліотеки побудови графічного інтерфейсу користувача QT версії 4.3 та вище або 5.1 та вище.
Модуль: UI.Vision
libQT4 (libQtGui) або
libQt5 (libQt5Widgets,libQt5PrintSupport)
Бібліотеки побудови графічного інтерфейсу користувача QT версії 4.3 та вище або 5.1 та вище.
libQtWebKit (опц: авт.)
Бібліотека рушія Web-рендерингу WebKit.
libfftw3 (опц: авт.)
Бібліотека швидкого розкладу сигналу у ряд Фурье.
libphonon (опц: авт.)
Бібліотека відтворення повноформатного відео та аудіо.
Модулі: UI.WebVision, Special.FLibSYS
libfftw3 (опц: авт.)
Бібліотека швидкого розкладу сигналу у ряд Фурье.
* "опц: авт." — передбачає виключення використання бібліотеки у випадку відсутності її під час збірки.
Збірка
Програмні умови системи OpenSCADA для збірки ядра OpenSCADA та її модулів зведено до таблиці 3.
Таблиця 3. Залежності збірки системи OpenSCADA та її модулів.
Компонент
Опис
Загальні вимоги для збірки OpenSCADA
ОС Linux
Дистрибутив операційної системи Linux (ALTLinux, SuSELinux, Mandriva, ASPLinux, Fedora, Debian, Ubuntu ...)
g++
Компілятор мови C++ версії 3.3 або більше з колекції компіляторів GCC, включаючи бібліотеку GLibC (>=2.3) або uCLibC (>= 0.9.32).
Інструменти формування збіркового середовища OpenSCADA. Потрібні тільки у випадку зміни збіркового середовища OpenSCADA, наприклад для додання нового модуля або зміни фіксованих параметрів збірки. Automake >= 1.9.
gettext
Група утілит для приготування та компіляції перекладів інтерфейсу програми на різні мови у відповідності з стандартом інтернаціоналізації I18N.
sqlite3
Утиліта керування файлами БД SQLite3.
zlib (devel)
Бібліотека компресії, пакет для розробки.
libpcre (devel)
Бібліотека роботи з регулярними виразами, сумісна з Perl, пакет для розробки.
libgd (devel,
опц: --enable-LibGD)
Графічна бібліотека GD версії 2, пакет для розробки, бажано без підтримки XPM (виключена залежність на бібліотеку X-сервера). Використовується для побудови трендів та інших зображень у форматі PNG, GIF та JPEG.
Модуль DB.MySQL
libMySQL (devel)
Бібліотека доступу до СУБД MySQL, пакет для розробки на мові C.
Модуль DB.SQLite
libsqlite3 (devel)
Бібліотека доступу до вбудованої БД SQLite версії 3, пакет для розробки.
Модуль DB.PostgreSQL
libpq
Бібліотека доступу до СУБД PostgreSQL версії більш за 8.3.0, пакет для розробки.
Модуль DB.FireBird
FirebirdSS
СУБД FireBird версії 2, пакет для розробки. Часто відсутня в дистрибутивах Linux та потребує індивідуального завантаження з офіційного сайту (http://www.firebirdsql.org)!
Модуль Transport.SSL
libssl (devel)
Бібліотека шифрування OpenSSL, пакет для розробки
Модуль DAQ.JavaLikeCalc
bison
Програма генерації синтаксичних аналізаторів на основі граматики мови.
Модуль DAQ.SNMP
libsnmp (devel)
Бібліотека доступу до даних пристроїв мережі за протоколом SNMP, пакет для розробки.
Модуль DAQ.System
libsensors (deval, опц: авт.)
Бібліотека сенсорів апаратури версій 2 або 3, пакет для розробки.
Модуль DAQ.Siemens
glibc-kernheaders
Заголовки ядра Linux бібліотеки GLibC.
Модуль DAQ.SoundCard
libportaudio (devel)
Бібліотека багатоплатформного доступу до звукових контролерів, пакет для розробки версії 19 та більше (не 18).
Модуль DAQ.OPC_UA
libssl (devel)
Бібліотека шифрування OpenSSL, пакет для розробки
Модуль DAQ.Comedi
libcomedi (devel)
Бібліотека реалізації підтримки DAQ-плат різних виробників на шинах ISA, PCI, PCMCIA та USB, пакет для розробки.
Модулі: UI.QTStarter, UI.QTCfg
libQT4 или libQT5 (devel)
Бібліотека побудови користувацького графічного інтерфейсу QT версії 4.3 та більше або 5.1 та більше, пакет для розробки.
Модуль: UI.Vision
libQT4 или libQT5 (devel)
Бібліотека побудови користувацького графічного інтерфейсу QT версії 4.3 та більше або 5.1 та більше, пакет для розробки.
libQtWebKit (devel, опц: авт.)
Бібліотека рушія Web-рендерингу WebKit, пакет для розробки.
libfftw3 (devel, опц: авт.)
Бібліотека швидкого розкладу сигналу у ряд Фурье, пакет для розробки.
libphonon (devel, опц: авт.)
Бібліотека відтворення повноформатного відео та аудіо, пакет для розробки.
Модулі: UI.WebVision, Special.FLibSYS
libfftw3 (devel, опц: авт.)
Бібліотека швидкого розкладу сигналу у ряд Фурье, пакет для розробки.
* "опц: авт." — передбачає виключення використання бібліотеки у випадку відсутності її під час збірки.