Время прибора и системное время

Мы ввели в эксплуатацию прибор, у него стоит зимнее время. Сейчас время летнее, т.е. часы прибора отстают от часов сервера приложений.
До сегодняшнего дня все работало нормально - ЛЭРС не интересовался часами прибора и опрашивал его по своему времени.
Если я хотел узнать данные за период, скажем со 02-апрель-2010 07:00 по 02-апрель-2010 08:00, я в таблице dbo.PrimaryDataHour смотрел строчку
…WHERE DataDate = 2010-04-02 07:00:00

Сегодня ЛЭРС не записал архивные данные за период с 02-апрель-2010 08:00 до 02-апрель-2010 09:00
В
В протоколе последнего опроса, который начался 02-апреля-2010 в 09:00:53 (и который я к сожалению, не успел сохранить) были 2 записи вида:
чтение данных за интервал 02.04.10 07:00:00 - 02.04.10 08:00:00
интервал сжат из-за того, что часы прибора отстают от системных на 1 час. Время последней записи будет: 2010-04-02 07:00:00

Хотя, по идее, ЛЭРС должен был снять данные уже за интервал 02.04.10 08:00:00 - 02.04.10 09:00:00. После опроса я посмотрел , в таблице нет строчки за 08:00
Была строчка за 07:00:
1 02.04.2010 7:00:00 208,55 10,903 7,304 14,056 1 0 1626,139 5 0 NULL

А вот последний протокол опроса который я сохранил:

02.04.2010 10:39 Стр 1 из 1

Время Описание
Информационное сообщение 02.04.2010 10:00 Обрабатывается задание: сеть между счетчиком и MOX-ой
Информационное сообщение 02.04.2010 10:00 Используется порт опроса: виртуальный COM4
Информационное сообщение 02.04.2010 10:00 Установка соединения с удаленной стороной
Информационное сообщение 02.04.2010 10:00 Устанавливаем прямое подключение (таймаут на установку соединения: 20сек.)
Информационное сообщение 02.04.2010 10:00 Соединение установлено на скорости 4800
Информационное сообщение 02.04.2010 10:00 ---------- СПТ-961М, #987654321, сетевой адрес: 0 ----------
Информационное сообщение 02.04.2010 10:00 Запрос даты и времени устройства
Информационное сообщение 02.04.2010 10:00 СПТ-961M: Номер прибора: 03
Информационное сообщение 02.04.2010 10:00 СПТ-961M: Идентификатор прибора: 961.M2410010
Информационное сообщение 02.04.2010 10:00 СПТ-961M: Дата ввода в эксплуатацию: 2010-3-25 9:35:0
Информационное сообщение 02.04.2010 10:00 СПТ-961M: Единицы измерения: ГКал, кгс/см2, кгс/м2
Информационное сообщение 02.04.2010 10:00 СПТ-961M: Настроены трубопроводы: 1, 2, 3, 4
Информационное сообщение 02.04.2010 10:00 СПТ-961M: Обслуживаемые магистрали: отсутствуют
Информационное сообщение 02.04.2010 10:00 Текущие дата и время устройства: 2010-04-02 09:01:22
Информационное сообщение 02.04.2010 10:00 Часы устройства отстают от системных на 00:59:18 (в формате дд.чч:мм:сс)
Информационное сообщение 02.04.2010 10:00 Чтение СУТОЧНОГО архива
Информационное сообщение 02.04.2010 10:00 Чтение заголовка архива
Информационное сообщение 02.04.2010 10:00 cтруктура архива: | tи(с) | Тхв(с) | Рхв(с) | Рб(с) | Д1с(с) | Д2с(с) | to(с)т1 | dP(с)т1 | Т(с)т1 | P(с)т1 | Д1(с)т1 | Д2(с)т1 | M(с)т1 | W(с)т1 | Vo(с)т1 | to(с)т2 | dP(с)т2 | Т(с)т2 | P(с)т2 | Д1(с)т2 | Д2(с)т2 | M(с)т2 | W(с)т2 | Vo(с)т2 | to(с)т3 | Qo(с)т3 | Т(с)т3 | P(с)т3 | Д1(с)т3 | Д2(с)т3 | M(с)т3 | W(с)т3 | Vo(с)т3 | to(с)т4 | dP(с)т4 | Т(с)т4 | P(с)т4 | Д1(с)т4 | Д2(с)т4 | M(с)т4 | W(с)т4 | Vo(с)т4|
Информационное сообщение 02.04.2010 10:00 Пропускаем чтение архивных данных - данные не запрашивались
Информационное сообщение 02.04.2010 10:00 Чтение суточного архива завершено
Информационное сообщение 02.04.2010 10:00 Чтение ЧАСОВОГО архива
Информационное сообщение 02.04.2010 10:00 Чтение заголовка архива
Информационное сообщение 02.04.2010 10:00 cтруктура архива: | tи(ч) | Тхв(ч) | Рхв(ч) | Рб(ч) | Д1с(ч) | Д2с(ч) | to(ч)т1 | dP(ч)т1 | Т(ч)т1 | P(ч)т1 | Д1(ч)т1 | Д2(ч)т1 | M(ч)т1 | W(ч)т1 | Vo(ч)т1 | to(ч)т2 | dP(ч)т2 | Т(ч)т2 | P(ч)т2 | Д1(ч)т2 | Д2(ч)т2 | M(ч)т2 | W(ч)т2 | Vo(ч)т2 | to(ч)т3 | Qo(ч)т3 | Т(ч)т3 | P(ч)т3 | Д1(ч)т3 | Д2(ч)т3 | M(ч)т3 | W(ч)т3 | Vo(ч)т3 | to(ч)т4 | dP(ч)т4 | Т(ч)т4 | P(ч)т4 | Д1(ч)т4 | Д2(ч)т4 | M(ч)т4 | W(ч)т4 | Vo(ч)т4|
Информационное сообщение 02.04.2010 10:00 Чтение данных за интервал 2010-04-02 08:00:00 - 2010-04-02 08:00:00
Информационное сообщение 02.04.2010 10:00 Считаны данные за 2010-04-02 08:00:00 по ПАР 13 (теплосчетчик СПТ961М на ДВП)
Информационное сообщение 02.04.2010 10:00 Считаны данные за 2010-04-02 08:00:00 по ПАР 40 (теплосчетчик СПТ961М на ДВП)
Информационное сообщение 02.04.2010 10:00 Считаны данные за 2010-04-02 08:00:00 по РАСХОД ВОЗДУХА (теплосчетчик СПТ961М на ДВП)
Информационное сообщение 02.04.2010 10:00 Считаны данные за 2010-04-02 08:00:00 по ХВС (теплосчетчик СПТ961М на ДВП)
Информационное сообщение 02.04.2010 10:00 Чтение данных за интервал 2010-04-02 09:00:00 - 2010-04-02 09:00:00
Предупреждение 02.04.2010 10:00 пропускаем съем данных в интервале 2010-04-02 09:00:00 - 2010-04-02 09:00:00, т.к. время на устройстве отстает от системного. Дата последней архивной записи: 2010-04-02 08:00:00
Информационное сообщение 02.04.2010 10:00 Чтение часового архива завершено
Информационное сообщение 02.04.2010 10:00 завершение соединения с удаленной стороной


