Использование PostgreSQL
Содержание
Использование PostgreSQL#
Установка ПО#
Необходимо убедиться, что установлены пакеты доступа к БД для IngortechSCADA:
BDE_v5202
Для использования БД PostgreSQL
необходимо установить следующее ПО:
Базовый комплект https://www.postgresql.org/download.
ODBC драйвер PostgreSQL https://odbc.postgresql.org.
Данная документация описана на основе дистрибутива PostgreSQL версии 15.1_64bit
и PostgreSQL ODBC драйвера версии 13.02.0
.
При установке ПО использовались настройки по умолчанию, при настройке доступа к серверу PostgreSQL использовались имя и пароль postgres
для суперпользователя.

Если параметр Настроить переменные среды был установлен, то установочный файл PostgreSQL добавит каталог установки к переменной PATH.
Настройка доступа и команд#
Указание пароля
Для того чтобы не вводить каждый раз пароль пользователя при работе с утилитами PostgreSQL можно использовать переменную окружения PGPASSWORD.
Для этого, в используемом окне консоли, в ОС Windows можно использовать команду:
set PGPASSWORD=postgres
в ОС Unix, команду:
export PGPASSWORD=postgres
Указание кодовой страницы
К сожалению, информация, которую выводят утилиты PostgreSQL выводится на русском языке, в кодировке Windows-1251.
Для корректного отображения текста справки и сообщений необходимо настроить кодовую страницу в текущем окне консоли, для чего использовать команды выбора кодовой страницы:
chcp 1251
или
mode con cp select=1251
При работе с файловыми менеджерами смена кодировки, как правило, не работают, поэтому для выполнения команд необходимо написать командный файл для выполнения нужных утилит PostgreSQL.
Командный файл
Для работы с утилитой psql.exe
можно создать командный файл с именем pg.bat
, в котором указать нужную кодовую страницу и пользователя:
@echo off
chcp 1251
PATH C:\Program Files\PostgreSQL\15\bin;%PATH%
if not exist "%APPDATA%\postgresql" md "%APPDATA%\postgresql"
set PGPASSWORD=postgres
psql.exe -h localhost -U "postgres" -d postgres -p 5432 %1 %2 %3 %4 %5 %6
Если путь к утилите psql.exe не установлен, то в этом файле необходимо указать полный путь.
После этого, можно использовать команду pg.bat
для выполнения команд psql.exe
из любого каталога.
Создание БД PostgreSQL#
Для работы с IngortechSCADA в системе PostgreSQL необходимо создать базу данных и пользователя.
Создаем каталог
C:\RTSPG
, в котором будет размещаться база данных PostgreSQL.Для настройки базы данных PostgreSQL создаем файл
commands.psql
с командами по созданию и инциализации.DROP DATABASE IF EXISTS rts_database; drop tablespace IF EXISTS rts_space; drop role IF EXISTS rts; CREATE ROLE rts LOGIN PASSWORD 'rts' NOINHERIT CREATEDB; create tablespace rts_space owner rts location 'C:\RTSPG'; CREATE DATABASE rts_database WITH OWNER = rts ENCODING = 'WIN1251' LC_COLLATE = 'Russian_Russia.1251' LC_CTYPE = 'Russian_Russia.1251' TABLESPACE = rts_space CONNECTION LIMIT = -1 IS_TEMPLATE = False template = template0; \c rts_database CREATE SCHEMA rts AUTHORIZATION rts;
- Этот файл создает:
место для базы, указывающее на каталог
C:\RTSPG
;базу данных с именем
rts_database
в этом каталоге;пользователя для работы с именем и паролем
rts
.
Предупреждение
При выполнении этот файл удаляет и заново создает базу данных, поэтому если его применить с существующей базой данных, то все данные будут потеряны!
Запустить файл команд с помощью созданного командного файла.
Убедиться что все команды выполнены успешно, в соответствии с примером приведенным ниже.
C:\RTSPG>pg --file=commands.psql Текущая кодовая страница: 1251 DROP DATABASE DROP TABLESPACE DROP ROLE CREATE ROLE CREATE TABLESPACE CREATE DATABASE Вы подключены к базе данных "rts_database" как пользователь "postgres". CREATE SCHEMA
Настройка доступа к PostgreSQL#
Запустить системную утилиту для конфигурации ODBC.
В диалоге списка имен ODBC нажать кнопку Добавить и в появившемся окне выбрать драйвер
PostgreSQL
.Если на окне выбора драйвера его нет, это значит что не установлен драйвер ODBC для PostgreSQL. Установите драйвера ODBC и повторите операцию.
Настроить драйвер ODBC в соответствии с иллюстрацией.
В качестве имени пользователя и его пароля указать значение «rts».
На окне настройки нажать кнопку Test и убедиться что тест соединения с базой данных прошел успешно.
Из каталога IngortechSCADA (по умолчанию каталог
C:\RTS
), запустить утилитуdbexplor.exe
. Убедиться, что имя для созданной базы данных PostgreSQL есть в списке.Нажать кнопку «+» и, в окне запроса введя текст rts для имени и пароля пользователя, убедиться, что имя успешно открывается.
Закрыть утилиту
dbexplor.exe
Настройка сервера РТС#
Настройки
Запустить сервер РТС, в диалоге его настроек вызвать диалог настройки доступа к данным:
Появившемся диалоге, произвести настройки согласно иллюстрации.

Необходимо указать:
Выбрать имя для доступа к базе данных.
Указать имя и пароль пользователя.
На закладке Создание таблицы ввести текст 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)
Проверка работы
Запустить Сервера РТС с измененными настройками.
Убедиться что сервер запустился без ошибок доступа к базе данных.
Загрузить на сервер любой конфигурацию.
С помощью утилиты
rtVarEmu.exe
начать эмуляцию получения новых измерений.Убедиться, что сервер успешно сохраняет полученные данные в базу.
О чем свидетельствует число сохраненных данных и нулевое значение количества ошибок.
После тестирования, применить