Мы подсчитываем сумму значений канала за период с помощью канала Call: тип вызова - RS_STATISTIC, параметр - 0, интервал выборки - предыдущий час. По логике, каждый новый час сумма должна заново пересчитываться, но вместо этого значение суммы каждый раз прибавляется к результату предыдущего часа. Таким образом, например, через семь часов будет сумма значений за все семь часов, а не за один предыдущий час. В help'e сказано: "Для сброса результата статистической обработки МОЖНО присвоить 0 соответствующему аргументу или установить соответствующий бит значения канала RT_Statistics". Это касается только принудительного сброса, или даже независимо от выбранного интервала аргумент нужно обнулять? Тогда вопрос: а зачем вообще выбирать интервал?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Интервал выборки никак не влияет на работу канала Call с типом вызова RT_Statistics
Posted by SerchenyaN (Участник № / Member № 2877) on :
Получается, что считать канал начинает с момента старта монитора и до того момента, пока его не обнулишь? Мы правильно Вас поняли?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Да, именно так все и происходит
Posted by SerchenyaN (Участник № / Member № 2877) on :
В TM5 была возможность подсчета суммы значений с помочью подтипа КАНАЛ, дополнение к подтипу - СУММА. Время выборки можно было задавать с помощью TIME/MASK и никакого обнуления не требовалось. Есть ли аналог этого в ТМ6, кроме Call.RT_Statistics?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Других нет. Вам необходимо написать простейшую программу, которая будет в определенные промежутки времени посылать 0.
Posted by SerchenyaN (Участник № / Member № 2877) on :
Понятно. Спасибо, так и было сделано. Жаль, конечно, что TM6 такого плюса из TM5 не почерпнул.
Posted by SATER (Участник № / Member № 1414) on :
Расскажите, пожалуйста, как настроить Call.RT_Statistics чтобы получить средние значения за предыдущий час по нескольким каналам Float
Создал Call.RT_Statistics и Call.ChGroupReq Настроил:
Пробовал и другие варианты: в CALL.RT_Statistic первые 2 аргумента ставил с типом Date_and_time, как с Local_Statistic (CALL.Local_Statistic у меня работает). В CALL.ChGroupReq менял тип Input/Output, период пересчета, Параметр... В МРВ подаю единицу на вход CALL.RT_Statistic, его реальное, апаратное и входное значения стают равными 1 и все - никаких результатов, так и застывают..
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Отправлен пример.
Posted by SATER (Участник № / Member № 1414) on :
Спасибо. Я так понял, что для CALL.RT_Statistic Параметр нужно выбирать соответственно с разделом Справки "Временной интервал выборки". Это запутывает, потому что в справке в том разделе написано: Разбиение (T_FROM, T_TO) на интервалы Значение младшего полубайта атрибута Параметр канала-инициатора выборки задает величину интервалов, на которые разбивается диапазон (T_FROM, T_TO) (соответственно, число интервалов равно результату деления диапазона на интервал) А как задать T_FROM, T_TO для CALL.RT_S не сказано.
Я правильно понял?: Если Параметр = 34, то T_FROM = начало предыдущего часа, а Т_ТО = начало текущего часа
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Вы правильно поняли. Первый аргумент каждой пары показывает сумму значений с начала текущего часа, а второй аргумент пары - среднее значение за предыдущий час.