En el siguiente artículo abordaremos la
configuración del Maximo Integration Framework para importar datos de
medidores, como por ejemplo los generados por un sistema SCADA.
Antes de empezar, quizás sea conveniente
una pequeña introducción sobre los sistemas SCADA.
SCADA es un acrónimo de Supervisory Control
And Data Acquisition, que en español se puede traducir
como Supervisión, Control y Adquisión de Datos. Es un software que permite
controlar y supervisar procesos industriales a distancia.
En nuestro día a día nos podemos encontrar
con sistemas más o menos sofisticados, algunas tipologías que nos podemos
encontrar son:
·
Sistemas
que generan datos de medidores o sensores
·
Sistemas
que generan datos de medidores o sensores y los correlan.
·
Sistemas
que generan datos de medidores o sensores, los correlan y cuentan con reglas
para determinar problemas, generar alarmas….
Maximo se adapta a cualquiera de estos
escenarios, en aquellos casos en los que podamos encontrarnos con las
denominadas “tormentas de eventos” es necesario introducir un correlador de
eventos como IBM Netcool antes de importar los datos en Maximo.
Tras esta breve introducción, nos
centraremos en el verdadero objeto de este articulo, configurar el Maximo
Integration Framework para importar medidores.
|
El siguiente ejemplo parte de las
siguientes premisas:
- Tenemos
un activo llamado BR_ROBOT,
de brazo robótico. Que tiene configurados dos medidores, uno que mide
temperatura y otro humedad.
- Los
medidores generan datos en texto plano, y con compatibilidad UTF-8.
- Los
valores de medidores se importan a una tabla temporal, por lo que no
tiene sentido exportar los mismos, usando la configuración que aquí se
muestra.
|
Los pasos que debemos dar son:
1.
Crear
una Estructura de Objeto - Object
Structure
2.
Crear
un Punto Final - End Point
3.
Crear
un Servicio Empresarial - Enterprise Service
4.
Crear
un Sistema Externo - External System
|
|
|
1. Crear una Estructura de Objeto - Object Structure
Para crearla iremos a Integración – Estructuras de Objeto.
|
Buscamos la estructura de objeto MXMETERDATA
Y la
duplicamos.
|
BUENA PRACTICA – No modificar lo que viene con
el producto, especialmente aquello que empiece por MX. Lo que debemos hacer,
es duplicarlo y renombrarlo quitando el prefijo MX , sustituyéndolo por otro
que nos indique que se ha cambiado. En este ejemplo se sustituye MX por IBM
|
La renombramos, según se recomienda en
las Buenas Prácticas, a IBMMETERDATA.
Y seleccionamos la opción Support Flat Structure.
|
IMPORTANTE – Este último paso, suele ser el que más habitualmente
nos olvidamos de marcar. Si no lo hacemos el fichero a importar deberá ser
XML
|
|
Seguidamente revisamos cuales son los
campos que podríamos incluir en nuestro fichero de importación.
Para eso vamos a Seleccionar Acción – Campos Excluidos / Incluidos
|
Podemos
comprobar que en nuestro caso, todos ellos son No-persistentes
Para facilitar luego el trabajo, resulta
conveniente descargar la lista de los mismos
Por ultimo salvamos la Estructura de
Objeto
|
2. Creamos un Punto Final - End Point
En nuestro caso creamos un Punto Fianl
para ficheros planos.
Como Maximo trae ya uno de serie: MXFLATFILE,
lo cargamos para después duplicarlo.
Lo duplicamos y lo renombramos como IBMFLATFILE
Rellenamos el directorio desde el cual
importaremos los ficheros, en nuestro ejemplo: C:\Meters
Y pondremos que usaremos como
delimitadores en aquellos textos que tengan espacios, en nuestro ejemplo comillas.
|
3. Creamos el Servicio Empresarial - Enterprise Service
Para hacerlo, volvemos a usar uno que
viene ya con Maximo: MXMETERInterface
Lo duplicamos y renombramos como IBMMETERINTERFACE , después los
salvamos.
No se nos debe olvidar cambiar el valor
de la Estructura de Objeto.
Al duplicar tendremos MXMETERDATA, y
deberemos poner IBMMETERDATA.
|
4. Creamos el Sistema Externo - External
System
Creamos un nuevo Sistema Externo, y le
ponemos de nombre: IBMEXTSCADA
Lo rellenamos con los valores siguientes:
Sistema - System
|
IBMEXTSCADA
|
Punto Final
- End Point
|
IBMFLATFILE
|
Outbound
Sequential Queue
|
jms/máximo/int/queues/sqout
|
Inbound
Sequential Queue
|
jms/máximo/int/queues/sqin
|
Inbound
Continuousal Queue
|
jms/máximo/int/queues/cqin
|
Enabled
|
Checked
|
Luego activamos el mismo.
Luego vamos a la solapa de Servicios
Empresariales - Enterprise Services y
añadimos el que hemos creado en un paso previo: IBMMETERINTERFACE.
|
Lo activamos y salvamos.
Llegados a este punto debemos crear un
fichero para testear la importación.
Para crear el mismo seleccionaremos los
campos que nos interesan, de la lista de los mismos que descargamos en el
paso 1 durante la creación de la Estructura de Objeto.
Una vez elegidos, formatearemos el
fichero de la siguiente forma:
Línea 1
|
External_System_name, Enterprise_Service_Name,,Acronimo_Language_Base
|
Línea 2
|
Campos seleccionados
|
Línea 3
|
Valores
|
En nuestro caso, el fichero es el
siguiente:
IBMEXTSCADA,IBMMETERinterface,,EN
ASSETNUM,INSPECTOR,METERNAME,NEWREADING,NEWREADINGDATE,SITEID
BR_ROBOT,WILSON,TEMP,21,2013-02-07T10:01:10,BEDFORD
BR_ROBOT,WILSON,HUM,65,2013-02-07T10:01:10,BEDFORD
|
Seguidamente hacemos un test de
importación:
Si hemos hecho algo incorrecto,
tendremos un mensaje semejante a este:
Si no nos dira que la imprtación ha finalizado
correctamente.
Cuando esto ocurra, estaremos
listos para importar el fichero.
Tras la importación,
debemos comprobar que los datos se han añadido, en nuestro caso iremos al
activo BR_ROBOT y lo comprobaremos, elegiendo: Seleccionar acción – Administrar historial de lecturas de medidores.
|
|
|