При автоопросе через сеть GSM, если опрос начинается ровно в 1:00, то данные за этот период не сохраняются [15071]

У нас несколько сотен адресов с тепловычислителем ТВ7М поставленных на автоопрос через GSM модемы, и после последнего обновления стал появляться следующий баг: Если опрос часового архива начинается ровно в 1:00 ночи (± несколько секунд) то данные за период 00:00 по 1:00 не заносятся в таблицу данных, несмотря на то, что не появляется никаких сообщений об ошибке в журнале опроса:


Такое происходит только в 1:00. Если удалить эти данные вручную и опросить снова, то они появятся. В тепловычислителях эти данные есть. На тепловычислителях часы синхронизированы с сервером.

Как видно из вашего скриншота таблицы с данными, дата отображается красным цветом, а значит прибор вернул недостоверные значения. Просто включите просмотр недостоверных значений в Таблице с данными для их отображения.

У меня включено отображение недостоверных значений:


На других точках учёта я так-же вижу недостоверные значения в таблице данных, например, завышенную температуру, просто они отображаются красным цветом. Здесь же по всей видимости, когда опрос происходит ровно в 1:00, он считает недостоверным само время, и из-за этого не сохраняет вообще никакие данные за этот период, если только не удалить это аномальное место из таблицы и не опросить его ещё раз потом, не в 1:00. Раньше, кстати, такой проблемы не было.

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


Как видите, и здесь пункты тоже включены.

Очень странная ситуация. Как видно у вас опрос начинается за несколько секунд до 01:00. Предположу, что прибор на момент опроса еще не сформировал часовую запись за 00:00 - 01:00 и возвращает пустую запись.

Попробуйте сдвинуть время проведения автоопроса, например, в ~01:15 и проверьте повторится ли ситуация.

В том-то и дело, что в таком случае (если не опрашивать ровно за несколько секунд до 1:00) то проблемы не возникает. Но у нас несколько сотен адресов, которые опрашиваются с полуночи, и до 8-ми утра, и такая ситуация возникает только с архивами за период с 00:00 по 1:00, причём раньше такой проблемы я не замечал, может быть это совпадение, но такие пустующие полосы начали появляться только с последним обновлением ЛЭРС.

И ЛЭРС не может автоматически определить то, что он считал пустую часовую запись, и потом запросить её во время следующего автоопроса как “недостающие данные”, и потому таблица данных со временем становится “дырявой”.

Получается мое предположение выше оказалось верным. В таком случае вам действительно стоит избегать запуска автоопроса на границе 01:00.

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

Уточните такая ситуация возникает с любыми приборами или только с приборами ТВ7М / ТВ7?

95% наших приборов это ТВ7М/ТВ7, с остальными (ВКТ-9, ВЗЛЁТ) такой проблемы не возникало, но возможно на их долю такая ошибка просто не выпадала по времени.

Пожалуй, в таком случае проблема и правда на стороне тепловычислителя. Но тогда это странно, что раньше такой проблемы в ЛЭРС не наблюдалось. Прошивку тепловычислителей-то мы не меняли. Может, ЛЭРС как-то раньше умел обробатывать такое “исключение”, или не запрашивал данные за период, который закончился только что.

Сейчас сложно сказать что и как происходило раньше. Возможно раньше автоопрос срабатывал позже 01:00 и на момент запроса данных они уже формировались. В любом случае текущий подход с запросом данных наступившего во время опроса часа является более правильным.

Я могу лишь проверить свое предположение о пустой записи, чтобы убедиться в его верности. Для этого мне нужен файл журнала опроса в ~01:00 и дамп обмена к этому журналу, а также скриншот вкладки Устройство свойств точки учета, на котором полностью видно настройки привязки каналов и ячеек.

Да, пожалуйста, вот запрошенные вами файлы:
Опрос с пустой строкой.zip (376,9 КБ)

Покажите, пожалуйста, карту наличия данных за период опроса из присланного журнала.

Также наведите курсор на дату записи 23.09.2024 00:00 - 01:00 в таблице с данными и сделайте скриншот всплывающей подсказки, приложив его к теме.


image
Напоминаю, что в приборе данные на самом деле есть, если сейчас удалить эти записи и опросить снова, либо при опросе убрать галочку “только недостающие данные” то все данные придут исправно.

Приложите, пожалуйста, журнал работы Сервера и Службы опроса за 23.09.2024.

Журналы работы.zip (765,6 КБ)
По поводу журнала службы опроса - там в это время одновременно ведётся опрос по нескольким портам.

На сколько я вижу из присланных журналов указанная запись помечается как отсутствующая при расчете потребления по интеграторам. При этом у вас еще производится расчет интеграторов по потреблению. Это неправильно, так как при таком сочетании настроек расчета возникает перекрестный расчет, который может приводить к подобного рода коллизиям. Он используется в исключительных случаях, к которым данный случай явно не относится как минимум потому, что в приборе есть потребление.

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

Вы имеете в виду вот эти параметры?


Я думал, что это должно работать как:
Если нет значений интеграторов, то он пытается рассчитать их по потреблению.
А если нет значений потребления, то он пытается рассчитать их по интеграторам.
Вы предполагаете, что из-за такой попытки перекрёстного расчёта, ЛЭРС записывает пустую строку в таблицу данных, вместо того, чтобы признать, что данных нет, и брать их неоткуда, а значит нужно записать этот период как недостающие данные?
Даже если причина записи пустых строк всё-таки в этом, мне не кажется, что пункты “интеграторы по потреблению” и “потребление по интеграторам” глобально не должны быть включены вместе, так как в остальных случаях (не в ~01:00) он пытается рассчитать именно недостающие данные из тех, которые есть.
Но я действительно сейчас отключил расчёт интеграторов по потреблению на всех точках ради эксперимента, убрав тем самым возможный перекрёстный расчёт. Я напишу сюда результат завтра.

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