×

Использование SCADA ЭНТЕК в Alt Linux

Схема использования: "Установочный пакет SCADA ЭНТЕК для ОС Linux - 9.0.хххх.хх.хх" (нативная версия) совместно с "SCADA ЭНТЕК для ОС Windows - дистрибутив для обновления - 9.0.хххх.хх.хх" (с запуском через Wine).
 
 
Работа программного комплекса SCADA ЭНТЕК под управлением операционных систем семейства Linux выполняется следующим образом:
1. Серверная часть SCADA ЭНТЕК устанавливается как нативное приложение Linux. Серверная часть представляет собой набор приложений, скомпилированных для операционной системы Linux, и запускаемых в штатном режиме в виде демонов (служб) под управлением стандартного менеджера служб systemd (также возможен и ручной запуск как обычного консольного приложения). Для установки серверной части предоставляется архив под соответствующую операционную системы, после скачивания и распаковки архива для установки необходимо запустить скрипт установки, размещенный в корне, запуск необходимо производить с правами пользователя root. Нативная часть состоит из следующих модулей:
  • daserver – исполняемый файл сервера сбора данных;
  • edp – исполняемый файл сервера регистрации событий;
  • evp - исполняемый файл сервера визуализации процессов;
  • enreg – программа активации лицензии;
  • enlogic – исполняемый файл виртуального контроллера ENLOGIC;
  • libennetcore.so – динамическая библиотека общих функций;
  • MQTT-брокер Mosquitto – включен в состав пакета для установки, устанавливается автоматически. Необходимо учитывать данных факт, и, в случае если в целевой операционной системе уже установлен пакет mosquitto – либо удалить его из менеджера пакетов Linux, либо исключить установку Mosquitto из скрипта установки SCADA ЭНТЕК.
  • RestAPI - REST-сервер. Обеспечивает доступ к ресурсам SCADA по интерфейсу REST и является точкой входа и получения ресурсов.
  • orchestrator- менеджер служб. Управление запуском, остановкой и мониторингом состояния сервисных юнитов через конфигурационный файл и HTTP API.
  • vision - исполняемый файл нативного приложения визуализации;
    2. Необходимые дополнительные компоненты для работы SCADA ЭНТЕК:
  • SQL-сервер Firebird 3.
    3. Клиентская часть SCADA ЭНТЕК, а также конфигурационные модули, работают с использованием пакета WINE, его установка доступна из репозиториев соответствующего Linux. Для установки клиентской части SCADA ЭНТЕК рекомендуется использовать стандартный дистрибутив SCADA ЭНТЕК для обновления – Entek_setup_bin. Внимание!! Если используется полный дистрибутив (для первичной установки - Entek_setup_full), не нужно устанавливать SQL-сервер Firebird для Windows и драйвер ключа защиты!
 
В приведенных ниже подробных инструкциях по установке предполагается, что для работы клиентской части SCADA ЭНТЕК в операционной системе Linux создается учетная запись entek, поэтому домашняя папка пользователя располагается в каталоге /home/entek.
Внимание! Необходимо обратить внимание на то, что в операционной системе Linux все пути файлов чувствительны к регистру символов, и это надо учитывать при задании путей к базам данных и других файловых путей.
 
Операционная система Alt Linux Workstation K 11.4
 
Предварительные действия
Скачать и установить на компьютер дистрибутив Alt linux рабочая станция.
Войти в терминал.
Включить пользователя, от имени которого будет производиться установка SCADA Энтек в группу sudo
usermod -aG wheel имя_пользователя
*Замените имя_пользователя на нужный логин.
Чтобы новые группы применились сразу, можно либо выйти из системы и войти заново, либо выполнить в текущем терминале команду:
newgrp wheel
 
Обновить систему
apt-get update
apt-get distr-upgrade
 
Обновить ядро
update-kernel
 
 
Установка Firebird
Необходимо:
1. Установить библиотеку  libtommath
2. Установить библиотеку libncurses
3. Загрузить архив Firebird
4. Произвести установку Firebird
 
Запускаем окно терминала и активируем режим суперпользователя:
su -
Введите пароль пользователя с правами root.
 
