Использование PostgreSQL#

Необходимо убедиться, что установлены пакеты доступа к БД для IngortechSCADA:

Для использования БД PostgreSQL необходимо установить следующее ПО:

Данная документация описана на основе дистрибутива PostgreSQL версии 16.0 и PostgreSQL ODBC драйвера версии «PostgreSQL ODBC(ANSI)».

Установка ПО#

Установка ПО Postgre происходит стандартным способом, с помощью запуска пакетов установки.

Предупреждение

При работе некоторых инструментов Postgre, написанных на различных скриптовых языках, могут возникать проблемы с доступом к файлам настроек или библиотек, если пути установки ПО содержат пробелы или символы, отличные от английского алфавита, поэтому рекомендуется устанавливать ПО таким образом, чтобы путь установки был максимально коротким и не содержал нестандартных символов.

К примеру, можно установить ПО в каталог C:\PG\.

../_images/18.png

В диалоге установки сервера Postgre необходимо указать и сохранить для дальнейшего использования следующие настройки:

  • Номер порта на котором будет запущен сервер

  • Имя учетной записи администратора сервера.

    Эта учетная запись необходима для начальной настройки БД.

  • Пароль для учетной записи администратора сервера.

Предупреждение

Учетная запись администратора БД не используется при работе ПО IngortechSCADA и могут не предоставляться в распоряжение администраторов объектов, однако эти данные необходимо сохранить т.к. учетная запись администратора используется для создания файла БД и учетных записей доступа к НЕЙ, используемых в ПО IngortechSCADA.

Настройка доступа и команд#

Расположение инструментов настройки

Для настройки БД и ее структуры в поставку ПО IngortechSCADA используются следующие инструменты:

  • Утилиты командной строки из комплекта инструментария ПО PostgreSQL Server.

    Все инструменты Postgre расположены в подкаталоге bin того каталога, в который было установлено ПО.

    В работе по настройке будут использоваться такие утилиты как psql.exe и pg_ctl.exe.

  • Готовые скрипты и командный файлы из комплекта ПО IngortechSCADA.

    Инструменты для настройки работы с PostgreSQL расположены в подкаталоге SQLExport\PG, основного каталога установки ПО.

    Для работы будут использоваться командные файлы и файлы со скриптами SQL.

Проблемы с отображение сообщений в командной строке

При использовании утилит командной строки PostgreSQL информация в консоль выводится на основном языке, установленном в текущей операционной системе. В случае, если используется русифицированная ОС, в котрой основным языком системы установлен русский язык, информация будет выводится на русском языке.

К сожалению, кодовая страница окна консоли создаваемой с помощью стандартной утилиты Window cmd.exe, может не совпадать с кодовой страницей графического интерфейса. Обычно в окне консоли используется кодовая страница CP866, а в графическом интерфейсе WIN1251 или UNICODE. Это различие может привести к тому, что при работе утилиты могут выводиться сообщения (в особенности сообщения об ошибках) в не читаемом виде.

Для решения этой проблемы можно использовать несколько различных механизмов.

  • Использовать альтернативные инструменты для управления окном консоли. К примеру, можно использовать консоль PowerShell.

  • С помощью переменной окружения LC_MESSAGES установить значение кодовой страницы так, чтобы их текст корректно декодировался при отображении в используемую кодовую страницу консоли.

  • Установить переменную окружения LC_MESSAGES в значение «English», что отключит локализацию выводимой информации и она будет корректно отображаться в любом окружении.

Информация

Настоящее руководство подразумевает, что переменная окружения LC_MESSAGES установлена в значение «English».

Для корректного отображения текста справки и сообщений необходимо настроить кодовую страницу в текущем окне консоли, для чего использовать команды выбора кодовой страницы:

Использование командных файлов для настройки БД

Для настройки БД в комплект ПО IngortechSCADA включены следующие командные файлы:

RunSQL.bat:

Основной файл вызова утилиты psql.exe с передачей ей необходимых параметров.

CreateDB.bat:

Общий файл создания структуры БД.

Перед началом настройки необходимо отредактировать содержимое файла RunSQL.bat, указав в нем корректные значения для подключения к используемому серверу БД Postgre.

