Использование SCADA ЭНТЕК в Astra Linux
Общие сведения
Работа программного комплекса SCADA ЭНТЕК под управлением операционных систем семейства Linux выполняется следующим образом:
1) Серверная часть SCADA ЭНТЕК устанавливается как нативное приложение Linux. Серверная часть представляет собой набор приложений, скомпилированных для операционной системы Linux, и запускаемых в штатном режиме в виде демонов (служб) под управлением стандартного менеджера служб systemd (также возможен и ручной запуск как обычного консольного приложения). Для установки серверной части предоставляется архив под соответствующую операционную системы, после скачивания и распаковки архива для установки необходимо запустить скрипт установки, размещенный в корне, запуск необходимо производить с правами пользователя root. Серверная часть состоит из следующих модулей:
· daserver – исполняемый файл сервера сбора данных
· edp – исполняемый файл сервера регистрации событий
· enreg – программа активации лицензии
· enlogic – исполняемый файл виртуального контроллера ENLOGIC
· libennetcore.so – динамическая библиотека общих функций
· MQTT-брокер Mosquitto – включен в состав пакета для установки, устанавливается автоматически. Необходимо учитывать данных факт, и, в случае если в целевой операционной системе уже установлен пакет mosquitto – либо удалить его из менеджера пакетов Linux, либо исключить установку Mosquitto из скрипта установки SCADA ЭНТЕК.
2) Необходимые дополнительные компоненты для работы SCADA ЭНТЕК:
· SQL-сервер Firebird 3. Можно использовать из состава официального репозитория соответствующей версии операционной системы Linux. Также можно произвести установку Firebird с официального сайта firebirdsql.org.
3) Клиентская часть SCADA ЭНТЕК, а также конфигурационные модули, работают с использованием пакета WINE, его установка доступна из репозиториев соответствующего Linux. Для установки клиентской части SCADA ЭНТЕК рекомендуется использовать стандартный дистрибутив SCADA ЭНТЕК для обновления – Entek_setup_bin. А если используется полный дистрибутив, то не нужно устанавливать SQL-сервер Firebird 2.5 для Windows и драйвер ключа защиты!
В приведенных ниже подробных инструкциях по установке предполагается, что для работы клиентской части SCADA ЭНТЕК в операционной системе Linux создается учетная запись entek, поэтому домашняя папка пользователя располагается в каталоге /home/entek.
Внимание! Необходимо обратить внимание на то, что в операционной системе Linux все пути файлов чувствительны к регистру символов, и это надо учитывать при задании путей к базам данных и других файловых путей.
Операционная система Astra Linux Special Edition 1.7
Рассматривается версия Astra Linux Special Edition 1.7:
Необходимо подключить интернет репозитории Astra Linux Special Edition для обновления операционной системы до актуального состояния и установки необходимых дополнительных компонентов. Процесс подключения интернет репозиториев продемонстрирован в Приложении 1.
Внимание: в настоящий момент не поддерживается работа в режиме замкнутой программной среды.
Установка WINE и клиентской части SCADA
Для использования WINE рекомендуется установить программу PlayOnLinux. Для ее установки нужно запустить Менеджер пакетов Synaptic:
в списке делаем поиск по слову wine, отмечаем пакет playonlinux, при этом автоматически происходит добавление всех требуемых зависимостей, и нажимаем применить:
После завершения установки запускаем PlayOnLinux:
В окне PlayOnLinux выбираем пункт Установить программу:
Нажимаем в левом нижнем углу пункт Установить программу, отсутствующую в списке:
Окно старта мастера ручной установки:
Выбираем пункт Новый виртуальный диск:
Вводим название создаваемого диска:
Здесь пока ничего не нужно выбирать:
Выбираем 32х битную версию виртуального диска:
Ждем пока завершится процесс создания:
Если в процессе создания будет показан запрос про пакет wine-mono:
То нажимаем кнопку Установить, чтобы в дальнейшем этот вопрос больше не возникал.
После завершения создания диска мастер автоматически предлагает запустить программу установки приложения:
Для этого необходимо скачать с сайта ЭНТЕЛС дистрибутив SCADA ЭНТЕК для обновления:
В окне мастера PlayOnLinux нажимаем кнопку Просмотр и выбираем загруженный файл дистрибутива из каталога Загрузки домашней папки пользователя:
После нажатия на кнопку Далее в мастере происходит запуск дистрибутива установки SCADA ЭНТЕК:
Производим обычную процедуру установки SCADA ЭНТЕК, нажимая кнопки Далее…
После завершения установки мастер предлагает сделать ярлыки для запуска программ из установленного дистрибутива. Выбираем программу EnCfg.exe – это модуль Интегратор:
Можно скорректировать название ярлыка для запуска программы:
Далее снова появляется окно создания следующего ярлыка:
Сейчас дополнительные ярлыки больше не нужны, выбираем что не хотим больше ничего создавать.
Видим, что на рабочем столе появился ярлык ЭНТЕК, при нажатии на который запускается модуль Интегратор:
На этом установка клиентской части SCADA ЭНТЕК завершена. Для того, чтобы запускать различные модули SCADA ЭНТЕК, далее необходимо установить сервер СУБД Firebird, и скачать архив с проектом.
Комментарий: некоторые дополнительные вопросы настройки WINE приведены в Приложении 3.
Установка СУБД
Установку СУБД Firebird произведем из официального репозитория Astra Linux Special Edition. Для этого запускаем менеджер пакетов Synaptic, производим поиск по слову firebird, отмечаем пакеты firebird3.0-server и libfbclient2, остальные пакеты будут отмечены автоматически:
Необходимо раскрыть раздел Подробнее, в процессе установки будет произведен запрос ввода пароля администратора сервера SYSDBA:
Обычно по умолчанию используется пароль masterkey, вводим его, или другой пароль, который нужно будет запомнить для дальнейшей работы.
После завершений установки можно проверить наличие запущенного сервера Firebird в процессах в программе Системный монитор:
Сервер БД Firebird успешно установлен.
Директория для файлов баз данных СУБД Firebird
В операционной системе Linux служба сервера Firebird работает под учетной записью firebird. Это означает, что для хранения файлов баз данных по умолчанию можно либо использовать некоторые общедоступные папки, либо создать специальный каталог для хранения БД, и назначить ему права доступа для учетной записи firebird.
Создадим для хранения файлов БД специальную папку. Для этого с помощью Midnight Commander с правами администратора (консоль, команда sudo su, вводим пароль, затем команда mc) в директории home создаем папку db:
и затем меняем имя владельца и имя группы на firebird:
Права до смены владельца:
Права после смены владельца:
Установка проекта SCADA
В операционной системе Linux можно запустить любой проект SCADA ЭНТЕК, ранее работавший в Windows. Для этого необходимо запаковать каталог с проектом в архив, за исключением баз данных, скопировать его каким-либо образом в Linux (USB FLASH, локальная сеть, облачный файловый архив), и там распаковать и произвести его первичную настройку.
Замечание: напрямую копировать накопленные базы данных истории, событий, пользователей и прочие путем переноса файлов из Windows в Linux бессмысленно. Если нужно сохранить накопленные данные, то такая операция производится путем создания резервных копий баз данных на Windows, и далее восстановлением из этих резервных копий в Linux. Данный вопрос будет подробно рассмотрен дополнительно.
Итак, скачиваем архив с проектом SCADA.rar:
Распаковываем его, и переносим каталог SCADA в корень нашей домашней директории:
Запускаем модуль Интегратор ЭНТЕК, и открываем наш проект, находя его в файловой системе Linux:
Комментарий: для приложений, работающих через WINE, происходит отображение корневой директории Linux на виртуальный диск Z, поэтому путь к файлу данного проекта будет иметь вид:
Z:\home\entek\SCADA\main.epr
Ставим в модуле Интегратор галку Проект по умолчанию, чтобы при следующем запуске Интегратора данный проект открывался автоматически:
В этом проекте сейчас нет никаких баз данных, поэтому для его использования далее нужно создать необходимые для работы базы данных.
БД пользователей
Запускаем модуль Пользователи:
Нажимаем кнопку Настройки:
Выбираем опцию Создать новую базу данных, вводим полный путь к базе данных, корректный с точки зрения файловой системы Linux (не надо использовать путь в формате WINE с виртуальным диском Z), в качестве директории для расположения файла БД используем ранее созданную директорию для баз данных сервера Firebird.
При успешном создании файла БД пользователей возникает окно с информацией:
Далее необходимо создать администратора:
Пользователь создан:
БД событий
Запускаем модуль настройки событий:
Вводим полный путь к базе данных, корректный с точки зрения файловой системы Linux, и нажимам кнопку Создать БД.
БД событий успешно создана:
Сохраняем настройки в модуле событий.
Вот теперь уже можно для проверки запустить модуль визуализации:
Внимание! Сервер сбора данных SCADA ЭНТЕК, запускаемый как приложение через пакет WINE, не следует использовать в реальных проектах автоматизации! Для промышленного использования подготовлена полноценная нативная сборка сервера SCADA ЭНТЕК для операционной системы Linux, установка и использование которой рассматривается далее.
БД истории
Также необходимо скорректировать настройки в модуле истории, и создать файлы баз данных:
Внимание! Для операционной системы Linux в настоящее время необходимо использовать тип (версию) базы данных Простого формата с таблицами на каждый день. В скором времени будет также доступен для использования формат с таблицами с полями типа BLOB – это более экономичный формат, для проектов с большим числом параметров.
Установка и сопровождение серверной части SCADA
Установка серверной части
Скачиваем актуальный установочный архив entek-YYMMDD.tar.gz (в поле YYMMDD содержится дата выпуска в формате Год-Месяц-Дата), и распаковываем его во вложенную папку:
Выполнение скрипта установки SCADA ЭНТЕК необходимо произвести с правами суперпользователя. Запускаем из консоли программу mc с правами суперпользователя (команда sudo mc), заходим в каталог, куда был распакован архив:
Запускаем файл install-entek.sh
В конце процедуры установки происходит автоматический запуск программы активации лицензии SCADA ЭНТЕК.
Даем из консоли команду systemdgenie – запускаем входящую в состав Astra Linux программу управления демонами, вводим в строке фильтра слово entek, и видим четыре запущенных демона из состава SCADA ЭНТЕК:
Комментарий: все четыре демона будут запущены, если предварительно была произведена процедура установки проекта SCADA ЭНТЕК в каталог /home/entek/SCADA, и произведены операции по его предварительной настройке. Если это не было сделано, то демоны entek-daserver и entek-edp будут запускаться с ошибкой, и сразу останавливаться.
Что делает скрипт установки:
1) Останавливает работающие демоны сервера SCADA ЭНТЕК – на тот случай, если это повторная установка, и происходит обновление ранее установленной версии SCADA ЭНТЕК.
2) Создает директорию /opt/entek и необходимые поддиректории.
3) Копирует файлы в директорию /opt/entek.
4) Копирует библиотеки libmosquitto.so.1 и libmosquittopp.so.1 в директорию /usr/local/lib и также создает символьные ссылки на эти библиотеки и библиотеку libennetcore.so, обновляет кэш динамических библиотек Linux.
5) Копирует консольные утилиты mosquitto_pub, mosquitto_sub и mosquitto_rr в директорию /usr/local/bin.
6) Копирует брокер MQTT mosquito в директорию /usr/local/sbin.
7) Копирует 4 файла настроек демонов в директорию /etc/systemd/system:
- entek-enlogic.service
- entek-edp.service
- entek-daserver.service
- entek-mqtt.service
8) Включает (команды systemctl enable …) и запускает (команды systemctl start …) установленные демоны.
9) Запускает утилиту активации лицензии SCADA ЭНТЕК.
Управление демонами
Для управления демонами SCADA ЭНТЕК в составе установочного пакета в папке cmd предусмотрены скрипты для ручного управления демонами. Также эти скрипты в процессе установки копируются в папку /opt/entek/cmd.
Состав скриптов:
· entek-disable.sh – отключение демонов
· entek-enable.sh – включение демонов
· entek-start.sh – запуск включенных демонов
· entek-stop.sh – останов запущенных демонов
Данные скрипты необходимо запускать с правами суперпользователя. Формат команд для совершения данных действий можно увидеть в тексте скриптов, и использовать при необходимости эти команды индивидуально.
Текущее состояние каждого демона можно узнать с помощью команды systemctl status <имя демона>.
Системные название демонов SCADA ЭНТЕК:
· entek-enlogic – виртуальный контроллер ENLOGIC
· entek-mqtt – брокер MQTT
· entek-edp – сервер получения (по MQTT) и регистрации событий в базы событий
· entek-daserver – сервер сбора данных SCADA
Примеры:
Демоны сервера сбора данных entek-daserver и сервера регистрации событий entek-edp в своих конфигурационных файлах содержат параметры запуска соответствующих приложений. В первую очередь это первый параметр командной строки – путь к файлу проекта SCADA ЭНТЕК. Если необходимо, эти пути можно поменять в файлах:
· /etc/systemd/system/entek-daserver.service
· /etc/systemd/system/entek-edp.service
После изменения содержимого файлов настройки демонов необходимо дать команду:
systemctl daemon-reload
Также в состав Astra Linux входит графическое приложение systemdgenie, которое можно использовать для управления демонами:
Отредактировать параметры запуска демона можно с помощь пункта Редактировать файл юнита:
Диагностика работы
Демон сервера сбора данных deserver ведет лог-файлы работы в каталоге проекта, в папке DAServer, в папке с номером станции, которая передана в командной строке:
Файл DAServer.log – главный лог работы сервера:
Лог файл работы демона edp в каталоге проекта SCADA:
Лог файл работы демона виртуального контроллера enlogic находится в его рабочем каталоге:
Мониторинг работы сервера сбора данных через встроенный Веб-интерфейс:
Мониторинг работы виртуального контроллера ENLOGIC:
Лицензирование
Активация лицензии необходима только для серверной части, при этом в лицензии сервера указывается количество клиентских рабочих станций, разрешенных для одновременного подключения к этому серверу. Регистрация на стороне клиента (АРМ) не требуется, на клиентских рабочих местах не нужно производить активацию программной лицензии, или использовать аппаратный ключ защиты.
Лицензирование может быть произведено двумя способами:
· Лицензирование с использованием аппаратного ключа защиты
· Лицензирование с использованием программного ключа и привязки к компьютеру
Лицензирование с использованием аппаратного ключа защиты является более предпочтительным, потому что оно дает возможность конечному пользователю в процессе жизненного цикла системы автоматизации свободно переносить аппаратный ключ с одного компьютера на другой, например при выходе компьютера из строя.
Аппаратный ключ защиты устанавливается в порт расширения USB. Не требуется устанавливать никакие дополнительные драйвера для поддержки аппаратного ключа. Скрипт установки SCADA ЭНТЕК автоматически добавляет в операционную систему правила, необходимые для того, чтобы доступ к аппаратному ключу защиты USB был не только у пользователя root, но и у всех пользователей системы.
Лицензирование с использованием программного ключа применяется в случае затруднений, или невозможности использования аппаратного ключа по какой-либо причине, например в случае использования SCADA ЭНТЕК на виртуальных машинах. Также программный ключ используется для активации временной лицензии.
Процедура активации программного ключа
Для активации программного ключа серверной части SCADA ЭНТЕК в ОС Linux используется отдельная утилита enreg, входящая в состав установочного пакета. После установки утилита регистрации запускается автоматически. Если не производить регистрацию, то сервер SCADA будет работать в демонстрационном режиме в течении одного часа, после чего останавливает свою работу.
В логе работы сервера в каталоге проекта пишется информация о регистрации:
Если регистрация не была произведена сразу после установки, то это можно сделать позже в любое время. Для этого необходимо от имени суперпользователя запустить программу /opt/entek/bin/enreg:
Вводим в программу данные о лицензии – название организации и серийный номер лицензии:
Программа генерирует код активации, данные код необходимо переслать производителю SCADA ЭНТЕК, в ответ будет предоставлена информация в текстовом виде следующего содержания:
-------------------------------------------------------------
Информация о регистрационном коде SCADA-системы "ЭНТЕК"
-------------------------------------------------------------
Организация: ПАО "Россети Волга"
Серийный номер: 1000-1CCA-1D08-BA7E-B390
Код активации: FDF6-43DF-2E39-5D9D-A614-389E
Сервер:
Каналов: до 500
Контроллеров: 10
КП МЭК-104: да
ПУ МЭК 101/103/104: да
АРМ пользователя SCADA: да
EnLogic для Windows:
Каналов: до 500
ПУ МЭК-104: да
DNP3 master: да
Дата регистрации: 07.12.2022
-------------------------------------------------------------
Регистрационный код:
2083-F5F3-3308-4D52-2610-0D36-8B8A-8077-AFAB-DDF5-01A9-DD1A-398F-E311-C3A0-16B0-6BCA-CC55-E390-050B
-------------------------------------------------------------
Присланный регистрационный код необходимо скопировать и вставить в соответствующее поле в программе активации:
Кнопка Зарегистрировать ставится активной, нажимаем ее.
Появляется окно с информацией о составе лицензии:
Регистрационная информация сохраняется в текстовый файл /opt/entek/bin/reg.info:
Этот файл далее используется сервером SCADA при старте для чтения информации о лицензии.
Информация в логе загрузки сервера после активации лицензии: