Функциональные характеристики и требования системы 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.
Предоставление данных системам верхнего уровня:
Посредством интерфейсов:
Последовательного интерфейса (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.
Предоставление данных системам верхнего уровня:
Посредством интерфейсов:
Последовательного интерфейса (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).
Рис. 2. Роль системы OpenSCADA как "OPC-UA Сервер".
Доступ к данным:
Промышленных контроллеров фирмы Siemens серии S7. Посредством DAQ-модуля Siemens.
Оборудования фирмы ICP DAS. Посредством DAQ-модуля ICP_DAS.
Контроллера SMH 2Gi фирмы Segnetics. Посредством DAQ-модуля SMH2Gi.
Автоматики птицеводства фирмы "Big Dutchman". Посредством DAQ-модуля BFN.
Платформы(программно-аппаратной) на которой работает сервер. Посредством DAQ-модуля System.
DAQ-плат на шинах ISA, PCI, PCMCIA и USB посредством библиотеки проекта Comedi и DAQ-модуля Comedi.
Промышленных контроллеров по протоколу ModBus. Посредством DAQ-модуля ModBus.
Промышленных контроллеров по протоколу DCON. Посредством DAQ-модуля DCON.
Источников поддерживающих протокол SNMP (Simple Network Management Protocol). Посредством DAQ-модуля SNMP.
Источников поддерживающих протокол OPC_UA — шлюзование "OPC UA". Посредством DAQ-модуля OPC_UA.
Других серверов и PLC основанных на OpenSCADA, для проброса данных серверов и дублирования. Посредством DAQ-модуля DAQGate.
Производных структур параметров на основе шаблонов параметров и данных других источников данных. Посредством DAQ-модуля LogicLev.
Источников различного типа, которые имеют утилиты для доступа к данным или доступны посредством простых специализированных сетевых протоколов. Осуществляется путём написания процедуры получения данных на языке пользовательского программирования DAQ-модуля JavaLikeCalc, а также модуля транспортного протокола User Protocol.
Требования OpenSCADA
Исполнение
Аппаратные требования системы 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 и более.
Модуль 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).
autotools (autoconf, automake, libtool)
Инструменты формирования сборочной среды 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 и более.
Модуль 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, опц: авт.)
Библиотека быстрого разложения сигналов в ряд Фурье, пакет для разработки.
* "опц: авт." — предусматривает отключение использования библиотеки в случае отсутствия её при сборке.