set PSQL_PATH=D:\!Ready\Setup\Tools\Postgre\pgsql\psql.exe

set PG_SERVER=192.168.1.112
set PG_PORT=5000

set PG_USER_NAME=postgres
set PG_USER_PWD=111

Необходимо установить значения следующих параметров в файле:

PSQL_PATH:

Установить в путь к используемой утилите psql.exe.

PG_SERVER:

Установить в сетевой адрес машины, на которой расположен сервер БД.

В случае, если сервер расположен на этой же машине, можно использовать стандартную запись для локального адреса localhost или 127.0.0.1.

Предупреждение

Если сервер был установлен на другом компьютере, то для возможности подключения к нему может потребоваться настройка конфигурационных файлов сервера!

PG_USER_NAME:

Имя учетной записи администратора БД PostgreSQL.

PG_USER_PWD:

Пароль учетной записи администратора БД PostgreSQL.

Предупреждение

Необходимо учесть, что имя и пароль основной учетной записи администратора указывается в доступном исполняемом файле и может быть использовано не санкционировано, поэтому после выполнения работ по настройке сервера необходимо переместить настроенные командные файлы в недоступное место или изменить параметры учетной записи указанные в них.

Создание БД PostgreSQL#

Обеспечение доступа к серверу PostgreSQL по сети

В случае, если сервер PostgreSQL установлен и запускается на том же компьютере, с которого к нему будет осуществляться доступ никаких дополнительных настроек для обеспечения работоспособности производить не нужно.

Если сервер PostgreSQL установлен на другом компьютере (или виртуальной машине), то для доступа к нему с других адресов необходимо настроить разрешения доступа, описываемые в файле data\pg_hba.conf, каталога в который установлено ПО PostgreSQL. По умолчанию в этом файле находятся записи только для доступа с локального компьютера. Для разрешения доступа с других адресов необходимо создать соответствующее правило. К примеру, для разрешения доступа к серверу со всех адресов для сети 192.168.1.* необходимо добавить следующее правило:

host  all  all  192.168.1.0/24  scram-sha-256

После внесения любых изменений в настройки ПО PostgreSQL, необходимо перезапустить сервер с помощью утилиты Postgre pg_ctl.exe.

Информация

Для более точной настройки сети и правил доступа к серверу необходимо обратиться к руководству по настройке сервера PostgreSQL.

Настройка учетных записей IngortechSCADA

Для доступа к БД Postgre, с помощью командных файлов создания БД, автоматически создаются следующие учетные записи:

rts:

Учетная запись предназначенная для использования Сервером РТС и Утилитой экспорта.

Эта учетная запись имеет права на создание и модификацию таблиц и данных в них и предназначена для наполнения БД данными.

inspector:

Учетная запись для чтения данных, предназначенная для использования в утилитах просмотра, таких как АРМ Инспектора.

Эта учетная не имеет прав на создание и модификацию таблиц и предназначена только для отображения уже сохраненных в БД данных.

По умолчанию, учетные записи создаются со следующими параметрами:

  • Пользователь: rts - пароль rts

  • Пользователь: inspector - пароль inspector

В случае необходимости, пароли учетных записей могут быть изменены, для этого необходимо внести изменения в следующие файлы:

  • 1.admin-root_CreateDatabase.sql

  • CreateDB.bat

Предупреждение

Необходимо понимать, что пароли к учетным записям располагаются в командных файлах и файлах скриптов в открытом и доступном виде!

В случае необходимости, после настойки доступа к БД, необходимо перенести файлы настройки в недоступное место или удалить из них данные паролей.

Место расположение файла БД

Командные файлы настоящего руководства подразумевают, что место расположение БД сервера PostgreSQL настроено при установке ПО или при последующей эксплуатации.

При выполнении командных файлов БД будет создаваться в стандартном каталоге расположения БД сервера PostgreSQL.

В случае, если по каким-то причинам необходимо явно указать каталог расположения файла БД для ПО IngortechSCADA, необходимо внести изменения в скрипт создания БД.

Пример модификации для создания БД в каталоге C:\RTSPG:

