<< Click to Display Table of Contents >> Navigation: Проект > Архивы > Экспорт архивов > Экспорт архивов в SQL-сервер |
Экспорт архива в режиме исполнения это происходит в отдельном потоке и не мешает работе системы.
Рассмотрим экспорт архивов на примере использования БД-коннектора MS SQL.
1. Добавьте в компьютер БД-коннектор MS SQL.
2. Если планируем экспортировать данные на верхний уровень, то на закладке "Использование" БД-коннектора необходимо поставить галочку "использовать для экспорта архивов".
3. На странице свойств "Параметры" БД-коннектора задается:
•сервер(IP-адрес компьютера в сети, на котором стоит база данных),
•имя базы данных,
•подключение к БД (Аутентификация SQL сервера),
•имя пользователя (в БД должен быть создан этот пользователь и обладать правами администратора) и пароль.
Примечание. В поле "Сервер" можно указать несколько ip-адресов (также как в сетевом взаимодействии). Разделитель "," - отделяет ip, которые участвуют в переборе. Разделитель ";" - отделяет ip, которые не участвуют в переборе. В режиме разработки используется только первый ip. Если произошла ошибка подключения, то, при следующей попытке подключения будет использоваться следующий ip, кроме отделенных ";". В БД MS SQL передаются только значения. С сообщениями эта БД в MasterSCADA не работает.
4. Для конкретной переменной на закладке "Архив" указать экспорт в данный БД-коннектор.
В режиме исполнения данные будут попадать в БД согласно периоду опроса БД-коннектора.
При экспортировании архива данных в БД создаются следующие таблицы: 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 не будут.