Acessando informações do EPM Server

Através da epmwebapi é possível acessar não apenas dados, mas também informações e diagnósticos sobre o sistema EPM, que fazem parte do Address Space do EPM, que é um servidor OPC UA.

Conectando ao EPM Server

In [2]:
import epmwebapi as epm
import numpy as np
import datetime

##Método para não expor usuário e senha do EPM no código fonte
import getpass
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://dili:44333', 'http://dili:44332', user, password)
EPM user:sa
EPM password:········

Versão do EPM Server

In [15]:
Path = '/1:ServerManagement'
obj = connection.getObjects(Path)[Path]

properties = obj.enumProperties()

version = properties['Version'].read()

print(version.value)
3.7.157

Código da Chave (Hardkey ou Softkey)

In [18]:
Path = '/1:ServerManagement/LicenseManager'
obj = connection.getObjects(Path)[Path]


properties = obj.enumProperties()

key = properties['LicenseIdentity'].read()

print(key.value)
000000007A918173

Varrendo a estrutura e acessando o Status dos Interface Servers

Retornando o código de Status do Interface Server. Veja a descrição de cada código abaixo:

Unknown = 0

Uninitialized = 1

Initializing = 2

InitErrorRetrying = 3

Ok = 4

Restarting = 5

RestartErrorRetrying = 6

Faulted = 7

In [19]:
basePath = '/1:Interfaces'
obj = connection.getObjects(basePath)
item = list(obj.values())[0]
refs = connection._browse([item._itemPath], 'ns=0;i=35').references()
for ref in refs:
    print('Número de interface: {}'.format(len(ref)))
    for interfaceRef in ref:
        path = basePath + '/1:' + interfaceRef._displayName
        tmp = connection.getObjects(path)
        item = list(tmp.values())[0]
        props = item.enumProperties()
        propValue = props['CollectorStatus'].read()
        print('{}  - {}'.format(interfaceRef._displayName, propValue.value))
Número de interface: 25
sim  - 4
e3Automation  - 4
ExcelWindPowerData  - 1
DiliDiagnostics  - 4
TaipeiDiagnostics  - 4
BojnaDiagnostics  - 1
AnguillaDiagnostics  - 4
EdinburghDiagnostics  - 4
PoipuDiagnostics  - 4
PalawanDiagnostics  - 4
DamkeNotificationTest  - 1
Dmk-DB  - 1
dataModel  - 1
DmK_E3  - 1
Cairo  - 1
RaimannInterface  - 4
Historians  - 1
TESTESQLite  - 1
msp_TstSqlite  - 4
Stats  - 4
sim1min  - 4
Simulacao  - 4
Damke_1seg  - 4
MySQL_Example  - 1
testOPCDA  - 1