Сервер
- Запуск и управление
- Лицензирование
- Конфигурационная БД
- Исторические БД
- Серверная файловая система
- Логирование
- Клиентские подключения
- Сервер OPC UA
- Клиент OPC (Windows)
- Интеграция с ОИК Видикон
- Резервное копирование
- Справочник параметров server.json
Сервер ОИК является центральным компонентом системы. Он выполняет сбор данных с оборудования, обработку данных реального времени, архивирование, регистрацию событий и обслуживание клиентских подключений. Сервер работает под Windows (в виде системной службы или в консольном режиме) и Linux (в том числе в Docker-контейнере).
Запуск и управление
Служба Windows
Сервер устанавливается в виде системной службы Telecontrol SCADA Server и запускается автоматически при загрузке Windows. Управление службой выполняется стандартными средствами Windows (Панель управления — Службы) или из командной строки:
| Команда | Описание |
|---|---|
--install |
Установить Сервер как службу Windows |
--uninstall |
Удалить службу Windows |
Консольный режим
Сервер может быть запущен в консольном режиме. Для этого следует остановить службу Telecontrol SCADA Server и использовать пиктограмму Сервер (консоль) на рабочем столе, либо через меню Пуск — ОИК Телеконтроль.
Внимание: при отсутствии у текущего пользователя Windows административных прав работа Сервера может быть нарушена.
Параметры командной строки
| Параметр | Описание |
|---|---|
--install |
Установить Сервер как службу Windows |
--uninstall |
Удалить службу Windows |
--service |
Запуск в режиме службы (используется системой) |
--param <путь> |
Указать путь к файлу server.json |
--log-severity <уровень> |
Задать уровень логирования (error, warning, info, debug) |
Развертывание под Linux
Серверный компонент поддерживает работу под Linux. Графический клиент под Linux не поддерживается — для доступа используйте Веб-интерфейс.
Запуск из архива
Распакуйте архив дистрибутива и запустите исполняемый файл сервера. Файл server.json должен находиться в рабочей директории или быть указан параметром --param.
Развертывание в Docker
Для контейнерного развертывания используйте Docker-образ. Сервер в контейнере принимает клиентские подключения на порту 2000.
В конфигурации Docker поддерживается подстановка переменных окружения в формате ${ENV{VARIABLE_NAME}}, что позволяет задавать параметры (например, строку подключения к PostgreSQL) через переменные окружения контейнера.
Лицензирование
Для работы Сервера требуется аппаратный ключ Guardant или HASP. Сервер проверяет наличие лицензии при запуске и периодически во время работы.
При отсутствии ключа Сервер работает в демонстрационном режиме и останавливается через 2 часа. О приближении окончания демонстрационного периода Сервер регистрирует системные события.
При извлечении ключа во время работы Сервер регистрирует предупреждение и останавливается по истечении таймаута.
Конфигурационная БД
Для хранения конфигурации используется база данных, расположенная в папке %ProgramData%\Telecontrol\SCADA Server\Configuration. Это расположение можно изменить через параметр configuration.dir в файле server.json.
SQLite
По умолчанию используется встроенная БД SQLite, не требующая установки дополнительного ПО:
"configuration": {
"driver": "SQLite",
"dir": "${DIR_PARAM}/Configuration"
}
PostgreSQL
Для распределенных установок и повышенных требований к надежности поддерживается PostgreSQL:
"configuration": {
"driver": "PostgreSQL",
"connection-string": "postgresql://user:password@localhost:5432/scada"
}
При использовании PostgreSQL требуется предварительно установить и настроить сервер PostgreSQL.
Миграция конфигурационной БД GigaBASE
Поддержка GigaBASE была удалена начиная с версии 2.1. Для импорта старых конфигураций GigaBASE используйте утилиту администрации версии 2.0.
Для загрузки архива нажмите эту ссылку. Распакуйте архив ZIP и запустите из распакованной директории:
admin export --source-driver=GigaBASE "--source=c:\ProgramData\Telecontrol\SCADA Server\Configuration" --target-driver=SQLite "--target=c:\ProgramData\Telecontrol\SCADA Server\Configuration"
Эта команда создаст файл конфигурации SQLite configuration.sqlite3 в директории c:\ProgramData\Telecontrol\SCADA Server\Configuration. Все содержимое старой конфигурации будет импортировано в новую конфигурацию.
Для использования новой конфигурации нужно обновить параметры сервера. Откройте файл server.json и измените параметр configuration.driver с GigaBASE на SQLite. Если такой параметр отсутствует, его нужно добавить.
Исторические БД
Исторические БД создаются в формате SQLite.
Для хранения событий аудита и последних значений объектов используется системная историческая БД.
Для хранения событий и изменений значений параметров используются пользовательские исторические БД. Допустимо создание нескольких пользовательских исторических БД. Сервер автоматически создает и удаляет необходимые файлы на диске при создании и удалении БД.
Местоположение БД определяется параметром history.dir. По умолчанию используется папка %ProgramData%\Telecontrol\SCADA Server\History.
Для каждой БД создается собственная подпапка с уникальным идентификатором. Исключением является фиксированное имя System системной БД. Каждому объекту может быть назначена одна БД. При удалении объекта все связанные с ним данные удаляются из БД. При переназначении БД объекту связанные с ним данные удаляются из предыдущей БД.
Историческим БД задается глубина хранения данных. Сервер автоматически выполняет очистку БД в соответствии с ее глубиной.
Оценка требуемого дискового пространства
Максимальный допустимый размер БД составляет 1 Тб. Допустимые ограничения смотрите в подробных характеристиках SQLite. Размер страницы БД, создаваемой Сервером, составляет 1 Кб. Максимальное число страниц равно 1073741823.
Размер записи одного Объекта составляет менее 100 Байт.
Таким образом, ожидаемый размер БД в Мб можно вычислить как:
size = freq * depth / 10000, где:
size- ожидаемый размер БД в Мб;freq- частота изменений в день;depth- глубина (в днях).
Либо, при известном объеме доступного дискового пространства, можно вычислить максимальную глубину в днях:
depth = size * 10000 / freq.
Работа с БД SQLite
Данный пункт описывает дополнительные возможности администрирования и диагностики. Так как сервер выполняет обслуживание БД в автоматическом режиме, ознакомление с данным пунктом не требуется.
Удобный графический интерфейс предоставляет бесплатная утилита SQLiteStudio.
Для прямого доступа к БД можно использовать утилиту командной строки SQLite, устанавливаемую вместе с Сервером. Для вызова командной строки SQLite перейдите в папку БД и выполните команду
"%ProgramFiles(x86)%\Telecontrol SCADA\bin\sqlite3.exe" history
Утилита позволяет выполнять запросы SQL и ряд специальных команд. Для информации о списке допустимых команд смотрите документацию SQLite.
Примеры
Размер страницы БД:
sqlite> pragma page_size;
1024
Перечень таблиц:
sqlite> .tables
events timed_data
Схема таблицы системных событий:
sqlite> .schema events
CREATE TABLE events(time INTEGER, change_mask INTEGER, severity INTEGER,
item_id INTEGER, user_id INTEGER, value FLOAT, qualifier INTEGER,
message TEXT, ack_id INTEGER, ack_time INTEGER, ack_user_id INTEGER);
CREATE UNIQUE INDEX events_ack_index ON events(ack_id);
CREATE INDEX events_time_index ON events(time);
Количество системных событий в архиве:
sqlite> select count(*) from events;
86
Серверная файловая система
Серверная файловая система позволяет хранить файлы мнемосхем на Сервере. Таким образом, доступ к мнемосхемам будет предоставлен всем Клиентам, избавляя их от необходимости ручной синхронизации при обновлении файлов.
Серверная файловая система включается автоматически при новой установке ОИК. Для включения на существующих установках потребуется установить параметр filesystem.enabled в значение true в файле server.json:
"filesystem": {
"enabled": true,
"dir": "${DIR_PARAM}/FileSystem"
}
Файлы мнемосхем размещаются в папке, указанной в параметре dir. По умолчанию — %ProgramData%\Telecontrol\SCADA Server\FileSystem. Управление файлами выполняется из панели файлов Клиента.
Логирование
Сервер ведет журнал работы в текстовых файлах. Параметры логирования:
| Параметр | По умолчанию | Описание |
|---|---|---|
log.dir |
${DIR_PARAM}/Logs |
Папка файлов журнала |
log.max_file_size |
10 | Максимальный размер одного файла (Мб) |
log.max_total_size |
100 | Максимальный общий размер всех файлов (Мб) |
log.max_count |
1000 | Максимальное количество файлов |
При достижении максимального размера файла создается новый. При превышении общего размера или количества файлов старые файлы удаляются автоматически.
Уровень логирования можно задать при запуске параметром --log-severity.
Клиентские подключения
Параметр sessions определяет адреса и порты для приема клиентских подключений. По умолчанию Сервер принимает подключения на всех сетевых интерфейсах (0.0.0.0) на порту 2000.
"sessions": [
"tcp;passive;host=0.0.0.0;port=2000"
]
Допускается задание нескольких точек подключения, например для разных сетевых интерфейсов или портов.
Сервер OPC UA
Сервер может предоставлять данные внешним системам по протоколу OPC UA. При включении OPC UA внешние клиенты получают доступ к адресному пространству Сервера ОИК: объектам, устройствам, текущим и историческим данным.
Для включения установите параметр opcua.enabled в значение true:
"opcua": {
"enabled": true,
"url": "opc.tcp://localhost:4840",
"server_private_key": "${DIR_PARAM}/Certificates/ServerPrivateKey.pem",
"server_certificate": "${DIR_PARAM}/Certificates/ServerCertificate.pem",
"trace": "none"
}
| Параметр | Описание |
|---|---|
enabled |
Включить сервер OPC UA |
url |
Адрес и порт сервера OPC UA |
server_private_key |
Путь к файлу закрытого ключа (PEM) |
server_certificate |
Путь к файлу сертификата (PEM) |
trace |
Уровень диагностики: none, error, warning, info, debug, all |
Для защиты соединений используются сертификаты в формате PEM. При первоначальной настройке необходимо сгенерировать пару ключ/сертификат и разместить файлы в указанной папке.
Клиент OPC (Windows)
На Windows Сервер может подключаться к внешним OPC-серверам по протоколу OPC DA (Classic OPC). При включении этой функции теги внешних OPC-серверов отображаются в адресном пространстве Сервера ОИК и могут быть привязаны к объектам.
"opc": {
"client": {
"enabled": true
}
}
Функция доступна только на Windows.
Интеграция с ОИК Видикон
Сервер поддерживает интеграцию с системой ОИК Видикон для миграции существующих проектов. При включении Сервер импортирует объекты из конфигурации Видикон в своё адресное пространство.
"vidicon": {
"enabled": true
}
Функция доступна только на Windows.
Резервное копирование
Резервное копирование конфигурации
Для резервного копирования конфигурации SQLite достаточно скопировать папку %ProgramData%\Telecontrol\SCADA Server\Configuration.
При использовании PostgreSQL используйте стандартные средства резервного копирования PostgreSQL (pg_dump).
Для миграции конфигурации между форматами используйте утилиту scada-admin:
scada-admin export --source <исходная_БД> --target <целевая_БД>
Резервное копирование архивов
Исторические БД хранятся в папке %ProgramData%\Telecontrol\SCADA Server\History. Для резервного копирования скопируйте эту папку.
Перед резервным копированием рекомендуется остановить Сервер для обеспечения целостности данных.
Справочник параметров server.json
Системные параметры сервера задаются в файле server.json, расположенном в папке конфигурации. По умолчанию на Windows это %ProgramData%\Telecontrol\SCADA Server.
В параметрах допускается использование переменных подстановки:
| Переменная | Описание |
|---|---|
${DIR_PARAM} |
Папка файла server.json |
${DIR_EXE} |
Папка исполняемого файла сервера |
${DIR_TEMP} |
Временная папка |
Полный пример файла параметров со значениями по умолчанию:
{
"configuration": {
"driver": "SQLite",
"dir": "${DIR_PARAM}/Configuration"
},
"history": {
"dir": "${DIR_PARAM}/History"
},
"sessions": [
"tcp;passive;host=0.0.0.0;port=2000"
],
"opc": {
"client": {
"enabled": false
}
},
"opcua": {
"enabled": false,
"url": "opc.tcp://localhost:4840",
"server_private_key": "${DIR_PARAM}/Certificates/ServerPrivateKey.pem",
"server_certificate": "${DIR_PARAM}/Certificates/ServerCertificate.pem",
"trace": "none"
},
"filesystem": {
"enabled": true,
"dir": "${DIR_PARAM}/FileSystem"
},
"vidicon": {
"enabled": false
},
"log": {
"dir": "${DIR_PARAM}/Logs",
"max_file_size": 10,
"max_total_size": 100,
"max_count": 1000
},
"thread_count": 1
}