Как теперь мне найти данные за интервал с 02.04.10 08:00:00 - 02.04.10 09:00:00 (по времени сервера) ?


До перехода на летнее время, (до того как часы сервера перевели на час вперед) часы прибора опережали системные на час (другой прибор стоял).
ЛЭРС если начинал опрос например в 11:15, то это означало интервал с 10:00 до 11:00 и время в таблице было 10:00
Старый прибор, у которого время опережало системное на час, стоял до 25 марта. Прибор мы заменили 25 марта и у нового время было как у системных часов.
Часы системы переводились на час вперед в ночь с 27 марта на 28 марта. Теперь часы прибора отстают от системных на час.
Теперь ЛЭРС начинает опрос в 09:00:53 но интервал берет не 08:00-09:00, а 07:00-08:00, и время в таблице будет 07:00

Вопрос: ЛЭРС берет старые данные с прибора (за 2 часа от системного времени назад) или он новые данные (за час от системного назад) пишет в таблице
с временем 2 часа назад от системного ?

Прибор формирует архивы по своим внутренним часам. Время на приборе отстает от системного, и в момент опроса, архивная запись за прошлый час была еще не сформирована:

02.04.2010 10:00 Текущие дата и время устройства: 2010-04-02 09:01:22
02.04.2010 10:00 Часы устройства отстают от системных на 00:59:18 (в формате дд.чч:мм:сс)

Время прибора - 09:01, это значит что последняя запись часового архива содержит потребление с 08:00 по 09:00. ЛЭРС УЧЕТ считал эту запись и сохранил в базу данных с меткой времени 08:00:00