Установим библиотеку libtommatch
apt-get install libtommath
Проверим:
ldconfig -p | grep libtommath
Результат:
 
Прописать символьную ссылку libtommath.so.2.1 на libtommath.so.0
ln -s /usr/lib64/libtommath.so.2.1 /usr/lib64/libtommath.so.0
 
Установим библиотеку libncurses
Firebird использует библиотеку libncurses.so.5 Установим:
apt-get install  libncurses
 
Проверим наличие libncurses.so.5:
ldconfig -p | grep curses
Видим, что libncurses.so.5 присутствует в списке.
 
 
Загрузка установочного пакета Firebird
В стандартных репозиториях Alt Linux доступен Firebird версии 5. Поскольку для SCADA Энтек требуется Firebird версии 3, скачаем с официального сайта, по ссылке:
https://www.firebirdsql.org/ - сайт сообщества Firebird.
https://www.firebirdsql.org/en/firebird-3-0/
 
Скачать 64 разрядную версию для используемой аппаратной платформы:
wget https://github.com/FirebirdSQL/firebird/releases/download/v3.0.14/Firebird-3.0.14.33856-0.amd64.tar.gz
 
Распаковать архив:
tar -xvf Firebird-3.0.14.33856-0.amd64.tar.gz
Перейти в созданную папку:
cd Firebird-3.0.14.33856-0.amd64
Запустить скрипт установки:
./install.sh
Скрипт попросит подтверждения. Нажмите Enter.
Типовой пароль – masterkey Используется для демонстрационных проектов.
Этот пароль небезопасен. Для коммерческих проектов измените его.
Если возникает ошибка:
/opt/firebird/bin/gsec: error while loading shared libraries: libtommath.so.0: cannot open shared object file: No such file or directory
вводим команду
ldconfig -p | grep libtommath
Проверяем наличие правильных символических ссылок. При наличии ошибок - исправляем.
 
Проверяем что сервер Firebird запущен:
systemctl status firebird-superserver.service
Видим - служба запущена:
Сервер БД Firebird успешно установлен.
 
 
Директория для БД
В операционной системе Linux служба сервера Firebird работает под учетной записью firebird. Это означает, что для хранения файлов баз данных по умолчанию можно либо использовать некоторые общедоступные папки, либо создать специальный каталог для хранения БД, и назначить права доступа для учетной записи firebird.
 
Создадим для хранения файлов БД специальную папку.
Для этого в директории home создаем папку db:
sudo mkdir /home/db 
Изменяем имя владельца и группы на firebird
sudo chown firebird: firebird db
Проверяем назначенные права
ls -l /home/db
Видим, что у владельца (firebird) и группы владельца (firebird), есть доступ к указанной папке (drwx).
Важно понимать: права на саму папку и на файлы внутри неё могут не совпадать.
 
 
Установка Wine
Редактирования проекта осуществляется в модулях SCADA ЭНТЕК для ОС Windows. Запуск Windows приложений в среде Linux осуществляется через Wine.
Для совместимости Windows программ с ОС Linux установим специальное приложение - Wine.
Установку программ в Linux удобно производить через менеджер пакетов Synaptic.
Установим Synaptic и подключим репозитории.
 
Установка менеджера пакетов Synaptic
Выполняем в терминале команду
sudo apt-get update
Устанавливаем synaptic
sudo apt-get install synaptic
Подключение репозиториев.
Запускаем менеджер пакетов Synaptic
sudo synaptic
Выбираем в пункте меню Параметры -> Репозитории
Проверяем, что выставлены галочки на репозитории http://ftp.altlinux.org....... Как на скриншоте.
Если репозитории подключены, переходим к следующему пункту. В случае, если подключённых репозиториев нет, открываем страницу «Репозитории ALT Linux»:
https://www.altlinux.org/Репозитории_ALT_Linux
Переходим к группе «Стабильные ветки» и копируем ссылки подходящие для нашей платформы:
# 64-bit x86 rpm
 
