Tutorial: incluindo uma constante
Neste tutorial, você está incluindo uma constante e usando em uma métrica de dados em lote. Métricas de dados de fluxo não usam constantes.
Antes de iniciar
- Instale o Python 3.9.x em seu ambiente.
- Instale o IoT Functions em seu ambiente local. Siga as instruções nas Funções IoT do readme.
Como alternativa, para instalar o IoT Functions e suas dependências, é possível seguir as etapas na seção Antes de iniciar do Tutorial: Incluindo uma função customizada. Clone o pacote iniciador HelloWorld e importe o pacote iniciador no PyCharm. Instale os requisitos do PyCharm. - Tutorial completo: Adicionando expressões para adicionar um
distancemétrica para o tipo de dispositivo do robô no Maximo Monitor.
Sobre esta tarefa
Ajuste a distância para considerar um atraso.
Etapas
Conclua estas etapas para aplicar um cálculo que referencia um valor constante aos dados de amostra.
Etapa 1: definir seu cálculo
Defina 'distance_adjusted_by_constant' conforme a seguir:
df['distance_adjusted_by_constant'] = df['distance']*delay
Etapa 2: salvar suas credenciais em um arquivo
Definir credenciais para conexão Maximo Monitor.
- Faça o download do arquivo
credentials_as.json - Substitua as variáveis por seus dados e salve o arquivo em sua máquina local.
Etapa 3: Criar constante global
Execute a API constante POST com o payload abaixo
[
{
"name": "ArrayConstant",
"enabled": true,
"value": {
"value": [
"A",
]
},
"metadata": {
"jsonSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"dataType": "ARRAY",
"values": [
"A",
"B",
"C"
],
"description": "Sample multi-valued array",
"dataTypeForArray": [
"LITERAL"
],
"type": "CONSTANT",
"required": true,
"tags": []
},
"resourceId": null,
"resourceUUID": null,
"isBuiltin": false
},
{
"name": "alpha",
"enabled": true,
"value": {
"value": 4
},
"metadata": {
"dataType": "NUMBER",
"values": null,
"description": "general purpose numeric constant",
"type": "CONSTANT",
"required": true,
"tags": []
},
"resourceId": null,
"resourceUUID": null,
"isBuiltin": false
},
{
"name": "delay",
"enabled": true,
"value": {
"value": 120
},
"metadata": {
"dataType": "NUMBER",
"values": null,
"description": "Adjustment to output due to delay",
"type": "CONSTANT",
"required": true,
"tags": []
},
"resourceId": null,
"resourceUUID": null,
"isBuiltin": false
},
{
"name": "text",
"enabled": true,
"value": {
"value": "ABC"
},
"metadata": {
"dataType": "LITERAL",
"values": null,
"description": "This is string text",
"type": "CONSTANT",
"required": true,
"tags": []
},
"resourceId": null,
"resourceUUID": null,
"isBuiltin": false
},
{
"name": "json",
"enabled": true,
"value": {
"value": {
"A": "B",
"B": "A",
"C": {
"A": "B",
"B": "A"
}
}
},
"metadata": {
"dataType": "JSON",
"values": null,
"description": "This is JSON text",
"type": "CONSTANT",
"required": true,
"tags": []
},
"resourceId": null,
"resourceUUID": null,
"isBuiltin": false
},
{
"name": "Gamma",
"enabled": true,
"value": {
"value": 5
},
"metadata": {
"dataType": "NUMBER",
"values": null,
"description": "general purpose numeric constant",
"type": "CONSTANT",
"required": true,
"tags": []
},
"resourceId": null,
"resourceUUID": null,
"isBuiltin": false
},
]
Etapa 4: configurar o valor da constante por meio da IU
- Na página Configuração , na guia Dispositivos , selecione um tipo de dispositivo e clique em Configurar tipo de dispositivo..
- Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
- Para a restrição
delay, clique no ícone Editar. - Atribua um valor de 2 e clique em Salvar.
Etapa 5: referenciar a constante em uma expressão
- Na guia Dados , clique em Criar métrica
- Selecione a função
PythonExpressionno catálogo. - Configure o escopo e, em seguida, clique em Avançar.
- Insira ou cole na expressão a seguir:
df['distance']*c['delay'] - Clique em Avançar.
- Especifique
distance_adjusted_by_factorcomo uma saída - Clique em Criar.
- Visualize os novos dados da métrica
distance_adjusted_by_factor.
Aguarde até 5 minutos para que o Maximo Monitor avalie a expressão em relação aos dados de amostra.
Etapas para atualizar, reverter e excluir valores constantes
Conclua estas etapas para atualizar, reverter valores para constantes ou excluir uma constante
Atualizar o valor padrão global
- Na página Setup (Configuração), na guia Devices (Dispositivos ), selecione um tipo de dispositivo e clique nele.
- Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
- Na caixa de diálogo Constants (Constantes ), passe o mouse sobre a constante, selecione mais ações e, em seguida, escolha Change global default value (Alterar valor padrão global )
- Atribua um valor e clique em Save (Salvar ).
Atualizar as constantes de nível de recurso
- Na página Setup (Configuração), na guia Devices (Dispositivos ), selecione um tipo de dispositivo e clique nele.
- Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
- Na caixa de diálogo Constants (Constantes ), passe o mouse sobre a constante e selecione Edit
- Atribua um valor e clique em Save (Salvar ).
Reverter a constante de nível de recurso para o valor padrão global
- Na página Setup (Configuração), na guia Devices (Dispositivos ), selecione um tipo de dispositivo e clique nele.
- Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
- Na caixa de diálogo Constants (Constantes ), passe o mouse sobre a constante e selecione Edit
- Escolha a opção Reverter para o valor padrão global.
- Selecione Revert para confirmar sua escolha.
Etapa opcional: Cancelar o registro da constante
Escreva um script unregister_constant.py e execute-o. O cancelamento do registro da constante afeta qualquer cálculo que a utilize.
#Import packages and libraries
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
import pandas as pd
import json
#Import these classes from IoT Functions
from iotfunctions.db import Database
from iotfunctions.ui import UISingle,UIMulti
#Connect to the Maximo Monitor
with open('credentials_as.json', encoding='utf-8') as F:
credentials = json.loads(F.read())
db_schema = None
db = Database(credentials=credentials)
#Connect to the Maximo Monitor
db = Database(credentials = credentials)
#Unregister the constant using the database object
db.unregister_constants(['delay'])
Etapa opcional: Excluir a constante de nível de recurso ou de nível global
- Na página Setup (Configuração), na guia Devices (Dispositivos ), selecione um tipo de dispositivo e clique nele.
- Clique no ícone Configurar tipo de dispositivo e, em seguida, selecione Gerenciar restrições..
- Na caixa de diálogo Constants (Constantes ), passe o mouse sobre a constante, selecione mais ações e, em seguida, escolha Delete constant (Excluir constante )
- Selecione Remove para confirmar sua escolha.