02.04.2010 10:00 Считаны данные за 2010-04-02 08:00:00 по ПАР 13 (теплосчетчик СПТ961М на ДВП)

02.04.2010 10:00 Считаны данные за 2010-04-02 08:00:00 по ХВС (теплосчетчик СПТ961М на ДВП)

Данные за интервал с 09:00:00 по 10:00:00 появятся только спустя 59 минут 18 секунд.
В том, что требуемых Вам данных еще нет данных в приборе учета, Вы можете убедиться, просмотрев архивы с лицевой панели вычислителя.
Единственный выход с данной ситуации - скорректировать время на приборе учета.


P.S. Подробные протоколы опроса сохраняются в журнале опроса (пункт главного меню “Опрос → Журнал опроса”). Срок хранения протоколов задается в системных параметрах (главное меню “Администрирование → Системные параметры”)

P.P.S. Если не секрет, зачем Вам Вы обращаетесь напрямую к таблицам базы данных?

Получается, время 08:00 в таблице - означает не системное время, а время, указанное в архиве прибора?

PS Обращаемся напрямую к таблицам, потому архивные данные из прибора нужны для расчетов в наших программах, где кроме этого прибора фигурируют данные с других приборов и контроллеров (например, с Autolog2000) и эти контроллеры с энергоучетом не связаны.

Да, это приборное время. Иначе невозможно проверить правильность работы системы:

  • отчет о потреблении, сформированный по этим данным, должен совпадать с данными на лицевой панели прибора
  • суммарное потребление по часовому архиву за сутки должно равняться потребленю в суточном архиве

Немного про сами таблицы PrimaryData***. Это промежуточные таблицы, которые хранят данные с приборов учета до их обработки системой. Кроме этого, время в этих таблицах трактуется по разному, в зависимости от модели прибора учета:

  • для приборов, которые возвращают потребление за расчетный период (например, СПТ-961), время в таблицах PrimaryData*** указывает на начало расчетного периода (т.е. на 08:00 в часовом архиве хранится потребление за интервал с 08:00 до 09:00).
  • для приборов, которые возвращают показания (нарастающим итогом, например, как электросчетчик), время в таблицах PrimaryData*** означает время, на которое были зафиксированы показания.

Мы не рекомендуем использовать прямое обращение к таблицам с данными, т.к. структура БД постоянно совершенствуется, чтобы обеспечивать развитие системы. Может получиться так, что после очередного обновления связь с Вашим модулем “сломается”.

Для интеграции ЛЭРС УЧЕТ с другими системами мы предлагаем использовать средства, поддержку которых мы гарантируем:

  • экспорт данных по объектам
  • OPC-сервер
  • интерфейс автоматизации (находится в разработке, будет выпущен в обновлении 2.75)

На последнем хочется остановиться особо. Интерфейс автоматизации позволяет обращаться к ЛЭРС УЧЕТ из любой среды, которая поддерживает работу с COM-объектами, в том числе и скриптовых языков (например, jscript или PowerShell). Интерфейс автоматизации избавляет от привязки к структуре базы данных, дает возможность доступа к системе с любого компьютера в сети, позволяет настроить выполнение необходимых действий по расписанию.

Работа через интерфейс автоматизации выглядит следующим образом:
=== sample.js =========================
var oServer = new ActiveXObject(“LERS.Server”);
oServer.Connect(“server”, 10000, “login”, “password”);

var objectList = oServer.GetObjectList();
for(i = 0; i < objectList.GetCount(); i++)
{
var object = objectList.GetItem(i);
WScript.Echo(object.Title + ", последние данные за " + object.LastDataDate);
}

Нам интересно, как и какие данные Вы хотите получать из системы и мы готовы доработать интерфейс автоматизации с учетом Ваших пожеланий.

Хотелось бы получить время прибора, чтобы не переводить его часы вручную. Мы решили приборы все поставить на зимнее время и использовать разницу во времени в нашей программе.

Сейчас в таблицах есть информация о времени прибора?

В таблицах с данными о потреблении указано время по часам прибора. Разница во времени с прибором учета в Системе ЛЭРС УЧЕТ не хранится.
Текущее время прибора при опросе архивных данных протоколируется в журнале опроса в строковом виде.

P.S. Мы рекомендуем устанавливать единое време в часах всех устройств измерительной системы. Если при работе с архивными данными, оператор будет использовать время считывания данных, а не зафиксированное прибором время, то это может привести к множеству проблем.