УМ-31, УМ-30 RTU, УМ-40 RTU. Чтение архивных и текущих данных. OPC сервер
Предварительные требования
Обычно, УМ-31 RTU, УМ-40 RTU, УМ-30 GPRS, подключается к компьютеру через последовательный интерфейс RS-232 и передает данные, используя собственный протокол обмена.
Вы также можете подключить этот прибор через преобразователь RS232 в Ethernet. В этом случае к прибору можно подключаться удаленно, по сети.
Установка
Если подключение осуществляется через последовательный порт RS-232 (COM порт), то необходимо установить Advanced Serial Data Logger (первая ссылка сверху).
Если подключение к прибору осуществляется по сети или через Интернет, то необходимо установить Advanced TCP/IP Data Logger (первая ссылка сверху).
В дополнение к основной программе необходимо установить модуль "Binary parsers". Этот модуль обеспечивает взаимодействие логгера и прибора УМ-31 RTU, УМ-40 RTU, УМ-30 GPRS: отправляет запросы по расписанию, обрабатывает полученные ответы, подготавливает данные для экспорта.
Настройка связи
1. Настройте подключение к прибору (параметры COM порта или TCP соединения) (рис. 1 и 2).
Рис. 1.1 Параметры COM порта
Рис. 1.2 Параметры TCP порта
2. Выберите модуль-парсер для УМ-31 RTU, УМ-40 RTU, УМ-30 GPRS в настройках. Если прибор подключен к компьютеру через RS-232, то вы должны дополнительно выбрать такой же модуль запроса данных (на рисунке не показан) (рис. 3).
Вы должны задать сетевой адрес прибора. Этот адрес используется при отправке запросов в прибор. Также, вы можете задать дополнительное описание прибора. Эти значения также можно будет использовать при экспорте данных и записывать в базу (рис. 1).
Рис. 2.1 Настройка чтения данных
В настройках модуля парсера укажите расписание чтения данных (рис. 2, 3). Вы можете настроить расписание для каждого типа данных (текущие, часовой, суточный или накопительный архив).
Рис. 2.2 УМ-31 RTU, УМ-40 RTU, УМ-30 GPRS. Текущие данные
Опрос архивных данных начинается с момента включения опроса. Если необходимо считать данные из имеющегося архива, то нужно нажать кнопку "Загрузить архивные данные начиная с даты" и задать начальную дату. При чтении архивных данных программа запоминает дату и время последнего считанного значения и возобновляет чтение с сохраненной даты. Вы можете повторно считать архив, задав новую дату начала чтения данных. Обратите внимание, что программа не проверяет наличие архивных данных в базе данных, что может привести к появлению дубликатов.
Рис. 2.3 УМ-31 RTU, УМ-40 RTU, УМ-30 GPRS. Архивные данные
Запись данных в базу данных
Для записи данных можно воспользоваться модулем экспорта данных "ODBC Database". Этот модуль может записывать данные в любую базу данных, для которой есть драйвер ODBC.
В одну таблицу базу данных можно собирать данные от нескольких устройств, поскольку каждая строчка данных будет содержать уникальный идентификатор прибора и номер порта.
1. Вручную создайте таблицу с нужной структурой в вашей базе данных. Рекомендуемые скрипты для создания таблиц приведены ниже.
/**** split line *****/SET ANSI_NULLS ON
/**** split line *****/GO
/**** split line *****/SET QUOTED_IDENTIFIER ON
/**** split line *****/GO
CREATE TABLE dbo.DATA (
ID decimal(10,0) IDENTITY(1,1) NOT NULL,
TIMESTAMP_UTC datetime NULL,
TIMESTAMP datetime NULL,
DATE_TIME_STAMP datetime NULL,
DATA_SOURCE_NAME nvarchar(32) NULL,
DEVICE_ID nvarchar(16) NULL,
DEVICE_NAME nvarchar(32) NULL,
DEVICE_DESC nvarchar(32) NULL,
DATA_TYPE int NULL,
SLAVE_ID nvarchar(6) DEFAULT NULL,
SLAVE_ADDRESS nvarchar(16) DEFAULT NULL,
SLAVE_TYPE int NULL,
SLAVE_INTERFACE int NULL,
SLAVE_SERIALNO nvarchar(16) DEFAULT NULL,
A_POS0 real NULL,
A_POS1 real NULL,
A_POS2 real NULL,
A_POS3 real NULL,
R_POS0 real NULL,
R_POS1 real NULL,
R_POS2 real NULL,
R_POS3 real NULL,
A_NEG0 real NULL,
A_NEG1 real NULL,
A_NEG2 real NULL,
A_NEG3 real NULL,
R_NEG0 real NULL,
R_NEG1 real NULL,
R_NEG2 real NULL,
R_NEG3 real NULL,
U real NULL,
I real NULL,
CF real NULL,
P real NULL,
Q real NULL,
S real NULL,
F real NULL,
TD real NULL,
EVENT_ID int NULL
CONSTRAINT [PK_UN_DATA] PRIMARY KEY
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
/**** split line *****/GO
CREATE INDEX [DATA_DEVICE_ID_IDX] ON DATA ([DEVICE_ID]);
/**** split line *****/GO
CREATE INDEX [DATA_TIMESTAMP_IDX] ON DATA ([TIMESTAMP_UTC]);
/**** split line *****/GO
2. Откройте настройки модуля экспорта данных, включите запись в базу данных, перейдите к закладке "Соединение" и создайте подключение к вашей базе, кликнув на кнопке "Настроить" (рис. 1-3).
Рис. 3.1 Выбор модуля экспорта данных
Рис. 3.2 Включение записи в базу данных
Рис. 3.3 Настройка подключения к базе
3. На закладке "Связывание" импортируйте из базы структуру вашей таблицы и "привяжите" переменные парсера к соответствующим колонкам. Удалите из списка все колонки, для которых нет привязки и в скрипте создания таблицы задано значение по умолчанию (рис. 4 и 5).
Рис. 3.4 Привязка переменных и колонок таблицы
Рис. 3.5 Импорт структуры таблицы
Краткое описание колонок
Таблица в базе данных создана для хранения максимально возможного набора данных. Значения в некоторых колонках могут отсутствовать, поскольку это зависит от установленных счетчиков, настроек УСПД и типа данных.
ID - уникальный идентификатор записи;
DATE_TIME_STAMP - метка времени, когда логгер считал данные;
DATA_SOURCE_NAME - идентификатор источника данных (номер COM порта или IP адрес);
DEVICE_ID - сетевой адрес прибора, заданный в настройках программы;
DEVICE_NAME - зарезервировано;
DEVICE_DESC - описание прибора, заданное в настройках программы;
TIMESTAMP - метка времени данных из прибора в локальном часовом поясе;
TIMESTAMP_UTC - метка времени данных из прибора в часовом поясе UTC (рассчитывается программой);
SERIAL_NO - серийный номер прибора (считывается из прибора);
DATA_TYPE - тип данных (2 - месячный, 4 - текущие данные);
SLAVE_ID - уникальный номер подключенного электросчетчика в базе данных УСПД;
SLAVE_ADDRESS - сетевой адрес электросчетчика на шине;
SLAVE_TYPE - тип электросчетчика (см. документацию на УСПД);
SLAVE_INTERFACE - тип интерфейса (шины);
SLAVE_SERIALNO - серийный номер электросчетчика;
A_POS0 - Прямая суммарная активная энергия от сброса;
A_POS1,
A_POS2,
A_POS3 - Прямая активная энергия от сброса по тарифу №1-3;
R_POS0 - Обратная суммарная активная энергия от сброса;
R_POS1,
R_POS2,
R_POS3 - Прямая реактивная энергия от сброса по тарифу №1-3;
A_NEG0 - Обратная суммарная активная энергия от сброса;
A_NEG1,
A_NEG2,
A_NEG3 - Обратная активная энергия от сброса по тарифу №1-3;
R_NEG0 - Обратная суммарная реактивная энергия от сброса;
R_NEG1,
R_NEG2,
R_NEG3 - Обратная реактивная энергия от сброса по тарифу №1-3;
Только текущие данные
U - напряжение;
I - ток;
CF - Значение косинуса F;
P - Мгновенная активная мощность;
Q - Мгновенная реактивная мощность;
S - Мгновенная полная мощность;
F - частота сети;
TD -расхождение времени часов счетчика и УСПД;
EVENT_ID - код события (неисправности).
Запись данных в текстовый лог файл
Наша программа может параллельно создавать текстовые лог файлы, в которые будет записывать все принятые и обработанные данные. Лог файл можно рассматривать как резервную копию данных, или использовать их для последующего анализа. Программа может автоматически создавать новый лог файл ежедневно, еженедельно или ежемесячно (рис. 1 и 2).
Рис. 4.1 Настройка вида данных для УМ-31 RTU, УМ-40 RTU, УМ-30 GPRS
Программа имеет встроенный OPC DA2, DA3 или OPC UA сервер, через который всегда можно получить и посмотреть последнее считанное текущее или архивное значение. Рекомендуемые настройки сервера OPC представлены на рис. 1 и 2.
Обратите внимание, что OPC сервер не позволяет получать архивные данные. Он хранит только последнее полученное значение, в том числе и для архивных данных.
Рис. 5.2 УМ-31 RTU, УМ-40 RTU, УМ-30 GPRS. Пример принятых данных
Для удобства, можно поместить текущие и архивные данные в разные группы тегов. Для этого можно указать правило группировки данные в OPC сервере. В данном примере они группируются по серийному номеру и типу данных.
Рис. 5.3 Группировка данных по типу
Отчеты
Наша программа предназначена для чтения данных, и к сожалению, не имеет программы построения отчетов.
За дополнительную плату мы готовы:
Разработать программу построения отчетов под ваши нужды.
Адаптировать программу под вашу базу данных. Можно реализовать запись практически в любую базу данных.