DROP DATABASE IF EXISTS "FullRTS";
drop tablespace IF EXISTS rts_space;

create tablespace rts_space
    owner rts
    location 'C:\RTSPG';

CREATE DATABASE "FullRTS"
...
    TABLESPACE = rts_space

Для создания БД в каталоге отличном от стандартного необходимо создать tablespace, настроить его для использования нужного каталога и указать его при создании БД.

Более подробно процесс настройки расположения файлов БД можно прочитать в документации сервера PostgreSQL.

Создание новой БД

Создание БД для работы ПО IngortechSCADA и настройки ее структуры делится на 3 этапа:

  1. Создание новой БД для размещение данных.

  2. Создание и настройки учетных записей, которые будут использоваться для доступа к данным.

  3. Создание структуры БД.

Процесс полной настройки производится с помощью командного файла CreateDB.bat из комплекта ПО IngortechSCADA.

Архитектура системы используемая PostgreSQL устроена так, что выполнить все эти действия за одну операцию невозможно, поэтому командный файл выполняет операции раздельно. В случае, если необходимо выполнить какие-то отдельные операции можно отредактировать содержимое этого файла, отключив с помощью комментариев не нужные операции.

Если сервер PostgreSQL запущен, доступ к нему для используемой при настройке машины настроен, и в файле RunSQL.bat указаны правильные параметры для доступа к серверу, создание всей необходимой структуры можно произвести однократным выполнением файла CreateDB.bat.

>CreateDB.bat
-----------------------------------
Delete RTS database...
DROP DATABASE
REVOKE
REVOKE
ALTER DEFAULT PRIVILEGES
DROP ROLE
REVOKE
REVOKE
ALTER DEFAULT PRIVILEGES
DROP ROLE
-----------------------------------
Create RTS database...
SET
CREATE ROLE
CREATE ROLE
CREATE DATABASE
GRANT
GRANT
GRANT
-----------------------------------
Create RTS database structure...
GRANT
GRANT
GRANT
GRANT
ALTER DEFAULT PRIVILEGES
CREATE TABLE
CREATE TABLE
INSERT 0 1
CREATE TABLE
CREATE TABLE
...
CREATE INDEX
CREATE PROCEDURE

При исполнении будут произведены следующие операции:

  1. Полностью удалена текущая БД.

  2. Удалены все данные учетных записей, создаваемых для работы ПО IngortechSCADA.

  3. Создана новая БД со стандартным именем.

  4. Созданы учетные записи для доступа к БД.

  5. Создана структура Бд в формате, соответствующем требованиям ПО IngortechSCADA.

Предупреждение

При выполнении командного файла CreateDB.bat текущая БД будет полностью и безвозвратно удалена!

Этот файл предназначен для первоначального создания БД и решения проблем со связью и совместимостью с различными версиями Postgre, которые могут возникнуть и не предназначен для исполнения на текущей рабочей БД!

В случае, если необходимо произвести модификацию структуры БД без ее удаления необходимо использовать специальный командные файлы для миграции, которые могут входить в поставку IngortechSCADA.

Настройка доступа к PostgreSQL в ПО IngortechSCADA#

Для доступа к БД Postgre из ПО IngortechSCADA необходимо создать раздельные псевдонимы доступа для обоих используемых учетных записей: rts и inspector.

Доступ к БД Postgre осуществляется с создания и настройки элементов доступа в стандартном диалоге создания источников данных ODBC.

