Consulta Aggregate

<< Clique para Mostrar o Sumário >>

 

Consulta Aggregate

Esta forma de consultar os dados de um EPM Server possibilita a aplicação de agregações antes de encaminhá-los ao destino final, ou seja, o EPM Server aplica sobre os dados brutos o processamento solicitado retornando apenas o seu resultado, o que pode auxiliar muito na redução do tráfego de rede, além de agilizar o processo de análises por fornecer os dados já previamente processados.

Um exemplo típico desta situação é a necessidade de se obter a média mensal ponderada ao longo do tempo de uma variável pelo período de um ano. Realizando uma consulta agregada para se obter esta informação, trafegam pela rede apenas os doze valores correspondentes às médias de cada um dos doze meses do ano. Em contrapartida, ao se realizar uma consulta direta aos dados brutos, todos os valores armazenados para a variável pelo período de um ano seriam enviados, sendo necessário o seu processamento para o cálculo da média mensal, além de se ter um volume muito maior de dados trafegando pela rede.

Os tipos de agregações suportadas pelo EPM Server são apresentadas nas tabelas a seguir.

Opções de agregação de dados: Interpolation Aggregate

Opção

Descrição

Trend †

Interpola automaticamente os dados de um intervalo de tempo, priorizando a qualidade para visualização em um gráfico segundo uma dada resolução da tela

Interpolative

Interpola os pontos consecutivos dos dados de um intervalo definido, segundo a amostragem especificada nos campos Sample Interval e Unit. Para variáveis discretas, a interpolação apenas mantém o valor anterior até o seguinte, enquanto para variáveis contínuas a interpolação entre dois pontos consecutivos é linear

 

Opções de agregação de dados: Data Average Aggregates

Opção

Descrição

Average

Calcula a média aritmética dos valores armazenados que possuem qualidade boa, segundo a amostragem definida nos campos Sample Interval e Unit

TimeAverage

Calcula a média ponderada pelo tempo, utilizando os dados interpolados linearmente, segundo a amostragem definida nos campos Sample Interval e Unit

Total

Retorna o resultado do cálculo TimeAverage * SampleInterval (segundos)

 

Opções de agregação de dados: Data Variation Aggregates

Opção

Descrição

Minimum

Equivale ao campo MinimumActualTime, porém utiliza a estampa de tempo do início do intervalo ao invés de quando o valor efetivamente ocorreu

Maximum

Equivale ao campo MaximumActualTime, porém utiliza a estampa de tempo do início do intervalo ao invés de quando o valor efetivamente ocorreu

MinimumActualTime

Retorna o menor valor presente no intervalo especificado nos campos Sample Interval e Unit utilizando a própria estampa de tempo de quando o valor ocorreu

MaximumActualTime

Retorna o maior valor presente no intervalo especificado nos campos Sample Interval e Unit utilizando a própria estampa de tempo de quando o valor ocorreu

Range

Retorna a diferença entre o valor máximo e mínimo do intervalo especificado nos campos Sample Interval e Unit. Se houver apenas um valor com qualidade boa no intervalo, retorna o valor 0 (zero)

 

Opções de agregação de dados: Counting Aggregates

Opção

Descrição

Count

Retorna o número total de dados com qualidade boa armazenados no intervalo especificado nos campos Sample Interval e Unit

DurationInStateZero

Retorna o tempo transcorrido, em milissegundos, dentro do intervalo especificado nos campos Sample Interval e Unit em que o estado do Tag era 0 (zero)

DurationInStateNonZero

Retorna o tempo transcorrido, em milissegundos, dentro do intervalo especificado nos campos Sample Interval e Unit em que o estado do Tag era diferente de 0 (zero)

PercentInStateZero †

Retorna o resultado do cálculo DurationInStateZero / SampleInterval * 100

PercentInStateNonZero †

Retorna o resultado do cálculo DurationInStateNonZero / SampleInterval * 100

NumberOfTransitions

Retorna o número total de transições do valor da variável dentro do intervalo especificado nos campos Sample Interval e Unit

 

Opções de agregação de dados: Time Aggregates

Opção

Descrição

Start

Retorna o primeiro valor com qualidade boa encontrado no intervalo especificado nos campos Sample Interval e Unit com a estampa de tempo em que ocorreu

End

Retorna o último valor com qualidade boa encontrado no intervalo especificado nos campos Sample Interval e Unit com a estampa de tempo em que ocorreu

Delta

Retorna a diferença entre o primeiro e o último valor dentro do intervalo especificado nos campos Sample Interval e Unit e que tenham qualidade boa. Corresponde ao resultado do cálculo End - Start

 

Opções de agregação de dados: Data Quality Aggregates

Opção

Descrição

DurationGood

Retorna o tempo, em milissegundos, em que os dados estavam com qualidade boa no intervalo especificado nos campos Sample Interval e Unit. A qualidade é definida a partir da qualidade dos dados do limite do intervalo

DurationBad

Retorna o tempo, em milissegundos, em que os dados estavam com qualidade ruim no intervalo especificado nos campos Sample Interval e Unit. A qualidade é definida a partir da qualidade dos dados do limite do intervalo

PercentGood

Retorna o resultado do cálculo DurationGood / SampleInterval * 100

PercentBad

Retorna o resultado do cálculo DurationBad / SampleInterval * 100

Worst Quality

Retorna a pior qualidade dos dados presentes no intervalo especificado nos campos Sample Interval e Unit. A qualidade Bad é pior que Uncertain que, por sua vez, é pior que Good. A estampa de tempo sempre corresponde ao início do intervalo

 

Agregação disponível no EPM e que não está definida no padrão OPC UA.

 

NOTAS

A forma de agregar os dados em uma consulta a partir dos dados de processo armazenados segue o padrão OPC UA, definido pela OPC Foundation.

Deve-se ter especial atenção no momento de optar entre as consultas Average e Time Average. A primeira calcula simplesmente a média aritmética dos valores efetivamente armazenados, enquanto a segunda calcula a média ponderada destes valores ao longo do tempo. Para os casos em que o número de pontos armazenados é elevado em um dado intervalo, ambas podem apresentar resultados similares, porém, para variáveis que apresentam poucas variações, geralmente o que se procura saber é a sua média ponderada ao longo do tempo, e não a média aritmética dos pontos armazenados.

Recomenda-se sempre verificar se é boa a qualidade de todos os pontos do intervalo avaliado, uma vez que as agregações definidas no padrão OPC UA não utilizam valores de qualidade ruim nos cálculos.

 

O exemplo a seguir apresenta uma consulta do tipo Aggregate à variável hipotética bv01 (definida anteriormente), solicitando a média diária ponderada ao longo do tempo.

processInterval = dt.timedelta(minutes=24*60)
timeAverageConfig = epmhda.AggregateDetails(interval\
  = processInterval, type = epmhda.AggregateType.TimeAverage)
agg01 = epmhda.epmTagHistoryReadAggregate(bv01, timeAverageConfig, queryPeriod)

 

No exemplo anterior, a função epmhda.epmTagHistoryReadAggregate recebe como primeiro argumento a variável bv01 (objeto do tipo Data Object) correspondente à variável BV01 do EPM Server EPMSvr01, como segundo argumento as configurações da agregação timeAverageConfig (objeto do tipo epmhda.AggregateDetails) e, por fim, o período a ser consultado, queryPeriod (objeto do tipo epmhda.TimePeriod), como no exemplo da consulta Raw.

Esta página foi útil?