Драйвер импорта из БД
Обзор
Драйвер импорта из БД предназначен для чтения текущих данных из сторонней базы данных, а также для записи в стороннюю БД с помощью команд управления. Поддерживаются СУБД Microsoft SQL Server, Oracle, PostgreSQL и MySQL. Драйвер входит в дистрибутив Rapid SCADA и его отдельная установка не требуется.
Конфигурирование
Создайте новую линию связи и устройство типа DB Import с помощью мастеров, которые вызываются кнопками и
. Линия связи отвечает за соединение с одной БД. Тип канала связи линии - Не задан. На следующем рисунке показан узел линии связи в проводнике проекта.

Откройте свойства созданного устройства. Настройки устройства описывают получение значений тегов и отправку команд посредством SQL-запросов.

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


В поле Теги необходимо указать коды тегов устройства. Каждая строка содержит код одного тега. В поле SQL содержится текст запроса на языке SQL. Если галочка Результат одной строкой установлена (Запрос 1), запрос должен возвращать одну строку, каждое поле которой содержит значение тега. Если галочка снята (Запрос 2), запрос должен возвращать набор строк, каждая из которых содержит код и значение тега. Во втором случае результат запроса должен содержать столбцы code
и val
.

Поддержка команд позволяет с помощью драйвера записывать информацию в БД по команде, отправленной оператором или автоматически. Код команды должен совпадать с кодом тега канала, через который отправляется команда. В тексте SQL-запроса значение и данные команды доступны через параметры @cmdVal
и @cmdData
.
Когда свойства устройства настроены, создайте каналы в базе конфигурации с помощью мастера, вызываемого кнопкой .
Если настройка выполнена корректно, то на странице данных устройства можно будет увидеть полученные значения.

SQL-скрипты
Примеры скриптов для PostgreSQL:
CREATE SCHEMA IF NOT EXISTS drv_db_import
AUTHORIZATION postgres;
CREATE TABLE IF NOT EXISTS drv_db_import.table1
(
id integer NOT NULL,
val1 double precision,
val2 character varying,
val3 timestamp with time zone,
CONSTRAINT table1_pkey PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS drv_db_import.table2
(
id integer NOT NULL,
code character varying,
val double precision,
CONSTRAINT table2_pkey PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS drv_db_import.table_out
(
create_time time with time zone DEFAULT now(),
cmd_val double precision,
cmd_data bytea
);
-- Query 1
SELECT val1, val2, val3 FROM drv_db_import.table1 LIMIT 1
-- Query 2
SELECT code, val FROM drv_db_import.table2
-- Command
INSERT INTO drv_db_import.table_out (cmd_val, cmd_data) VALUES (@cmdVal, @cmdData)