Como importar dados de históricos do Elipse E3 para o EPM.

Ao configurar o Elipse Plant Manager (EPM) na sua planta, é possível que você já possua dados históricos armazenados pelo Elipse E3. Neste caso, importar estes dados históricos do E3 para o EPM pode ser uma maneira de começar de algum lugar, pois já teremos o que analisar em vez de começar do zero e ter que esperar pela gravação de dados novos para só então analisá-los.

Além disso, hoje contamos com o Elipse Water e o Elipse Power. Essas plataformas já trazem modelos de ativos que permitem interagir com os dados de uma forma mais direta, contextual e otimizada. Desse modo, é possível migrar uma aplicação do Elipse E3, com dados em tags de comunicação, para uma aplicação onde a interação com os dados é por meio de modelagem, com uma representação muito mais próxima da realidade física dos ativos.

Nos casos em que precisamos passar dados históricos de tags do Elipse E3 para objetos no EPM, é possível que a variável original no E3 não seja mais a mesma variável que o EPM leu. Assim, precisamos informar a correspondência entre os objetos. Ou seja: qual tag existia no Elipse E3, e qual medida corresponde a ele na estrutura atual lida pelo EPM (Elipse Water ou Elipse Power).

Módulo

Para ajudar a importar dados históricos do Elipse E3 para o EPM, criamos um módulo que você pode executar tanto em um ambiente Python quanto no próprio EPM Processor. Para utilizar este módulo, basta baixá-lo diretamente no nosso Github e importá-lo no seu código Python. Abaixo, segue um exemplo de utilização:

  1. from ReadHistData import *
  2. import epmwebapi as epm
  3. # Formato do CSV: TagFrom; TagTo; IsObj
  4. tagDict = readCSVfile("D:\EPM Team\Python Testes\TagList.csv")
  5. #Informações da base de dados histórica
  6. MDB = r'D:/Databases/dados.mdb'
  7. tName = 'Nivel'
  8. #Método para não expor usuário e senha do EPM no código fonte
  9. import getpass
  10. serverName = input('EPM Server:')
  11. user = input('EPM user:')
  12. password = getpass.getpass("EPM password:")
  13. #crie o objeto de conexão informando os endereços do EPM Webserver(Authentication Port e WEB API Port), usuário e senha.
  14. connection = epm.EpmConnection('http://{}:44333'.format(serverName), 'http://{}:44332'.format(serverName), user, password)
  15. i = 0
  16. while i < len(tagDict):
  17. tagFrom = tagDict[i]['From']
  18. tagTo = tagDict[i]['To']
  19. isObj = tagDict[i]['IsObj']
  20. meusDados = readAccessHist(MDB, tName, tagFrom)
  21. WriteEPMHistory(connection, tagTo, isObj, meusDados)
  22. i +=1
from ReadHistData import *
import epmwebapi as epm

# Formato do CSV: TagFrom; TagTo; IsObj
tagDict = readCSVfile("D:\EPM Team\Python Testes\TagList.csv")

#Informações da base de dados histórica
MDB = r'D:/Databases/dados.mdb'
tName = 'Nivel'

#Método para não expor usuário e senha do EPM no código fonte
import getpass
serverName = input('EPM Server:')
user = input('EPM user:')
password = getpass.getpass("EPM password:")

#crie o objeto de conexão informando os endereços do EPM Webserver(Authentication Port e WEB API Port), usuário e senha.
connection = epm.EpmConnection('http://{}:44333'.format(serverName), 'http://{}:44332'.format(serverName), user, password)

i = 0
while i < len(tagDict):
    tagFrom = tagDict[i]['From']
    tagTo = tagDict[i]['To']
    isObj = tagDict[i]['IsObj']
    
    meusDados = readAccessHist(MDB, tName, tagFrom)
    WriteEPMHistory(connection, tagTo, isObj, meusDados)
    i +=1

No código acima, chamamos o método "readCSVFile" para carregar o arquivo CSV que informa a correspondência dos objetos.

Este arquivo CSV deve informar:

  • o tag original no histórico do E3,
  • seu objeto correspondente no EPM, e
  • True caso o objeto no EPM seja um objeto no modelo, ou False caso não seja.

Por exemplo:

Dados.MeuTag.Value;Models/ElipseDataModel/MeuEquipamento/MinhaMedida/Value;True

Também informamos um arquivo MDB, já que, no exemplo, o histórico do E3 armazenou os dados neste arquivo, e utiliza o método "readAccessHist". Também podemos utilizar um histórico no SQL Server e o método "readSQLHist".

Depois de carregar as informações do CSV e do histórico, basta executar o laço While para que os dados sejam gravados no EPM conforme cada linha passada no CSV.

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 0 / 5. Count: 0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *

Floating button icon
Pesquise com IA