Экспорт архивов в SQL-сервер

<< Click to Display Table of Contents >>

Navigation:  Проект > Архивы > Экспорт архивов >

Экспорт архивов в SQL-сервер

Экспорт архива в режиме исполнения это происходит в отдельном потоке и не мешает работе системы.

Рассмотрим экспорт архивов на примере использования БД-коннектора MS SQL.

1. Добавьте в компьютер БД-коннектор MS SQL.

Proekt_Dokumenty_objektov_Arhivy_vstavka_BD_konnekt

2. Если планируем экспортировать данные на верхний уровень, то на закладке "Использование" БД-коннектора необходимо поставить галочку "использовать для экспорта архивов".

Proekt_Dokumenty_objektov_Arhivy_zakl_ispolz

3. На странице свойств "Параметры" БД-коннектора задается:

сервер(IP-адрес компьютера в сети, на котором стоит база данных),

имя базы данных,

подключение к БД (Аутентификация SQL сервера),

имя пользователя (в БД должен быть создан этот пользователь и обладать правами администратора) и пароль.

Proekt_Dokumenty_objektov_Arhivy_zakl_parametri

Примечание. В поле "Сервер" можно указать несколько ip-адресов (также как в сетевом взаимодействии). Разделитель "," - отделяет ip, которые участвуют в переборе. Разделитель ";" - отделяет ip, которые не участвуют в переборе. В режиме разработки используется только первый ip. Если произошла ошибка подключения, то, при следующей попытке подключения будет использоваться следующий ip, кроме отделенных ";". В БД MS SQL передаются только значения. С сообщениями эта БД в MasterSCADA не работает.

4. Для конкретной переменной на закладке "Архив" указать экспорт в данный БД-коннектор.

Proekt.Arhivy.ehksport_arhivov_v_sql_server

В режиме исполнения данные будут попадать в БД согласно периоду опроса БД-коннектора.

При экспортировании архива данных в БД создаются следующие таблицы: Properties, Items,Data.

Краткое описание таблиц:

Properties – Таблица для хранения настроек БД. На данный момент она всегда пустая. Если эта таблица отсутствует в БД MasterSCADA в момент старта RT, MasterSCADA выполняет пересоздание всех таблиц и процедур в БД.

ID - ID свойства

Name - название свойства

Value – значение свойства

Items - таблица описания переменных MasterSCADA, значения которых хранятся в данной БД. Первичный ключ данной таблицы - < ID>.

ID (int) - идентификатор переменной в данной БД. Присваивается при первом запуске RT проекта с данной переменной.

Name (varchar(2000)) - имя параметра (можно переопределить в скаде на закладке "Архив" в поле "Имя в БД"). По имени параметра происходит поиск ID параметра при старте RT.

VarType (int) - тип параметра (стандартное перечисление VARTYPE, используемое в COM)

IntervalID (int) - ID шкалы параметра. В будущем появятся таблицы с описанием шкал.

LastValueTime (datetime) – метка времени последней записи значения по параметру. Обновляется при записи новых значений.

LastValueLocalTime (datetime) - время выполнения записи последнего значения по параметру. Обновляется при записи новых значений.

Data - таблица в которой хранится архив значений по всем переменным MasterSCADA из таблицы MasterSCADADataItems.

ItemID - уникальный идентификатор переменной в данной БД.

Time (datetime) - временная метка значения

LocalTime (datetime) – время, когда выполнилась запись значения в БД

Value (float) - значение (для следующих типов: вещественные, целые, логические)

Quality (int) - OPC признак качества

Flags (int) - флаги (0x1 - признак последнего значения RT сессии)

Описание хранимых процедур:

create procedure AddValue

   (@ItemID int, @Time datetime, @LocalTime datetime,

    @Value float, @Quality int, @Flags int)

– запись нового значение в таблицу Data и обновление полей LastValueTime и LastValueLocalTime в таблице Items

create procedure AddStringValue

   (@ItemID int, @Time datetime, @LocalTime datetime,

    @Value varchar(2000), @Quality int, @Flags int)

Запись строковых данных. Реализация по умолчанию ничего не делает.

create procedure AddDateValue

   (@ItemID int,

    @Time datetime,

    @LocalTime datetime,

    @Value datetime,

    @Quality int,

    @Flags int)

Запись данных типа Время. Реализация по умолчанию ничего не делает.

create procedure GetLastItemValue

   (@ItemID int,

    @Time datetime output,

    @LocalTime datetime output)

– получение полей LastValueTime и LastValueLocalTime из таблицы Items. Вызывается при старте RT для определение начального времени для запроса к архиву.

create procedure UpdateItem

   (@ID int output,

    @Name varchar(2000),

    @VarType int,

    @IntervalID int)

– находит в таблице Items запись о переменной с именем @Name и возвращает ее ID. Если такой записи нет, создает новый идентификатор @ID и создает запись в Items.

/* @Stage

0 - Before running scripts

1 - After running scripts

2 - Before updating parameters

3 - After updating parameters

4 - Before update iteration

5 - After update iteration

*/

create procedure OnMasterSCADAExport

   (@ProjectName varchar(1000),

    @Stage int,

    @Data int,

    @Result int output)

– вызывается в определенные моменты времени (определяется параметром @Stage). Реализация по умолчанию ничего не делает.

После первого запуска содержание процедур можно заменить. При следующих запусках они пересоздаваться MasterSCADA не будут.