Чтение срезов (архивов) запись куда ?

Стартовая страница Форумы Разработка и интеграция Чтение срезов (архивов) запись куда ?

Просмотр 15 сообщений - с 1 по 15 (из 28 всего)
  • Автор
    Сообщения
  • #15942
    manjey73
    Участник

    Добрый день. Разбираюсь тут с чтением срезов средних мощностей. Возникли вопросы.

    Например я определил, что есть данные за месяц, прибор подключен первый раз, куда считать эти данные ? базы то еще нет за месяц ранее ? задним числом то нельзя создать БД с каналами ?
    Каналы предположим будут созданы, но днем ранее и тем более позже их нет в БД.

    В общем не совсем ясно как их распихивать.

    Например вот у меня есть счетчик, который уже работал. Я создаю 4 канала для A+, R+, R- для средних срезов с периодом 30 минут.
    Можно записывать только с текущего момента ?
    Как проверять, что каналы уже записаны если происходит перезапуск Коммуникатора ?
    Допустим за неделю мы записали данные, потом перезапуск линии связи, как узнать, что не надо считывать по новой?
    замечу нюанс, шаблон для однотипных приборов ОДИН, записывать в него данные не получится, да и не очень то хочется это хранить именно в шаблоне

    #15943
    Romiros
    Участник

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

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

    #15944
    manjey73
    Участник

    А как определить где последняя запись ? например если она 0 или — недостоверная ?

    Еще такой вопрос, срез средней мощности при интервале 30 минут выглядит так
    00:30 — значение
    01:00 — значение
    01:30 — значение

    А что в промежутках ? недостоверные данные получатся ? мне же надо именно в это время записать данные и не просто в мощность текущую, так как значения будут сильно разные.
    Как-то существующие БД не сильно подходят.

    Вот к примеру счетчик установили, он отработал месяц, а то и год, а потом его подключили к Scada.

    • Этот ответ был изменен 3 года, 11 месяцев назад от manjey73.
    #15946
    Romiros
    Участник

    При записи архива нужно устанавливать статус — архивный(2), ну или свой какой удобен. Дальше при старте линии в архиве БД скады ищется последняя запись с этим статусом.

    Насчёт подключения прибора, которого раньше не было в скаде и загрузки его архива может Михаил подскажет каким путем идти. Может как-то напрямую работать с файлами dat.

    А что в промежутках ?
    Я пишу архивы в теме каналы, где и текущие значения. То есть в минутном срезе хранятся текущие, а в часовом архивы.

    • Этот ответ был изменен 3 года, 11 месяцев назад от Romiros.
    #15948
    manjey73
    Участник

    Писать срезы мощностей в текущие НЕПРАВИЛЬНО, потому что это средняя мощность за период, а не просто архивные данные на этот момент времени
    1. средняя мощность рассчитывается по формуле, соответственно текущая на момент часа может быть 23 кВт, а средняя может быть 15 кВт и получится фигня может я не прав ?
    2. если у нас длительность интегрирования 30 минут, то на один час всего 2 записи, в начале часа и в середине

    Вот на будущее для новых БД.

    1. создаем канал в отдельной БД архивов
    2. если в приборе есть данные, а мы его только подключили к Scada то определение необходимого количества ячеек и создание сервером задним числом требуемых записей с меткой времени.

    #15949
    manjey73
    Участник

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

    С мгновенными значениями все ясно, они есть только в один момент времени — СЕЙЧАС. по этому и пишутся в текущие данные а сервер сам их сохраняет по мере указанного времени 1 минута или 30 сек.

    А вот со срезами не совсем понятно. Если бы срезы были просто сохранением на точку времени текущих значений, то да, просто ставим тег архивным, но тут блин расчет формулы.

    • Этот ответ был изменен 3 года, 11 месяцев назад от manjey73.
    #15951
    Romiros
    Участник

    Есть возможности скады в плане ведения архивов и они неизменны. Даже если будет создано 15 отдельных архивных баз, их возможностей все-равно в какой-то момент не хватит. Понятно что скаду нужно развивать в плане архивирования, но пока нужно максимально подстраиваться под то что есть.
    Мы имеем:
    1. Текущий срез — просто мгновенное значение
    Какой может быть архив? Это в основном — последнее значение, среднее, сумма, дельта, ну может максимальное — минимальное, мало ли какие задачи. Такая архивация справедлива и для минуты и для часа.

    Если значение создаваемое архивом как-то сильно нарушает логику канала с текущими значениями, то может лучше создать отдельный канал для архива и не писать туда текущие значения.

    Я пишу архивы в текущие каналы, потому-что В МОЁМ СЛУЧАЕ это не противоречит логике. Например расход газа.
    Текущий срез — мгновенное значение в текущий момент времени
    Минутный срез — среднее значение из текущих за минуту
    Часовой срез — среднее значение из минутных архивов за час
    Из архива прибора я извлекаю расход за час (а это такой же средний расход построенный из текущих значений только самим прибором) и перезаписываю часовой срез сформированный скадой. В данном случае логика не нарушается.

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

    #15952
    manjey73
    Участник

    Разве минутные и часовые данные в БД Scada это не значение текущего на момент записи в эту мину и час ? откуда там среднее ?

    Я тоже склоняюсь к дополнительным каналам. Вопрос как их записать в БД на момент, когда данных еще не было ? Или создать каналы и только через сутки выполнить запись суточных ?, когда БД увеличится на месяц создать месячные и т.д. то есть только после подключения счетчика к Scada, так как задним числом из счетчика не получится из драйвера создать базы.

    Ну почему не хватит возможностей ? если это часовые данные из архива прибора или получасовые, то в БД на канал достаточно выделить всего 12 или 24 ячейки на сутки а не 24*60 при минутной записи или 24*120 при 30 сек. записи.

    в общем буду как-то пробовать. Сейчас еще надо разобраться как вычислять ячейку памяти среза по требуемой дате… тот еще квест у Меркурия…

    • Этот ответ был изменен 3 года, 11 месяцев назад от manjey73.
    #15954
    Romiros
    Участник

    откуда там среднее ?

    Галочка «усреднение» в свойствах канала.

    #15955
    manjey73
    Участник

    Понятно, но это среднее за минуту, при чтении текущих данных например 3 раза в минуту.
    За час что будет ? например 15 минут была нагрузка 10 кВт, а 45 минут была нагрузка 2 кВт.

    Что тут будет средним в каждые пол часа как выдает счетчик ?

    #15956
    Romiros
    Участник

    Наверное так ((15*10)+(45*2))/60. Но скада конечно считает не так. Она просто складывает значение за каждую минуту и делит на количество минут, где значение не равно null.

    #15957
    manjey73
    Участник

    А по формуле счетчика расчет такой

    значение среднего в десятичном которое отдает счетчик 10500
    10500*(60/30)/(2*1000) = 10,5 кВт
    30 тут период интегрирования в минутах. а 1000 постоянная счетчика в имп/квт*ч
    Если постоянная будет 500, то в итоге будет 21 кВт за полчаса среднее
    А как он усредняет внутри самого счетчика фиг его знает.

    #15958
    Romiros
    Участник

    А какое это вообще имеет значение? Архив скачивается, чтобы получить готовую цифру и не важно, как она считается. Ставим период архивации раз в 30 минут. И отправляем скачанный архив в нужный срез.

    #15959
    manjey73
    Участник

    Период архивации чего ? БД Scada ? а как остальные каналы ? или о каком периоде архивации идет речь ?

    Так готовую цифру надо еще через формулу прогнать, судя по документации счетчика.
    В ответе передается время например в 02:30, Значение, Период (у меня 30 мин), и еще байт состояния, полный срез или нет и т.д. и это надо все в формулу, подставив Постоянную счетчика (у меня 500 имп/кВт*ч) и только тогда мы получаем среднее мощности за 30 минут. Почему они сразу туда не пишут значение после расчета я фиг его знает… Скорее всего экономили ячейки, так как Постоянная может быть и 25000 и 5000
    непонятно зачем правда?

    #15960
    Romiros
    Участник

    Расчет по идее нужно в драйвере сделать, хотя Вам виднее, как там всё устроено, я с такими приборами не работал. А вот по поводу архива да, если нужен получасовой архив, то его нужно выставлять в скаде. Остальные каналы естественно тоже станут получасовым.
    А 30 минут это только из-за этого типа счётчика? Весь проект не должен быть в таком срезе? А если другой прибор раз в 7 минут архивирует, то добавлять 7-ми минутный архив? Нельзя ли архив прибора привести к часу, объединив два получасовых?

Просмотр 15 сообщений - с 1 по 15 (из 28 всего)
  • Вы должны авторизироваться для ответа в этой теме.