Михаил добрый день.
Есть прибор, который в реальном времени выдает параметр — «Объем за прошедшую минуту».
Я могу создать входной канал — Минутный ТИ и получать эти данные.
Как за час получить сумму? В настройке БД есть возможность у входного канала выставить свойство «Усреднение». Нельзя ли в будущем сделать его трехпозиционным (текщее значение, среднее, сумма) ? Или можно решить формулами?
Добрый день!
Формулами не сложно. Создайте новый минутный канал и пропишите для него формулу
HourBeg()?0:Val()+Val(1)
Где 1 — номер канала ТИ, в который приходят данные от прибора.
Если не заработает, то нужно будет поискать ошибку, но идея такая.
А в приборе объём за прошедшую минуту скользящий или меняется раз в минуту?
Спасибо попробую.
А что значит скользящий?
Опрос прибора идет примерно раз в 15 секунд. кКак только в приборе проходит минута, при следующем опросе мы получаем новое значение — объёма прошедшего за эту минуту.
Скользящий, значит каждые 15 секунд среднее будет пересчитано по 4 последним показаниям. А не скользящий, когда 4 раза получаем измерения и затем считаем среднее, которое не меняется минуту.
Выдается готовое значение и не меняется минуту. Весь расчет производится прибором и выдается готовый результат. Т.е. по идее если время прибора и скады синхронизированы нужно писать на минуту назад. Но это надо будет проверить сравнить сумму минутных с объёмом за час (тоже приходит с прибора).
В редком случае может произойти запись одного и того же значения в обе минуты (одну за другой), если моменты записи в скаде и в приборе совпадут. Либо считывать данные, когда одна минута точно закончилась, а другая не наступила, т.е. в X минут и 30 секунд.
Чтобы писать на минуту назад, это нужно реализовать в Вашем драйвере.
Ответ изменён 8 лет, 8 месяцев назад пользователем Mikhail.