<< 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.