После добавления репозиториев нажимаем кнопку Получить сведения, затем кнопку Отметить для обновления, и далее кнопку Применить:
  
 
Произойдет обновление операционной системы до актуального состояния. По завершению обновления рекомендуется перезагрузить компьютер.
 
Установите Wine
Откройте менеджер пакетов Synaptic.
Делаем поиск по слову wine, отмечаем пакет i586-wine.32bit (двойной клик по названию пакета), при этом автоматически происходит добавление всех требуемых зависимостей, и нажимаем применить.  Приложения будут загружены и установлены. Synaptic можно закрыть.
Установка Wine через консоль:
sudo apt-get install wine-full i586-wine
 
Установка SCADA ЭНТЕК
Установка SCADA ЭНТЕК для ОС Windows
Скачиваем SCADA-ЭНТЕК  с сайта https://smart-grid.ru/  «Дистрибутив SCADA ЭНТЕК для ОС Windows» - «Дистрибутив SCADA-система ЭНТЕК для обновления» актуальной версии и сохраняем в директорию ~/tmp/
Запускаем «Приложения Wine» - Установка/удаление программ:
Нажимаем Установить и, в открывшемся окне, выбираем дистрибутив SCADA ЭНТЕК для ОС Windows .
После выбора дистрибутива происходит автоматический запуск мастера установки SCADA ЭНТЕК.
Производим обычную процедуру установки windows-приложения, нажимая кнопки Далее…
В конце установки на рабочем столе автоматически создаётся ярлык для запуска:
На этом установка клиентской части SCADA ЭНТЕК завершена.
 
 
Установка  Winetricks 
Для корректного отображения текста в модулях SCADA системы, запущенных через Wine, необходимо установить ряд шрифтов использующихся в ОС Windows. Это удобно делать через программу Winetricks - вспомогательный скрипт (утилита) для загрузки и установки различных распространяемых библиотек, необходимых для запуска программ в Wine, а также настройки окружения.
Выполняем в терминале команду 
sudo apt-get update
Устанавливаем Winetricks
sudo apt-get install winetricks
Запускаем Winetricks с командой установки шрифтов:
winetricks allfonts
Скрипт скачает и добавит в эмуляцию диска C: шрифты из Windows. Потребуется около 132 МБ. 
Открываем модуль «Интегратор», проверим что всё отображается корректно:
 
 
 
Установка SCADA ЭНТЕК для ОС Linux
Скачиваем актуальный установочный архив entek-YYMMDD.tar.gz (в поле YYMMDD содержится дата выпуска в формате Год-Месяц-Дата), и распаковываем его во вложенную папку:
tar -xzvf entek-260606.tar.gz
*где 260606 - дата сборки дистрибутива.
Переходим в созданную папку:
cd  entek-260606
Запустим скрипт установки.
 Выполнение скрипта установки SCADA ЭНТЕК необходимо произвести с правами суперпользователя.
./install-entek.sh
Необходимо выбрать тип установки:
  • 1 – полная установка (серверных и клиентских модулей).
  • 2 –  установка только клиентских модулей используется на клиентских АРМ.
Для полной установки пропишите 1. Нажмите Enter.
Скрипт проверяет наличие ранее установленных файлов и выбирает режим: УСТАНОВКИ  или ОБНОВЛЕНИЯ. Нажмите Enter для продолжения.
В конце процедуры установки происходит автоматический запуск программы активации лицензии SCADA ЭНТЕК.
Произвести регистрацию можно позже. Закроем окно и переходим к проекту.
 
Что делает скрипт установки:
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. Копирует 5 файлов настроек демонов в директорию /etc/systemd/system:
  • entek-enlogic.service
  • entek-edp.service
  • entek-daserver.service
  • entek-mqtt.service
  • Entek-scada.service
    8. Запускает утилиту активации лицензии SCADA ЭНТЕК.
 
 