Для настройки необходимо:

  • Запустить системную утилиту для конфигурации ODBC.

    ../_images/22.png
  • В диалоге списка имен ODBC нажать кнопку Добавить и в появившемся окне выбрать драйвер PostgreSQL.

    ../_images/32.png

    Если на окне выбора драйвера его нет, это значит что не установлен драйвер Postgre ODBC Driver. Установите драйвера ODBC и повторите операцию.

  • Настроить драйвер ODBC для доступа к соответствущей учетной записи.

    ../_images/42.png

    Для каждой учетной записи необходимо указать:

    Параметры связи с сервером:

    Адрес и порт сервера Postgre, выбранные при установке ПО сервера.

    Используемую БД:

    В этом поле необходимо установить значение в имя БД созданной для использования в ПО IngortechSCADA. По умолчанию, БД создается с именем FullRTS.

    Учетную запись:

    Имя и пароль учетной записи.

  • На окне настройки нажать кнопку Test и убедиться что тест соединения с базой данных прошел успешно.

    ../_images/52.png
  • После успешного создания доступа к БД имя этой точки автоматически появится в списке доступных псевдонимов.

    Для проверки правильности настройки, из каталога установки ПО IngortechSCADA, необходимо запустить утилиту dbexplor.exe и убедиться что созданные точки доступа отображаются в общем списке.

    ../_images/62.png

    Для проверки работоспособности созданной связи с сервером необходимо нажать кнопку «+» и, в окне запроса ввести имя и пароль соответствующей учетной записи. Если все было настроено правильно, в утилите произойдет подключение к серверу и отобразится список существующих в БД таблиц с данными.

    Необходимо проверить корректную работу для обоих учетных записей.

Настройка сервера РТС#

Запустить сервер РТС, в диалоге его настроек вызвать диалог настройки доступа к данным:

Данные ‣ Драйвер баз данных ‣ 1

В полях диалога произвести настройки запросов в БД в соответствии с той схемой использования, которая планируется в ПО IngortechSCADA .

БД Postgre можно использовать в следующих схемах использования:

  • Хранение данных переменных в виде раздельных таблиц.

    В этом случае структура БД использоваться не будет и Сервер РТС будет создавать таблицы для данных переменных автоматически при работе.

  • Хранения данных в виде раздельных таблиц и хранение структуры конфигурации.

    В этом случае данные для всех переменных сохраняются так же как и в предыдущем варианте и, дополнительно, в БД будут сохраняться данные конфигураций сервера с помощью утилиты Экспорта.

    В этом варианте использования используется вся структура конфигурации созданная при создании БД с помощью командных файлов, за исключением таблицы vals, которая использоваться не будет.

  • Хранение конфигурации и данных переменных в единой таблице, связанной с конфигурацией.

    В этом случае данные переменных сохраняются в таблицу vals созданной БД и каждое сохраненное значение связано с текущей конфигурацией, которая была активна в момент получения значения.

    В этом варианте необходимо специально настроить утилиту Экспорта и Сервер РТС таким образом, чтобы утилита экспорта экспортировала принятую сервером конфигурацию и сигнализировала ему об успешном ее сохранении в БД, только после чего данные для этой конфигурации могут быть корректно сохранены в БД.

    Подробнее настройка работы Сервера РТС и Утилиты экспорта описана в документации этих утилит.

Пример настройки для хранения данных в виде раздельных таблиц

Диалог настройки доступа к БД Сервера РТС:

../_images/72.png

Необходимо указать:

  • Выбрать имя для доступа к базе данных.

  • Указать имя и пароль пользователя.

  • На закладке Создание таблицы ввести текст SQL запроса для создания таблиц переменных.

    CREATE TABLE if not exists "VAL_%s" (
        measure timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
        val FLOAT NOT NULL,
        rawval FLOAT,
        state INTEGER NOT NULL,
        rawstate INTEGER,
        mcode bigserial, PRIMARY KEY (measure)
    );
    
    CREATE UNIQUE INDEX if not exists "IDX_%s" ON "VAL_%s" (measure ASC);
    
  • На закладке Добавление значения ввести текст SQL запроса для вставки нового значения в таблицу.

    INSERT INTO "VAL_%s" (measure,val,state,rawval,rawstate,mcode) VALUES (%m,%l,%t,%L,%T,%c)
    

Проверка работы

  • Запустить Сервера РТС с измененными настройками.

  • Убедиться что сервер запустился без ошибок доступа к базе данных.

  • Загрузить на сервер любую конфигурацию.

  • Каким-либо способом, например с помощью утилиты Эмуляции данных создать поток значений.

    ../_images/82.png
  • Убедиться, что сервер успешно сохраняет полученные данные в базу.

    ../_images/92.png

    Об успешном сохранении данных в БД будет свидетельствовать число сохраненных данных и нулевое значение количества ошибок.