Функциональные характеристики и требования системы OpenSCADA
Страница содержит информацию позволяющую получить общее представление о функциях, которые может выполнять система OpenSCADA на текущий момент. Функции сгруппированы по сферам применения системы OpenSCADA. Для получения картины в целом включены также функции запланированные или реализуемые на данный момент. Страница также содержит требования системы OpenSCADA для её исполнения и сборки.
Сфера применения системы OpenSCADA
Разбиение на сферы применения выполнено для упрощения восприятия функциональных возможностей системы в свете традиционной области для проекта OpenSCADA — автоматизация технологических процессов. Хотя возможна как смешанная, так и более специализированная конфигурация систем работы с данными в реального времени, например, в сферах: ERP, Билинг, Умный дом и др.
Рис. 1. Роли системы OpenSCADA
Сервер SCADA системы
Визуальный контроль и управление посредством интерфейсов:
Удалённый сервер визуализации на основе движка визуализации и управления СВУ VCAEngine. Локальный запуск модуля UI.Vision, подключенный к серверу визуализации.
Удалённый WEB интерфейс. Посредством WEB-браузера, модуля визуализации WebVision и модуля ядра среды визуализации и управления VCAEngine.
Простые удалённые Web-интерфейсы пользователя. Посредством WEB-браузера и UI-модуля WebUser.
Сбор данных (DAQ) из источников:
Информации о платформе(программно-аппаратной) на которой работает сервер. Посредством DAQ-модуля System.
Сбор данных из источников поддерживающих протокол SNMP (Simple Network Management Protocol). Посредством DAQ-модуля SNMP.
Сбор данных промышленных контроллеров фирмы Siemens серии S7. Посредством DAQ-модуля Siemens.
Сбор данных промышленных контроллеров по протоколу ModBus. Посредством DAQ-модуля ModBus.
Сбор данных промышленных контроллеров по протоколу DCON. Посредством DAQ-модуля DCON.
Формирование производных структур параметров на основе шаблонов параметров и данных других источников данных. Посредством DAQ-модуля LogicLev.
Сбор данных из других серверов и PLC основанных на OpenSCADA, возможно для дублирования. Посредством DAQ-модуля DAQGate.
Сбор данных через входные каналы звуковых контроллеров. Посредством DAQ-модуля SoundCard.
Сбор данных оборудования фирмы ICP DAS. Посредством DAQ-модуля ICP_DAS.
Сбор данных из источников поддерживающих протокол OPC_UA. Посредством DAQ-модуля OPC_UA.
Сбор данных из автоматики птицеводства фирмы "Big Dutchman". Посредством DAQ-модуля BFN.
Сбор данных из источников DAQ-плат на шинах ISA, PCI, PCMCIA и USB посредством библиотеки проекта Comedi и DAQ-модуля Comedi.
Сбор данных из источников различного типа, которые имеют утилиты для доступа к данным или доступны посредством простых специализированных сетевых протоколов. Осуществляется путём написания процедуры получения данных на языке пользовательского программирования DAQ-модуля JavaLikeCalc, а также модуля транспортного протокола User Protocol. Реализация наиболее известных протоколов как Протокол пользователя 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) и др.
Предоставление данных системам верхнего уровня:
Посредством интерфейсов:
Последовательного интерфейса (RS232, RS485, Modem, ...), с помощью модуля транспорта Serial.
Сокетов IP-сетей и протоколов сетевого уровня TCP, UDP и Unix, с помощью модуля транспорта Sockets.
Безопасного слоя сокетов (SSL), с помощью модуля транспорта SSL.
Посредством протоколов:
Собственный протокол OpenSCADA, с помощью модуля транспортного протокола SelfSystem.
Протоколов семейства ModBUS (TCP, RTU и ASCII), с помощью модуля транспортного протокола ModBUS.
Протокола "OPC UA", с помощью модуля транспортного протокола OPC UA.
Простых специализированных протоколов, разработаных посредством модуля транспортного протокола User Protocol.
Выполнение пользовательских вычислений на языках:
Язык блочных схем. Посредством DAQ-модуля BlockCalc.
На Java-подобном языке высокого уровня. Посредством DAQ-модуля JavaLikeCalc.
Архивирование сообщений, ведение протоколов по различным категориям и уровням, посредством механизмов:
Файлы в XML-формате или плоского текста, с упаковкой устаревших архивов. Посредством модуля архивирования FSArch.
В таблицы архивных БД. Посредством модуля архивирования DBArch.
В планах. На другой сервер, возможно выделенный сервер архивирования, основанных на OpenSCADA.
Архивирование значений собранных данных посредством механизмов:
Файлы с двойной упаковкой: последовательной и стандартным архиватором gzip. Посредством модуля архивирования FSArch.
В таблицы архивных БД. Посредством модуля архивирования DBArch.
Конфигурация и управление сервером через:
WEB-интерфейс. Посредством WEB-браузера и UI-модуля WebCfgD или WebCfg.
С удалённой конфигурационной станции. Посредством UI-модуля на конфигурационной станции QTCfg и интерфейса управления OpenSCADA отражённого в протоколе SelfSystem.
В планах. БД доступные на другом сервере основанном на OpenSCADA.
В планах. LDAP.
Станция оператора технологического процесса, пульт диспетчера, панель мониторинга и др.
Визуальный контроль и управление посредством интерфейсов:
Локальный (быстрый) интерфейс основанный на библиотеке QT. Посредством модуля визуализации Vision и модуля ядра среды визуализации и управления VCAEngine с возможностью визуализации из удалённого движка СВУ, сервера визуализации.
Удалённый WEB интерфейс. Посредством WEB-браузера, модуля визуализации WebVision и модуля ядра среды визуализации и управления VCAEngine.
Простые удалённые Web-интерфейсы пользователя. Посредством WEB-браузера и UI-модуля WebUser.
Сбор данных (DAQ) из источников:
Сбор данных из других серверов и PLC основанных на OpenSCADA, для проброса данных серверов и дублирования. Посредством DAQ-модуля DAQGate.
Сбор данных из источников поддерживающих протокол SNMP (Simple Network Management Protocol). Посредством DAQ-модуля SNMP.
Сбор данных из источников поддерживающих протокол OPC_UA. Посредством DAQ-модуля OPC_UA.
Выполнение пользовательских вычислений на языках:
Язык блочных схем. Посредством DAQ-модуля BlockCalc.
На Java-подобном языке высокого уровня. Посредством DAQ-модуля JavaLikeCalc.
Архивирование локальных сообщений, ведение протоколов по различным категориям и уровням посредством механизмов:
Файлы в XML-формате или плоского текста, с упаковкой устаревших архивов. Посредством модуля архивирования FSArch.
В таблицы архивных БД. Посредством модуля архивирования DBArch.
В планах. На сервер, возможно выделенный сервер архивирования, основанных на OpenSCADA.
Конфигурация и управление станцией через:
WEB-интерфейс. Посредством WEB-браузера и UI-модуля WebCfgD или WebCfg.
С удалённой конфигурационной станции. Посредством UI-модуля на конфигурационной станции QTCfg и интерфейса управления OpenSCADA отражённого в протоколе SelfSystem.
Информации о платформе(программно-аппаратной) на которой работает сервер. Посредством DAQ-модуля System.
Сбор данных из источников поддерживающих протокол SNMP (Simple Network Management Protocol). Посредством DAQ-модуля SNMP.
Сбор данных промышленных контроллеров по протоколу ModBus. Посредством DAQ-модуля ModBus.
Сбор данных промышленных контроллеров по протоколу DCON. Посредством DAQ-модуля DCON.
Формирование производных структур параметров на основе шаблонов параметров и данных других источников данных. Посредством DAQ-модуля LogicLev.
Сбор данных из других серверов и PLC основанных на OpenSCADA, возможно для дублирования. Посредством DAQ-модуля DAQGate.
Сбор данных через входные каналы звуковых контроллеров. Посредством DAQ-модуля SoundCard.
Сбор данных оборудования фирмы ICP DAS. Посредством DAQ-модуля ICP_DAS.
Сбор данных из источников поддерживающих протокол OPC_UA. Посредством DAQ-модуля OPC_UA.
Сбор данных из источников DAQ-плат на шинах ISA, PCI, PCMCIA и USB посредством библиотеки проекта Comedi и DAQ-модуля Comedi.
Сбор данных из источников различного типа, которые имеют утилиты для доступа к данным или доступны посредством простых специализированных сетевых протоколов. Осуществляется путём написания процедуры получения данных на языке пользовательского программирования DAQ-модуля JavaLikeCalc, а также модуля транспортного протокола User Protocol. Реализация наиболее известных протоколов как Протокол пользователя 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) и др.
Предоставление данных системам верхнего уровня:
Посредством интерфейсов:
Последовательного интерфейса (RS232, RS485, Modem, ...), с помощью модуля транспорта Serial.
Сокетов IP-сетей и протоколов сетевого уровня TCP, UDP и Unix, с помощью модуля транспорта Sockets.
Безопасного слоя сокетов (SSL), с помощью модуля транспорта SSL.
Посредством протоколов:
Собственный протокол OpenSCADA, с помощью модуля транспортного протокола SelfSystem.
Протоколов семейства ModBUS (TCP, RTU и ASCII), с помощью модуля транспортного протокола ModBUS.
Протокола "OPC UA", с помощью модуля транспортного протокола OPC UA.
Простых специализированных протоколов, разработаных посредством модуля транспортного протокола User Protocol.
Управление, регулирование и выполнение других пользовательских вычислений на языках:
Язык блочных схем. Посредством DAQ-модуля BlockCalc.
На Java-подобном языке высокого уровня. Посредством DAQ-модуля JavaLikeCalc.
Архивирование сообщений, ведение протоколов по различным категориям и уровням посредством механизмов:
Файлы в XML-формате или плоского текста, с упаковкой устаревших архивов. Посредством модуля архивирования FSArch.
В таблицы архивных БД. Посредством модуля архивирования DBArch.
В планах. На другой сервер, возможно выделенный сервер архивирования, основанных на OpenSCADA.
Архивирование значений собранных данных посредством механизмов:
Буфера в памяти предопределённой глубины. Посредством встроенного механизма архивирования значений ядра OpenSCADA.
Файлы с двойной упаковкой: последовательной и стандартным архиватором gzip. Посредством модуля архивирования FSArch.
В таблицы архивных БД. Посредством модуля архивирования DBArch.
Конфигурация и управление PLC через:
WEB-интерфейс. Посредством WEB-браузера и UI-модуля WebCfgD или WebCfg.
С удалённой конфигурационной станции. Посредством UI-модуля на конфигурационной станции QTCfg и интерфейса управления OpenSCADA отражённого в протоколе SelfSystem.
Хранение данных PLC в БД типов:
Все данные в конфигурационном файле (фиксированно).
В планах. БД доступные на другом сервере основанном на 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.
Широкий спектр промышленные контроллеров и других источников данных по протоколу DCON, DAQ.DCON.
Широкий спектр данных сетевого оборудования по протоколу "Simple Network Management Protocol (SNMP)", DAQ.SNMP.
Источники данных поддерживающие протокол OPC_UA (шлюзование "OPC UA") или широкий спектр источников данных доступных для всех разновидностей OPC, посредством соответствующего шлюза в OPC UA, DAQ.OPC_UA.
Широкий спектр промышленные контроллеров и других источников данных по протоколу MMS(IEC-9506), DAQ.MMS.
Данные других серверов и ПЛК, основанных на OpenSCADA, DAQ.DAQGate.
Аппаратные требования системы 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-сервера) и поддержкой FontConfig. Используется для построения трендов и других изображений в формате 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 (devel, опц: авт.)
Библиотека сенсоров аппаратуры версий 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, опц: авт.)
Библиотека быстрого разложения сигналов в ряд Фурье, пакет для разработки.
* "опц: авт." — предусматривает отключение использования библиотеки в случае отсутствия её при сборке.