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