Проект SCADA ЭНТЕК
В операционной системе Linux можно запустить любой проект подготовленный в SCADA ЭНТЕК для Windows. Для этого необходимо предварительно запакованный каталог проекта без баз данных, скопировать в Linux, распаковать и произвести его перенастройку для работы в ОС Linux.
Внимание! Напрямую копировать базы данных истории, событий, пользователей путем переноса файлов из Windows в Linux нельзя.  Операция переноса производится путем создания резервных копий баз данных в Windows, с последующим восстановлением из в Linux. Подробная информация в приложении - раздел "Настройки баз данных". 
Рассмотрим запуск демо-проекта SCADA Энтек.
Скачиваем архив с проектом SCADA.tar.gz (Демонстрационный проект SCADA для Linux)
Переходим в директорию к сохранённому файлу:
cd /home/имя_пользователя/Загрузки/
Где имя_пользователя - логин, под которым Вы вошли в систему. На пример, entek.
Распаковываем архив в домашнюю папку:
tar -xzvf SCADA.tar.gz -C /home/entek/
Архив распакуется в папку /home/entek/ (Домашняя папка пользователя entek).
Запускаем модуль Интегратор ЭНТЕК и открываем демо-проект, выбрав его в файловой системе:
Комментарий: для приложений, работающих через WINE, происходит отображение корневой директории Linux на виртуальный диск Z, поэтому путь к файлу данного проекта будет иметь вид: Z:\home\entek\SCADA\main.epr
Ставим в модуле Интегратор галку «Проект по умолчанию», чтобы при следующем запуске Интегратора данный проект открывался автоматически:
 
В этом проекте сейчас нет никаких баз данных. Для использования проекта нужно создать (или подключить) необходимые для работы БД.
 
БД пользователей
Запускаем модуль Пользователи.
Ознакомимся что БД по указанному пути нет (нажмите кнопку ОК):
 
 
Нажимаем кнопку Настройки:
Выбираем опцию Создать новую, вводим полный путь к базе данных, корректный с точки зрения файловой системы Linux (не надо использовать путь в формате WINE с виртуальным диском Z), в качестве директории для расположения файла БД используем ранее созданную директорию для баз данных сервера Firebird. Обращаем внимание на поле «Пароль» – вводим тот, что придумали при установке Firebird. Стандартный пароль «по умолчанию» для демо-проектов – masterkey.
В поле «Имя сервера» пропишите IP адрес компьютера, на котором будет запущен сервер. Если проект локальный (один компьютер будет использоваться как сервер и АРМ), в качестве IP можно прописать 127.0.0.1, или оставить поле пустым.
 
 
При успешном создании файла БД пользователей возникает окно с информацией:
Далее необходимо создать администратора: пропишем имя, зададим, по необходимости, пароль:
В случае успеха выводится информационное окно:
Создан пользователь с правами администратора. Вместе с ним в БД создаётся пользователь Public, не имеющий, пока, никаких прав.
 
 
 
БД событий
Запускаем модуль настройки событий (Настройка - События):
На вкладке "Свойства БД"  в поле "Файл БД на сервере" вводим полный путь к базе данных, корректный с точки зрения файловой системы Linux. В поле «Пароль» – вводим пароль, что придумали при установке Firebird. Стандартный пароль «по умолчанию» – masterkey.  Нажимаем кнопку Создать БД. Помним, что с точки зрения Linux, заглавные и строчные буквы — это принципиально разные символы. 
В поле «Сервер» пропишите IP адрес компьютера, на котором будет запущен сервер. Если проект локальный (один компьютер будет использоваться как сервер и АРМ), в качестве IP можно прописать 127.0.0.1, или оставить поле пустым.
 
БД событий успешно создана:
Сохраняем настройки в модуле событий - нажмите кнопку с изображением дискеты.
 
Теперь можно для проверки запустить модуль визуализации:
Внимание! Сервер сбора данных SCADA ЭНТЕК, запускаемый как приложение через пакет WINE (с панели Интегратора), не следует использовать в реальных проектах автоматизации! Для промышленного использования подготовлена полноценная нативная сборка сервера SCADA ЭНТЕК для операционной системы Linux, установка и использование которой рассматривается далее.
 
 
БД истории
Запускаем модуль "История":
Необходимо скорректировать настройки подключения к БД в модуле истории, и создать файлы БД (по  аналогии создания БД событий).
Можно использовать тип (версию) базы данных Простого формата с таблицами на каждый день или формат с таблицами с полями типа BLOB – более экономичный формат для проектов с большим числом параметров.
 
 
 
