A epmwebapi permite criar, ler, alterar ou excluir Basic Variables. Recomendamos cuidado ao realizar essas operações no sistema.
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)
Criação de Basic Variable
Utilize o método createBasicVariable(name, description, tagType, realTimeEnabled, eu, lowLimit, highLimit, scaleEnable, inputLowLimit, inputHighLimit, clamping, domain, interface, ioTagAddress, processingEnabled, isRecording, isCompressing, storeMillisecondsEnabled, storageSet, deadBandFilter, deadBandUnit)
Os único campo obrigatório é name. Os campos que não possuirem entrada, serão criados com seus valores default.
Exemplo:
newBasicVariable = connection.createBasicVariable(name='bvname', description='Variavel criada a partir da epmwebapi', tagType = 'Int', realTimeEnabled = True, eu = '°C',
lowLimit = 1, highLimit = 101, scaleEnable = True, inputLowLimit = 1, inputHighLimit = 1001, clamping = 'ClampToRange',
domain = 'Continuous', interface = None, ioTagAddress = None, processingEnabled = True, isRecording = True, isCompressing = True,
storeMillisecondsEnabled = False, storageSet = None, deadBandFilter = 2.2, deadBandUnit = 'DBPercentOfValue')
Updade
Para realizar alterações nas configurações das BasicVariables, basta alterar cada uma das propriedades que se deseja e após isso enviar a atualização para o servidor através do método save().
Exemplo:
bv01 = connection.getBasicVariables(['bvname'])['bvname']
bv01.lowLimit = 20
bv01.highlimit = 200
bv01.storeMillisecondesEnabled = False
bv01.save() # envia alterações para o EPM Server
Delete
Basta utilizar o método delete() na BasicVariable ou o método deleteBasicVariable(listnames) na conexão.
Exemplo:
# Delete direto no objeto instanciado
if bv01.delete():
print('BasicVariable deleted')
else:
print('Fail')
#Com lista gerada a partir de um filtro
dofd = epmConn.filterDataObjects(doFilter)
listNames = list(dofd.keys())
epmConn.deleteBasicVariables(name=listNames)
### Sem o filtro, apenas o nome da variável
epmConn.deleteBasicVariables(name=['bvname'])
#Importante fechar a conexão com o EPM Server.
connection.close()