БД Справочники
БД модуля «Справочники» не является обязательной в проектах телемеханики/диспетчеризации, но может оказаться очень полезной.
Для создания БД запускаем модуль «Справочники», в открывшемся окне выбираем «Создать новую БД».
Вводим полный путь к базе данных, корректный с точки зрения файловой системы Linux. Обращаем внимание на поле «Пароль» – вводим тот, что придумали при установке Firebird. Стандартный пароль «по умолчанию» – masterkey. 
Помним, что с точки зрения Linux, заглавные и строчные буквы — это принципиально разные символы. 
В поле «Сервер» пропишите IP адрес компьютера, на котором будет запущен сервер. Если проект локальный (один компьютер будет использоваться как сервер и АРМ), в качестве IP можно прописать 127.0.0.1, или оставить поле пустым.
Если не снимать галочку в чекбоксе «Создать шаблонную БД для АСКУЭ», в БД будет добавлен ряд стандартных журналов и форм.
Нажимаем кнопку ОК.
При успешном создании БД запустится модуль «Справочники».
Если есть подготовленная БД, содержащая необходимые журналы и формы, выбираем вариант «Подключить БД». Настройки пути к БД и данные для авторизации производим по уже описанному принципу. 
 
 
Управление системными службами
Скрипт инсталляции SCADA-системы не производит автоматическую установку и запуск системных служб.
Управления запуском, остановкой и мониторингом состояния сервисных юнитов SCADA ЭНТЕК осуществляется через модуль "Оркестратор".
Конфигурационные файлы Оркестратора, в процессе установки серверной части SCADA,  копируются в папку /opt/entek/bin/orchestrator-config/.
По умолчанию, служба "Оркестратора" отключена.
Для включения используем команду:
Действие выполняем с правами суперпользователя.
sudo systemctl enable entek-scada
Запускаем службу:
systemctl start entek-scada
Служба "Оркестратор" не проверяет работу MQTT брокера, поэтому запустим MQTT вручную.
Включение службы:
systemctl enable entek-mqtt
Запуск службы:
systemctl start entek-mqtt
 
Состояние службы Оркестратора можно узнать с помощью команды:
 systemctl status entek-scada
 
 
Модуль "Оркестратор" - настройка
В настройках Оркестратора необходимо прописать путь к проекту и идентификатор станции, в которой расположены конфигурации узлов Enlogic.
Конфигурационные файлы, по умолчанию, расположены в папке /opt/entek/bin/orchestrator-config.
 
Путь к проекту
Откроем для редактирования файл с глобальными настройками: global.settings.
В этом файле необходимо проверить номер порта, на котором будет запущен WEB интерфейс Оркестратора:
И путь к вашему проекту:
По умолчанию используется порт 8888. Оставьте текущее значение, если необходимости замены нет.
Укажите путь к проекту и сохраните файл.
Пример команды для использования редактора VI:
Действие выполняем с правами суперпользователя.
sudo vi /opt/entek/bin/orchestrator-config/global.settings.orch
Команда выхода из режима редактирования с сохранением изменений:
:wq
Нажмите Enter.
 
Сразу, пока настраиваем "Оркестратор", проверьте номер порта, на котором будет запущен эмулятор контроллера.
Откройте файл enlogic.orch и проверьте номер порта, который будет использовать служба эмулятора контроллера Enlogic.
Для просмотра настроек редактор можно открывать с правами текущего пользователя.
vi /opt/entek/bin/orchestrator-config/enlogic.orch
Команда выхода из режима редактирования без сохранения изменений:
:q
Нажмите Enter.
На скриншоте видим использование порта 30300. Этот номер порта понадобится для настройки эмулятора в модуле "Контроллеры".
 
 
Идентификатор станции
Командная строка запуска ССД включает путь к проекту и идентификатор станции, в которой расположены узлы Enlogic, опрашиваемые ССД.
Для проверки идентификатора запустите модуль "Станции":
Проверьте значение поля "Идентификатор".
В демо-проекте у станции "Локальные настройки" идентификатор - 0.
 
Откроем файл daserver.orch для редактирования:
sudo vi /opt/entek/bin/orchestrator-config/daserver.orch
Задайте значение stationid=0.
Больше ничего в этом файле не меняем.
Закройте редактор с сохранением изменений.
Содержимое файла примет следующий вид:
 
 
 
Модуль "Оркестратор" - web интерфейс
Управление системными службами SCADA ЭНТЕК осуществляется через модуль "Оркестратор".
Откроем браузер и пропишем в адресной строке IP адрес компьютера, на котором работает Оркестратор и, через двоеточие, TCP порт, из его глобальных настроек: http://127.0.0.1:8888/
На странице браузера отобразится состояние сервисных юнитов SCADA ЭНТЕК:
Нажмите кнопку "Перезагрузить юниты": поскольку изменены настройки системных служб.
При необходимости остановки, запуска, или рестарта какого-либо процесса, кликаем на его имя и выбираем требуемое действие:
 
Контроль запуска процессов 
Запуск процессов удобно контролировать в приложении ОС Alt Linux «Системный монитор»:
Запустите приложение, выберите режим просмотра всех процессов и в поле поиска "Процессы" поочерёдно пропишите название следующих процессов:
  • Daserver
  • Enlogic
  • Mosquitto
  • EDP
  • Orchestrator
Если процесс активен, он отобразиться в таблице:
Убедившись что всё запущено, переходим к генерации демо-данных.
 
Генерация демо-данных
Запустите модуль "Контроллеры"
Перейдите к конфигурации "Генератор демо-данных.
В группе "Связь через ENLOGIC" измените значение порта с 30292 на 30300, поскольку Оркестратор запустит эмулятор контроллера на этом порту. Протокол можно не менять, оставьте UDP.
Загрузите конфигурацию в эмулятор контроллера кнопкой на панели инструментов или нажмите F10.
Контроллер примет конфигурацию и завершить работу, после чего будет вновь запущен "Оркестратором".
Можно переходить к просмотру данных на мнемосхемах.
 
Мнемосхемы
Запустите модуль кнопкой:
После аутентификации пользователя откроется стартовая мнемосхема:
На мнемосхему выведены кнопки перехода на различные мнемосхемы, демонстрирующие использование стандартных библиотечных элементов.
Кнопка открывает всплывающее окно, в котором можно изменить значения ряда сигналов для генерации аварийной сигнализации.
Кнопка используется для перехода на стартовую мнемосхему.
Кнопка "Симулятор контроллера" запускает консольное Windows приложение. Не используйте её в Linux.
Кнопка "Веб-интерфейс сервера" открывает в браузере страницу диагностики работы ССД. (См. раздел "Диагностика".)
Кнопка "Веб-интерфейс контроллера" открывает в браузере web-интерфейс эмулятора контроллера. Внимание: в адресной строке используется порт, связанный с портом, на котором работает контроллер. Для открытия страницы измените номер порта с 30294 на 30302.
 
Диагностика
Веб-интерфейс сервера сбора данных
Мониторинг работы сервера сбора данных через встроенный Веб-интерфейс
 
Для подключения используется порт, на котором запущен сервер сбора данных +4.
(Если в настройках станции прописан порт 25923, в адресной строке используем 25927)
 
Веб-интерфейс виртуального контроллера ENLOGIC
Для подключения используется порт, на котором запущен эмулятор контроллера +2.
(Если в настройках юнита прописан порт 30300, в адресной строке используем 30302)
Все системные службы SCADA Энтек ведут логи работы.
 
Демон сервера сбора данных DAServer ведет лог-файлы работы в каталоге проекта, в папке DAServer, в папке с номером станции, которая передана в командной строке:
Файл DAServer.log – главный лог работы сервера:
Лог файл работы демона edp ведётся в каталоге проекта SCADA - KEvents:
 
Лог файл работы демона виртуального контроллера enlogic находится в его рабочем каталоге: