SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores
utilizados en la extracción de petróleo En este documento se da a conocer la forma como se cumplieron los objetivos propuestos
inicialmente, dada la estructura del prototipo del sistema experto, su construcción y la información
recolectada y estudiada. Se describen los módulos que conforman el sistema experto, como se
implementaron y sus especificaciones. Se incluyen las bases que se tuvieron en cuenta para su
construcción, las características del programa utilizado y la adquisición de la información que lo
alimenta.
1
SISTEMA EXPERTO EoS: GESTIÓN DE FALLAS CON DIAGNÓSTICO EXPERTO PARA TURBOCOMPRESORES UTILIZADOS EN LA
EXTRACCIÓN DE PETRÓLEO
VIVIANA ESPINOSA ROJAS GINA PAOLA PULIDO URIZA
Trabajo de grado para optar por el título de Ingeniero Electrónico
Director Ingeniero Adolfo León Recio Vélez M.Sc
PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA, DEPARTAMENTO DE ELECTRÓNICA
BOGOTÁ, D. C. 2004
2
ARTICULO 23 DE LA RESOLUCIÓN No 13 DE JUNIO DE 1946
"La universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus
proyectos de grado.
Sólo velará porque no se publique nada contrario al dogma y la moral católica y porque los trabajos
no contengan ataques o polémicas puramente personales. Antes bien, que se vea en ellos el anhelo
de buscar la verdad y la justicia".
3
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERÍA
CARRERA DE INGENIERÍA ELECTRÓNICA
RECTOR MAGNÍFICO: R. P. GERARDO REMOLINA VARGAS, S. J.
DECANO ACADÉMICO: ING. ROBERTO ENRIQUE MONTOYA VILLA
DECANO DEL MEDIO UNIVERSITARIO: R. P. ANTONIO JOSÉ SARMIENTO NOVA, S. J.
DIRECTOR DE CARRERA: ING. JUAN CARLOS GIRALDO CARVAJAL
DIRECTOR DEL PROYECTO: ING. ADOLFO LEÓN RECIO VÉLEZ M.Sc
4
A Dios, a mi papá Roberto, mi mamá Flor María y mi hermano Juancho, porque siempre estuvieron
a mi lado incondicionalmente y me brindaron la fortaleza para poder culminar con éxito este
proyecto.
VIVIANA ESPINOSA ROJAS
5
AGRADECIMIENTOS
Antes que nada, gracias a Dios por la oportunidad que nos brindo.
En una larga lista de agradecimientos quiero resaltar el apoyo de mis padres y hermanas quienes
fueron incondicionales en el camino que recorrí durante el desarrollo de este trabajo.
A Viviana, mi compañera y AMIGA, por los momentos difíciles y gratificantes que pasamos
desarrollando este trabajo y por su incondicional amistad y apoyo.
A BP Exploration Company Colombia Ltda y Equipo de Servicios Petroleros Ltda por el apoyo que
nos brindó en la realización de este trabajo, en especial al Ingeniero Gabriel Combariza y al
Ingeniero Carlos Olarte quienes creyeron en nosotras. Gracias al equipo de Cusiana que nos
colaboró en la elaboración de este proyecto y al tiempo que nos dedicaron en sacarlo adelante, en
especial al Ingeniero Rubén Soler y al Ingeniero Oscar Pérez.
Gracias a Cesar Bustacara por su tiempo, dedicación, paciencia y disponibilidad por ayudarnos y
colaborarnos cuando más lo necesitábamos, y a Jose Fernando Vega por su disposición y ayuda. A
nuestro director, Adolfo Recio, gracias por los ánimos y la asesoría que nos brindó, y a Alejandro
Forero, por su asesoria, dedicación y compromiso con nuestro trabajo.
GINA PAOLA PULIDO URIZA
6
La elaboración de este trabajo de grado fue posible gracias al apoyo incondicional de mi papá, mi
mamá y mi hermano. Dios fue mi guía en todo momento y le agradezco a Él poder culminar con
éxito este trabajo de grado.
Agradezco a nuestro director de trabajo de grado el Ingeniero Electrónico Adolfo León Recio, por su
tiempo y dedicación, a nuestro asesor el Ingeniero Electrónico Alejandro Forero por sus valiosos
aportes y ayuda, al profesor Cesar Bustacara por su apoyo y consejo incondicional.
Le doy mi más profundo a agradecimiento a Felipe Bayon, Gerente de Unidad de Desempeño de
BP, y a los ingenieros de BP Gabriel Combariza y Carlos Olarte quienes creyeron en nosotras y en
nuestra propuesta y aceptaron desarrollar este proyecto para su empresa.
No hubiera sido posible elaborar este trabajo de grado sin la ayuda y los conocimientos de los
Ingenieros de Control de Equipo de Servicios Petroleros, en Cusiana, Rubén Soler y Oscar Pérez,
quienes siempre estuvieron prestos a colaborarnos y son parte del desarrollo de este proyecto, a
ellos muchas gracias.
Finalmente agradezco a mi compañera de Trabajo de grado y mi mejor amiga Gina Pulido y a todos
aquellos que tal vez no nombro pero nos tendieron su mano para hacer posible que pudiéramos
terminar con éxito nuestro proyecto.
VIVIANA ESPINOSA ROJAS
7
TABLA DE CONTENIDO
TABLA DE CONTENIDO ...................................................................................... 7 LISTA DE FIGURAS............................................................................................... 8 LISTA DE ANEXOS ................................................................................................ 8 INTRODUCCIÓN ..................................................................................................... 9 1. MARCO TEÓRICO............................................................................................. 11 2. ESPECIFICACIONES......................................................................................... 12 2.1 REQUERIMIENTOS DEL SISTEMA EXPERTO EoS ................................. 12 2.2 ENTRADAS Y SALIDAS DEL SISTEMA.................................................... 13 2.3 MÓDULOS DEL SISTEMA EXPERTO EoS ................................................ 14 2.3.1 Módulo de Filtraje........................................................................................ 16 2.3.2 Módulo de Captura de Datos ....................................................................... 16 2.3.3 Módulo de Base de Hechos.......................................................................... 16 2.3.4 Módulo de Base del Conocimiento .............................................................. 17 2.3.5 Módulo del Mecanismo de Inferencia.......................................................... 17 2.3.6 Módulo de Explicación ................................................................................ 17 2.3.7 Módulo de Interfaz Gráfica.......................................................................... 18 3. DESARROLLO ................................................................................................... 19 3.1 MÓDULO / FASE DE FILTRAJE.................................................................. 20 3.2 MÓDULO / FASE DE CAPTURA DE DATOS............................................. 22 3.3 MÓDULO / FASE DE BASE DE HECHOS .................................................. 23 3.4 MÓDULO / FASE DE BASE DEL CONOCIMIENTO ................................. 28 3.5 MÓDULO / FASE DE MECANISMO DE INFERENCIA ............................ 30 3.6 MÓDULO / FASE DE EXPLICACIÓN ......................................................... 33 3.7 MÓDULO / FASE DE INTERFAZ GRÁFICA .............................................. 35 4. ANÁLISIS DE RESULTADOS .......................................................................... 37 4.1 ALCANCE DEL SISTEMA EXPERTO EoS ................................................. 37 4.2 HERRAMIENTAS DE SOFTWARE UTILIZADAS..................................... 39 4.3 DESEMPEÑO DEL PROGRAMA DESARROLLADO EN CLIPS.............. 40 4.4 FUNCIONAMIENTO DE LA INTERFAZ GRÁFICA ELABORADA EN VISUAL BASIC.NET ................................................................................................. 41 4.5 RESULTADOS DE LA COMPARACIÓN DEL PROCESO REALIZADO ANTES Y REALIZADO AHORA.............................................................................. 42 4.6 FACTIBILIDAD DE LA APLICACIÓN DE LOS CONCEPTOS DE GESTIÓN DE FALLAS EN EL SISTEMA EXPERTO EoS ..................................... 45 4.7 ANÁLISIS DE COSTOS................................................................................. 47 5. CONCLUSIONES ............................................................................................... 50 6. GLOSARIO ......................................................................................................... 52 BIBLIOGRAFÍA ..................................................................................................... 58
8
LISTA DE FIGURAS
Figura 1: Archivo de Entrada del SISTEMA EXPERTO EoS.......................................................... 13 Figura 2: Esquema de entradas y salidas del SISTEMA EXPERTO EoS......................................... 14 Figura 3: Diagrama de flujo del SISTEMA EXPERTO EoS. .......................................................... 15 Figura 4. Esquema de comparación y archivos resultado cuando el SISTEMA EXPERTO EoS realiza el filtraje de las alarmas............................................................................................... 22 Figura 5.Estructura de programación de CLIPS......................................................................... 26 Figura 6 Fragmento de un Árbol de Conocimiento utilizado en la elaboración del SISTEMA EXPERTO EoS. ...................................................................................................................... 29 Figura 7: Pantalla principal del SISTEMA EXPERTO EoS. ............................................................ 35
LISTA DE ANEXOS
ANEXO A: TEORÍA DE GESTIÓN ANEXO B: PETRÓLEO Y TURBINAS ANEXO C: SISTEMAS EXPERTOS ANEXO D: ÁRBOLES DE CONOCIMIENTO ANEXO E: LICENCIA DE FUNCIONAMIENTO DE CLIPS ANEXO F: CARTAS PRESENTADAS A EQUIPO DE SERVICIOS PETROLEROS LTDA ANEXO G: REPORTES EoS
9
INTRODUCCIÓN
Dentro de las principales necesidades de las empresas petroleras está el mantener constante la
producción de petróleo en sus yacimientos, puesto que una parada en la producción representa
grandes pérdidas de dinero. Para BP Exploration Company Colombia Ltda1 y Equipo de Servicios
Petroleros Ltda2 los turbocompresores resultan ser uno de los equipos más importantes para la
inyección de gas al pozo dentro del proceso de extracción de petróleo, ya que si un
turbocompresor falla, la producción de crudo se interrumpe generando pérdidas de producción
y dinero, hasta que el problema sea solucionado y el turbocompresor pueda operar nuevamente
en condiciones normales. Por ello, BP Exploration Company Colombia Ltda, siendo una empresa
líder en la extracción de petróleo, encuentra interesante disponer de un mecanismo que
relacione y analice fallas para hacer más eficiente, rápida y menos dispendiosa la interpretación
manual de la información de los eventos cuando ocurre una falla en alguno de los
turbocompresores, y de esta forma facilitar al ingeniero experto en fallas la valoración del
problema y el diagnóstico de las causas de las mismas, proporcionando soluciones en menor
tiempo con el fin de restablecer el proceso lo antes posible.
Hasta hace unos meses, cuando ocurría una falla en alguno de los turbocompresores de BP
Exploration Company Colombia Ltda el proceso se debía detener, e inmediatamente se
analizaban manualmente el listado de alarmas de falla relacionadas con el equipo, con lo que el
ingeniero experto en fallas realizaba una valoración del problema, diagnosticaba sus causas y
proponía soluciones, con el fin de restablecer el proceso lo antes posible. Sin embargo, esta
interpretación manual de la información podía ser más eficiente, rápida y menos dispendiosa
para la persona experta si disponía de un mecanismo práctico que relacionara y analizara fallas,
facilitando la valoración del problema y el diagnóstico de las causas de la falla, y así
solucionarlas en menos tiempo para restablecer el proceso lo antes posible. Para atender este
problema, se diseñó un prototipo de un sistema experto que diagnostica las causas de las fallas
que se presentan en los turbocompresores que intervienen en el proceso de inyección de gas
de BP Exploration Company Colombia LTDA en Cusiana, y las presenta al usuario por medio de
una interfaz gráfica.
1 BP Exploration Company Colombia Ltda. es la empresa líder en la extracción de petróleo de Colombia. Sus yacimientos petroleros se encuentran en el Casanare, y el principal de ellos es el CPF (Central Production Facilities),) de Cusiana. 2 Equipo de Servicios Petroleros Ltda. es una empresa de servicios de la industria de producción de petróleo, particularmente de BP Exploration Company Colombia Ltda.
10
Este prototipo de sistema experto, denominado SISTEMA EXPERTO EoS, resuelve problemas
como un especialista humano y permite emular por medio de un sistema de cómputo la
habilidad de toma de decisiones mediante relaciones, según los indicadores de alarmas que
intervienen en el proceso y las respuestas de los usuarios durante la ejecución del programa. El
SISTEMA EXPERTO EoS sigue los conceptos de la teoría de Gestión de Fallas3 los cuales son la
base para justificar la construcción y desarrollo de este sistema experto.
Se espera que el SISTEMA EXPERTO EoS sea una muestra para que BP Exploration Company
Colombia Ltda, junto con su outsourcing Equipo de Servicios Petroleros Ltda evalúen la
factibilidad de posteriores desarrollos que extiendan el alcance del SISTEMA EXPERTO EoS y
puedan utilizarse para un número elevado de equipos.
El desarrollo del SISTEMA EXPERTO EoS, se realizó como trabajo de grado titulado “Gestión
de fallas con diagnóstico experto para turbocompresores utilizados en la extracción
de petróleo”, por las Ingenieras Electrónicas Viviana Espinosa Rojas y Gina Paola Pulido Uriza,
de la Pontificia Universidad Javeriana. Se desarrolló en las empresas “BP Exploration Company
Colombia Ltda” Y “Equipo De Servicios Petroleros Ltda” bajo el conocimiento, asesoría y
requerimientos del Ingeniero Carlos Olarte y el Ingeniero Rubén Soler. Su instalación se realizó
en BP Exploration Company Colombia Ltda en Cusiana, Casanare en octubre de 2004.
En este documento se da a conocer la forma como se cumplieron los objetivos propuestos
inicialmente, dada la estructura del prototipo del sistema experto, su construcción y la
información recolectada y estudiada, así como los aportes de los ingenieros expertos. Se
describen los módulos que conforman el sistema experto, como se implementaron, sus
especificaciones y como es la interacción con la interfaz grafica. Se incluye, las bases que se
tuvieron en cuenta para construir el sistema experto, las características del programa utilizado y
la adquisición de la información que lo alimenta. Se expone una descripción del funcionamiento
de los turbocompresores en el proceso de extracción de petróleo, se explican los conceptos
principales de la teoría de gestión de fallas y se evalúa su aplicación en procesos petroleros,
basados en las pruebas realizadas en Cusiana. Como complemento a la información que se
encuentra en este documento, el SISTEMA EXPERTO EoS cuenta con el Manual de Usuario, en
el que se detalla el modo de uso y las funcionalidades del sistema; el Manual Técnico de
Usuario, el cual incluye la estructura de programación y modo de alimentar el sistema experto,
y el Código de programación del SISTEMA EXPERTO EoS, en el cual se encuentra todo el código
fuente del programa.
3 Gestión de Fallas: Para más información remítase al Anexo A de este documento.
11
MARCO TEÓRICO
Los temas que sirvieron como base teórica al SISTEMA EXPERTO EoS y fueron punto de partida
para su desarrollo son:
Teoría de Gestión: Se presentan algunos de los conceptos de Gestión de Red, que
están definidos para el sector de las telecomunicaciones pero que son válidos en otros
sectores y tipos de empresas4 como lo es la petrolera, adaptando los conceptos a
aplicaciones específicas. Ver Anexo A de este documento.
Petróleo y Turbocompresores: Se refiere a las generalidades del proceso de
extracción de petróleo utilizado por BP Exploration Company Colombia Ltda en Cusiana,
y la importancia de los turbocompresores dentro del proceso. Ver Anexo B de este
documento.
Sistemas Expertos: Base teórica, componentes y fundamentación de los sistemas
expertos para el desarrollo del SISTEMA EXPERTO EoS. Ver Anexo C de este
documento.
La comprensión y manejo de estos temas es necesaria para entender la información que
contiene este documento.
4 Tomado de TeleManagement Forum Telecom Operations Map, NMF, GB910.
12
ESPECIFICACIONES
1.1.1. REQUERIMIENTOS DEL SISTEMA EXPERTO EOS
El SISTEMA EXPERTO EoS está soportado bajo ambiente Windows, por lo tanto para su
correcta ejecución se necesita un computador personal con las siguientes características
mínimas:
Hardware: Procesador Pentium II® o superior.
RAM: 128 MB o superior.
Disco duro: 12 GB o superior.
Software: Windows 98 o superior.
CLIPS.5
El SISTEMA EXPERTO EoS, en su composición, está dividido en dos programas:
1. Interfaz gráfica: Es el programa con el que el usuario interactúa, y donde se
muestra la información de interés para éste. La interfaz gráfica la comparte con el
Sistema de Captura y Filtraje 6 y está desarrollada en Visual Basic.NET 6.0.
2. CLIPS: Es un programa que trabaja de manera regular y sincrónica con la interfaz
gráfica. Realiza el proceso de inferencia y genera la información que se muestra al
usuario.
Para el desarrollo del SISTEMA EXPERTO EoS se utilizó la versión 6.21 de CLIPS del 15
de junio de 2003.
5 Herramienta especializada de software para la elaboración de sistemas expertos. 6 Sistema de Captura y Filtraje: Es el sistema que se encarga de recibir constantemente las alarmas que generan los diferentes equipos que intervienen en el proceso de extracción de petróleo en Cusiana y mostrarlas de manera detallada en pantalla. Las alarmas se reciben por puerto serial y se presentan al usuario utilizando este sistema que fue desarrollado e instalado previamente en el Control Room de Cusiana; donde trabajan de forma coordinada y bajo la misma interfaz gráfica del SISTEMA EXPERTO EoS. Para más información remítase a la sección 2.1 del Manual Técnico de Usuario o a la sección 1.1 del Manual de Usuario.
13
El correcto funcionamiento de cada uno de ellos hace que el SISTEMA EXPERTO EoS trabaje
adecuadamente, de forma que es indispensable que ambos programas se ejecuten
simultáneamente y de manera correcta.
1.1.2. ENTRADAS Y SALIDAS DEL SISTEMA
El SISTEMA EXPERTO EoS tiene como entrada el archivo de texto que genera el Sistema de
Captura y Filtraje cuando ocurre una Alarma de Disparo7. Este archivo lo llamaremos Archivo de
Entrada. Este archivo se denomina ArchivoHyp.Txt y se encuentra en C:\EJERVG.
Figura 1: Archivo de Entrada del SISTEMA EXPERTO EoS.
Las salidas del SISTEMA EXPERTO EoS son:
Las posibles causas que generaron la falla: Causas EoS.
Las posibles recomendaciones correctivas a la falla: Recomendaciones EoS.
La secuencia de pasos realizados por el SISTEMA EXPERTO EoS para generar las demás
salidas: Proceso EoS.
7 Alarma de Disparo: Es la alarma que está directamente relacionada con la parada de un turbocompresor. Para más información, remítase a la sección 1 del Manual de Usuario, o a la sección 2 del Manual Técnico de Usuario.
14
Figura 2: Esquema de entradas y salidas del SISTEMA EXPERTO EoS.
La información adicional que se muestra al usuario es:
Información referente a la Alarma de Disparo: Información de la Alarma de
Disparo.
Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas dadas por
el usuario: Historial de preguntas y respuestas.
Reporte con la información de entrada, salida y adicional. Este reporte se genera en
formato de texto (*.Txt) al culminar el proceso: Reporte EoS.
1.1.3. MÓDULOS DEL SISTEMA EXPERTO EOS
A continuación se describen las especificaciones de cada uno de los siete (7) módulos que
componen el SISTEMA EXPERTO EoS:
Módulo de filtraje
Módulo de Captura
Módulo de Base de Hechos
Módulo de Base del Conocimiento
Módulo de Mecanismo de Inferencia
Módulo de explicación
Módulo de Interfaz Gráfica
El diagrama de flujo se muestra en la Figura 3, y cada uno de los módulos se detalla con un
color diferente.
SISTEMA EXPERTO EoS
Archivo de Entrada: Archivo de texto que genera el Sistema de Captura y Filtraje.
Causas
Recomendaciones
Proceso
15
Figura 3: Diagrama de flujo del SISTEMA EXPERTO EoS.
Son las reglas que contienen el conocimiento especializado suministrado por la persona experta en el dominio, las cuales se representan en Árboles de Conocimiento. Las reglas son:
- Reglas de producción. - Metarreglas. - Reglas con prioridad
BASE DEL CONOCIMIENTO
Información suministrada por el usuario.
Respuesta a las preguntas formuladas por el sistema
experto.
Comparación de patrones de
reglas con hechos
AGENDA
La regla pasa a la agenda.
Las reglas están en orden
según prioridad.
Actualización de la agenda.
Elimina o adiciona.
Dispara reglas por orden de prioridad.
Ejecución de acciones de la consecuencia (Lado derecho) de la regla disparada.
Elimina las reglas ya disparadas.
Nuevas conclusiones durante la ejecución.
MÓDULO DE EXPLICACIÓN.
Almacena las conclusiones intermedias. Al final del proceso las guarda en el archivo Proceso.bin que se encuentra en C:\EJERVG.
Formula preguntas al usuario y le permite indicar la respuesta.
MODULO DE FILTRAJE
Selección y filtraje de las alarmas que se encuentran en el Archivo de Entrada. Se determinan:
- Alarmas de Disparo - Alarmas Secundarias - Otras alarmas.
MÓDULO DE CAPTURA.
Captura las alarmas previamente filtradas, y las ubica en los archivos binarios:
- Primarias.bin - Secundarias.bin,
Ubicados en C:/EJERVG, para que CLIPS y Visual Basic.NET puedan tener acceso a ellas.
ENTRADA AL SISTEMA
Archivo de Entrada: Archivo de texto que genera el Sistema de Captura y Filtraje.
BASE HECHOS.
Lista de alarmas.
Información suministrada por el
usuario.
Conclusiones intermedias de la
ejecución.
Almacena o lee información de interés, ubicada en C;\EJEVG:
- Causas.Txt - Recomendaciones.bin - Pta.bin - Rta.bin - Simulacion.bin
Genera el Reporte EoS.Txt, y lo almacena en la carpeta ReportesEoS
SALIDA DEL SISTEMA
INTERFAZ CON EL USUARIO.
Presenta al usuario: - Causas EoS - Recomendaciones
EoS - Proceso EoS - Información de la
Alarma de Disparo - Historial de preguntas
y respuestas
SALIDA DEL SISTEMA
*ENTRADA AL SISTEMA. *MÓDULO DE FILTRAJE *MÓDULO DE CAPTURA.
*MÓDULO DE EXPLICACIÓN. *INTERFAZ GRÁFICA. *SALIDA DEL SISTEMA.
*BASE DE HECHOS. *BASE DE CONOCIMIENTO. *MECANISMO DE INFERENCIA.
16
1.1.4. MÓDULO DE FILTRAJE
Se encarga de la selección y filtraje de las alarmas que se encuentran en el Archivo de Entrada
y que sirven para identificar y llevar a cabo el proceso de reconocimiento de las causas de la
falla.
Compara los tags8 de las alarmas que encuentran en el Archivo de Entrada, con los de
las del archivo ListaPrimarias.Txt,9 y si existe alguno en común lo almacena en el
archivo Primarias.bin, el cual es un archivo que hace parte del funcionamiento interno
del sistema. Estas alarmas se denominan Alarmas de Disparo.
Compara los tags de las alarmas que encuentran en el Archivo de Entrada, con los de
las del archivo ListaSecundarias.Txt,10 y si existe por lo menos uno en común los
almacena en el archivo Secundarias.bin, el cual es un archivo que hace parte del
funcionamiento interno del sistema. A estas alarmas las denominaremos Alarmas
Secundarias.
Deshecha las alarmas del Archivo de Entrada que no son Alarmas de Disparo ni Alarmas
Secundarias.11
1.1.5. MÓDULO DE CAPTURA DE DATOS
Captura las alarmas previamente filtradas, y las ubica en los archivos binarios
Primarias.bin y Secundarias.bin, ubicados en C:/EJERVG, para que CLIPS y Visual
Basic.NET puedan tener acceso a ellas.
1.1.6. MÓDULO DE BASE DE HECHOS
Se desarrolla sobre el CLIPS y se compone de:
Listado de alarmas que provienen del Módulo de Captura de Datos.
Información suministrada por el usuario durante el proceso de inferencia.
Conclusiones intermedias generadas durante la ejecución.
8 Tag: Código para identificar la instrumentación y variables de un proceso determinado. 9 ListaPrimarias.Txt: Archivo que contiene una lista con todos los tags de Alarmas de Disparo. 10 ListaSecundarias.Txt: Archivo que contiene una lista con todos los tags de Alarmas Secundarias. 11 Para más información remítase a la sección 3.2 del Manual Técnico de Usuario.
17
1.1.7. MÓDULO DE BASE DEL CONOCIMIENTO
Son las reglas que contienen el conocimiento especializado suministrado por la persona experta
en el dominio, las cuales se representan en Árboles de Conocimiento12, y se escriben en
lenguaje de programación directamente sobre Clips. Se compone de:
Reglas de producción: Son las que alimentan la base de conocimiento. Se elaboran
con la información obtenida de los Árboles de Conocimiento construidos por los
ingenieros expertos y los ingenieros del conocimiento.
Metarreglas: Son reglas sobre otras reglas.
Adicionalmente, a algunas de estás reglas se les asignara prioridad con el fin de que se
disparen antes que otras.
1.1.8. MÓDULO DEL MECANISMO DE INFERENCIA
Tiene una Agenda compuesta por la colección de las reglas activadas, las cuales
manejan las prioridades asignadas en el módulo de base de conocimiento.
Opera en ciclos hasta obtener respuesta al análisis de causas de fallas.
De acuerdo con las reglas activadas almacena o lee información de interés de los
archivos Causas.bin, Recomendaciones.bin, Pta.bin, Rta.bin y Simulacion.bin, ubicados
en C;\EJEVG.
Genera un reporte con la información de entrada y salida del sistema. Este reporte se
genera en formato de texto (*.Txt) al culminar el proceso: Reporte EoS.13
1.1.9. MÓDULO DE EXPLICACIÓN
El sistema almacena secuencialmente las conclusiones intermedias del análisis de
causas de falla, con las respectivas hipótesis y recomendaciones, y al final del proceso
las guarda en el archivo Proceso.bin que se encuentra en C:\EJERVG.
12 Para más información remítase al Anexo C de este documento. 13 Reportes EoS: Para más información remítase a la sección 14 del Manual de Usuario.
18
1.1.10. MÓDULO DE INTERFAZ GRÁFICA
La interfaz gráfica está desarrollada en Visual Basic.NET y es la que permite al usuario
interactuar con el sistema.
Permite al usuario ingresar las respuestas correspondientes a las preguntas que el
sistema plantea a través del proceso de análisis.14
El ambiente de trabajo del programa se encuentra en español.
Permite simular eventos de falla, para evaluar los resultados de un conjunto de posibles
alarmas.15
En algunos casos no presenta al usuario las palabras con tildes, para evitar errores de
caligrafía.
Para una correcta visualización, se debe usar una resolución de pantalla de 768 píxeles
máximo.
Permite seleccionar un archivo de texto, para realizar Análisis de Eventos16.
Muestra los resultados intermedios y finales del análisis de causas de la falla, es decir:17
Posibles causas que generaron la falla: Causas EoS.
Posibles recomendaciones correctivas a la falla: Recomendaciones EoS.
Secuencia de pasos realizados por el SISTEMA EXPERTO EoS para generar las demás
salidas: Proceso EoS.
Información referente a la Alarma de Disparo: Información de la Alarma de Disparo.
Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas dadas por
el usuario: Historial de preguntas y respuestas.
14 Para más información remítase a la sección 3.4 del Manual Técnico de Usuario o a la sección 13 del Manual de Usuario. 15 Para más información remítase a la sección 3.7 del Manual Técnico de Usuario o a la sección 7 del Manual de Usuario. 16 Analisis de Eventos: Remítase a la sección 13 del Manual de Usuario. 17 Para más información remítase a las secciones 6, 8, 9, 10 y 11 del Manual de Usuario
19
DESARROLLO
El SISTEMA EXPERTO EoS se desarrolló bajo el lenguaje de programación CLIPS18 debido a que
es una herramienta de software libre19 que se encuentra en Internet, lo cual es importante ya
que se puede desarrollar un producto de buena calidad a un costo razonable. Además ofrece
los elementos básicos de un sistema experto:
Base de hechos y de instancias que corresponden a la memoria global.
Base de conocimiento que contiene las reglas.
Mecanismo de inferencia que controla la ejecución de las reglas.
El contrato de licencia de CLIPS se encuentra en el ANEXO E de este documento.
Para el desarrollo de la interfaz gráfica se utilizó Visual Basic.NET, debido a que varios de los
desarrollos que se encuentran en el Control Room de Cusiana20 están implementados en esta
herramienta de programación, entre ellos el Sistema de Captura y Filtraje21, con el cual el
SISTEMA EXPERTO EoS comparte la interfaz gráfica.
El SISTEMA EXPERTO EoS consta de siete módulos y fases de trabajo que al integrarse
correctamente forman el prototipo del sistema experto que diagnostica causas y propone
recomendaciones a las fallas que se presentan en los turbocompresores que intervienen en el
proceso de inyección de gas al pozo en BP Exploration Company Colombia Ltda en Cusiana, y
los presenta al usuario por medio de la interfaz gráfica.
A continuación se hará una descripción general de cada uno de los módulos y fases que
conforman el sistema, basados en el diagrama de flujo que se muestra en la Figura 3. En cada
uno de los módulos y fases se incluirá una porción del código desarrollado, sin embargo el
18 CLIPS: Para más información remítase al Anexo C de este documento. 19 Software libre: Que no tiene costo para fines educativos y/o empresariales. La licencia de CLIPS se encuentra en el ANEXO E de este documento. 20 Control Room: Es el cuarto de control donde se reportan las alarmas de los equipos que se encuentran en el CPF de Cusiana, Casanare. 21 Sistema de Captura y Filtraje: Es el sistema que se encarga de recibir constantemente las alarmas que generan los diferentes equipos que intervienen en el proceso de extracción de petróleo en Cusiana y mostrarlas de manera detallada en pantalla. El sistema fue desarrollado e instalado previamente en el Control Room de Cusiana; donde trabajan de forma coordinada y bajo la misma interfaz gráfica del SISTEMA EXPERTO EoS. Para más información remítase a la sección 2.1 del Manual Técnico de Usuario o a la sección 1.1 del Manual de Usuario.
20
código completo del SISTEMA EXPERTO EoS se encuentra en el archivo Código de
programación del SISTEMA EXPERTO EoS, que se incluye en el CD del SISTEMA EXPERTO EoS.
1.1.11. MÓDULO / FASE DE FILTRAJE
Se encarga de la selección y filtraje de las alarmas que se encuentran en el Archivo de Entrada
y que sirven para identificar y disparar el proceso de búsqueda de las causas de la falla.
El SISTEMA EXPERTO EoS empieza un proceso cuando se reporta la parada de una turbina, es
decir cuando se crea el archivo ArchivoHyp.Txt,22 o Archivo de Entrada, el cual contiene la
información de la Alarma de Disparo.
Cada uno de los tags de las alarmas que hay en el Archivo de Entrada se compara con la
información que se encuentra en el archivo ListaPrimarias.Txt23, (como se ilustra en el código
siguiente) el cual contiene una lista con todos los tags de Alarmas de Disparo24 que reconoce el
SISTEMA EXPERTO EoS.
…
For J = 0 To ContadorRenglonesVectorListaPrimarias 'Compara cada una de los tags de ArchivoHyp con la lista predeterminada de alarmas primarias, es decir con ListaPrimarias.Txt If UCase(Trim(VectorTodosTagsAlarmas(I))) = UCase(Trim(VectorListaPrimarias(J))) And UCase(Trim(Mid(ContadorEspecial1, 61, 16))) = "ON" Then 'Hace la comparación del TAG de la alarma y del estado ON
…
De igual manera, cada uno de los tags de las alarmas que hay en el Archivo de Entrada se
compara con la información que se encuentra en el archivo ListaSecundarias.Txt25, (como se
ilustra en el código siguiente) el cual contiene una lista con todos los tags de las alarmas que
22 ArchivoHyp.Txt o Archivo de entrada: Al que se refiere la Figura 1 de este documento. 23 ListaPrimarias.Txt se encuentra en C:/EJERVG. 24 Esta lista es creada por el Usuario Experto, y debe coincidir con la información que contiene CLIPS, es decir para cada tag que exista en el archivo ListaPrimarias.Txt, debe existir un programa en CLIPS, con el desarrollo del análisis para hallar las causas de la falla relacionada con ese tag. 25 ListaSecundarias.Txt se encuentra en C:/EJERVG.
21
no son Alarmas de Disparo pero están relacionadas con los turbocompresores, (a las
denominamos “Alarmas secundarias”)26 que reconoce el SISTEMA EXPERTO EoS.27
…
'Compara VectorTodosTagsAlarmas con VectorListaSecundarias, y las que sean iguales las almacena en SECUNDARIAS.BIN For I = 0 To ContadorTagsAlarmasDepuradas ''ContadorRenglonesHyperterminal For J = 0 To ContadorRenglonesVectorListaSecundarias If UCase(Trim(ListaVectorTodosTagsAlarmas2(I))) = UCase(Trim(ListaVectorListaSecundarias(J))) Then 'Hace la comparación sin tener en cuenta espacios ni mayúsculas
…
Las alarmas del Archivo de Entrada que no son Alarmas de Disparo ni Alarmas Secundarias28
NO las tiene en cuenta para el resto del análisis.
A continuación se presenta un esquema de la comparación que el SISTEMA EXPERTO EoS
realiza:
26 Esta lista es creada por el Usuario Experto, y contiene los tags de las alarmas relacionadas con los turbocompresores que intervienen en el proceso de inferencia que realiza CLIPS. 27 La lista con los Tags de las Alarmas de Disparo y las Alarmas Secundarias fue suministrada por los Ingenieros Expertos de Cusiana. 28 Para más información remítase a la sección 3.2 del Manual Técnico de Usuario.
22
Figura 4. Esquema de comparación y archivos resultado cuando el SISTEMA EXPERTO EoS realiza el filtraje de las alarmas.
1.1.12. MÓDULO / FASE DE CAPTURA DE DATOS
De acuerdo con el resultado del Módulo de Filtraje, el sistema captura las alarmas y las ubica en
los archivos binarios Primarias.bin y Secundarias.bin, ubicados en C:/EJERVG para que CLIPS y
Visual Basic.NET puedan tener acceso a ellas; es decir, si la comparación del Archivo de Entrada
con ListaPrimarias.Txt resulta exitosa, se crea un archivo denominado Primarias.bin con el tag
de la alarma en común, como se muestra a continuación.
…
'ATxt1.FEscribirArchivos("c:\ejervg\Primarias.bin", "(" + UCase(Trim(VectorListaPrimarias(J))) + ")") 'Crea un archivo Primarias.bin, donde almacena el tag de la alarma primaria que está en Archivohyp.Txt
…
Si la comparación del Archivo de Entrada con ListaSecuntarias.Txt resulta exitosa, se crea un
archivo denominado Secundarias.bin con los tags de las alarmas en común, como se indica a
continuación.
Archivo de entrada: ArchivoHyp.Txt Contiene la información de las alarmas que se generan cuando ocurre una falla que ocasiona la parada en un turbocompresor. Se especifica la información de las alarmas que sucedieron sesenta (60) minutos antes y un (1) minuto después de la Alarma de Disparo.
ListaPrimarias.Txt: Contiene la lista con todos los tags de Alarmas de Disparo. Esta lista es creada por el Usuario Experto, y debe coincidir con la información que contiene CLIPS.
ListaSecundarias.Txt: Contiene la lista con todos los tags de las Alarmas Secundarias Esta lista es creada por el Usuario Experto, y contiene los tags de las alarmas relacionadas con los turbocompresores que intervienen en el proceso de inferencia que realiza CLIPS.
COMPARACIÓN
Primarias.bin: Contiene el tag de la Alarma de Disparo en común.
Sacundarias.bin: Contiene el tag de la Alarmas Secundarias en común.
23
…
ATxt2.FEscribirArchivos("c:\ejervg\Secundarias.bin", TodosRenglonesSecundariasHyp) 'Crea un archivo Secundarias.bin, donde almacena el tag de las alarmas secundarias que están en Archivohyp.Txt …
En el momento en que CLIPS encuentra en Primarias.bin el tag de una Alarma de Disparo la
ubica en su Base de Hechos y empieza un Proceso de Inferencia: y si el proceso lo requiere,
accede también al archivo Secundarias.bin donde se encuentran las Alarmas Secundarias.
Al finalizar un proceso, es decir cuando CLIPS emite las conclusiones del procedimiento, los
hechos almacenados en la Base de Hechos son borrados, al igual que los archivos Primarias.bin
y Secundarias.bin, de manera el sistema se reinicia quedando en espera de una nueva Alarma
de Disparo.
1.1.13. MÓDULO / FASE DE BASE DE HECHOS
Se desarrolla en CLIPS y se compone del listado de alarmas que provienen del Módulo de
Captura de Datos, de las conclusiones intermedias generadas durante la ejecución del
programa, y de la información suministrada por el usuario durante del proceso de inferencia, es
decir de las respuestas a las preguntas formuladas por el sistema experto.
La lista de alarmas que provienen del Módulo de Captura de Datos se encuentran ubicadas en
los archivos binarios Primarias.bin y Secundarias.bin. CLIPS entiende como un nuevo hecho
cada una de estas alarmas, teniendo presente que dispara un nuevo proceso de análisis sólo
cuando una Alarma de Disparo corresponde al Nodo Raíz de los Árboles de Conocimiento29 que
alimentan el sistema.
Para ello, se definió que cada proceso de análisis se encontraría en CLIPS en un archivo *.CLP
diferente, de manera que el sistema pudiera ser modular y fácil de alimentar30. Así, se
29 Nodo Raíz de los Árboles de Conocimiento: Para más información remítase al Anexo C de este documento. 30 Alimentar el SISTEMA EXPERTO EoS: Agregar información de procesos nuevos para que el sistema sea más completo y robusto. A cargo del Usuario Experto.
24
determinó que el nombre31 de cada archivo relacionado con un Proceso de Inferencia seria el
del tag de la Alarma de Disparo.CLP. Ejemplo: M11-LCLFDEN_ALM.CLP.32
La estructura de programación realizada en CLIPS cuenta con un archivo denominado
PROGRAMAGLOBAL.CLP,33 el cual contiene el código que permite determinar cuál Proceso de
Inferencia debe seguir el SISTEMA EXPERTO EoS para hallar las causas de la falla de acuerdo
con la Alarma de Disparo que haya en Primarias.bin, es decir es donde se escoge el archivo de
código con el nombre del tag de la Alarma de Disparo que está en Primarias.bin.34
Por ejemplo, si la Alarma de Disparo que se activó es M11-PT1801, CLIPS la detecta por medio
de la siguiente regla que se encuentra en el archivo PROGRAMAGLOBAL.CLP:
Donde se observa que, al dispararse la regla debido a la presencia de la alarma (M11-PT1801)
se hace el llamado del archivo ALARMAM11-PT1801.CLP, el cual lleva el nombre de la Alarma
de Disparo, donde se encuentran las primeras reglas para el análisis de las causas de falla.
En CLIPS, los archivos tienen un numero máximo de renglones de código permitido, por lo
tanto, en algunos casos es necesario hacer llamados, desde el archivo con el nombre de la
Alarma de Disparo, a otros archivos de código para que continúen con un proceso determinado.
Estos “archivos de continuación” llevan el nombre del Árbol de Conocimiento al que se asocia la
Alarma de Disparo. Ejemplo: Transmisoresdecampo.CLP y TransmisoresdecampoPARTE2.CLP,
los cuales se nombran de esta manera porque están asociados al árbol “Transmisores de
campo.”35
31 Para más información sobre los nombres de los archivos utilizados en la programación de CLIPS, remítase a la sección 3.3 ó 6.1 del Manual Técnico de Usuario. 32 Ver Figura 5, cuadro azul oscuro. 33 PROGRAMAGLOBAL.CLP se encuentra en C:/EJERVG. 34 Ver Figura 5, cuadro naranja. 35 Ver figura Figura 5, cuadros azul claro.
;*** ARBOL DE TRANSMISORES DE CAMPO: (defrule transmisores ; Se define una regla (declare (salience 20)) ; Se define la prioridad ?a4 <-(M11-PT1801) ;Alarma de disparo => (assert (RESULATADOS(HIPOTESIS"(Transmisores): ALARMA M11-PT1801 . Falla en Transmisores de campo "))) (assert (alarma M11-PT1801)) (batch c:/EJERVG/ALARMAM11-PT1801.CLP) ;Se carga el archivo ALARMAM11-PT1801.CLP ubicado en C:\EJERVG (retract ?a4))
25
Por ejemplo, dentro del código del archivo ALARMAM11-PT1801.CLP se hace el llamado a los
archivos necesarios para proseguir el análisis como se muestra a continuación: (solo si se
supera el número de líneas permitidas de código.)
Como se puede observar, al final del código del archivo ALARMAM11-PT1801.CLP se cargan los
archivos Transmisoresdecampo.CLP y TransmisoresdecampoPARTE2.CLP cuyos nombres hacen
referencia a los Árboles de Estudio asociados con la Alarma de Disparo activada y contienen las
reglas restantes para poder realizar el análisis de causas de falla.
A continuación se presenta la estructura de programación utilizada en CLIPS para desarrollar el
SISTEMA EXPERTO EoS.
;*********A R B O L: TRANSMISORES DE CAMPO ****************** (defglobal ?*var* = 1) ;Se define como global una variable var . . . ;**PREGUNTAS si alarma de transmisores de campo ************* (defrule alarma-transmisores ;Se declara una regla (declare (salience 20)) ;Se define prioridad de la regla ?e1 <- (alarma M11-PT1801) ;Alarma principal de disparo => ... (batch c:/EJERVG/Transmisoresdecampo.CLP) (batch c:/EJERVG/TransmisoresdecampoPARTE2.CLP) ;se carga TransmisoresdecampoPARTE2 el cual es la continuación de Transmisoresdecampo (run)
26
Figura 5.Estructura de programación de CLIPS.
En cada uno de los archivos denominados con el tag de la Alarma de Disparo, o el nombre del
Árbol de Conocimiento asociado, se encuentra el código que permite al SISTEMA EXPERTO EoS
encontrar las causas de falla, es decir es allí donde se realiza verdaderamente el Proceso de
Inferencia.
Las conclusiones intermedias generadas durante la ejecución del programa son hechos que se
originan a partir de la información suministrada por el usuario a través de sus respuestas al
sistema experto y de las Alarmas Secundarias que estén relacionadas con el análisis respectivo.
del usuario, cada una de ellas en un renglón diferente. Ver el código a continuación.
PROGRAMAGLOBAL.CLP: Contiene el código que permite determinar cuál Proceso de Inferencia debe seguir el SISTEMA EXPERTO EoS. Ejemplo: M12-L45FTT_ALM ó PP-L28FDB4 ó M11-LCLFDEN_ALM ó M11-L3NZFLT
Primarias.bin: Contiene el tag de la Alarma de Disparo en común entre ArchivoHyp.Txt y ListaPrimarias.Txt. Ejemplo: M11-LCLFDEN_ALM
M11-LCLFDEN_ALM.CLP: Contiene el código del Proceso de Inferencia asociado con esa Alarma de Disparo. M11-LCLFDEN_ALM está asociado con el Árbol de Conocimiento denominado Transmisores de campo
Transmisoresdecampo.CLP: Contiene la continuación del código del Proceso de Inferencia asociado con la Alarma de Disparo M11-LCLFDEN_ALM.
TransmisoresdecampoPARTE2.CLP: Contiene la continuación del código del Proceso de Inferencia asociado con la Alarma de Disparo M11-LCLFDEN_ALM.
27
Para realizar preguntas al usuario y presentarlas en la interfaz gráfica, CLIPS crea un archivo
denominado Pta.bin, en el que almacena la pregunta que se va a formular y las posibles
respuestas por parte
CLIPS queda en espera de alguna respuesta para continuar con el proceso, mientras la interfaz
gráfica lee la información del archivo de texto y la muestra al usuario.
…
'Es el Timer que pregunta constantemente si hay alguna PREGUNTA en Pta.bin para mostrarsela al usuario, sino sigue preguntando. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick FLeerPta() 'Lee el archivo 'Pta.bin', y si No está vacío muestra la pregunta en el Form2.
…
Cuando el usuario selecciona la respuesta correcta el sistema la almacena en un archivo
denominado Rta.bin, como se indica a continuación.
…
Rta1.FEscribirArchivos("c:\ejervg\Rta.bin", BotonRta1.Text) 'Escriba en el archivo Rta.bin, el rotulo del botón, para que es usuario pueda responder
…
El archivo Rta.bin es leído por CLIPS de manera que le permite continuar con el proceso.
(open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " Led Frontal en System Monitor Apagado ?"crlf"SI"crlf"NO"crlf) ;Se escriba la pregunta y sus posibles respuestas (close pregunta)
28
El número de consultas realizadas por el SISTEMA EXPERTO EoS para verificar si existen
Alarmas Secundarias y el número de preguntas realizadas al usuario, depende de la magnitud y
complejidad del Árbol de Conocimiento relacionado con la Alarma de Disparo.
1.1.14. MÓDULO / FASE DE BASE DEL CONOCIMIENTO
En este módulo se almacenan las reglas que contienen el conocimiento especializado,
suministrado por la persona experta, las cuales se representan en Árboles de Conocimiento y se
escriben en lenguaje de programación directamente sobre Clips.
Los Árboles de Conocimiento son estructuras jerárquicas de datos conformadas por nodos que
almacenan conocimiento y ramas que conectan de manera lógica los nodos. Son
representaciones gráficas y lógicas del Proceso de Inferencia que realiza el SISTEMA EXPERTO
EoS con cada Alarma de Disparo para hallar las causas de la falla. Se utilizan para representar
el conocimiento de los expertos en fallas de BP Exploration Company Colombia Ltda. y Equipo
de Servicios Petroleros Ltda.
Para ello, tienen en medio de su cuerpo preguntas, posibles respuestas y modos de actuación;
de acuerdo con el análisis y estado de los equipos relacionados con los turbocompresores. Estas
preguntas se realizan en medio de la ejecución del programa usando la interfaz gráfica y son un
insumo para llegar a las posibles causas de fallas.
... do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*aux2* (read respuesta)) ;Asigna a aux2 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*aux2* EOF) ;Si no se encontró respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperándola else (remove "c:/EJERVG/Rta.bin") ;Si encontró respuesta tómela como nuevo hecho (monitor *aux2*: donde aux2=respuesta usuario = (SI/NO))y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) ...
29
Los Árboles de Conocimiento utilizados en el desarrollo del SISTEMA EXPERTO EoS se
encuentran en el Anexo D de este documento.
Figura 6 Fragmento de un Árbol de Conocimiento utilizado en la elaboración del SISTEMA EXPERTO EoS.
Los especialistas en el tema fueron los responsables de suministrar la información para la
creación de los Árboles de Conocimiento de manera que tuvieran relaciones bien definidas,
explicadas y con validez.
Las reglas que conforman la base del conocimiento se expresan en un pseudo código
equivalente al formato SI…ENTONCES (IF…THEN.)
A continuación se muestra un ejemplo de una regla usando el tag de la alarma utilizada en el
programa:
REGLA: Alta-temperatura
SI (IF)…Se presenta alarma secundaria (Tag: M12-L26BA1H) de alta temperatura
30
ENTONCES (THEN)…Escriba como antecedente en el archivo correspondiente:
Presencia de alta temperatura
El código que corresponde a la regla anterior es:
Por defecto, las reglas en CLIPS tienen la misma prioridad, por lo cual en algunos casos es
necesario definir su prioridad a medida que se elaboran en la Base de Conocimiento, para
decidir cuál regla disparar y evitar conflictos debido a activaciones simultáneas de reglas con
igual prioridad, cuando alguna regla es más relevante que otra. Para ello, se usa la instrucción
Salience en CLIPS, como se muestra a continuación.
Las reglas se elaboraron siguiendo los Árboles de Conocimiento detalladamente y teniendo en
cuenta los diversos casos de relaciones entre reglas que se pueden presentar en cada análisis
en particular.
1.1.15. MÓDULO / FASE DE MECANISMO DE INFERENCIA
Es el programa que controla el proceso de razonamiento que sigue el sistema experto,
recorriendo la Base del Conocimiento y haciendo uso de los datos suministrados por la Base de
Hechos para alcanzar una solución, es decir, hace inferencias al decidir cuales reglas satisfacen
los hechos para dar el diagnóstico de la causa de la falla. El lenguaje que se utiliza para el
(defrule alta-temperatura ;Regla para (MXX-L26BA1H)
?f31 <- (M11-L26BA1H) ;Si alarma de alta temperatura
=>
(assert (RESULTADO(HIPOTESIS(Detección de fuego):ALARMA M11-L26BA1H. Alta Temperatura"))) ; Coloque en archivo correspondiente a los antecedentes: disparo de la alarma M11-L26BA1H y el antecedente de alta temperatura
(retract ?f31 ))
(defrule salir
(declare (salience 30)) ;Prioridad 30 (mayor que las reglas que por defecto tienen prioridad 0)
?salir <-(SALIR) ;Si Usuario habilita la opción SALIR
=>
(retract ?salir) ; Se elimina el hecho salir de la base de hechos
31
desarrollo del sistema experto es CLIPS ya que cumple con las características necesarias para
poder implementar el SISTEMA EXPERTO EoS.
El mecanismo de inferencia opera en ciclos, es decir, ejecuta repetitivamente un grupo de
tareas hasta que ciertos criterios causen el cese de la ejecución. Las tareas de un ciclo típico
para CLIPS, son las mismas que se usan en el SISTEMA EXPERTO EoS:
Resolución de conflicto: Si hay activaciones de reglas, entonces selecciona aquella
con la prioridad más alta.
Acto: Ejecuta en forma secuencial las acciones de las consecuencias de la activación de
la regla seleccionada. Se elimina de la Agenda36 las reglas activadas que se acaban de
disparar. Aquellas activaciones que cambian la Base de Hechos tienen un efecto
inmediato en este ciclo.
Correspondencia: Actualiza la Agenda revisando si las condiciones de cualquier regla
están satisfechas, de ser así, activa la regla correspondiente y elimina las acciones de
las reglas que no se satisfacen.
Aceptar las órdenes de usuario: El sistema experto interactúa con el usuario para
que éste le suministre la información requerida en caso de que sea necesario para
continuar con el ciclo de ejecución. En caso de que el ciclo haya finalizado no habrá
necesidad de introducir información en el sistema experto por lo cual la interfaz con el
usuario muestra los resultados obtenidos.
De acuerdo con las reglas activadas, CLIPS va almacenando en Deftemplates37 la información
referente a las Causas y Recomendaciones. Al final del proceso, esta información se envía a
archivos binarios denominados Causas.bin y Recomendaciones.bin, respectivamente, como se
muestra a continuación
36 Agenda: Está compuesta por la colección de las reglas activadas, las cuales tendrán prioridades asignadas para que se disparen de acuerdo su prioridad. 37 Deftemplates: Son arreglos donde se almacena información, como matrices de datos. Para mas información remítase a los manuales de CLIPS que se adjuntan en el CD de instalación del SISTEMA EXPERTO EoS: Guía del Usuario, Guía Básica de programación y Guía Avanzada de Programación.
32
Para mostrar estos resultados al usuario, la interfaz gráfica lee la información que se encuentra
en los archivos de texto y la presenta al usuario en su ventana principal. Ver código a
continuación.
Durante el Proceso de Inferencia, el SISTEMA EXPERTO EoS almacena información y al
terminar genera automáticamente un REPORTE en formato texto (*.Txt) en el cual se detalla
toda la información relacionada con la Alarma de Disparo y el proceso ejecutado.
El Reporte EoS se almacena en la carpeta Reportes SisExpEOS y se compone de las siguientes
partes:38
Encabezado.
Nombre de la persona que realizo el proceso.
Tags de las alarmas relacionadas con el proceso realizado por el SISTEMA EXPERTO
EoS.
Información correspondiente a la Alarma de Disparo del proceso.
38 Para más información remítase a la sección 14 del MANUAL DE USUARIO.
… (save-facts c:/EJERVG/Causas.bin local CAUSA) ;Guarda lo que está en el Deftemplate CAUSA en el archivo Causas.bin (save-facts c:/EJERVG/Recomendaciones.bin local RECOMENDACION) Guarda lo que está en el Deftemplate RECOMENDACION en el archivo Recomendaciones.bin …
… SalidaFLeerArchivosCausas = LECausas.FLeerArchivos("c:\ejervg\Causas.txt") 'Lee Causas.Txt... … SalidaFLeerArchivosRecomendaciones = LERecomendaciones.FLeerArchivos("c:\ejervg\Recomendaciones.bin") 'Lee Proceso.bin... …
'Se AGRUPA en una sola variable toda la información importante para el Reporte Eos Public Function FAgruparTodaInf() As String …
33
Causas generadas por el SISTEMA EXPERTO EoS.
Proceso ejecutado por el SISTEMA EXPERTO EoS para hallar las causas de la falla.
Recomendaciones correctivas sugeridas por el SISTEMA EXPERTO EoS.
Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas del
usuario.
Observaciones adicionales al proceso, proporcionadas por el usuario.
Información detallada de las alarmas que interactuaron con el SISTEMA EXPERTO EOS.
Nombre del archivo que el usuario utilizó para realizar el análisis del evento.
1.1.16. MÓDULO / FASE DE EXPLICACIÓN
El sistema muestra al usuario el razonamiento seguido en el Proceso de Inferencia; de forma
que si se quiere saber cómo se llegó a una conclusión, el módulo presenta la secuencia
completa del procedimiento del análisis. Esta posibilidad de explicación es indispensable cuando
se requiere tomar decisiones basados en el consejo y la experiencia del sistema experto y
cuando los usuarios requieren convertirse en especialistas de la materia.
CLIPS permite almacenar secuencialmente en Deftemplates,39 las conclusiones intermedias que
se generan en el proceso de inferencia para después mostrarlas al usuario.
Cada regla del SISTEMA EXPERTO EoS está diseñada para guardar la información de
antecedentes, causas y recomendaciones específicas en diferentes Deftemplates. A
continuación se puede observar un ejemplo del caso de una regla que guarda las causas, los
antecedentes y las recomendaciones, para que al finalizar el proceso se muestran al usuario por
medio de la interfaz gráfica.
39 Deftemplates: Son arreglos donde se almacena información, como matrices de datos. Para mas información remítase a los manuales de CLIPS que se adjuntan en el CD de instalación del SISTEMA EXPERTO EoS: Guía del Usuario, Guía Básica de programación y Guía Avanzada de Programación
34
Código correspondiente a la regla descrita anteriormente:
Al final del proceso, el sistema guarda la información que se encuentra en los Deftemplates en
el archivo Proceso.bin que se encuentra en C:\EJERVG.
Visual Basic.NET lee la información del archivo Proceso.bin y la imprime en pantalla para
mostrársela al usuario, como se muestra a continuación.
… (save-facts c:/EJERVG/Proceso.bin local CAUSAS) …
... SalidaFLeerArchivosProceso = LEProceso.FLeerArchivos("c:\ejervg\Proceso.bin") 'Lee Proceso.bin... …
REGLA: Detector-incremento-termico
SI (IF)… Si Con detector desconectado resistencia da diferente a abierto
ENTONCES (THEN)… Registre: CAUSA INMEDIATA: Falla en detectores de incremento
térmico compartimiento acople.
RESULTADO HIPOTESIS: Falla en lazos de detección compartimiento acople. Resistencia
diferente a abierto con detector desconectado.
RECOMENDACIÓN CORRECTIVA: Falla en detectores de incremento térmico ->
Reemplazar los dos sensores de incremento térmico con baja impedancia
… (defrule detector-incremento-termico ;Regla para (rtadetector SI) ?f2 <-(rtadetector SI) ;Si Con detector desconectado resistencia da diferente a abierto => (assert (CAUSA(INMEDIATA "(Detección de fuego):FALLA EN DETECTORES DE INCREMENTO TERMICO COMPARTIMENTO ACOPLE"))) (assert (RESULTADO(HIPOTESIS "(Detección de fuego): Falla en lazos de detección compartimento acople"))) (assert (RESULTADO (HIPOTESIS "(Detección de fuego): Resistencia diferente a abierto con detector desconectado"))) (assert (RECOMENDACION(CORRECTIVA "(Detección de fuego): Falla en detectores de incremento térmico -> Reemplazar los dos sensores de incremento térmico con baja impedancia"))) (retract ?f2)) …
35
1.1.17. MÓDULO / FASE DE INTERFAZ GRÁFICA
La Interfaz Gráfica permite la comunicación entre el usuario y el sistema experto facilitando el
intercambio de información entre ambas partes. Está desarrollada en Visual Basic.NET 6.0
puesto que es un lenguaje de programación orientado a objetos, con herramientas de diseño
que permite una buena visualización para el usuario.
Figura 7: Pantalla principal del SISTEMA EXPERTO EoS.
Es la encargada de mostrar los resultados finales e intermedios del análisis de causas de falla,
la lista correspondiente a las hipótesis verificables intermedias que hicieron posible llegar a la
conclusión correspondiente, y una lista de posibles recomendaciones específicas en caso de que
existan.
Permite al usuario ingresar las respuestas correspondientes a las preguntas que el
sistema plantea a través del proceso de análisis.40
El ambiente de trabajo del programa se encuentra en español.
Permite simular eventos de falla, para evaluar los resultados de un conjunto de posibles
alarmas.41
40 Para más información remítase a la sección 3.4 del Manual Técnico de Usuario o a la sección 13 del Manual de Usuario. 41 Para más información remítase a la sección 3.7 del Manual Técnico de Usuario o a la sección 7 del Manual de Usuario.
36
En algunos casos no presenta al usuario las palabras con tildes, para evitar errores de
caligrafía.
Para una correcta visualización, se debe usar una resolución de pantalla de 768 píxeles
máximo.
Permite seleccionar un archivo de texto, para realizar Análisis de Eventos42.
Muestra los resultados intermedios y finales del análisis de causas de la falla, es decir:43
Posibles causas que generaron la falla: Causas EoS.
Posibles recomendaciones correctivas a la falla: Recomendaciones EoS.
Secuencia de pasos realizados por el SISTEMA EXPERTO EoS para generar las demás
salidas: Proceso EoS.
Información referente a la Alarma de Disparo: Información de la Alarma de Disparo.
Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas dadas por
el usuario: Historial de preguntas y respuestas.
42 Analisis de Eventos: Remítase a la sección 13 del Manual de Usuario. 43 Para más información remítase a las secciones 6, 8, 9, 10 y 11 del Manual de Usuario
37
ANÁLISIS DE RESULTADOS
Para realizar el análisis de resultados se evaluaron los siguientes aspectos del SISTEMA
EXPERTO EoS:
Alcance del Sistema Experto EoS.
Herramientas de software utilizadas.
Desempeño del programa desarrollado en CLIPS.
Funcionamiento de la interfaz gráfica, elaborada en Visual Basic.NET.
Resultados de la comparación del proceso realizado antes y realizado ahora.
Factibilidad de la aplicación de los conceptos de Gestión de Fallas en el SISTEMA
EXPERTO EoS.
Análisis de costos.
1.1.18. ALCANCE DEL SISTEMA EXPERTO EOS
Para determinar el alcance del proyecto se realizó un estudio del número de alarmas que se
reportaban en el Control Room de Cusiana y a las cuales era necesario realizarles un análisis
minucioso para hallar las causas de la falla. De esto, se concluyó que el número de alarmas de
todos los equipos era bastante elevado44 para que todas ellas abarcaran el sistema experto que
se desarrollaría como trabajo de grado de modo que se definió enfocar el desarrollo del
prototipo del sistema experto en el equipo que reportara mayores perdidas económicas y que
generará el efecto más traumático dentro de la planta cuando se detenía su funcionamiento.
Así, se decidió limitar el trabajo a los turbocompresores y las alarmas que reportaban
directamente la parada del equipo45 y por lo tanto de la producción.
El alcance que se determinó al proyecto, cubre el estudio y desarrollo de seis (6) Árboles de
Conocimiento diferentes para turbinas que tienen actualmente en Cusiana, lo cual equivale a
cuarenta y ocho (48) tags de alarmas diferentes. Estos casos son:
Deteccion de fuego:
44 El número de tags de alarmas diferentes es aproximadamente 100. 45 Las alarmas que reportan directamente la parada de un turbocompresor son las que denominamos Alarmas de Disparo.
38
M12-L45FTT:_ALM: Turbine Enclosure Fire Turbina de baja, Tren 1 (MP1) M13-L45FTT:_ALM Turbine Enclosure Fire Turbina de alta, Tren 1 (HP1) M14-L45FTT:_ALM Turbine Enclosure Fire Turbina de baja, Tren 2 (MP2) M15-L45FTT:_ALM Turbine Enclosure Fire Turbina de alta, Tren 2 (HP2) M16-L45FTT:_ALM Turbine Enclosure Fire Turbina de baja, Tren 3 (MP3) M17-L45FTT:_ALM Turbine Enclosure Fire Turbina de alta, Tren 3 (HP3) Vibracion: M12-L39VCT_ALM: Process Comp Vibration Turbina de baja, Tren 1 (MP1) M13-L39VCT_ALM: Process Comp Vibration Turbina de alta, Tren 1 (HP1) M14-L39VCT_ALM: Process Comp Vibration Turbina de baja, Tren 2 (MP2) M15-L39VCT_ALM: Process Comp Vibration Turbina de alta, Tren 2 (HP2) M16-L39VCT_ALM: Process Comp Vibration Turbina de baja, Tren 3 (MP3) M17-L39VCT_ALM: Process Comp Vibration Turbina de alta, Tren 3 (HP3) IGV o Nozzles: M12-L3NZFLT: Nozzle Control Servo Turbina de baja, Tren 1 (MP1) M13-L3NZFLT: Nozzle Control Servo Turbina de alta, Tren 1 (HP1) M14-L3NZFLT: Nozzle Control Servo Turbina de baja, Tren 2 (MP2) M15-L3NZFLT: Nozzle Control Servo Turbina de alta, Tren 2 (HP2) M16-L3NZFLT: Nozzle Control Servo Turbina de baja, Tren 3 (MP3) M17-L3NZFLT: Nozzle Control Servo Turbina de alta, Tren 3 (HP3) Transmisores de Campo: M12-PT2606: T1 MP-AS Suction Press M12-PT2609: T1 MP-AS Disch Press M12-TT2602: T1 MP-AS Disch Temp M13-PT2704: T1 HP-AS Suction Press M13-PT2707: T1 HP-AS Disch Press M13-TT2702: T1 HP-AS Disch Temp M14-PT2656: T2 MP-AS Suction Press M14-PT2659: T2 MP-AS Disch Press M14-TT2652: T2 MP-AS Disch Temp M15-PT2754: T2 HP-AS Disch Temp M15-PT2757: T2 HP-AS Disch Press M15-TT2752: T2 HP-AS Disch Temp M16-PT2906: T3 MP-AS Suction Press M16-PT2909: T3 MP-AS Disch Press M16-TT2902: T3 MP-AS Disch Temp M17-PT3004: T3 HP-AS Disch Temp M17-PT3007: T3 HP-AS Disch Press M17-TT3002: T3 HP-AS Disch Temp Bleed Valve M12-L86CBT_ALM: Comp Bleed Val Pos Turbina de baja, Tren 1 (MP1) M13-L86CBT_ALM: Comp Bleed Val Pos Turbina de alta, Tren 1 (HP1) M14-L86CBT_ALM: Comp Bleed Val Pos Turbina de baja, Tren 2 (MP2) M15-L86CBT_ALM: Comp Bleed Val Pos Turbina de alta, Tren 2 (HP2)
39
M16-L86CBT_ALM: Comp Bleed Val Pos Turbina de baja, Tren 3 (MP3) M17-L86CBT_ALM: Comp Bleed Val Pos Turbina de alta, Tren 3 (HP3) Clutch: M12-LCLFEN_ALM: Start Clutch Engage Turbina de baja, Tren 1 (MP1) M13-LCLFEN_ALM: Start Clutch Engage Turbina de alta, Tren 1 (HP1) M14-LCLFEN_ALM: Start Clutch Engage Turbina de baja, Tren 2 (MP2) M15-LCLFEN_ALM: Start Clutch Engage Turbina de alta, Tren 2 (HP2) M16-LCLFEN_ALM: Start Clutch Engage Turbina de baja, Tren 3 (MP3) M17-LCLFEN_ALM: Start Clutch Engage Turbina de alta, Tren 3 (HP3)
1.1.19. HERRAMIENTAS DE SOFTWARE UTILIZADAS
La selección de las herramientas de software que se utilizaron para el desarrollo del SISTEMA
EXPERTO EoS, se basó en tres factores:
La funcionalidad del programa y las utilidades para el buen desarrollo del sistema.
El costo de las licencias de los programas.
Las preferencias de software por parte de BP Exploration Company Colombia Ltda. y
Equipo de Servicios Petroleros Ltda.
CLIPS cumple con los requerimientos y funcionalidades que se requerían para desarrollar el
SISTEMA EXPERTO EoS puesto que cuenta con los elementos necesarios que permitían el
desarrollo y programación del prototipo del sistema experto46. Adicionalmente, no existían
preferencias de ninguna clase por parte de BP Exploration Company Colombia Ltda ni Equipo de
Servicios Petroleros Ltda en cuanto a utilizar esta herramienta de software. Referente a costos,
CLIPS es una herramienta que se encuentra en Internet y no tiene valor económico para fines
comerciales. El contrato de licencia se encuentra en el ANEXO E de este documento.
Visual Basic.NET permite el desarrollo de interfaces gráficas con un número elevado de
herramientas y opciones para el programador y el usuario. Para la selección de la herramienta
de software que sirviera como interfaz gráfica del SISTEMA EXPERTO EoS, fue necesario tener
en cuenta los lenguajes de programación que utilizan los ingenieros del Control Room de
Cusiana cuando realizan desarrollos propios. En su mayoría los desarrollos se han realizado en
46 Para más información sobre las características de CLIPS, remítase al Anexo C de este documento.
40
Visual Basic 6.0 sin embargo están migrando e incursionado en Visual Basic.NET 6.047, de
manera que era recomendable utilizar esta herramienta de software para el desarrollo de la
interfaz gráfica. En cuanto a costos, no es necesario adquirir la licencia del programa, puesto
que el SISTEMA EXPERTO EoS es un ejecutable.
1.1.20. DESEMPEÑO DEL PROGRAMA DESARROLLADO EN CLIPS
Durante la construcción del SISTEMA EXPERTO EoS se realizaron pruebas de trabajo para
observar el funcionamiento y desarrollo evolutivo del sistema a medida que se introducían las
reglas, de manera que se pudiera evaluar su comportamiento y hacer los ajustes adecuados.
En principio dichas pruebas eran simulaciones manuales de las Alarmas de Disparo que se
pudieran presentar en campo, es decir, se introducían manualmente las alarmas al sistema y se
respondían las diferentes preguntas de acuerdo con los datos conocidos de los procesos
asociados a los Árboles de Conocimiento, simulando así el comportamiento real del proceso
para hallar las causas de falla en los turbocompresores.
Los resultados de las simulaciones mostraron que el SISTEMA EXPERTO EoS cumplía los
requerimientos necesarios para instalarse en el CPF48 de Cusiana, puesto que hacia
corresponder las Alarmas de Disparo, las Alarmas Secundarias y las hipótesis a las causas y
recomendaciones asociadas, según los Árboles de Conocimiento.
Después de confirmar los resultados de las simulaciones y de tener un número adecuado de
reglas en la Base de Conocimiento, se efectuaron las primeras pruebas en campo. El 7 de
Agosto de 2004, se realizó la unión del Sistema de Captura y Filtraje con el SISTEMA EXPERTO
EoS y se realizaron las pruebas correspondientes, con el fin de evaluar la interacción de las
herramientas y la respuesta del sistema a alarmas reales.
El 3 de Septiembre de 2004, se instaló el SISTEMA EXPERTO EOS en Cusiana, de manera que
se pudiera probar, por espacio de 2 meses aproximadamente, la respuesta de la herramienta al
uso continuo de los usuarios y a las alarmas reales que se reportan en el Control Room de
Cusiana. El resultado de ello, fue que el SISTEMA EXPERTO EoS se comportó de manera
estable, durante el tiempo de prueba sin presentar complicaciones de rendimiento, y reaccionó
47 Algunos programas elaborados por ellos ya se encuentran desarrollados en Visual Basic.NET 6.0, entre ellos, el Sistema de Captura y Filtraje. 48 CPF: Central Production Facilities
41
de manera acorde a las Alarmas de Disparo que se simularon para generar eventos y probar la
correspondencia de las causas y recomendaciones, con la entrada.
En el Anexo F, se encuentra la carta que se le presentó al Ingeniero de Control en Cusiana en
la que se hace entrega del SISTEMA EXPERTO EoS para que permaneciera en periodo de
prueba en el Control Room.
A medida que las pruebas se realizaban, se hizo una verificación de las reglas que se extrajeron
de los Árboles de Conocimiento y se confirmó la validez de la información con los ingenieros
expertos. El 4 de Octubre de 2004 se realizó la última prueba en campo del sistema, en la que
se simulaba una alarma cuyo tag era M17-TESTLEVEL, de manera que se disparara el proceso y
se verificara su correcto funcionamiento. En el Anexo G se encuentra el Reporte EoS
relacionado con esta prueba.
En esa fecha, se presentó la versión final del SISTEMA EXPERTO EoS, la cual fue aceptada a
satisfacción. En el Anexo F, se encuentra la carta que el Ingeniero de Control de Cusiana
envió, manifestando la aprobación del SISTEMA EXPERTO EoS, en cuanto que cumplía con los
propósitos trazados desde el inicio del proyecto.
El 24 de Octubre de 2004 se realizó la entrega formal del SISTEMA EXPERTO EoS a ingenieros
de BP Exploration Company Colombia Ltda y Equipo de Servicios Petroleros Ltda de los pozos
de Cusiana y Cupiagua.
1.1.21. FUNCIONAMIENTO DE LA INTERFAZ GRÁFICA ELABORADA EN VISUAL BASIC.NET
Durante el tiempo de desarrollo del SISTEMA EXPERTO EoS y de acuerdo con los avances
presentados en la interfaz gráfica, los ingenieros de control de Cusiana manifestaron sus
opiniones y sugerencias en cuanto a la presentación y herramientas que se debían incluir y
mostrar al usuario en la interfaz gráfica.
Atendiendo a sus solicitudes, se desarrolló una interfaz gráfica que estuviera acoplada con el
Sistema de Captura y Filtraje, previamente desarrollado por los Ingenieros de Control de
Cusiana, de manera que ambos programas se presentarán al usuario por medio un menú de
selección. Adicionalmente, se presentó la información relacionada con el proceso realizado por
el SISTEMA EXPERTO EoS de manera centralizada en una sola pantalla, con el fin de que el
usuario pudiera acceder a la información de forma rápida y sencilla.
42
Durante el tiempo que el SISTEMA EXPERTO EoS estuvo en prueba en el Control Room de
Cusiana, es decir, desde el 3 de Septiembre hasta el 17 de Octubre de 2004, se realizaron
pequeños ajustes de forma, en cuanto a la presentación gráfica de la interfaz. El 4 de Octubre
de 2004 se manifestó la aprobación del proyecto y se confirmó que el SISTEMA EXPERTO EoS
cumplía con los propósitos trazados desde el inicio.
1.1.22. RESULTADOS DE LA COMPARACIÓN DEL PROCESO REALIZADO ANTES Y REALIZADO AHORA
El proceso de identificación de fallas que se realiza sin el uso del SISTEMA EXPERTO EoS no
tiene un modelo específico de los pasos a seguir, porque depende de la naturaleza y
características de la falla específica, sin embargo se puede resumir en cuatro (4) pasos o
actividades generales:
1. Los operadores filtran y consiguen la información que pueda servir para empezar a
hacer el análisis adecuado y obtener las causas de la falla. Esta información
generalmente es la que se encuentra en:
a. El Sistema de Captura y Filtraje donde están las alarmas que se registraron.
b. Un segundo registro de alarmas que se obtiene directamente de algunas
máquinas.
c. Un registro de tendencias de diferentes variables.
2. Un grupo de expertos realiza el análisis correspondiente con la información que se tiene
de acuerdo con las características de la falla, ya que puede ser una falla evidente o no
evidente. En el caso de ser una falla no evidente se proceden a formular hipótesis entre
las personas que hacen el análisis que generalmente son los ingenieros de control,
operadores del cuarto de control e ingenieros del área implicada.
3. El grupo de expertos que hace el análisis verifica las hipótesis anteriormente
formuladas por medio de diferentes actividades como lo son pruebas en la máquina,
búsqueda de información en manuales y planos, experimentos específicos, etc hasta
obtener conclusiones al respecto de la falla.
4. Si son encontradas las causas de la falla se procede a su corrección y a poner en
funcionamiento el turbocompresor lo antes posible. Finalizado el proceso de análisis, el
43
operador del cuarto de control construye un reporte de los hechos en aproximadamente
un (1) día y lo rota entre las diferentes personas que participaron en el proceso de
hallar las causas de la falla, para que estos lo complementen o corrijan. Después de
aproximadamente cinco (5) días se obtiene el reporte final del análisis de causas de
falla.
Se puede observar que en el paso 2 pueden generarse un gran número de hipótesis ya que
cada falla puede llegar a ser nueva para los expertos que tratan de encontrar sus causas,
haciendo que se gaste más tiempo, recursos y esfuerzos para obtener un resultado eficiente.
Además de esto, finalizado un análisis se debe hacer un reporte con el mayor número de
detalles del proceso que se realizó para encontrar las causas de la falla, lo que genera errores
humanos puesto que en su momento la prioridad era encontrar la falla rápidamente,
pudiéndose olvidar detalles del análisis que no se reportaron.
Se debe tener en cuenta que los expertos que realizan el proceso de análisis de las causas de
fallas rotan periódicamente49, y un inconveniente palpable del proceso actual es que las
lecciones aprendidas por un grupo de expertos que participaron en el análisis de una falla
específica no son aprendidas por el otro grupo, y si sucede una falla de las mismas
características en presencia del grupo que no la analizó anteriormente se vuelve a incurrir en
ella.
Con el uso del SISTEMA EXPERTO EoS el proceso de identificación de fallas es más rápido y
proporciona algunas facilidades antes no obtenidas:
1. El SISTEMA EXPERTO EoS dispara un proceso de análisis inmediatamente detecta una
Alarma de Disparo la cual indica una falla en un turbocompresor, siempre y cuando
tenga información de la misma en su base de conocimiento. Al disparar un proceso
procede a hacer preguntas al operador y/o ingeniero proporcionando una guía de
diferentes actividades para encontrar las causas de la falla. Al mismo tiempo en su
Modo de Captura y Filtraje registra las alarmas relacionadas con los turbocompresores,
sesenta (60) minutos antes y un (1) minuto después50 ocurrida la Alarma de Disparo y
las suministra ya filtradas al usuario. Los demás registros que el operador necesite de
49 El personal de BP Exploration Company Colombia Ltda, trabaja por turnos de 15 días aproximadamente. Existen dos personas que tienen el mismo cargo y cumplen las mismas funciones y actividades en tiempos diferentes. 50 Este tiempo de captura de alarmas es suficiente para los análisis de fallas. Este criterio fue suministrado por los Ingenieros de Control de Cusiana.
44
acuerdo con el tipo de falla, se obtienen directamente de las máquinas y en registros
de tendencias de diferentes variables.
2. Un grupo de expertos realiza el análisis correspondiente con la información que se tiene
de acuerdo con las características de la falla, ayudado por la guía del proceso a seguir
que proporciona el SISTEMA EXPERTO EoS, para encontrar las causas de la falla por
medio de la formulación de hipótesis que éste genera de acuerdo con las conclusiones
intermedias que obtiene a partir de las respuestas que el experto introduce al contestar
las preguntas formuladas por el sistema.
3. El grupo de expertos que hace el análisis comprueba las hipótesis de acuerdo con las
verificaciones secuenciales que necesita el SISTEMA EXPERTO EoS para proseguir con
el proceso de inferencia y hallar las causas de la falla. A medida que se hace una nueva
verificación sugerida por el SISTEMA EXPERTO EoS se va respondiendo a preguntas
formuladas por el sistema hasta que obtienen conclusiones finales y se diagnostican las
causas de la falla. Al mismo tiempo el sistema almacena las preguntas y respuestas
introducidas en la medida que se generan.
4. Al ser encontradas las causas de la falla se procede a su corrección y a poner en
funcionamiento el turbocompresor lo antes posible. Al terminar el proceso de análisis
del SISTEMA EXPERTO EoS, éste genera un reporte con las causas inmediatas, los
resultados de las hipótesis, las recomendaciones correctivas, las alarmas filtradas que
intervinieron en el análisis, los hechos registrados de acuerdo con las respuestas
introducidas por el usuario según las verificaciones realizadas, las conclusiones
intermedias que se generaron, y las observaciones adicionales que el usuario introdujo.
El Reporte final lo elabora el SISTEMA EXPERTO EoS inmediatamente finaliza un
proceso.
De acuerdo con esto, el uso del SISTEMA EXPERTO EoS proporciona una ayuda para encontrar
las causas de las fallas basado en el conocimiento del ingeniero experto, el cual puede no
encontrarse en el momento de la falla, de manera que facilita el análisis de casos históricos que
pueden volver a ocurrir pero se desconocen u olvidaron. Entre tanto, cada vez que el sistema
obtiene conclusiones intermedias genera ideas que guían a los operadores en el proceso de
análisis, puesto que deben responder secuencialmente las preguntas formuladas por el
SISTEMA EXPERTO EoS para que se generen conclusiones y el sistema las vaya reportando con
el fin de que al final del proceso de análisis se obtenga instantáneamente un reporte detallado
del proceso que se siguió para hallar las causas de la falla.
45
1.1.23. FACTIBILIDAD DE LA APLICACIÓN DE LOS CONCEPTOS DE GESTIÓN DE FALLAS EN EL SISTEMA EXPERTO EOS
El SISTEMA EXPERTO EoS es un desarrollo de software que aplica conceptos de Gestión e
incluye funciones de Gestión de Fallas, las cuales se nombran a continuación51:
Lectura e interpretación de las alarmas relacionadas con los turbocompresores, de
manera que se realiza un monitoreo constante del estado y comportamiento de las
turbinas, las cuales son el recurso gestionado.
Análisis del estado y comportamiento de los factores relacionados con una falla
determinada, facilitando la obtención de datos para el proceso de Análisis de Causa
Raíz de Falla52, e indicándole al usuario los pasos del proceso realizado y los
antecedentes generados para poder hallar las causas de la falla.
Sugerencias asociadas con acciones y procedimientos a realizar en los componentes
relacionados con los turbocompresores. Proporciona recomendaciones correctivas
después de hacer los análisis adecuados cuando ocurre una falla.
Se compone de un conjunto de facilidades y herramientas que permiten la detección,
identificación y corrección de fallas relacionadas con los turbocompresores.
Para detectar e identificar las fallas que se presentan en los turbocompresores, el SISTEMA
EXPERTO EoS sigue un proceso de diagnóstico constituido por cuatro pasos que se repiten
hasta hallar la causa del problema, los cuales son los mismos que siguen los sistemas de
Gestión de Fallas: observación de síntomas, elaboración de hipótesis, verificación de hipótesis y
conclusiones.
1. Observación de síntomas: A partir de las Alarmas de Disparo y las Alarmas Secundarias que
recibe el Sistema de Captura y Filtraje, y de la información de las respuestas de los usuarios a
las preguntas de verificación de eventos, se recoge la mayor cantidad de información posible de
la falla, basándose en diferentes aspectos:
Clasificación de las alarmas dependiendo de la naturaleza de la falla.
51 Teoría deGestión y Gestión de Fallas: Para más información remítase al Anexo A de este documento. 52 RCFA: Análisis de Causa Raíz de Falla. Proceso específico y minucioso que utilizan en Equipo de Servicios Petroleros Ltda para hallas la causa raíz de las fallas que se presentan en los equipos de BP Exploration Company Colombia Ltda.
46
Registro de antecedentes y pasos del proceso realizado, para conservar un reporte
histórico secuencial de los eventos y coleccionar datos de hechos correlacionados.
Reducción de la redundancia de hipótesis por medio de la identificación de relaciones
de hechos individuales.
Correlación de alarmas y de hechos, debido a que una falla puede generar diferentes
hechos y muchas alarmas en distintas partes del equipo distribuidas en tiempo y
espacio.
2. Elaboración de hipótesis: Las realiza la Base de Conocimiento del SISTEMA EXPERTO EoS,
puesto que ella contiene la experiencia y conocimientos del Usuario Experto. La elaboración de
las hipótesis durante la ejecución de un proceso se basa en:
Diagnóstico de causas de fallas por medio de análisis de Árboles de Conocimiento.
Interpretación y relación de los resultados intermedios durante la ejecución del análisis,
para determinar las causas de falla.
3. Verificación de hipótesis: La realiza el Motor de Inferencia del SISTEMA EXPERTO EoS,
cuando valida o descarta cada una de las reglas relacionadas con un proceso específico, de
manera que se pueda determinar si las hipótesis planteadas son falsas o verdaderas, y se
eliminen o validen para continuar con el proceso.
4. Conclusiones: Al finalizar un proceso, el SISTEMA EXPERTO EoS proporciona al usuario la
información referente a:
Las posibles causas de la falla
Los antecedentes de la falla, es decir el proceso e historial de las preguntas realizadas
por el sistema y las respuestas suministradas por el usuario.
Las posibles recomendaciones correctivas sugeridas al usuario para que tome las
medidas necesarias y decida qué acciones tomar para solucionar el problema.
Reporte del proceso de análisis de fallas.
Así, vemos que el SISTEMA EXPERTO EoS permite llevar a cabo las tareas correspondientes a la
Gestión de Fallas y permite cumplir con las metas trazadas, al facilitar un conjunto de
herramientas para diagnosticar las causas de las fallas en los turbocompresores de BP
Exploration Company Colombia Ltda.
47
Una vez que una falla es detectada, la determinación de las causas debe preceder el proceso de
reparación, donde se utilizan estrategias reactivas y proactivas para el reestablecimiento del
servicio. Ya que el SISTEMA EXPERTO EoS proporciona posibles recomendaciones correctivas y
los antecedentes que generaron la falla, contribuye a la reparación rápida del recurso que falló.
De está forma se facilita que la solución de la falla sea eficiente y oportuna, disminuyendo
costos de trabajo, mano de obra, y disponibilidad del recurso averiado.
El SISTEMA EXPERTO EoS genera al final de cada proceso el Reporte Eos en el cual se
almacena toda la información relacionada con el proceso ejecutado, de manera que se crean
archivos que permiten llevar un histórico de los procesos, fallas y causas que se hayan
desarrollado, y se tengan datos verídicos y suficientes que permitan el análisis de medidas de
efectividad de Gestión de la Falla en términos de la interrupción del servicio y los costos de
reparación.
1.1.24. ANÁLISIS DE COSTOS
Los costos definidos en el anteproyecto, se incrementaron debido al aumento del tiempo
invertido en el desarrollo del proyecto. Una de las mayores dificultades, se presentó en la
traducción de la información adquirida de los expertos, al formato de reglas, de forma que
quedara en un lenguaje comprensible para el Motor de Inferencia. Dentro del proceso de
desarrollo de la herramienta, esta fue una de las actividades más interesantes y que exigió
mayor esfuerzo.
Inicialmente se estimaron 45 horas de trabajo con los expertos53, sin embargo el tiempo
invertido con ellos fue mayor y requirió más esfuerzo. El número real de horas de trabajo con
ellos fue aproximadamente de 100, de manera que el tiempo estimado en la adquisición del
conocimiento aumentó un 122% al que se tenía estimado.
A continuación se presenta un cuadro comparativo con los costos estimados y los costos reales
del proyecto:
53 Esta fue la información estimada en el anteproyecto que se presentó al Comité de Trabajo de Grado de la Pontificia Universidad Javeriana en diciembre se 2003.
48
Costos personales Precio hora aproximado
Horas totales estimadas Costo total Estimado
Horas totales reales
Costo total Real
Director del proyecto54 50.000,00 92 4.600.000,00 92 4.600.000,00Asesores16 50.000,00 276 13.800.000,00 276 13.800.000,00
Autores 20.000,00 3.680 73.600.000,00 3680 73.600.000,00Total Costos Personales 92.000.000,00 92.000.000,00
Actividades y
elementos financiados por "BP Colombia
LTDA"
Costo por unidad aproximado
Número Unidades estimadas
Costo total estimado
Número Unidades
reales Costo Total Rea
1. HARDWARE Computador17 2.000.000,00 1 2.000.000,00 1 2.000.000,00
S. SOFTWARE Licencia del Shell a
utilizar18 0.000.000,00 1 10.000.000,00 1 10.000.000,002. VISITAS A CAMPO (CUSIANA)
Pasajes 199.500,00 12 2.394.000,00 12 2.394.000,00 Habitación Hotel 3
días 210.000,00 6 1.260.000,00 6 1.260.000,00 Alimentación 3 días 111.000,00 6 666.000,00 6 666.000,00 3. ENTREVISTAS CON ESPECIALISTAS Hora de entrevista 50.000,00 45 2.250.000,00 100 5.000.000,00
4. COSTOS ADICIONALES
Imprevistos 857.000,00 857.000,00 Total Costos Financiados por "BP Colombia LTDA" 9.427.000,00 12.177.000,00
Componentes por financiacion propia Costo estimado($) Costo real($)
Alquiler del computador con Windows y Microsoft Office (46 semanas)16 600.000,00 600.000,00
Impresiones 400.000,00 400.000,00 Resma de papel 10.000,00 10.000,00
Caja de disquetes 10.000,00 10.000,00 Discos compactos 10.000,00 10.000,00
Quemado de discos compactos 20.000,00 20.000,00 Servicios 400.000,00 400.000,00
Imprevistos (10%) 145.000,00 145.000,00
54 Estos recursos, incluidos en el pago de la matrícula, serán facilitados por el departamento de Electrónica de la Pontificia Universidad Javeriana. 55 En este computador se utilizó para la instalación del Sistema Experto EoS. 18 Se usará una aplicación de software libre.
49
Total Costos Financiacion Propia 1.595.000,00
TOTAL DEL PROYECTO 105.772.000,00
50
CONCLUSIONES
Fue posible la elaboración del prototipo de un sistema experto que diagnosticara las
causas de las fallas que se presentan en los turbocompresores de BP Exploration
Company Colombia Ltda.
Las herramientas de software utilizadas para el desarrollo del SISTEMA EXPERTO EoS
fueron las adecuadas y permitieron alcanzar los propósitos trazados, ya que las pruebas
realizadas en campo mostraron buenos resultados.
Se reconoció la importancia de utilizar una interfaz gráfica que muestre al usuario los
resultados del proceso de forma clara y precisa, y le permita interactuar con el
SISTEMA EXPERTO EoS de manera sencilla e intuitiva. Se vio apropiado, por parte de
los expertos y operadores de Cusiana, la manera como está desarrollada la interfaz
gráfica del SISTEMA EXPERTO EoS.
Las relaciones y correspondencias realizadas por el SISTEMA EXPERTO EoS fueron
acertadas en las pruebas y simulaciones realizadas, ya que se logró interpretar y
transcribir a formato de reglas el conocimiento de las personas expertas en el análisis
de causas de falla de los turbocompresores de BP Exploration Company Colombia Ltda.
La adquisición e interpretación del conocimiento del experto fue la fase más demorada,
dispendiosa y de mayor cuidado, puesto que la información no se encontraba
centralizada en cabeza de una persona, sino que eran varios los expertos que ayudaban
en la construcción del conocimiento y posteriormente se debía transmitir la información
a los desarrolladores del sistema.
Los reportes que genera el SISTEMA EXPERTO EoS proporcionan un seguimiento
detallado del proceso realizado por el sistema y permiten llevar un histórico de las
causas y fallas ocurridas, permitiendo tener la información completa para futuras
correcciones de problemas, sin embargo se logró centralizar esta información en los
Árboles de Conocimiento.
El SISTEMA EXPERTO EoS es un desarrollo de software que aplica conceptos de
Gestión e incluye funciones de Gestión de Fallas, mostrando que es viable la aplicación
de los conceptos de Gestión, definidos para empresas de telecomunicaciones, en
empresas petroleras como BP Exploration Company Colombia Ltda. El sistema sigue un
proceso de diagnóstico de fallas igual al que siguen los sistemas de Gestión de Fallas.
51
El SISTEMA EXPERTO EoS permitirá realizar procesos posteriores de Gestión dentro de
la compañía, de manera que se pueda aumentar la productividad y disminuir los
tiempos de parada de producción.
El SISTEMA EXPERTO EoS se puede expandir para ser utilizado para hallar las causas a
un número mayor de fallas que se presenten en los turbocompresores de BP
Exploration Company Colombia Ltda, y a un número mayor y más diverso de equipos
adicionales de los turbocompresores.
El SISTEMA EXPERTO EoS permite a los usuarios expertos ampliar la información y
conocimiento que éste contiene, de manera que su aplicabilidad sea más amplia y
efectiva dentro de la planta de BP Exploration Company Colombia Ltda. Además, puede
ser la base y punto de partida de posteriores desarrollos que permitan a BP Exploration
Company Colombia Ltda. y Equipo de Servicios Petroleros Ltda optimizar procesos y
aumentar su producción.
52
GLOSARIO
AGENDA: Donde se almacenan las reglas disparadas.
ALARMA DE DISPARO: Es la alarma que está directamente relacionada con la parada de un
turbocompresor y se encuentran en el Archivo de Entrada.
ALARMAS SECUNDARIAS: Son las alarmas que se encuentran en el Archivo de Entrada que
no son Alarmas de Disparo pero están relacionadas con los turbocompresores.
ALIMENTAR EL SISTEMA EXPERTO EoS: Agregar información de procesos nuevos para que
el sistema sea más completo y robusto. A cargo del Usuario Experto.
ANÁLISIS DE EVENTO: Es un modo de trabajo del SISTEMA EXPERTO EoS en el que el
usuario puede ingresar la información con las alarmas que generan los equipos y realizar
manualmente un proceso.
ÁRBOL DE CONOCIMIENTO: Representaciones gráficas y lógicas del Proceso de Inferencia
que realiza el SISTEMA EXPERTO EoS con cada Alarma de Disparo para hallar las causas de la
falla. Se utilizan para representar el conocimiento de los expertos en fallas. Cada Árbol de
Conocimiento tiene un nombre asociado.
ARCHIVO DE ENTRADA: Es un archivo de texto con la información de los sesenta (60)
minutos anteriores y el (1) minuto posterior a la Alarma de Disparo. Es la entrada al SISTEMA
EXPERTO EoS.
ARCHIVO DE EVENTOS: Es un archivo de texto, previamente creado por el usuario, con la
información de las alarmas con la que desea realizar el Análisis de Eventos. Debe tener las
mismas características del Archivo de Entrada.
ARCHIVOHYP.TXT: Archivo de texto con la información de los sesenta (60) minutos
anteriores y el (1) minuto posterior a la Alarma de Disparo. Es el nombre del Archivo de
Entrada. Se encuentra en C:\EJERVG.
ARCHIVOS DE CONTINUACIÓN: Archivos con código en CLIPS, que tienen la continuación
de un proceso determinado, cuando los archivos donde está la información se le terminan los
53
renglones permitidos de escritura. Estos archivos de continuación llevan el nombre del Árbol de
Estudio asociado al análisis de fallas.
BASE DE HECHOS: Componente de los sistemas expertos. Lugar donde se almacenan las
alarmas de los equipos que intervienen en el proceso de producción de petróleo en Cusiana.
Registra conclusiones intermedias y datos generados en el proceso de inferencia para explicar
las deducciones y el comportamiento del sistema.
BASE DEL CONOCIMIENTO: Componente de los sistemas expertos. Son las reglas que
contienen la información para que el SISTEMA EXPERTO EoS sepa como proceder en los
diferentes casos y determine las causas de falla de las alarmas que llegan a la Base de Hechos.
BENTLY NEVADA: Sistema de monitoreo encargado de las vibraciones que ocurren en la
turbina y el compresor.
C.C.C.: Sistema destinado al control y supervisión de la presión, flujo, potencia y temperatura
en el compresor.
CAUSAS EoS: Es una salida del SISTEMA EXPERTO EoS. Son las posibles causas que
generaron la falla.
CAUSAS.BIN: Archivo donde se almacenan las posibles causas que generaron la falla. Se
encuentra en C:\EJERVG.
CLIPS: Es un programa que trabaja de manera regular y sincrónica con la Interfaz Gráfica, es
el que realiza el proceso de inferencia y genera la información que se muestra al usuario.
Herramienta especializada para el desarrollo de sistemas expertos.
CÓDIGO DE PROGRAMACIÓN DEL SISTEMA EXPERTO EoS: Archivo donde se encuentra
el código de programación completo del SISTEMA EXPERTO EoS, Se incluye en el CD del
SISTEMA EXPERTO EoS.
CONTROL ROOM: Es el cuarto de control donde se reportan las alarmas de los equipos que se
encuentran en el CPF de Cusiana, Casanare.
CPF: Central Production Facilities. Planta de procesamiento de petróleo de BP Exploration
Company Colombia Ltda.
54
DCS: Sistema de Control Distribuido. Sistema de control donde se reportan las alarmas de los
equipos de Cusiana.
DEFTEMPLATES: En CLIPS, son arreglos donde se almacena información. Similares a matrices
de datos.
EXPERTO HUMANO: Quien posee el conocimiento especializado.
GESTIÓN: Habilidad para interpretar correctamente una situación y ejercer las acciones
apropiadas.
GESTIÓN DE FALLAS: Conjunto de facilidades que permiten la detección, identificación y
corrección de fallas.
HISTORIAL DE PREGUNTAS Y RESPUESTAS: Es el historial de preguntas realizadas por el
SISTEMA EXPERTO EoS y respuestas dadas por el usuario en medio del proceso.
INFORMACIÓN DE LA ALARMA DE DISPARO: Es la información referente a la Alarma de
Disparo: tag de la alarma, descripción de la alarma, estado de referencia de la alarma, estado
de la alarma, fecha en que ocurrió la alarma, hora en que ocurrió la alarma.
INGENIERO DEL CONOCIMIENTO: Quien utiliza el conocimiento del experto humano y lo
traduce en el programa de software.
INTERFAZ GRÁFICA: Es el programa con el que el usuario interactúa, y donde se muestra la
información de interés para éste. La interfaz gráfica la comparte con el Sistema de Captura y
Filtraje y está desarrollada en Visual Basic.NET 6.0.
ISO: International Organization for Standarization
ITU-T: International Telecommunications Union-Telecommunications
LEVANTAMIENTO POR GAS O INYECCIÓN DE GAS: Proceso de inyectar gas al pozo de
forma que ejerza presión en el pozo permitiendo fluir la mezcla de gas, agua y crudo a la
superficie.
LISTAPRIMARIAS.TXT: Contiene una lista con todos los tags de Alarmas de Disparo. Se
encuentra en C:\EJERVG.
55
LISTASECUNDARIAS. TXT: Contiene una lista con todos los tags de las alarmas que no son
Alarmas de Disparo pero están relacionadas con los turbocompresores, es decir con las Alarmas
Secundarias.
MANUAL DE USUARIO: Detalla el modo de uso y las funcionalidades del SISTEMA EXPERTO
EoS.
MANUAL TÉCNICO DE USUARIO: Es en el que se encuentra el código fuente de los
programas y aspectos más específicos del funcionamiento del SISTEMA EXPERTO EoS.
MARK V: Software encargado del monitoreo, control y protección de la turbina, y todos los
elementos auxiliares que hacen parte de esta.
MENÚ PRINCIPAL: Es la ventana donde se puede seleccionar (para presentar en pantalla) el
SISTEMA EXPERTO EoS o el Sistema de Captura y Filtraje.
MÓDULO DE ADQUISICIÓN DEL CONOCIMIENTO: Componente de los sistemas expertos.
Permite añadir, eliminar o modificar elementos de conocimiento (en la mayoría de los casos,
reglas.)
MÓDULO DE EXPLICACIÓN: Es el que le aclara al usuario el razonamiento seguido en el
proceso de inferencia.
MONITORIZACIÓN: Se ocupa de la observación, análisis de estado y comportamiento de los
recursos gestionados para la obtención de datos
MOTOR DE INFERENCIA: Componente de los sistemas expertos. Es el programa que
controla el razonamiento o proceso de inferencia que sigue el sistema experto.
PRIMARIAS.BIN: Contiene los tags de las alarmas que resultan de la comparación entre
ArchivoHyp.Txt con ListaPrimarias.Txt. Se encuentra en C:\EJERVG.
PROCESO DE INFERENCIA: Es el programa que controla el razonamiento que sigue el
sistema experto, puesto que debe comparar los patrones de reglas con la lista de datos de la
Base de Hechos.
PROCESO EoS: Es una salida del SISTEMA EXPERTO EoS. Es la secuencia de pasos realizados
por el SISTEMA EXPERTO EoS para generar las demás salidas.
56
PROCESO.BIN: Archivo donde se almacena la secuencia de pasos realizados por el SISTEMA
EXPERTO EoS para generar las demás salidas. Se encuentra en C:\EJERVG.
PSI: Libras por pulgada cuadrada. Es una medida de presión.
PTA.BIN: Archivo donde se almacena la pregunta que el sistema le formula al usuario. Se
encuentra en C:\EJERVG.
RECOMENDACIONES EoS: Es una salida del SISTEMA EXPERTO EoS. Son las
recomendaciones correctivas de la falla.
RECOMENDACIONES.BIN: Archivo donde se almacenan las recomendaciones correctivas de
la falla. Se encuentra en C:\EJERVG.
RED DE GESTIÓN: La administración, supervisión, control y organización de los elementos de
la red gestionada.
RED: Conjunto de elementos interconectados
REPORTE EoS: Es el reporte con la información de entrada, salida y adicional. Este reporte se
genera en formato de texto (*.Txt) al culminar el proceso.
RTA.BIN: Archivo donde se almacena la respuesta dada por el usuario al sistema. Se
encuentra en C:\EJERVG.
SECUNDARIAS.BIN: Contiene los tags de las alarmas que resultan de la comparación entre
ArchivoHyp.Txt con ListaSecuntarias.Txt. Se encuentra en C:\EJERVG.
SHELLS: Lenguajes de programación que se utilizan como herramienta para la creación de
sistemas expertos.
SISTEMA DE CAPTURA Y FILTRAJE: Es el sistema que se encarga de recibir
constantemente las alarmas que generan los diferentes equipos que intervienen en el proceso
de extracción de petróleo en Cusiana y mostrarlas de manera detallada en pantalla. El sistema
fue desarrollado e instalado previamente en el Control Room de Cusiana; donde trabajan de
forma coordinada y bajo la misma Interfaz Gráfica del SISTEMA EXPERTO EoS.
TAG: Código para identificar la instrumentación y variables de un proceso determinado.
TMN: Telecommunications Management Network.
57
TURBOCOMPRESORES: Son equipos que aumentan la presión del gas que se inyecta al
subsuelo. Es el equipo que se escogió para realizar el estudio de las alarmas con las que se
activará el SISTEMA EXPERTO EoS.
USUARIO DEL SISTEMA: Quienes utilizan el sistema experto.
USUARIO EXPERTO: Quien posee el conocimiento especializado para alimentar el sistema
experto.
VENTANA PRINCIPAL: Ventana donde se presentan los controles y las salidas del SISTEMA
EXPERTO EoS.
58
BIBLIOGRAFÍA
1. AIDAROUS PLEVYAK, Salah, Thomas, Telecomunications Network Management into the 21st
century. New York: IEEE , 1994. 426p.
2. BARBA MARTI, Antoni, Gestión de red. México: Alfaomega, 2001. 231p
3. BP EXPLORATION COMPANY, Página web oficial. En:
http://www.bp.com/sectiongenericarticle.do?categoryId=454&contentId=2000603#top
4. GIARRATANO, Joseph y RILEY, Gary. Sistemas Expertos, Principios y programación. Mexico
: International Thomson Editores, 2001. 596p
5. Información adicional suministrada por “BP Colombia LTDA” y “Equipo de Servicios
Petroleros LTDA”
6. Inteligencia Artificial. En: http://ciberconta.unizar.es/LECCION/IA/INICIO.HTML.
7. MORALES, Eduardo y SUCAR Enrique, “Representación de Conocimiento”. En:
http://w3.mor.itesm.mx/~rdec/principal.html.
8. Sistemas expertos. El conocimiento al poder. En: http://www.psycologia.com/articulos/ar-
jsamper01.htm#indice
9. Sistemas Expertos: Áreas de Aplicación. En:
http://www.geocities.com/SiliconValley/Way/7788/SISEXP.HTM#refs
10. TELEMANAGEMENT FORUM. Telecom Operations Map, NMF, GB910, Approved Version 2.1,
March 2000.
11. UNIVERSIDAD POLITÉCNICA DE MADRID, Dirección estratégica en tecnologías de la
información y las comunicaciones (TIC). Madrid: universidad Politécnica de Madrid, 2000.
135p.
1
ANEXO A: TEORÍA DE GESTIÓN
Es necesario tener una idea general de la teoría de Gestión de Red y Gestión de Fallas para
entender porque estos conceptos son la base de la razón de desarrollar una herramienta que
facilite el análisis de las fallas en los procesos de extracción de petróleo.
Se presentan los siguientes temas:
1 DEFINICIÓN DE GESTIÓN 2 MODELO TMN 3 GESTIÓN DE RED 4 GESTIÓN DE FALLAS 5 TAREAS PRINCIPALES DE LA GESTIÓN DE FALLAS 6 BIBLIOGRAFÍA
Los conceptos de Gestión de Red que se presentan a continuación están definidos para el
sector de las telecomunicaciones, sin embargo son válidos en otros sectores y tipos de
empresas56 como lo es la petrolera, adaptando los conceptos a aplicaciones específicas.
1 DEFINICIÓN DE GESTIÓN
El término Gestión en su acepción más amplia se refiere a la habilidad para interpretar
correctamente una situación y ejercer las acciones apropiadas. Se entiende como Red, un
conjunto de elementos interconectados y como Red de Gestión la administración, supervisión,
control y organización de los elementos de la red gestionada, es decir, la red de gestión incluye
funciones requeridas para monitorear, interpretar y controlar las operaciones de los elementos
que se encuentran interconectados conformando la red.
2 MODELO TMN
La ITU-T57 ha definido la TMN58 como un modelo de Red de Gestión con una estructura que
permite conectividad y comunicación a través de redes de telecomunicaciones y sistemas
operativos, proporcionando una arquitectura organizada para la interconexión de varios tipos de
56 Tomado de TeleManagement Forum Telecom Operations Map, NMF, GB910. 57 ITU-T: International Telecommunications Union-Telecommunications. 58 TMN: Telecommunications Management Network.
2
sistemas de operaciones y equipos de telecomunicaciones para el intercambio de información
de gestión.
La estructura general del modelo TMN cuenta con una arquitectura en capas que sigue una
estructura jerárquica, cuyas capas cubren diferentes aspectos dependiendo de su funcionalidad,
complementándose unos con otros. Estos niveles son:59
Figura 8: Estructura jerárquica de la TMN.
Gestión de negocio (BML60): Maneja funciones para el desarrollo de estrategias y
políticas para el control y operación de servicios.
Gestión de servicios (SML61): Responsable del mantenimiento y gestión del propio
servicio, así como la interacción con el cliente y otros servicios.
Gestión de red (NML62): Se encarga del control y coordinación de los elementos
gestionados dentro de su ámbito y dominio. Sus funciones las proporcionan los
sistemas operativos, y son usadas para dar soporte a las aplicaciones de la TMN que
requieren una visión extremo a extremo de la red.
59 Aidarous Salah, Plevyak Thomas. Telecomunications Network Management 60 BML:Business Management layer 61 SML:Service Management layer 62 NML:Network Management layer
Gestión de Servicio
Gestión de Negocio
Gestión de Red
Gestión de Elemento de Red
Elemento de Red
3
Gestión de elementos de red (NEML63): Maneja el mantenimiento, control y
coordinación de un conjunto de elementos de red.
Elementos de red (NEL64): Está conformado por las funciones específicas de cada
elemento de red.
3 GESTIÓN DE RED
El nivel de gestión de red65 tiene como función garantizar un adecuado nivel de ejecución de
procesos a un costo determinado, orientado hacia la cooperación entre la gestión de sistemas
individuales para conseguir un efecto coordinado y mejorar la disponibilidad, rendimiento y
efectividad de los elementos del sistema.
Los sistemas de gestión de red se basan en dos procedimientos básicos de actuación: la
monitorización y el control. La monitorización se ocupa de la observación, análisis de estado y
comportamiento de los recursos gestionados para la obtención de datos; y los procedimientos
de control se encargan de modificar parámetros e invocar acciones sobre el comportamiento de
los componentes.
4 GESTIÓN DE FALLAS
La ISO66 clasificó las tareas de los sistemas de Red de Gestión en cinco áreas funcionales:
Gestión de configuración: Permite identificar, recoger y proporcionar datos a objetos
gestionados, para aumentar su capacidad de control.
Gestión de prestaciones: Se encarga del mantenimiento del nivel de servicio
proporcionando calidad y asegurando su correcto y eficiente comportamiento.
Gestión de seguridad: Ofrece mecanismos que facilitan el mantenimiento de políticas
de seguridad, las cuales están dirigidas a proteger los recursos del sistema.
Gestión de contabilidad: Recolección de estadísticas que reflejen el uso de los
recursos, de forma que se pueda hacer una asignación más eficiente de estos.
63 NEML: Network Element Management layer 64 NEL: Network Element Layer 65 BARBA MARTI, Antoni. Gestión de red 66 ISO: International Organization for Standarization.
4
Gestión de fallas: Conjunto de facilidades que permiten la detección, identificación y
corrección de fallas.
La Gestión de Fallas conforma mecanismos para detectar, localizar, aislar y corregir fallas en la
red. Tiene diversas metas que se enumeran a continuación:
1. Reestablecimiento del servicio en la presencia de fallas: Utilizar estrategias reactivas y
proactivas para el reestablecimiento del servicio. Una estrategia reactiva se enfatiza en la
reparación rápida, mientras que una proactiva se enfatiza en aislar y reemplazar rápidamente el
recurso que falló por recursos de más.
2. Identificación de la causa raíz de la falla: Una vez que una falla sea detectada, la
determinación de la causa raíz debe preceder el proceso de reparación. La localización rápida
de una causas-raíz depende de las previas acciones de detección, diagnóstico y prueba.
3. Reparación de la falla: La reparación de la falla debe ser eficiente y oportuna, conservando
los costos dentro de los límites del trabajo, sumando el costo de las partes de más, mano de
obra, y el costo asociado con la no disposición del recurso para su uso hasta que sea reparado.
4. Medida de la efectividad: Se deben llevar reportes históricos debidamente documentados
para tener datos verídicos y suficientes que permitan el análisis de medidas de efectividad de
gestión de la falla en términos de la interrupción del servicio y los costos de reparación.
5 TAREAS PRINCIPALES DE LA GESTIÓN DE FALLAS67
Muchas de las funciones de Gestión de Fallas involucra análisis, correlación, reconocimiento de
patrones y procesos similares, para poder realizar sus tareas principales: detección e
identificación de las fallas y, si es posible su reparación.
1. DETECCIÓN E IDENTIFICACIÓN DE LAS FALLAS
Para detectar e identificar las fallas en una red, los sistemas de Gestión de Fallas siguen un
proceso de diagnóstico constituido por cuatro pasos que se repiten hasta hallar la causa del
67 Universidad Politécnica de Madrid. Dirección estratégica en tecnologías de la información y las comunicaciones. DGRS. GESTION DE REDES Y SERVICIOS.
5
problema: observación de síntomas, elaboración de hipótesis, verificación de hipótesis y
conclusiones.
a) Observación de síntomas: Recolección de eventos por medio de la vigilancia de alarmas para
recoger la mayor información posible de la falla. Se basa en:
- Clasificación de las alarmas dependiendo de la naturaleza de la falla.
- Registro de alarmas en orden cronológico para conservar un reporte histórico secuencial de
los eventos, coleccionar datos de alarmas correlacionadas y deducir secuencias de alarmas que
predicen fallas.
- Reportes del estado de las alarmas de un conjunto de recursos relacionados.
- Reducción de la redundancia de alarmas por medio de la identificación de síndromes de
eventos de múltiples alarmas asociadas con fallas individuales.
- Correlación de alarmas debido a que una falla puede generar muchas alarmas en distintas
partes del equipo distribuidas en tiempo y espacio.
b) Elaboración de hipótesis: Se realiza en base a los conocimientos y experiencia de la persona
experta, y a la información conocida. Se basa en:
- Diagnósticos por medio de análisis de árboles de causa-raíz de fallas.
- Corrimiento de diagnósticos.
- Correlación de los resultados para determinar la causa-raíz de la falla.
c) Verificación de hipótesis: Elaboración de un conjunto de pruebas cuyo resultado confirme si
la hipótesis es acertada, o al menos, descartable.
d) Conclusiones: Se debe tener un resultado específico. Si se llega a un resultado sin hipótesis
válida, se debe decidir qué acciones tomar para aislar el problema y luego corregirlo.
2. CORRECCIÓN DEL PROBLEMA
Resolver el problema por medio de acciones correctoras para la reparación de la falla.
Posteriormente se debe comprobar el reestablecimiento efectivo del servicio dentro de los
parámetros adecuados y hacer una medida de la efectividad.
6
6 BIBLIOGRAFÍA
12. AIDAROUS PLEVYAK, Salah, Thomas, Telecomunications Network Management into the 21st
century. New York: IEEE, 1994. 426p.
13. BARBA MARTI, Antoni, Gestión de red. México: Alfaomega, 2001. 231p
14. TELEMANAGEMENT FORUM. Telecom Operations Map, NMF, GB910, Approved Version 2.1,
March 2000.
15. UNIVERSIDAD POLITÉCNICA DE MADRID, Dirección estratégica en tecnologías de la
información y las comunicaciones (TIC). Madrid: universidad Politécnica de Madrid, 2000.
135p.
1
ANEXO B: PETRÓLEO Y TURBINAS
Se presentan los siguientes temas:
1. PETRÓLEO 1.1 GENERALIDADES 1.2 EXTRACCIÓN DE PETRÓLEO EN BP EXPLORATION COMPANY COLOMBIA LTDA 2. TURBOCOMPRESORES 2.1 GENERALIDADES 2.2 SISTEMAS DE MONITOREO DE LOS TURBOCOMPRESORES 3. BIBLIOGRAFÍA
1. PETRÓLEO
1.1 GENERALIDADES
La exploración petrolera consiste en ubicar los sitios del subsuelo donde pueda existir petróleo.
El proceso se inicia con un estudio geológico y sismológico del terreno seleccionado para
determinar el potencial petrolero de una zona determinada. Si existe suficiente información que
determine que el terreno tiene un yacimiento se procede a la perforación.
Después de finalizar la perforación de un pozo se continúa con la extracción del gas, agua y
crudo que se encuentran a altas presiones, permitiendo que el petróleo fluya y salga a la
superficie; sin embargo esta presión disminuye a medida que el yacimiento se agota y resulta
necesario utilizar algunos métodos de bombeo. BP Exploration Company Colombia Ltda utiliza el
método de levantamiento por gas o inyección de gas que consiste en inyectar gas natural
comprimido al pozo de tal forma que con la presión que éste ejerce haga subir la columna de
crudo a la superficie. Para llevar a cabo este método, se usan los TURBOCOMPRESORES
puesto que ellos son los que inyectan el gas al subsuelo, generando grandes presiones en el
pozo e impulsando la columna de crudo a la superficie. Un turbocompresor se compone de una
TURBINA y un COMPRESOR en serie, de forma tal, que la turbina le entrega la potencia
necesaria al compresor para que éste inyecte gas a altas presiones al pozo.
2
1.2 EXTRACCIÓN DE PETRÓLEO EN BP EXPLORATION COMPANY COLOMBIA LTDA
BP Exploration Company Colombia Ltda es una empresa petrolera dedicada a la exploración y
extracción de petróleo en Colombia. Actualmente tiene cuatro yacimientos en nuestro territorio,
Cusiana, Cupiagua, Floreña y Recetor, todos ubicados en el piedemonte del Casanare.
La principal actividad petrolera se ha dado en Cusiana y Cupiagua a partir de su descubrimiento
en 1991 y 1993 respectivamente. BP Exploration Company Colombia Ltda con sus cuatro
yacimientos, maneja el 40% de la producción total de crudo del país.68
En los campos petroleros de Cusiana, el proceso de producción de petróleo empieza extrayendo
del subsuelo la mezcla de crudo, agua y gas a la superficie y transportándola a la CPF (Central
Production Facilities), es decir a las plantas de tratamiento de Cusiana a través de una línea de
flujo. Estando allí se realiza la separación de productos, de forma que el agua es tratada e
inyectada al subsuelo, el crudo se transporta al puerto de Cobeñas para ser vendido y el gas se
somete a un aumento de presión usando TURBOCOMPRESORES para ser inyectado a la
formación de forma que ejerza presión en el pozo permitiendo fluir la mezcla de gas, agua y
crudo a la superficie.
En el proceso de inyección de gas al pozo se usan seis turbocompresores distribuidos en tres
trenes en paralelo, cada uno con dos turbocompresores en serie, de forma que por cada uno
fluye un tercio de la producción total.
68 Tomado de: BP EXPLORATION COMPANY, Página web oficial. En: http://www.bp.com/sectiongenericarticle.do?categoryId=454&contentId=2000603#top
3
Figura 9: Proceso de extracción de petróleo realizado en Cusiana por BP Exploration Company Colombia Ltda. PSI: Libras por pulgada cuadrada.
Las turbinas que se emplean son modelo MS-5002-C y utilizan como carga compresores de gas,
formando así los TURBOCOMPRESORES.
2. TURBOCOMPRESORES
2.1 GENERALIDADES
La turbina a gas es una máquina de transformación de energía, donde se utiliza la energía
cinética de algún fluido, en este caso gases de combustión, para la realización de trabajo
mecánico, es decir convierte energía química en potencia mecánica. Los elementos principales
de una turbina de gas de ciclo abierto son el compresor, la cámara de combustión y la turbina.
El ciclo que sigue la turbina a gas es el ciclo Joule o Brayton.
P E R F O R A C I O N E S
P E R F O R A C I O N E S
P E R F O R A C I O N E S
Turbina-Compresor Turbina-CompresorTurbina-Compresor
Turbina-Compresor
500 PSI
AGUA
CRUDO
GAS
AGUA
Es tratada e inyectada al subsuelo.
CRUDO
Se traslada a Cobeñas para exportarlo
GAS
Turbina-Compresor Turbina-Compresor
1700 PSI
5000 PSI
Se somete a altas presiones para ser inyectado al subsuelo
SEPARACIÓNLínea de flujo
4
Figura 10: Ciclo de Joule o Brayton. a) Gráfica de presión vs volumen; b) Ciclo de Brayton ilustrado con diagrama de bloques.
En el punto 1 de la figura anterior, el aire tomado de la atmósfera es comprimido hasta 2 a
través de las diferentes etapas del compresor axial. Luego el aire comprimido se introduce a
una cámara de combustión donde se le agrega una cierta cantidad de combustible y se quema.
Al producirse la combustión se realiza la transición de 2 a 3. La temperatura en el punto 3 es
crítica puesto que corresponde a la mayor temperatura y presión del ciclo. A continuación viene
la expansión de los gases usando las turbinas hasta llegar a la presión ambiente. Esta
expansión se puede dividir en dos fases. En la primera (de 3 a 3') el trabajo de expansión sirve
para accionar el compresor de entrada. En la segunda fase (de 3' a 4) el trabajo de expansión
se convierte en fuerza mecánica para impulsar la carga o compresor de salida. En el punto 4 los
gases de combustión se evacuan a la atmósfera. La evolución de 4 a 1 es virtual y corresponde
al enfriamiento de los gases hasta la temperatura ambiente.
La turbina MS-5002-C de dos ejes tiene dos rotores independientes, uno de primera etapa o
alta presión (HP High pressure) que abarca desde el compresor axial hasta la turbina (Ver
Figura 11) y mueve el rotor del compresor axial; y la segunda etapa o de baja presión (LP Low
pressure) que abarca desde la turbina hasta el compresor de gas, en la que el rotor mueve el
eje del compresor de inyección de gas (es decir el de salida). El propósito por el cual los dos
5
compresores no están acoplados mecánicamente es permitirle a los dos ejes operar a diferentes
velocidades. Esta turbina está diseñada para operar solo con gas combustible.
Figura 11: Modelo de un turbocompresor de dos ejes.
El compresor axial es inicialmente llevado, por el sistema de arranque, al 20% de la velocidad.
El aire a presión atmosférica es aspirado por el compresor axial y conducido a las cámaras de
combustión (C.B) donde se le adiciona combustible a alta presión para que una bujía de alto
voltaje encienda la mezcla de aire / combustible. Los gases calientes, a la salida de la turbina,
incrementan la velocidad del compresor axial y cuándo la presión se comienza a incrementar el
rotor de la turbina de baja presión comienza a girar de forma que ambos ejes se aceleran hasta
la velocidad normal de operación (5100 RPM69 para el eje de alta y 4670 RPM para el eje de
baja.)
La sección del compresor axial consiste del rotor y el estator, el cual incluye 16 etapas de
compresión y cada etapa incrementa la presión una determinada cantidad. Los alabes del rotor
suministran la fuerza necesaria para comprimir el aire en cada etapa y los alabes del estator
guían el aire para que este entre a la siguiente etapa con el ángulo apropiado. En la entrada del
compresor axial se localiza el IGV (Inlet Guide Vane) persiana o venas guías de entrada, que
regulan la cantidad de aire de entrada. El compresor axial tiene una capacidad 978000 Lb/Hora,
69 RPM: Revoluciones por minuto.
TURBINA
6
de los cuales el 20% es empleado para combustión y el restante 80% para los diferentes
circuitos de refrigeración.
La sección de combustión de la turbina de gas esta compuesta por 12 cámaras de
combustión externas, 12 quemadores y 2 bujías. El combustible es alimentado a cada una de
los quemadores y la combustión de la mezcla de gas y aire es encendida por las bujías. Solo
dos bujías son instaladas en dos cámaras de combustión, las cámaras restantes, que no tienen
bujías, son encendidas con la llama que proviene de las cámaras encendidas a través de los
tubos cruza llama que son las que las interconectan.
Durante la secuencia de arranque, es esencial que la indicación de presencia o ausencia de
llama sea transmitida al sistema de control. Por esta razón, un sistema de monitoreo de llama
es usado y se muestra en el panel de control Mark V.70
La sección de turbina es donde los gases a alta temperatura y presión provenientes de la
sección de combustión son convertidos en potencia mecánica, es decir la energía térmica es
convertida en energía mecánica. Una etapa de turbina está montada en el eje de alta presión y
la otra etapa está en el de baja presión para impulsar la carga. Aproximadamente el 60% de la
energía generada en la turbina se requiere para manejar el compresor axial y otro 35% está
disponible para la carga, como energía útil. Los gases de combustión son descargados por el
exhosto.
2.2 SISTEMAS DE MONITOREO DE LOS TURBOCOMPRESORES
Las turbinas y los compresores están monitoreados constantemente por diferentes sistemas que
indican su estado de funcionamiento y reportan avisos y alarmas sobre la actividad de los
equipos.
BP Exploration Company Colombia Ltda. y Equipo de Servicios Petroleros Ltda manejan tres
sistemas diferentes de monitoreo en los turbocompresores, Mark V, Bently Nevada y C.C.C,71
cada uno de los cuales controla características diferentes en estos equipos y reporta alarmas y
observaciones relacionadas con estos.
70 Para más información sobre el Mark V, cuyo fabricante es General Electric, remítase a la sección 2.2 de este documento. 71C.C.C: Centrifugal and Compressor Controller, cuyo fabricante es Compressor Control Corporation..
7
El sistema de control MARK V es el software encargado del monitoreo, control y protección de
la turbina, y todos los elementos auxiliares que hacen parte de esta; el Bently Nevada es el
sistema de monitoreo encargado de las vibraciones que ocurren en la turbina y el compresor; y
el C.C.C. está destinado al control y supervisión de la presión, flujo, potencia y temperatura en
el compresor. Adicional a estos tres sistemas encargados directamente de los turbocompresores
existe un Sistema de Control del Mark V que se ocupa del monitoreo, supervisión, control e
indicaciones del Mark V.
Figura 12: Diagrama de los sistemas de control de los turbocompresores
Todos estos sistemas de control (los cuatro anteriores) están reportando constantemente datos
al DCS72 el cual es el sistema central de monitoreo y control donde se reciben las alarmas y
avisos. Todas las alarmas que se reportan están llegando en formato de texto a un computador
ubicado en el Control Room73 de Cusiana.
3. BIBLIOGRAFÍA
1 BP EXPLORATION COMPANY, Página web oficial. En:
http://www.bp.com/sectiongenericarticle.do?categoryId=454&contentId=2000603#top
2 Información adicional suministrada por “BP Colombia LTDA” y “Equipo de Servicios
Petroleros LTDA”
72 DCS: Sistema de Control Distribuido. 73 Control Room: Cuarto de control donde se reportan las alarmas.
Turbina Compresor
Mark V Bently Nevada C.C.C. Sistema de Control del
Mark V
DCS.
1
ANEXO C: SISTEMAS EXPERTOS
Se presentan los siguientes temas:
1 GENERALIDADES 2 VENTAJAS Y DESVENTAJAS 3 DIFERENCIA ENTRE UN SISTEMA EXPERTO Y UNO TRADICIONAL 4 ELEMENTOS DE UN SISTEMA EXPERTO 5 SISTEMAS DE PRODUCCIÓN DE REGLAS 6 REPRESENTACIÓN DEL CONOCIMIENTO 7 CLIPS 8 BIBLIOGRAFÍA
1 GENERALIDADES
La Inteligencia Artificial (AI) es una ciencia nacida en los años 60 que intenta que los
computadores simulen en cierta manera la inteligencia humana. Según Shapiro se define AI
como “un campo de la ciencia y de la ingeniería que se ocupa de la comprensión a través de la
computadora de lo que comúnmente llamamos comportamiento inteligente y de la creación de
herramientas que exhiben tal comportamiento”.74 Se acude a sus técnicas cuando es necesario
incorporar en un sistema informático, conocimiento o características propias del ser humano.
La inteligencia artificial se compone de varias técnicas de estudio como sistemas expertos, vida
artificial, algoritmos genéticos, computación molecular o redes neuronales. En este caso, el
estudio se centrará en sistemas expertos (SE), los cuales son una aplicación informática que
simula el conocimiento de un experto humano, en un área de especialización dada. Debe ser
capaz de procesar y memorizar información, aprender y razonar, decidir cuestiones complejas
ofreciendo asesoramiento inteligente, justificar su comportamiento e incorporar nuevos
conocimientos.
La potencia de un sistema experto está en que es muy eficaz al analizar gran cantidad de
información, interpretarla y proporcionar una recomendación a partir de la misma. Difiere de los
algoritmos tradicionales en que se basa en el conocimiento y no en un programa deductivo
habitual. Un sistema clásico abarca conocimiento no escrito que debe obtenerse del especialista
a través de entrevistas con el ingeniero del conocimiento, es decir quien desarrolla el sistema
experto. Al proceso de construir un sistema experto se le llama ingeniería del conocimiento y
74 Tomado de MORALES, Eduardo y SUCAR Enrique, “Representación de Conocimiento”. En: http://w3.mor.itesm.mx/~rdec/principal.html.
2
consiste en la adquisición de conocimiento a partir de un especialista humano o de otra fuente
y su codificación en el sistema experto.
2 VENTAJAS Y DESVENTAJAS
Algunas de las ventajas de utilizar sistemas expertos son:
Resuelve y decide los problemas más rápidamente que un humano.
Se pueden utilizar personas no especializadas para resolver problemas. Los sistemas
expertos se pueden considerar como medio de ejecución y transmisión del
conocimiento.
Proporciona soluciones más confiables debido al tratamiento de los datos y experiencia
múltiple, puesto que puede tener el conocimiento de varios expertos.
Pueden operar en ambientes peligrosos para seres humanos.
Permite que personal con poca experiencia pueda resolver problemas que requieren el
conocimiento de experto.
Pueden realizar operaciones monótonas, aburridas e incómodas para los humanos.
Puede explicar clara y detalladamente los pasos de su razonamiento para llegar a una
conclusión, tal como un especialista humano lo haría.
Predicen resultados futuros a partir del conocimiento que tienen.
Algunas limitaciones son:
La programación es más compleja de elaborar que la tradicional.
Tiene un costo inicial elevado puesto que se requiere tiempo y dinero para extraer el
conocimiento de los especialistas humanos.
Presenta dificultad para manipular información no estructurada, especialmente la
incompleta, inconsistente o errónea. Si un problema sobrepasa la competencia de un
sistema experto, sus prestaciones se degradan de forma notable.
Se pueden generar resultados erróneos si existe desacuerdo entre los especialistas
humanos a la hora de tomar decisiones para la solución de problemas.
3
3 DIFERENCIA ENTRE UN SISTEMA EXPERTO Y UNO TRADICIONAL
Un aspecto fundamental de los sistemas expertos es que tienen una metodología diferente y en
algunos casos opuesta, a los programas tradicionales. Algunas de las diferencias se enuncian en
la siguiente tabla75.
SISTEMA TRADICIONAL SISTEMA EXPERTO
Es complicado realizar cambios al programa. Hacer cambios a las reglas no resulta ser tan
complicado.
La solución está dada por un algoritmo. La solución depende de las reglas y la inferencia.
La salida no contiene errores. Puede contener errores a la salida, puesto que
esta varía con el problema
El sistema funciona solamente cuando está
completo.
Puede funcionar con algunas reglas.
Una entrada inesperada es difícil o imposible de
tratar.
Tiene gran capacidad de respuesta para entradas
inesperadas.
Representa y usa datos Representa y usa conocimiento
Está controlado por el orden del programa, es
secuencial.
Lo controla el mecanismo de inferencia, usa las
reglas necesarias oportunamente.
No explica el procedimiento usado. Contiene un módulo de explicación.
El programa tiene un diseño estructurado. El diseño del programa es poco o nada
estructurado.
Algoritmos + estructura de datos=Programas Conocimiento + inferencia=Sistemas expertos
Tabla 1: Diferencia entre un sistema experto y uno tradicional.
4 ELEMENTOS DE UN SISTEMA EXPERTO
La adquisición del conocimiento es una de las actividades más complejas y fundamental dentro
del desarrollo de un sistema experto basado en reglas. Consta de tres elementos principales: el
Especialista o Experto Humano, quien posee el conocimiento; el Ingeniero del conocimiento,
quien extrae el conocimiento del experto humano y lo plasma en el programa de software y el
Usuario del Sistema, encargado de utilizar el sistema experto.
75 Tomado de GIARRATANO, Joseph y RILEY, Gary. Sistemas Expertos, Principios y programación. Mexico : International Thomson Editores.
4
Figura 13: Elementos principales para el desarrollo de un sistema experto.
La colaboración de estos tres elementos es una de las partes más importantes en el desarrollo
de un sistema experto, puesto que requiere dedicación, esfuerzo y tiempo debido a los
diferentes lenguajes que manejan las distintas partes y las diferentes experiencias que tienen.
La estructura general de los sistemas expertos está compuesta por seis elementos
independientes que se complementan unos a otros, de manera que se alcancen los resultados
esperados.
Figura 14: Estructura de un sistema experto.
La base de hechos contiene los datos recibidos inicialmente sobre el caso concreto que se
trabaja y registra conclusiones intermedias y datos generados en el proceso de inferencia, es
decir es la memoria activa del sistema experto. Al memorizar todos los resultados intermedios,
conserva el rastro de los razonamientos efectuados y por lo tanto se puede utilizar para explicar
las deducciones y el comportamiento del sistema.
La base del conocimiento son las reglas que contienen el conocimiento especializado
extraído de la persona experta en el dominio. El método más común para representar el
conocimiento es mediante reglas de producción, donde cada una consta de una parte
denominada condición (IF) y otra parte denominada acción (THEN.) Los especialistas en el
Interfaz de usuario
Módulo de adquisición
del conocimiento Módulo de
explicación Base de datos o hechos.
Base del conocimiento (Reglas)
Motor de inferencia
Ing. del conocimiento
Usu
ario
del
sist
ema
Exp
erto
hum
ano
Experto Humano
Usuario del Sistema
Ingeniero del conocimiento
5
tema son los responsables de suministrar una base de conocimiento ordenada y estructurada, y
un conjunto de relaciones bien definidas, explicadas y con validez. El conocimiento se almacena
en la base de conocimiento, y los datos y referencias de carácter transitorio se almacenan en la
base de hechos.
También contendrá reglas de producción que no pertenecen al dominio del problema llamadas
metarreglas, las cuales indican bajo qué condiciones deben considerarse unas reglas en vez de
otras, es decir, son reglas sobre otras reglas.
El motor de inferencia es el programa que controla el proceso de razonamiento que sigue el
sistema experto, recorriendo la base del conocimiento y haciendo uso de los datos
suministrados por la base de hechos para alcanzar una solución. El objetivo principal de este
componente es sacar conclusiones aplicando el conocimiento a los datos y dando prioridad a las
reglas. Existen lenguajes, llamados SHELLS, que se utilizan como herramienta para la creación
de sistemas expertos. La estrategia de control que manejan estos shells puede ser de
encadenamiento progresivo o regresivo. En el progresivo (o hacia delante) se comienza con los
hechos de la base de datos, y se buscan reglas que satisfagan esos datos. En el
encadenamiento regresivo (o hacia atrás) el sistema comienza a deducir el objetivo a partir de
los datos, es decir se prueba una hipótesis partiendo de los hechos contenidos en la base de
datos.
El mecanismo o motor de inferencia tiene las siguientes funciones y características:
Controlar la ejecución de las reglas.
Realizar el proceso de inferencia visto como un espacio de búsqueda AND/OR, siendo
los nodos AND todas las condiciones acciones que se tienen que cumplir y los nodos OR
las posibles reglas a considerar.
Crear una Agenda compuesta por la colección de las reglas activadas, las cuales
tendrán prioridades asignadas para que se disparen de acuerdo a su prioridad.
Permitir que el usuario suministre la información requerida por medio de la interfaz
gráfica cuando el mecanismo de inferencia lo necesite para obtener el conocimiento
necesario si el conocimiento inicial es muy limitado y no se pueden sacar conclusiones.
El mecanismo de inferencia debe comparar los patrones de reglas con la lista de datos de la
base de hechos. Si todos los patrones de una regla coinciden con los hechos, la regla se activa
y se coloca en la Agenda, es decir, si hay un hecho en la base de hechos, el mecanismo de
6
inferencia se dará cuenta de que éste satisface la condición de la regla y la pondrá en su
Agenda, teniendo presente que si una regla tiene varias condiciones todos ellas deben
satisfacerse de manera simultánea para que ésta pase a la Agenda, claro está que muchas
reglas activadas pueden estar en la Agenda al mismo tiempo, en cuyo caso el mecanismo de
inferencia debe seleccionar una sola regla de disparo usando un criterio de prioridades.
Varias reglas pueden activarse y pasar a la Agenda durante un ciclo, las activaciones de reglas
en ciclos previos también se dejarán en la Agenda a menos que hayan sido desactivadas
porque sus condiciones no se hayan satisfecho; así el número de activaciones en la Agenda
variará mientras procede la ejecución. El mecanismo de inferencia ejecuta las acciones con
mayor prioridad de activación en la Agenda, luego, la siguiente en grado de prioridad y así
sucesivamente hasta que no quede ninguna activación de alguna regla.
El módulo de adquisición del conocimiento permite añadir, eliminar o modificar elementos de
conocimiento (en la mayoría de los casos reglas) en el sistema experto. Controla el flujo del
nuevo conocimiento, es decir determina qué nuevo conocimiento se necesita, o si el
conocimiento recibido es en realidad nuevo. Es la vía para que el usuario pueda introducir
conocimiento al sistema sin tener al ingeniero del conocimiento para que lo incorpore
explícitamente él.
El módulo de explicación aclara al usuario el razonamiento seguido en el proceso de
inferencia, de forma que si se quiere saber cómo se ha llegado a una conclusión, este módulo
le presenta la secuencia completa de reglas usada.
La interfaz con el usuario Es el mecanismo que permite la comunicación entre el usuario y el
sistema experto proporcionando intercambio de información entre ambas partes.
5 SISTEMAS DE PRODUCCIÓN DE REGLAS
Los sistemas expertos basados en reglas son los que se desarrollan comúnmente debido a las
ventajas descritas anteriormente. El objetivo es crear un algoritmo que conozca todas las reglas
y pueda aplicar cualquiera de ellas y hacer relaciones entre las mismas sin tener que probar
cada una en forma secuencial,76 generando de este modo rapidez y eficacia a los sistemas
expertos al momento de generar soluciones. El fin de esta clase de programación es que el
76 Este procedimiento se denomina “Algoritmo de Rete.”
7
programador por medio de diferentes reglas o pequeñas conclusiones que enuncia
explícitamente pueda lograr que el sistema infiera un resultado.
6 REPRESENTACIÓN DEL CONOCIMIENTO
Existen varias formas de representar el conocimiento para que un sistema experto pueda
interpretar las reglas y usarlas correctamente. Su importancia radica en que de acuerdo con esa
representación se mide el desarrollo, eficiencia, velocidad y mantenimiento de un sistema
experto.
Para el desarrollo del SISTEMA EXPERTO EoS, se utilizó el método de Árboles de Conocimiento,
los cuales son estructuras jerárquicas de datos conformadas por nodos que almacenan
conocimiento y ramas que conectan de manera lógica los nodos. Al nodo con mayor jerarquía
se le denomina nodo raíz, y a los de menor jerarquía se les llama hojas.
Figura 15: Estructura de un Árbol de conocimiento.
De esta forma un árbol es un esquema de representación del conocimiento y un método de
razonamiento del mismo. En este caso se utilizan árboles para representar el conocimiento de
los expertos en fallas de BP Exploration Company Colombia Ltda. y Equipo de Servicios
Petroleros Ltda.
Nodo raíz
Nodo
Rama
Nodo
Nodo
Nodo
Hoja
Hoja Hoja Hoja Hoja
Hoja
Hoja
Hoja
8
7 CLIPS
Los lenguajes utilizados para implementar sistema expertos se concentran en proporcionar
formas robustas y flexibles de representar el conocimiento, por tal motivo existen herramientas
de lenguajes de alto nivel con propósitos especiales llamadas Shells, los cuales fueron
diseñadas para construir sistemas expertos con cierto tipo de aplicaciones en las que el usuario
sólo debe proporcionar la Base de Conocimiento.77
CLIPS78 es un shell para el desarrollo de sistemas expertos, puesto que soporta la programación
basada en reglas y orientada a objetos o por procedimientos; sin embargo el enfoque está en la
programación orientada en reglas. Se diseñó utilizando el lenguaje de programación C en el
centro espacial Johnson de la NASA, con el propósito específico de proporcionar una gran
capacidad de transporte, bajo costo y fácil integración.
Los componentes principales de CLIPS son los elementos básicos de un sistema experto:
Lista de hechos: Contiene los datos de los que se derivan las inferencias.
Base de conocimiento: Comprende todas las reglas.
Mecanismo de inferencia: Controla la ejecución global.
Un sistema experto basado en reglas escrito en CLIPS es un programa manejador de datos,
donde los hechos u objetos son los datos que simulan la ejecución a través del motor de
inferencia79, el cual decide cuáles y cuando de ejecutan las reglas.
Los manuales Guía del usuario, Guía básica de programación, Guía avanzada de
programación, y Guía de Interfases, que hacen parte de la documentación de CLIPS y se
incluyen en la documentación del SISTEMA EXPERTO EoS, contienen las especificaciones,
características, comandos, procedimientos y funciones de CLIPS. El Manual Técnico de
Usuario proporciona una cobertura detallada de algunas funciones y características de CLIPS.
77 Base del Conocimiento: Remítase a la sección 4 de este documento. 78 CLIPS: C Language Integrated Production System. 79 Motor de inferencia: Es el programa que controla el razonamiento o proceso de inferencia que sigue el sistema experto.
9
8 BIBLIOGRAFÍA
1 GIARRATANO, Joseph y RILEY, Gary. Sistemas Expertos, Principios y programación. Mexico:
International Thomson Editores, 2001. 596p.
2 Inteligencia Artificial. En: http://ciberconta.unizar.es/LECCION/IA/INICIO.HTML.
3 MORALES, Eduardo y SUCAR Enrique, “Representación de Conocimiento”. En:
http://w3.mor.itesm.mx/~rdec/principal.html.
4 Sistemas expertos. El conocimiento al poder. En: http://www.psycologia.com/articulos/ar-
jsamper01.htm#indice
5 Sistemas Expertos: Áreas de Aplicación. En:
http://www.geocities.com/SiliconValley/Way/7788/SISEXP.HTM#refs
1
ANEXO D: ÁRBOLES DE CONOCIMIENTO
A continuación se presenta la lista con los Árboles de Conocimiento que hacen parte del SISTEMA EXPERTO EoS, las alarmas relacionadas con
cada uno de ellos, y su representación gráfica.
NOMBRE DEL ÁRBOL DE CONOCIMIENTO ALARMAS RELACIONADAS
M12-L45FTT_ALM
M13-L45FTT_ALM
M14-L45FTT_ALM
M15-L45FTT_ALM
M16-L45FTT_ALM
Detección de fuego
M17-L45FTT_ALM
M12-L86CBT_ALM
M13-L86CBT_ALM
M14-L86CBT_ALM
Bleed Valve
M15-L86CBT_ALM
2
M16-L86CBT_ALM
M17-L86CBT_ALM
M12-LCLFEN_ALM
M13-LCLFEN_ALM
M14-LCLFEN_ALM
M15-LCLFEN_ALM
M16-LCLFEN_ALM
Clutch
M17-LCLFEN_ALM
M12-L3NZFLT
M13-L3NZFLT
M14-L3NZFLT
M15-L3NZFLT
M16-L3NZFLT
IGV o Nozzles
M17-L3NZFLT
3
M12-PT2606
M12-PT2609
M12-TT2602
M13-PT2704
M13-PT2707
M13-TT2702
M14-PT2656
M14-PT2659
M14-TT2652
M15-PT2754
M15-PT2757
M15-TT2752
M16-PT2906
Transmisores
M16-PT2909
4
M16-TT2902
M17-PT3004
M17-PT3007
M17-TT3002
M12-L39VCT_ALM
M13-L39VCT_ALM
M14-L39VCT_ALM
M15-L39VCT_ALM
M16-L39VCT_ALM
Vibración
M17-L39VCT_ALM
5
Alarma: M12-L45FTT_ALM ó M13-L45FTT_ALM ó M14-L45FTT_ALM ó M15-L45FTT_ALMó M16-L45FTT_ALM ó M17-L45FTT_ALM
En cual modulo detonador estaprendido el LED?
Aterrizamientodel cable
R/Reemplazartramo de cable
pelado
¿Deteccion de la alarma:ALARMA M12-L45CP_ALM? Presencia de CO2
Zona 2-B
SI
Zona 1-B Zona 1-A
Zona 2-A
Inspeccion visual delPush-Botton ¿Esta activo ?
Push Botton activoR/Normalizar la
zonaSI
Desconectar resistencia defin de linea. Megguear enIJB-9 Bornera 7-8 haciaacople.Hacia tierra. ¿ Laresistencia es infinita ?
NO Falla en elcableado
R/Reemplazartramo de cable
pelado
SI
Hay corto entre los cables?
NO
Push Botton enmal estadoSI
Desconectar cables ameguear. Meguear en
XXXXX hacia el sistema Fire& Gas Detronix ¿ El cable
se encuentra abierto ?
NO Posible falla en elmodulo
R/Evalue elcambio del
modulo
NO
Inspeccion visual de evidencias derastros de aceite .Verificar si laalarma fue real.¿Hay rastros deaceite que indiquen que la alarma
fue real ?
Desconectar resistencia defin de linea. Megguear enIJB-3 Bornera 11-12 haciaacople. Hacia tierra. ¿ Laresistencia es infinita ?
Hay corto entre los cables?
Desconectar detector(sensor). ¿Continua corto
entre los cables ?
Fuego por fugade aceite por
acopleR/Normalizar
reset de la zona SI
NO
NO
SI
SI
Cable en malestado
R/Reemplazarlos cables
SI
Meguear el detector(sensor). ¿Los sensores
estan en corto ?
NOFalla endetectores deincremento
termicoR/Reemplazar
los dos (2)sensores deincremento
SI
Desconectar cables ameguear. Meguear en
XXXXX hacia el sistema Fire& Gas Detronix ¿ El cable
se encuentra abierto ?
NO
Posible falla en elmodulo
R/Evalue elcambio del
modulo
NO
Inspeccion visual de evidenciasde rastros de aceite .Verificar sila alarma fue real. ¿Hay rastros
de aceite que indiquen que laalarma fue real ?
Desconectar resistencia defin de linea. Megguear enIJB-2 Bornera 1-2 haciaacople, hacia tierra. ¿Laresistencia es infinita ?
Hay corto entre los cables?
Desconectar detector(sensor). ¿Continua corto
entre los cables ?
Meguear el detector(sensor). ¿Los sensores
estan en corto ?
Desconectar cables ameguear. Meguear en
XXXXX hacia el sistema Fire& Gas Detronix ¿ El cable
se encuentra abierto ?
Fuego por fugade aceite poraccesorios
R/Normalizarreset de la zonaSI
NO
Aterrizamientodel cable
R/Reemplazartramo de cable
pelado
NO
SISI
Cable en malestado
R/Reemplazarlos cables
SI
NOFalla en
detectores deincremento
termicoR/Reemplazar
los dos (2)sensores deincremento
SI
Posible falla en elmodulo
R/Evalue elcambio del
moduloNOSI Presencia de alarmassecundarias ¿Cuales se
detectaron?
ALARMAM11-L71PSAL
ALARMAM11-L45HTA
Bajo nivel de overhead tank.Fuga por gas en tanque de aceite Gas presente
Fuego por fuga de gas
Inspeccion visual de evidenciasde rastros de aceite .Verificar sila alarma fue real.¿Hay rastrosde aceite que indiquen que la
alarma fue real ?
Desconectar resistencia defin de linea. Megguear enIJB-3 Bornera 7-8 hacia
tierra. ¿ La resistencia esinfinita ?
Hay corto entre los cables?
Desconectar detector(sensor) de 600 grados.¿Continua corto entre los
cables ?
NOSI
SI
Meguear detectores(sensores) de 600 grados.¿Los sensores estan en
corto ?
NO
Desconectar resistencia defin de linea. Megguear enIJB-3 Bornera 3-4 hacia
tierra. ¿ La resistencia esinfinita ?
NO
Fuego por fugade aceite en
compartimentoturbina
R/Normalizarreset de la zona
SI
Falla en cableadodetectores 600
gradosR/Reemplazartramo de cable
pelado
NO
Cable en malestado
R/Reemplazarlos cables SI
Falla endetectores deincrementotermico 600
gradosR/Reemplazar
los dos (2)sensores deincremento
termico
SI
Hay corto entre los cables?
Desconectar detectores(sensores) de 450 grados.¿Continua corto entre los
cables ?
SICable en mal estadoR/Reemplazar los cables SI
Meguear detectores(sensores) de 450 grados.¿ Los sensores estan en
corto ?
NOFalla en detectores de incrementotermico 450 grados
R/Reemplazar los dos (2)sensores de incremento termico
SI
Desconectar cables ameguear. Meguear enXXXXXhacia el sistema Fire & Gas
Detronix ¿ El cable seencuentra abierto ?
Posible falla en elmodulo
R/Evalue el cambiodel modulo
NO
Falla en cableadodetectores 450
gradosR/Reemplazartramo de cable
pelado
NO
SI
SI Presencia de alarmassecundarias ¿Cuales se
detectaron?
ALARMAM11-L26BA1H
ALARMAM11-L45HTA
ALARMAM11-L71PSAL
Bajo nivel de overhead tank.Fuga por gas en tanque de aceite
Bajo nivel de overhead tank.Fuga por gas en tanque de aceite
Bajo nivel de overhead tank.Fuga por gas en tanque de aceite
NO
DETECCIÓN DE FUEGO
6
Alarma: M12-L86CBT_ALM ó M13-L86CBT_ALM ó M14-L86CBT_ALM óM15-L86CBT_ALM ó M16-L86CBT_ALM ó M17-L86CBT_ALM
Forzar en Mark V y esperaL33CB20 o L33CB10.
¿La electrovalvula actua?
Electrovalvula NO actua
NO
Verificar que el embolocomo tal no toca el limit
switch. ¿ El embolo toca ellimit switch?
Desconectar los cables delos terminales y medir en
los cables de campo.¿Tienen 200 ohmios ?
Forzar en Mark V lasseñales L20CB1X. Verificarel voltaje en los terminales
TB10 22-23.P ¿Hay voltaje?
Verificar actuaciOn de lasolenoide desconectando
tubing hacia la Bleed Valve.¿ Esta pegada laelectrovalvula?
El fusible presentaproblemas?
Falla en el switch Bobina abiertaR/Cambiar la bobina
Problemas de lasalida del Mark V
R/Cambiar canal desalida
La electrovalvula estapegada. Plan demantenimientoinadecuado
Pruebas dearranque. Falla dealimentación por
fusibleR/Reemplazarfusible por uno
adecuado sino teniael del diseño
SI SI
NO SI
SISI
NONO
NO
NO
Actuador atascadoR/Verificar estado de la
empaquetadura
BLEED VALVE
7
Alarma LCLFDEN_ALM
Medir voltaje en L20CS1X en TB214,15. ¿ El voltaje es menor de 24
voltios ?
Buscar el rung correspondiente a la logica deL20CS1X y verificar. ¿Falta un permisivo?
Forzar señal L20CS1X y medir voltaje en borbonerade la solenoide ¿ Llegan a 24 VDC ?
Condiciones en la logicaincompletas
R/Corrija el permisivo faltante
Falla en salida de la tarjetaTCDA
R/Cambiar tarjeta TCDA
SI
Medir solenoide abriendo loscables en marshallingTB10(10,11). ¿ Es
aproximadamente 200 ohmios ?
Medir resistencia fusible. ¿El fusibleesta abierto?
Verificar borneras en JB2 1,2.¿Cableado abierto ?
Mark V no coloca voltaje
SI
NO
NO
Mecanismo atascado
NOLazo del solenoide delclutch abierto
Solenoide abiertaR/Reemplazar la
solenoide
Cableado AbiertoR/Cambiar borneras o
cables a spare
SI
SI
Megguear cableado entresolenoide y MP. ¿Bajaresistencia a tierra ?
SI
Cable aterrizado
SI
Inspeccion visual. Verificardezplazamiento suave usando accesorio
mecanico. ¿Encuentra desgaste enestrias en eje de convertidor de torque o
en mordazas ?
Forzar L20CS1X. Verificarcalibracion. ¿ Hay
desplazamiento de balinera demordaza de convertidor ?
Inspeccion visual. ¿Haydeformacion de vastago de gatos
hidraulicos ?
Desgaste en estrias en ejede convertidor de torque o
en mordazasR/Cambio de mordaza
Tiempo de servicio.Dezplazamiento de balinera
de mordaza convertidorR/Calibrar clutch de
acuerdo a especificacionSOM02882
Golpe o Maltrato.Deformacion de vastago de
gatos hidraulicosR/Cambiar cilindro afectado
SI
SISI
NO
Sistema hidráulico no eleva lapresión o no le llega al clutch
NONO
En manometro presion menor de1200 psi?
Colocar manometro a la entrada delos cilindros. Verificar presion. ¿ Lapresion es mucho menor de 1200 psi
a la entrada de los cilindros?
Medir presion en gatoshidraulicos. ¿Medida correcta?
Fallas en la bomba ofallas en la regulacion
de presion
Taponamiento encircuito hidraulico.
Residuos de orings oempaquetaduras
R/Cambio de valvulasolenoide
Mecanismo de laelectrovalvula atascado
SI
SI
SI
SI
CLUTCH
8
Alarma: M12-L3NZFLT ó M13-L3NZFLT ó M14-L3NZFLT ó M15-L3NZFLT óM16-L3NZFLT ó M17-L3NZFLT
Simular la señal en el servocorrespondiente desde ACALIB.
¿El mecanismo se mueve ?
¿Al hacer las simulaciones elservo se mueve, pero la
realimentacion permanece igual ?
Simular la señal en el servocorrespondiente desde ACALIB.¿Como observa movimiento del
servo ?
Simular la señal en el servo correspondiente desdeACALIB. ¿ Observa un cambio en el sentido de la
corriente de las tres selenoides ?
La presion en el manometro esaproximadamente 1000 psi ?
El voltaje en los terminales escero (0V) ?
Realimentacion de LVDT nocorresponde con posicion fisica
del mecanismo
Compare la lectura contraindicacion mecanica de la
posicion. ¿El error es maximo 2grados ?
Desacoplar la LVDT y verificarque el vastago se mueva
libremente. ¿La varilla delnucleo esta doblada ?
Inspeccion en Junction Box 4.¿ Se encuentra sulfatacion o
borboneras flojas ?
Mecanismo no se mueve
Medir el voltaje antes y despuesde la barrera. ¿Se tumba
aproximadamente la mitad delvoltaje ?
NO SI
Posible taponamiento en elservo. Taponamiento en
internos del servo por suciedaden el aceite
R/Reemplazar el servo
Posible taponamiento en filtroshidraulicos.Taponamiento en
internos del servo por suciedaden el aceite
R/Reemplazar el servo
Intenta moverseo
Movimiento abrupto
No se mueve
Falla en las bobinas delservo
R/Cambiar el servo en casode encontrar bobinas
abiertas
NO
Falla bomba principal ovalvula de alivio
R/ Check list de stat-upNO
Mark V no coloca voltajeR/Verificar activacion de los
reles de suicidioSI
SI
SINO
otro
esta
do
Perdida de presion
DescalibracionR/Realizar el procedimiento
de calibracion de LVDT
Falla del nucleo movil delLVDT
R/Reemplazar la LVDT
Sulfatacion o borbonerasflojas
R/Reapretar o cambiarborboneras si estan dañadas
Barreras de seguridadintrinseca defectuosa
R/Reemplazar barrera siesta defectuosa. Por
condicion
NO
SI
SI
NO
IGV o NOZZLES
9
Alarma: M12-PT2606 ó M12-PT2609 ó M12-TT2602 ó M13-PT2704 ó M13-PT2707 ó M13-TT2702 ó M14-PT2656 ó M14-PT2659 ó M14-TT2652 óM15-PT2754 ó M15-PT2757 ó M15-TT2752 ó M16-PT2906 ó M16-PT2909 ó M16-TT2902 ó M17-PT3004 ó M17-PT3007 ó M17-TT3002
Incremento del proceso NOreal y NO simultaneo en los
dos transmisores
Falla en el sistema operativoR/Corregir sistema operativo o
de ajuste del proceso
Fusible abierto por ratinginadecuado
R/Realizar cambio de fusiblesegun planos as built
Verificar la tendencia de la señal en el IMS delinstrumento evaluando discrepancia. ¿El incremento
del proceso fue real y simultaneo en los dostransmisores ?
SINO
Graficar en estacion de operacion lavariable ¿Encuentra señal inestable ?
La lectura del transmisor que causo el tripesta en cero (0v) ?
Medir voltaje enbornera de salida enmarshalling. ¿Lamedida es 24V ?
SINo llegavoltaje al
transmisorNO
Medir fusible ensalida del
marshallingpanel. ¿Elfusible seencuentraabierto?
SI
Llegavoltaje al
transmisor
SI
Revise bornera. ¿El cableado estadesajustado ?
Medir voltaje deretorno entre o.25 y1.25 VDC, y entre
1 y 5 VDC Laindicacion se
corrigio ?
Cableado de bornerasdesajustado
R/Ajustar cableado deborneras
SI
NO
RamaComun
NO
Mirar historicospara inspeccion dela estabilidad delproceso. ¿Se
presentainestabilidad en el
proceso ?
Inspeccionar nuevoscableados. ¿ Se han
hecho nuevoscableados que nocumplan con la
norma ?
Señal inestable
SICableado de controljunto de potencia
R/Independizar loscircuitos de control con
los de potencia. Encaso de no ser posible
utilizar cableapantallado para el TX
¿La indicacion searreglo?
Inestabilidaden el procesoR/ Evaluarsolucion
¿La indicacionse arreglo?
SI
SI
RamaComun
NO
NO
Simular presion y verificarcalibracion. Esta calibrado ?
NO
NO
NO
Calibrado Realizar la calibracionadecuada. Despues de llevaracabo la calibracion , continua
descalibrado ?
NO
Sacar elinstrumento de
servicio.Verificarsalida de 4mA.La salida es
diferente de 4mA ?
Revisar historia de mantenimiento delinstrumento.Ultima calibracion no debeser superior a un (1) año. La ultimacalibracion es superior a un (1) año ?
SI
La valvula de venteoesta cerrada ?
Verificar que no hayafugas por racores,
tubing, o conectores.¿Hay fugas por
racores,tubing y/oconectores ?
Instalar un medidordruck y comparar
lectura contransmisor. ¿Esigual a la toma de
proceso ?
NO
Despues de haber realizadolas acciones debidas
responder: ¿La indicaciónse arreglo ?
Desajuste delconversor
analogo-digital.Piernas muertaspor la condiciónde montaje delinstrumento de
servicio.R/Realizar unZERO TRIM al
TXR/Realizarcambio de la
unidadsecundaria
electronica encaso de no recibirel ajuste de cero
SISI
Tiempo de servicio NO superioral MTBF
R/Reportar al sistema de gestionde mantenimiento
Tiempo de servicio superioral MTBF
R/Cambiar el instrumento
SINO
NO NOValvula abierta
Valvula cerrada
Fuga por racoresR/Asegurar una buenaconexion y apriete de
los racoresFuga por tubing
debidas a vibracion R/ Colocar anclajes al
tubing
NO
SI
SI
Obstruccion de la toma de proceso.Problema de la valvula de corte.
Taponamiento por residuos en tubing otoma de procesoR/Realizar limpieza
del tubing y toma del instrumentoSI
Despues de haberrealizado las
acciones debidasresponder ¿Laindicacion se
arreglo ?
NO
NO
RamaComun
NO
NO
RamaComun
Hacer simulacion 4-20 mA encampo. Revisar borneras y
cableado. Medir continuidad delcable. ¿Es menor a 50 omhios?
Realizar meggueo del cable. La impedanciadebe ser mayor a 10 Momhios . Medir
impedancia con respecto a tierra. ¿El valormedido es infinito ?
Inspección visual borneras IJB.¿ Borneras en IJB en mal estado por
humedad ?
Cableado abierto R/ Reemplazar cable por spare
Cable aterrizado
Borneras de IJB en mal estado por humedadR/Realizar cambio de borneras. Asegurar quelas borneras no esten en contacto con el riel
Despues de haber realizado lasacciones debidas responder ¿La
indicacion se arreglo ?
SI
SI
NO
NO
NO
SI
Revisar tarjeta de PLC simulandocorriente (i) al DCS a la tarjeta.¿La simulacion es correcta ?
Posible conversor analogo-digital enmal estado (DCS)
R/Evaluar reemplazo de tarjeta
Despues de realizar las accionescorespondientes: ¿La indicacion
se corrigio ?
SINO
NO
Realizar diagnostico utilizando elhandheld HART segun manual del
equipo. Evaluar y ejecutar lasolucion del problema segun
manual referente. ¿Se corrigio laindicacion ?
NO
Problemas en los dispositivoselectronicos
R/Reemplazar unidad electronica
NO
TRANSMISORES
10
Alarma: M12-L39VCT_ALM ó M13-L39VCT_ALM ó M14-L39VCT_ALM ó M15-L39VCT_ALMó M16-L39VCT_ALM ó M17-L39VCT_ALM
Led Frontal en System MonitorApagado ?
¿Estan las borneras delazo bien apretadas y no
sulfatadas ?
Como esta el estado de Leds deDual Vibration Monitor: LED OK y
LED BYPASS ?Indicación erratica en el display ?
(Ruido)
Inspeccion de juntas deexhosto. ¿Le pegangases calientes a las
junction box?
Inspeccion visual depantallas de cableado.
¿Estan aisladas en ladocampo?
Ruido en la señalSI
Cables sueltosR/Reapretar
las borbonerasen todo el lazo
Cables conaterrizamientoinadecuado. Las
pantallas expuestas enlado proximitor
R/Aislar las pantallasque esten expuestas y
aterrizandose en campo
Alta temperatura enproximitor. Gases
calientes le pegan a lasjunction box
R/Corregir las fugas degases calientes por la
junta del exhosto
NO
NO
SI
Falla en fuente oSystem Monitor
Los siete (7) ledsinternos de System
Monitor estanAPAGADOS ?
ALGUN Led interno enSystem Monitor esta
apagado ?
SI
Falla alimentación de110VAC
Fusible abierto y 110VAC presentes DC ?
Leds :LED OK Apagado
LED BYPASS encendido
Leds diferente de :LED OK Apagado
LED BYPASS encendido
SI
Hay voltaje en breakerde alimentación ?
Falla interna enSystem Monitor carga
breaker.R/Retirar todas lastarjetas del rack.
Reemplazar el fusibley empezar a insertartarjetas hasta que seidentifique la que falla
Falla externaen 110VACR/Verificarestado de la
UPS
SI
NO
Corto en modulos DualVibration Monitor cargan al
System Monitor
Retire todas las tarjetas(excepto fuente y System
Monitor). Insertar una a unay determinar estado de losleds. ¿Se encuentra algun
led apagado ?
Retire todas lastarjetas (excepto fuente
y system monitor).¿ Persiste led
apagado?
Modulo en fallaR/Reemplazar elmódulo que carga
la fuente
Fuente delrack en falla
R/Cambiar lafuente
SI
SI
Desconectar el cable en losdos extremos (lado
proximitor y lado monitor)Aplicar megger. ¿La medida
es menor a 100K ?
LED OK titilaLED BYPASS apagado
Falla interna.Verificar codigo de barra haciendo
corto entre ST.Codigo en barra =___________?
Desconectar elconector miniaturadel cable coaxial
del cable deextension delproximitor.
Asegurar que losconectores seencuentren enbuen estado y
limpios. Con unmultimetro medirla resistencia entre
los conductoresexternos e internosdel conjunto probe
y cable deextension teniendoen cuenta que el
valor de laresistencia
depende del tipo desonda y la longitud
del cable deextension. ¿Laresistencia esta
entre 7 y 11ohmios ?
NOSI
Falla en cableproximitor
R/Reemplazarel cable coaxial(sensor-proxi
mitor)
Posible falla enproximitorR/.Realizarpruebas de
laboratorio conel equipo
especializado
El LED OK esta:___________?El LED BYPASS esta:_________?
LED OK apagadoLED BYPASS apagado
LED OK apagadoLED BYPASS encendido
Falla interna irrecuperableR/Reemplazar el modulo
Proximitor aterrizado.R/Reemplazar el proximitor
Cableado aterrizadoR/Reemplazar el cable por
un spare
Falla en fuente de monitor omodulo de rele de la
entrada.R/Reemplazar el modulo.
Si continua bajo reemplazarel modulo rele
Medir voltaje en Proximitor.Verificar modulo y cableado.
¿ Mide 24VDC ?
Desconectar cables del sensoren falla y medir voltaje. ¿Es
menor a 23 voltios?SI
SI
NO
Codigo en barra = 2
Codigo en barra = 3
Codigo en barra = 5
Codigo en barra = 8
Falla en la ROMR/ Reemplace el modulo
Falla en la EEPROMR/Reemplazar el modulo
7.5V nodo fuera de rangoR/Reemplazar el modulo
MVREF nodo fuera derango
R/ Reemplazar el modulo
VIBRACIÓN
1
ANEXO E: LICENCIA DE FUNCIONAMIENTO DE CLIPS
A continuación se presenta la información referente a la licencia, e información de CLIPS, que
se encuentra en la página de Internet http://www.ghg.net/clips/Download.html.
CLIPS Download Area This is the primary site for obtaining the latest release of CLIPS. The current release is CLIPS 6.2 and is available in the the Download Area.
CLIPS License Information
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
CLIPS is released as public domain software and as such you are under no obligation to pay for its use. However, if you derive commercial or monetary benefit from use of the software or just want to show support, please consider making a voluntary payment based on the worth of the software to you as compensation for the time and effort required to develop and maintain CLIPS. Payments can be made online at http://order.kagi.com/?JKT.
Enter Download Area
2
CLIPS User Registration
Please take a few minutes to register CLIPS by sending email to [email protected] where YYYY is the current year (for example, 2004). Include the words 'CLIPS REGISTRATION' in your subject line. Indicate your company/government/university affiliation (if any), what version of CLIPS you are using, the source of your copy (CLIPS web site, textbook, etc.), and any other information you'd like to provide about your use of CLIPS.
Downloaded File Types
Most of the documentation at this site is stored in Portable Document Format (PDF) which requires Adobe Acrobat Reader. This program can be downloaded from http://www.adobe.com/prodindex/acrobat/readstep.html. Compressed files at the CLIPS web set are stored in several formats: zip (primarily for PC users), sit.hqx (for MacOS users), and tar.Z (for Unix users). If your web browser does not automatically unzip any downloaded zip files, utilities for performing this task can be found at http://www.shareware.com/. Select the appropriate operating system and search for unzip. For sit.hqx files, select Macintosh and search for stuffit-expander. For Unix users, the Unix uncompress and tar commands should be used for extracting files from tar.Z archives.
Other Sources for Obtaining CLIPS
Expert Systems: Principles and Programming, 3rd Edition, by Giarratano and Riley (ISBN 0-534-95053-1 from Thomson Learning) comes with a CD-ROM containing CLIPS 6.05 executables, source code, and documentation. The first half of the book is theory oriented and the second half covers rule-based programming using CLIPS.
Back to CLIPS Home Page.
Last Update May 22, 2004 Gary Riley
1
ANEXO F: CARTAS ADJUNTAS
A continuación se adjunta una copia de:
La carta que se le presentó al Ingeniero de Control en Cusiana, en la que se hace
entrega del SISTEMA EXPERTO EoS para que permanezca en periodo de prueba en el
Control Room.
La carta en la que se manifiesta la aprobación del SISTEMA EXPERTO EoS, en cuanto
que cumplía con los propósitos trazados desde el inicio del proyecto.
2
Bogotá, Agosto 29 de 2004. Ingeniero, RUBÉN SOLER Ingeniero de Control Cusiana EQUIPO DE SERVICIOS PETROLEROS LTDA..
Estimado Ruben,
Hacemos entrega del SISTEMA EXPERTO EoS, con el fin de que sea instalado en el
Control Room de Cusiana, para realizar las pruebas del trabajo de grado titulado:
“Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la
extracción de petróleo”, el cual se desarrolla en conjunto con BP Exploration
Company Colombia Ltda. y Equipo de Servicios Petroleros Ltda.
A partir de la fecha de instalación, el SISTEMA EXPERTO EoS permanecerá en
periodo de prueba durante 1 (uno) mes.
Cordialmente,
GINA PAOLA PULIDO URIZA C.C. 52809846 de Bogotá Estudiante Ingeniería Electrónica. VIVIANA ESPINOSA ROJAS C.C. 52805772 de Bogotá Estudiante de Ingeniería Electrónica.
3
Bogotá, Octubre 3 de 2004. Señoritas, VIVIANA ESPINOSA R GINA P PULIDO U Pontificia Universidad Javeriana E. S. M.
Respetadas señoritas,
Como Ingeniero de Control de Cusiana, y persona a cargo del desarrollo y supervisión
del SISTEMA EXPERTO EoS en la planta, manifiesto mi aceptación al proyecto e
informo que recibo a conformidad el SISTEMA EXPERTO EoS, previas correcciones
definidas, para ser presentado de manera formal el 17 de Octubre de 2004 en el CPF
de Cusiana.
El sistema contiene las herramientas y funcionalidades que se definieron al momento
de formular el proyecto, y suple las necesidades para las cuales está diseñado.
Cordialmente,
RUBÉN DARÍO SOLER Ingeniero de Control. Equipo de Servicios Petroleros Ltda. Teléfono: (1) 6284700 Ext 6383. CPF Cusiana, Casanare.
1
ANEXO G: REPORTES EoS
A continuación se presentan los reportes generados por el SISTEMA EXPERTO EoS al realizar
las últimas pruebas en campo (Cusiana) el 4 de Octubre de 2004.
Se realizaron dos pruebas:
1. En modo Análisis de Eventos: Se utilizó como Archivo de entrada un archivo de
texto con las características requeridas y se realizó el análisis del evento. El tag de la
Alarma de Disparo que se utilizó fue M17-TESTLEVEL y el estado de disparo fue
ALARM. A esta alarma se asoció el Árbol de Conocimiento IGV o Nozzless.
El nombre del archivo donde se almaceno el Reporte EoS es:
M17-TESTLEVEL--AnalisisEventos--2004-10-3--16;33;22.Txt
2. En modo Real: Se simuló una alarma cuyo tag y estado de disparo eran M17-
TESTLEVEL y ALARM respectivamente. El Sistema de Captura y Filtraje la recibía por
puerto serial y generaba el archivo que era la entrada del SISTEMA EXPERTO EoS. A
esta alarma se asoció el Árbol de Conocimiento IGV o Nozzless.
El nombre del archivo donde se almaceno el Reporte EoS es:
M17-TESTLEVEL--2004-10-3--16;37;36.Txt
De esta prueba se efectuó un video en el cual se muestra el modo de su realización.
9 REPORTE EoS: MODO ANÁLISIS DE EVENTOS
SISTEMA EXPERTO EOS. ANALISIS DE EVENTOS realizados por el usuario. 1. No se ingreso el nombre de la persona que realizo el proceso. 2. Tags de las alarmas relacionadas con el proceso realizado por el SISTEMA EXPERTO EoS. El primer tag corresponde a la Alarma de Disparo del proceso, y los demas a las Alarmas Secundarias. M17-TESTLEVEL (SS-L28FDB5) (SS-L28FDB2) (SS-L28FDB3)
2
(SS-L28FDB7) (SS-L28FDB8) 3. Informacion correspondiente a la Alarma de Disparo del proceso: TAG DE LA ALARMA DE DISPARO: M17-TESTLEVEL DESCRIPCION DE LA ALARMA DE DISPARO: TB 1StgProcGCompFlt ESTADO DE LA ALARMA DE DISPARO: Alarm alarm FECHA DE LA ALARMA DE DISPARO: 10/3/2004 HORA DE LA ALARMA DE DISPARO: 4:33:04 PM 4. El SISTEMA EXPERTO EoS no encontro causas de la falla. 5. Proceso ejecutado por el SISTEMA EXPERTO EoS para hallar las causas de la falla: ALARMA DE DISPARO: M17-TESTLEVEL 10/3/2004 4:33:22 PM (CAUSAS (ANTECEDENTES "(IGV o Nozzles): ALARMA IGV o Nozzles ")) (CAUSAS (ANTECEDENTES "(IGV o Nozzles): IGV o Nozzles no se mueven")) 6. El SISTEMA EXPERTO EOS no genero recomendaciones correctivas. 7. Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas del usuario: ALARMA DE DISPARO: M17-TESTLEVEL 10/3/2004 4:33:06 PM PREGUNTA 1: ACCION: Simular la seNal en el servo correspondiente desde ACALIB. PREGUNTA: El mecanismo se mueve ? RESPUESTA 1: SI (4:37:26 PM) PREGUNTA 2: Al hacer las simulaciones el servo se mueve, pero la realimentacion permanece igual ? RESPUESTA 2: NO (4:37:36 PM) Numero de preguntas realizadas por el sistema experto en el proceso: 2 8. No hay observaciones adicionales realizadas por el usuario. 9. Informacion detallada de las alarmas que interactuaron con el SISTEMA EXPERTO EOS. (Tag de la alarma, Descripcion de la alarma, Estado de la alarma, Fecha en que ocurrio la alarma, Hora en que ocurrio la alarma.) SS-L28FDB1 Flash Gas Drum MV < L1 40.00 psig 04-01-31 00:26:07:649 L U1-TIC5409 T1 Teg Super Heater MV > H1 440.00 degF 04-01-31 00:26:37:234 L M13-L28FDB Flame - Chamber #3 Status Off 04-01-31 00:27:34:375 L U1-TIC5409 T1 Teg Super Heater MV > H1 440.00 degF 04-01-31 00:36:58:234 L SS-L28FDB5 T1 Teg Super Heater MV > H1 440.00 degF 04-01-31 00:37:59:234 L M13-L28FDB Flame - Chamber #3 Status On 04-01-31 00:38:46:375 L M17-TESTLEVEL TB 1StgProcGCompFlt Alarm alarm 04-01-31 00:38:18:078 L SS-L28FDB2 Flame - Chamber #3 Status Off 04-01-31 00:39:10:375 L P1-LI4204 P1-V-42001 LEVEL LALL Normal 04-01-31 00:39:38:531 L M11-L3NZFLT TA MpSep Oil/H2o Lvl MV > H1 60.00 % 04-01-31 00:40:07:234 L SS-L28FDB3 TA 2StgDiscClr Out MV < L1 100.00 degF 04-01-31 00:40:48:229 L P1-XA2454 TB 1StgProcGCompFlt Alarm Active 04-01-31 00:40:51:442 L M13-L28FDB Flame - Chamber #3 Status On 04-01-31 00:42:47:375 L SS-L28FDB7 cM1 RTU Door Status Open 04-01-31 00:41:42:416 L PP-L28FDB2 T1 Teg Super Heater MV > H1 440.00 degF 04-01-31 00:42:38:239 L
3
M13-L28FDB Flame - Chamber #3 Status Off 04-01-31 00:43:34:375 L W168XA27x20 cM1 RTU Door Status Closed 04-01-31 00:42:34:416 L SS-L28FDB8 T1 Teg Super Heater MV > H1 440.00 degF 04-01-31 00:43:42:234 L U1-XA5426 T3 Burner Management SHUTDOWN Cleared 04-01-31 01:18:53:118 L 11. Nombre del archivo que el usuario utilizo para realizar el ANALISIS DE EVENTO. C:\SistemaExperto\Eventos\Evento1.txt
10 REPORTE EoS: MODO REAL
SISTEMA EXPERTO EOS. 1. No se ingreso el nombre de la persona que realizo el proceso. 2. Tags de las alarmas relacionadas con el proceso realizado por el SISTEMA EXPERTO EoS. El primer tag corresponde a la Alarma de Disparo del proceso, y los demas a las Alarmas Secundarias. M17-TESTLEVEL 3. Informacion correspondiente a la Alarma de Disparo del proceso: TAG DE LA ALARMA DE DISPARO: M17-TESTLEVEL DESCRIPCION DE LA ALARMA DE DISPARO: ESTADO DE LA ALARMA DE DISPARO: LALL Alarm FECHA DE LA ALARMA DE DISPARO: 3/10/2004 HORA DE LA ALARMA DE DISPARO: 11:34:55 AM 4. El SISTEMA EXPERTO EoS no encontro causas de la falla. 5. Proceso ejecutado por el SISTEMA EXPERTO EoS para hallar las causas de la falla: ALARMA DE DISPARO: M17-TESTLEVEL 10/3/2004 4:37:36 PM (CAUSAS (ANTECEDENTES "(IGV o Nozzles): ALARMA IGV o Nozzles ")) (CAUSAS (ANTECEDENTES "(IGV o Nozzles): IGV o Nozzles no se mueven")) 6. El SISTEMA EXPERTO EOS no genero recomendaciones correctivas. 7. Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas del usuario: ALARMA DE DISPARO: M17-TESTLEVEL 10/3/2004 4:37:02 PM PREGUNTA 1: ACCION: Simular la seNal en el servo correspondiente desde ACALIB. PREGUNTA: El mecanismo se mueve ? RESPUESTA 1: SI (4:37:26 PM) PREGUNTA 2: Al hacer las simulaciones el servo se mueve, pero la realimentacion permanece igual ? RESPUESTA 2: NO (4:37:36 PM) Numero de preguntas realizadas por el sistema experto en el proceso: 2
4
8. No hay observaciones adicionales realizadas por el usuario. 9. Informacion detallada de las alarmas que interactuaron con el SISTEMA EXPERTO EOS. (Tag de la alarma, Descripcion de la alarma, Estado de la alarma, Fecha en que ocurrio la alarma, Hora en que ocurrio la alarma.) "M17-L3VMTM_ALM Vib/Temp Monitor Device Normal 3/10/2004 4:21:48 AM ","M17-L28FD_ALM Flame Detector Status Normal 3/10/2004 4:30:21 AM ","M17-L28FDC Flame - Chamber #10 Status Off 3/10/2004 4:30:21 AM ","M17-SFog_LowFlow_SD Shutdown Package Tripped 3/10/2004 4:59:36 AM ","M17-L28FDB Flame - Chamber #3 Status On 3/10/2004 5:46:40 AM ","M17-L28FD_ALM Flame Detector Status Alarm 3/10/2004 5:47:00 AM ","M17-L28FDC Flame - Chamber #10 Status On 3/10/2004 5:47:00 AM ","M17-L28FDB Flame - Chamber #3 Status Off 3/10/2004 5:47:00 AM ","M17-L28FDB Flame - Chamber #3 Status On 3/10/2004 5:58:55 AM ","M17-L28FDB Flame - Chamber #3 Status Off 3/10/2004 5:59:06 AM ","M17-SFog_LowFlow_SD Shutdown Package Normal 3/10/2004 6:50:05 AM ","M17-L18VGA_ALM Gear Box Acceleratn Alarm Normal 3/10/2004 6:57:11 AM ","C3-TI3006 T3 HpCompDiscClr Out TAL Normal 3/10/2004 9:15:09 AM ","M17-TESTLEVEL LALL Normal 3/10/2004 11:32:06 AM ","M17-TESTLEVEL LALL Alarm 3/10/2004 11:34:55 AM ","M17-TESTLEVEL LALL Normal 3/10/2004 11:36:46 AM ","M17-TESTLEVEL LALL Alarm 3/10/2004 11:37:42 AM ","M17-TESTLEVEL LALL Normal 3/10/2004 11:46:43 AM ","M17-TESTLEVEL LALL Alarm 3/10/2004 11:48:24 AM ","M17-TESTLEVEL LALL Normal 3/10/2004 3:37:19 PM ","M17-TESTLEVEL LALL Alarm 3/10/2004 3:37:54 PM ","M17-TESTLEVEL LALL Normal 3/10/2004 3:39:42 PM ","M17-TESTLEVEL LALL Alarm 3/10/2004 4:18:38 PM ","M17-TESTLEVEL LALL Normal 3/10/2004 4:20:43 PM ","M17-TESTLEVEL LALL Alarm 3/10/2004 4:22:28 PM ","M17-TESTLEVEL LALL Normal 3/10/2004 4:24:36 PM ","M17-TESTLEVEL LALL Alarm 3/10/2004 4:29:18 PM ","M17-TESTLEVEL LALL Normal 3/10/2004 4:29:42 PM ","M17-TESTLEVEL LALL Alarm 3/10/2004 4:32:06 PM
MANUAL DE USUARIO: Sistema Experto EoS
Esta guía le ayudará a usar de manera correcta el SISTEMA EXPERTO EoS, partiendo desde
como instalarlo y ejecutarlo, hasta aprender a conocer los usos y la manera de interpretar
correctamente la información, opciones y facilidades que brinda el sistema. Este manual hace
referencia detallada de la función y operación de cada una de las partes que componen el
SISTEMA EXPERTO EoS.
1
TABLA DE CONTENIDO
TABLA DE CONTENIDO .......................................................................................1 LISTA DE FIGURAS ..............................................................................................2 INTRODUCCIÓN ....................................................................................................4 1. FUNCIONAMIENTO GENERAL DEL SISTEMA EXPERTO EoS ................5 1.1 SISTEMA DE CAPTURA Y FILTRAJE ...............................................................5 1.2 SISTEMA EXPERTO EoS .................................................................................6 2. REQUERIMIENTOS DEL SISTEMA EXPERTO EoS ................................................8 3. INSTALACIÓN Y EJECUCIÓN DEL SISTEMA .......................................................9 3.1 PASOS PRELIMINARES ..................................................................................9 3.2 INSTALAR Y EJECUTAR EL SISTEMA EXPERTO EoS .....................................10 4. MODO DE PRUEBA DE CLIPS ...........................................................................14 5. ESTADO DEL SISTEMA EXPERTO EoS ..............................................................15 6. INFORMACIÓN DE LA ALARMA DE DISPARO ..................................................16 7. PREGUNTAS FORMULADAS POR EL SISTEMA EXPERTO EoS............................17 8. HISTORIAL DE PREGUNTAS Y RESPUESTAS ....................................................19 9. CAUSAS EoS....................................................................................................20 10. RECOMENDACIONES EoS ............................................................................21 11. PROCESO EoS ..............................................................................................22 12. OBSERVACIONES DEL USUARIO .................................................................23 13. MODO ANÁLISIS DE EVENTOS ....................................................................25 14. REPORTES EoS ............................................................................................27 15. BARRA DE HERRAMIENTAS ........................................................................30 15.1 DETENER ....................................................................................................30 15.2 GUARDAR...................................................................................................30 15.3 BORRAR .....................................................................................................31 15.4 REPORTES...................................................................................................32 15.5 OCULTAR EoS .............................................................................................33 16. BARRA DE MENÚ DEL SISTEMA EXPERTO EoS ............................................35 16.1 MENÚ ARCHIVO..........................................................................................35 16.2 MENÚ PREFERENCIAS.................................................................................35 16.2.1 ESTILO FUENTE ......................................................................................35 16.2.2 COLOR FUENTE.......................................................................................36 16.2.3 COLOR FONDO........................................................................................36 16.2.4 VALORES PREDETERMINADOS ...............................................................37 16.3 MENÚ AYUDA.............................................................................................37 16.3.1 MANUAL DE USUARIO ............................................................................37 16.3.2 ACERCA DEL SISTEMA EXPERTO EoS…...................................................37 17. AYUDA DINÁMICA DEL SISTEMA EXPERTO EoS..........................................38 18. GLOSARIO ..................................................................................................39
2
LISTA DE FIGURAS
Figura 1: Lista de alarmas que se muestra en la interfaz del Sistema de Captura y Filtraje. Se detalla: Tag de la alarma, descripción de la alarma, estado de referencia de la alarma, estado de la alarma, fecha en que ocurrió la alarma, hora en que ocurrió la alarma................................................................................................................................5 Figura 2: Archivo de Entrada del SISTEMA EXPERTO EoS. ........................................6 Figura 3: Esquema de entradas y salidas del SISTEMA EXPERTO EoS........................7 Figura 4: Ubicación de la carpeta EJERVG en C\ ............................................................9 Figura 5: Pantalla de instalación de Framework.exe. .....................................................10 Figura 6: Archivo de texto DataPathAlarms, ubicado en C:, el cual contiene la ruta de acceso donde se crearán las carpetas Eventos y Reportes SisExpEoS............................10 Figura 7: Icono del SISTEMA EXPERTO EoS. ............................................................10 Figura 8: Ventana del Sistema de Captura y Filtraje y ventana de CLIPS. ...................11 Figura 9: Linea de código para activar el programa CLIPS............................................11 Figura 10: Pantalla con código en CLIPS. ......................................................................12 Figura 11: Minimizar la ventana de CLIPS. ...................................................................12 Figura 12: Ventana MENÚ PRINCIPAL. ......................................................................13 Figura 13: Ventana principal del SISTEMA EXPERTO EoS. .......................................13 Figura 14: Indicación del estado de CLIPS.....................................................................14 Figura 15: Mensaje de error que indica al usuario que los componentes del SISTEMA EXPERTO EoS NO están trabajando correctamente......................................................14 Figura 16: Señal en la ventana principal del SISTEMA EXPERTO EoS, que indica cuando se está ejecutando un proceso.............................................................................15 Figura 17: Información de la alarma de disparo. Se muestra cuando el sistema inicia un proceso. ...........................................................................................................................16 Figura 18: Información cuando no hay Alarmas de Disparo en el Archivo de Entrada. 16 Figura 19: Presentación de las preguntas que formula el SISTEMA EXPERTO EoS al usuario. ............................................................................................................................17 Figura 20: Señal en la ventana principal del SISTEMA EXPERTO EoS, que indica cuando hay una pregunta activa, es decir cuando se está en espera de la respuesta del usuario. ............................................................................................................................17 Figura 21: Ejemplo de una pregunta formulada al usuario, antecedida por una acción requerida por el usuario...................................................................................................18 Figura 22: Historial de preguntas y respuestas que se crea a medida que transcurre el proceso. ...........................................................................................................................19 Figura 23: Presentación de CAUSAS EoS .....................................................................20 Figura 24: Presentación de RECOMENDACIONES EoS. ............................................21 Figura 25: Presentación de PROCESO EoS. ..................................................................22 Figura 26: El usuario puede ingresar su nombre y las observaciones adicionales, que considere convenientes....................................................................................................23 Figura 27: Mensaje que se muestra al usuario al finalizar el proceso.............................23 Figura 28: El botón FINALIZAR se muestra intermitente después de haberse concluido el proceso. Permite al usuario ingresar la información de nombre y observaciones adicionales.......................................................................................................................24 Figura 29: Para analizar eventos de manera manual.......................................................25
3
Figura 30: Ejemplo de un Archivo de Eventos. ..............................................................26 Figura 31: Ruta de acceso y nombre del archivo con el que se está realizando el análisis..........................................................................................................................................26 Figura 32: Botón de Reportes. ........................................................................................27 Figura 33: Botón detener.................................................................................................30 Figura 34: Detener el proceso utilizando el menú Archivo. ...........................................30 Figura 35: Botón Guardar. ..............................................................................................31 Figura 36: Guardar la información relacionada con el el proceso utilizando el menú Archivo............................................................................................................................31 Figura 37: Ventana para escoger la ruta de acceso donde el usuario desea guardar la información referente al proceso.....................................................................................31 Figura 38: Botón Borrar ..................................................................................................32 Figura 39: Borrar la información relacionada con el el proceso utilizando el menú Archivo............................................................................................................................32 Figura 40: Botón de Reportes. ........................................................................................32 Figura 41: Ventana para escoger el archivo del Reporte EoS que el usuario desea ver. 33 Figura 42: Ver los Reportes utilizando el menú Archivo ...............................................33 Figura 43: Botón Ocultar EoS.........................................................................................33 Figura 44: Ocultar la ventana principal del SISTEMA EXPERTO EoS utilizando el menú Archivo..................................................................................................................34 Figura 45: Submenús del menú preferencias. .................................................................35 Figura 46: Ventana que permite cambiar el tipo, tamaño y estilo de letra de los diferentes cuadros de texto..............................................................................................35 Figura 47: Presentación de una ventana después de haber personalizado el Estilo de la Fuente..............................................................................................................................36 Figura 48: Ventana que permite cambiar el color de letra de los diferentes cuadros de texto.................................................................................................................................36 Figura 49: Presentación de una ventana después de haber personalizado el Color de la Fuente..............................................................................................................................36 Figura 50: Presentación de una ventana después de haber personalizado el Color de Fondo. .............................................................................................................................37 Figura 51: Submenús del menú Ayuda. ..........................................................................37 Figura 52: Modo para acceder a este MANUAL DE USUARIO en formato digital. ....37 Figura 53: Información de ayuda para el usuario, en la que se indica la función de cada control. (En este caso se muestra la función de la ventana inferior derecha que revela el estado de CLIPS.) ...........................................................................................................38
4
INTRODUCCIÓN
Bienvenidos al SISTEMA EXPERTO EoS, un programa fácil de usar que le ayudará a
diagnosticar, y hallar las causas de algunas fallas que se presentan en los turbocompresores de
“BP Exploration Company” Colombia Ltda ubicados en el CPF80 de Cusiana, Casanare.
Esta guía le ayudará a usar de manera correcta el programa, desde como instalarlo y
ejecutarlo, hasta aprender a conocer los usos y la manera de interpretar correctamente la
información, opciones y facilidades que brinda el sistema.
Este manual hace referencia detallada de la función y operación de cada una de las partes que
componen el SISTEMA EXPERTO EoS. Es adecuado familiarizarse previamente con la operación
del programa, para conocer y manejar de forma apropiada las opciones que tiene y la
información que genera.
Acerca de…
El desarrollo del SISTEMA EXPERTO EoS, se realizó como tesis de grado titulada “Gestión de
fallas con diagnóstico experto para turbocompresores utilizados en la extracción de
petróleo”, por las Ingenieras Electrónicas Viviana Espinosa Rojas y Gina Paola Pulido Uriza, de
la Pontificia Universidad Javeriana, bajo la dirección del Ingeniero Adolfo León Recio y la
asesoría del Ingeniero Jose Fernando Vega y el Ingeniero Alejandro Forero Guzmán. Se
desarrolló en las empresas “BP Exploration Company Colombia Ltda” Y “Equipo De Servicios
Petroleros Ltda” bajo el conocimiento, asesoría y requerimientos del Ingeniero Carlos Olarte,
Superintendente (R) de operaciones de Cusiana de “BP Exploration Company Colombia Ltda.” y
el Ingeniero Rubén Soler, sección de Control en Cusiana de “Equipo de Servicios Petroleros
Ltda.” Su instalación se realizó en BP Exploration Company Colombia Ltda en Cusiana, Casanare
en octubre de 2004.
Para conocer la estructura de programación, modo de alimentar el sistema experto y aspectos
más específicos del funcionamiento del SISTEMA EXPERTO EoS remítase al Manual Técnico De
Usuario. El código fuente del programa se encuentra en el archivo Código de programación del
SISTEMA EXPERTO EoS.
80 CPF de Cusiana: Central Production Facilities. Planta de extracción de petróleo ubicada en Cusiana, Casanare.
5
FUNCIONAMIENTO GENERAL DEL SISTEMA EXPERTO EoS
El SISTEMA EXPERTO EoS interactúa con el Sistema de Captura y Filtraje de las alarmas,
previamente desarrollado e instalado en el Control Room81 de Cusiana; donde trabajan de
forma coordinada y bajo la misma interfaz.
SISTEMA DE CAPTURA Y FILTRAJE
Se encarga de recibir constantemente las alarmas que generan los diferentes equipos que
intervienen en el proceso de extracción de petróleo en Cusiana, Casanare y mostrarlas de
manera detallada en pantalla.
Figura 16: Lista de alarmas que se muestra en la interfaz del Sistema de Captura y Filtraje. Se detalla: Tag de la alarma, descripción de la alarma, estado de referencia de la alarma, estado de la alarma, fecha en que ocurrió la alarma, hora en que ocurrió la alarma.
Cuando recibe la información de una alarma que está directamente relacionada con la parada
de un turbocompresor, (a la que denominaremos “Alarma de disparo”) el sistema genera un
archivo de texto con la información de los sesenta (60) minutos anteriores y el (1) minuto
posterior a la alarma. Este archivo será la entrada del SISTEMA EXPERTO EoS.
81 Control Room: Es el cuarto de control donde se reportan las alarmas de los equipos que se encuentran en el CPF de Cusiana, Casanare.
6
Figura 17: Archivo de Entrada del SISTEMA EXPERTO EoS.
SISTEMA EXPERTO EoS
Tiene como entrada el archivo de texto que genera el Sistema de Captura y Filtraje cuando
ocurre una Alarma de Disparo82. Este archivo lo llamaremos Archivo de Entrada.
Cuando el SISTEMA EXPERTO EoS empieza un nuevo proceso, también analiza las alarmas que
se encuentran en el Archivo de Entrada del sistema, que no son Alarmas de Disparo83 pero
están relacionadas con los turbocompresores, (a las que denominaremos “Alarmas
secundarias”); y formula una serie de preguntas al usuario con las que realiza el proceso de
inferencia, el cual arroja como resultado las siguientes salidas:
Posibles causas que generaron la falla: Causas EoS. (Sección 0 de este manual.)
Posibles recomendaciones correctivas a la falla: Recomendaciones EoS. (Sección 0
de este manual.)
Secuencia de pasos realizados por el SISTEMA EXPERTO EoS para generar las demás
salidas: Proceso EoS. (Sección 0 de este manual.)
82 El archivo al que se refiere la Figura 17. 83 Alarma de Disparo: Remítase a la sección 0. de este Manual.
7
Figura 18: Esquema de entradas y salidas del SISTEMA EXPERTO EoS.
La información adicional que el SISTEMA EXPERTO EoS presenta al usuario, como parte del
análisis que realiza es:
Información referente a la Alarma de Disparo: Información de la alarma de
disparo. (Sección 0 de este manual.)
Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas dadas por
el usuario: Historial de preguntas y respuestas. (Sección 0 de este manual.)
Reporte con la información de entrada, salida y adicional. Este reporte se genera en
formato de texto (*.Txt) al terminar el proceso: Reporte EoS. (Sección 0 de este
manual.)
SISTEMA EXPERTO EoS
Archivo de Entrada: Archivo de texto que genera el Sistema de Captura y Filtraje.
CausasRecomendacioProceso
8
REQUERIMIENTOS DEL SISTEMA EXPERTO EoS
El SISTEMA EXPERTO EoS está soportado bajo ambiente Windows, por lo tanto para su
correcta ejecución se necesita un computador personal con las siguientes características:
Hardware: Procesador Pentium II® o superior.
RAM: 128 MB o superior.
Disco duro: 12 GB o superior.
Software: Windows 98 o superior.
CLIPS.84
Para el correcto funcionamiento del SISTEMA EXPERTO EoS es necesario que trabaje
simultáneamente con el Sistema de Captura y Filtraje y con CLIPS.
Para una correcta visualización, se debe usar una resolución de pantalla de 768 píxeles máximo.
Tenga presente que:
En algunos casos el SISTEMA EXPERTO EoS no presenta al usuario las palabras con
tildes, para evitar errores de caligrafía.
Algunas palabras que contienen la letra ñ, se presentarán con la letra n.
84 CLIPS: Herramienta especializada de software para la elaboración de sistemas expertos.
9
INSTALACIÓN Y EJECUCIÓN DEL SISTEMA
El SISTEMA EXPERTO EoS, en su composición, está dividido en dos programas:
3. Interfaz gráfica: Es el programa con el que el usuario interactúa, y donde se
muestra la información de interés para éste. La interfaz gráfica la comparte con el
Sistema de Captura y Filtraje.
4. CLIPS: Es un programa que trabaja de manera regular y sincrónica con la interfaz
gráfica. Realiza el proceso de inferencia y genera la información que se muestra al
usuario.
El correcto funcionamiento de cada uno de ellos hace que el SISTEMA EXPERTO EoS trabaje
adecuadamente, de forma que es indispensable que ambos programas se ejecuten
simultáneamente y de manera correcta como se indica a continuación.
PASOS PRELIMINARES
Copiar la carpeta EJERVG,y SistemaExperto, y el archivo de texto DataPathAlarms.Txt85
en el disco duro C:\ de su computador. El usuario NO debe modificar ninguno de los
archivos que allí se encuentran puesto que puede afectar el correcto funcionamiento
del sistema. Asegúrese que las carpetas NO sean de solo lectura.
Figura 19: Ubicación de la carpeta EJERVG en C\
Ejecutar el archivo “FrameWork.exe” que se encuentra en la carpeta C:\EJERVG, e
instalar el componente en su computador.
85 Los tres elementos se encuentran en el CD de instalación del SISTEMA EXPERTO EoS
10
Figura 20: Pantalla de instalación de Framework.exe.
El archivo de texto ubicado en C:\ denominado “DataPathAlarms.Txt”, especifica la ruta
donde se crean las carpetas Eventos y Reportes SisExpEOS que se utilizarán
posteriormente durante la ejecución del programa. La ruta de acceso será
C:\SistemaExperto\
Figura 21: Archivo de texto DataPathAlarms, ubicado en C:\, el cual contiene la ruta de acceso donde se crearán las carpetas Eventos y Reportes SisExpEoS.
INSTALAR Y EJECUTAR EL SISTEMA EXPERTO EoS
Copiar el archivo “SISTEMA EXPERTO EoS.exe”86 en su disco duro (se recomienda el
escritorio), puesto que es el que se usará en situaciones posteriores cuando se requiera
abrir nuevamente el sistema.
Figura 22: Icono del SISTEMA EXPERTO EoS.
86 Sistema Experto EoS.exe se encuentra en C:\EJERVG\SistemaExperto
11
En la pantalla se mostrará la ventana del Sistema de Captura y Filtraje y la ventana de
CLIPS trabajando sobre DOS.
Figura 23: Ventana del Sistema de Captura y Filtraje y ventana de CLIPS.
Escriba en la línea de comando de la ventana de CLIPS:
(batch C:\EJERVG\PROGRAMAGLOBAL.CLP)
Figura 24: Linea de código para activar el programa CLIPS.
Presione la tecla Enter. Observará en pantalla algunas líneas de código como las que se
muestran a continuación.
12
Figura 25: Pantalla con código en CLIPS.
Minimice la ventana de CLIPS.
Figura 26: Minimizar la ventana de CLIPS.
Haga doble clic sobre el icono de “SISTEMA EXPERTO EoS.exe.” A continuación se
mostrará la ventana con el MENÚ PRINCIPAL.
13
Figura 27: Ventana MENÚ PRINCIPAL.
Esta permite seleccionar entre el Sistema de Captura y Filtraje, el SISTEMA EXPERTO EoS, y
salir del programa. Ambos sistemas estarán funcionando simultáneamente, sin importar la
ventana que escoja el usuario para mostrar en pantalla.
Haga clic sobre SISTEMA EXPERTO EoS. A continuación se mostrará la ventana
principal de EoS.
Figura 28: Ventana principal del SISTEMA EXPERTO EoS.
La instalación del SISTEMA EXPERTO EoS ha terminado.
14
MODO DE PRUEBA DE CLIPS
Para comprobar que el programa CLIPS está funcionando de manera regular y sincrónica con la
interfaz gráfica, el SISTEMA EXPERTO EoS presenta al usuario en la esquina inferior derecha de
la ventana principal una indicación con el estado del programa.
Figura 29: Indicación del estado de CLIPS.
Existen dos posibles estados que indican el comportamiento de CLIPS:
Trabajando: Indica que los dos componentes del SISTEMA EXPERTO EoS (Interfaz
gráfica y CLIPS) están trabajando correctamente.
REINICIAR: Indica que los dos componentes del SISTEMA EXPERTO EoS (Interfaz
gráfica y CLIPS) NO están trabajando correctamente y por lo tanto es necesario cerrar
ambos programas y posteriormente volver a abrirlos. (Es decir realizar la sección 0 de
este manual.) Adicionalmente, se le indica al usuario por medio de un mensaje de
texto.
Figura 30: Mensaje de error que indica al usuario que los componentes del SISTEMA EXPERTO EoS NO están trabajando correctamente.
La fecha y hora que se encuentran a la derecha del estado de CLIPS, indican la última prueba
que realizó el sistema para comprobar la interacción de los programas.
15
ESTADO DEL SISTEMA EXPERTO EoS
El SISTEMA EXPERTO EoS, empieza un proceso cuando el Archivo de Entrada87 contiene la
información referente a una Alarma de Disparo, es decir cuado se genera una alarma
relacionada directamente con la falla de un turbocompresor. A partir de este momento, se
desarrollan una serie de acciones que le indican al usuario que el sistema se encuentra EN
PROCESO.
Si el Archivo de Entrada contiene más de una (1) Alarma de Disparo, el SISTEMA EXPERTO EoS
solamente interpretará la primera, como Alarma de Disparo y las demás no las tendrá en
cuenta en el análisis de Causas de Falla88.
Para visualizar esto, el SISTEMA EXPERTO EoS tiene una indicación en la parte superior de su
ventana principal que indica si hay o no un proceso en curso.
Figura 31: Señal en la ventana principal del SISTEMA EXPERTO EoS, que indica cuando se está ejecutando un proceso.
Cuando el mensaje EoS EN PROCESO se encuentra resaltado en color azul, indica que el
SISTEMA EXPERTO EoS está actualmente ejecutando un proceso, y por lo tanto el usuario debe
estar pendiente para responder las preguntas que formula el sistema. Cuando el mensaje EoS
EN PROCESO NO se encuentra resaltado en azul, indica que el SISTEMA EXPERTO EoS está
en espera de una Alarma de Disparo, es decir, no se encuentra ejecutando un proceso y el
sistema no requiere de ninguna acción por parte del usuario.
Tenga en cuenta que el SISTEMA EXPERTO EoS siempre debe terminar los procesos, lo que
indica que si el mensaje EoS EN PROCESO se encuentra resaltado en azul y el sistema NO está
realizando ninguna acción, se deben reiniciar los dos programas (la interfaz gráfica y CLIPS),
para que el sistema quede nuevamente en espera.
87 Archivo de entrada: Es el archivo al que se refiere la Figura 17. 88 Esto se debe a que sólo la primera Alarma de Disparo es la que realmente reporta la falla, las otras alarmas que suceden en el (1) minuto siguiente, son producto de la primera y NO suministran información adicional al proceso.
16
INFORMACIÓN DE LA ALARMA DE DISPARO
Cuando se inicia un proceso, el SISTEMA EXPERTO EoS muestra en la ventana principal la
información relacionada con la Alarma de Disparo, la cual es la misma que se lee del Archivo de
Entrada.89
Figura 32: Información de la alarma de disparo. Se muestra cuando el sistema inicia un proceso.
La información mostrada es:
Tag: Es el código que utilizan en el CPF de Cusiana para identificar cada una de las
alarmas relacionadas con los equipos de extracción de petróleo.
Descripción: Es una breve descripción de la Alarma de Disparo.
Estado: Indica el estado de la alarma, complementando la descripción de la misma.
Fecha: Indica la fecha en que ocurrió la Alarma de Disparo.
Hora: Indica la hora en que ocurrió la Alarma de Disparo.
Si en el Archivo de Entrada no se encuentra ninguna alarma relacionada directamente con los
turbocompresores, es decir no se encuentra una Alarma de Disparo, se indicará de la siguiente
manera:
Figura 33: Información cuando no hay Alarmas de Disparo en el Archivo de Entrada.
89 Archivo de entrada: El que se refiere la .Figura 17.
17
PREGUNTAS FORMULADAS POR EL SISTEMA EXPERTO EoS
Durante el proceso, el SISTEMA EXPERTO EoS formula preguntas al usuario con el fin de
conocer el estado actual de los diferentes equipos e instrumentos que se encuentran en la
planta y puedan estar relacionados con los turbocompresores y la falla que se generó.
Figura 34: Presentación de las preguntas que formula el SISTEMA EXPERTO EoS al usuario.
Cada una de las preguntas que se formulan al usuario se presenta con las posibles respuestas,
de manera que él debe seleccionar la correcta y hacer clic sobre ella. No existe la posibilidad
de no escoger alguna de las respuestas indicadas.
Existe una señal en la parte superior de la ventana principal del SISTEMA EXPERTO EoS, en la
que se indica al usuario cuando hay una pregunta activa.
Figura 35: Señal en la ventana principal del SISTEMA EXPERTO EoS, que indica cuando hay una pregunta activa, es decir cuando se está en espera de la respuesta del usuario.
Cuando el mensaje PREGUNTA se encuentra intermitente (se resalta en color azul y rojo),
indica que el SISTEMA EXPERTO EoS formuló una pregunta al usuario y está en espera de su
respuesta. Si el usuario no visualiza la pregunta, podrá hacer clic sobre la indicación y esta se
mostrará. Cuando el mensaje PREGUNTA NO se encuentra intermitente ni resaltado en algún
color, indica que el SISTEMA EXPERTO EoS no ha formulado alguna pregunta ni requiere de
ninguna acción por parte del usuario.
En algunos casos, la pregunta que realiza el SISTEMA EXPERTO EoS va antecedida por una
acción que el usuario debe realizar para poder dar respuesta a la formulación.
18
Ejemplo: “ACCIÓN: Inspección visual de pantallas de cableado PREGUNTA: Están aisladas
en lado campo?
Figura 36: Ejemplo de una pregunta formulada al usuario, antecedida por una acción requerida por el usuario.
19
HISTORIAL DE PREGUNTAS Y RESPUESTAS
A medida que el SISTEMA EXPERTO EoS formula preguntas y el usuario las responde, se va
creando un HISTORIAL que almacena la pregunta y respuesta con la hora en que ocurrió cada
una de ellas.
Figura 37: Historial de preguntas y respuestas que se crea a medida que transcurre el proceso.
En el HISTORIAL DE PREGUNTAS Y RESPUESTAS se detalla:
El tag de la Alarma de Disparo que generó el proceso.
El número de la pregunta y la pregunta realizada por el SISTEMA EXPERTO EoS.
El número de la respuesta y la respuesta dada por el usuario con la hora en que
ocurrió.
El número total de preguntas realizadas por el SISTEMA EXPERTO EoS en el proceso.
Si el usuario no visualiza el HISTORIAL DE PREGUNTAS Y RESPUESTAS, podrá hacer clic sobre
la pestaña MOSTRAR HISTORIAL y ésta se mostrará.
20
CAUSAS EoS
Al terminar el proceso, el SISTEMA EXPERTO EoS presenta las CAUSAS EoS90, las cuales son las
posibles causas que generaron que la Alarma de Disparo se presentara, es decir, son las causas
de la falla que se presentó en los turbocompresores.
Figura 38: Presentación de CAUSAS EoS
En CAUSAS EoS se detalla:
El tag de la Alarma de Disparo que generó el proceso.
La fecha en la que el SISTEMA EXPERTO EoS presentó al usuario las CAUSAS EoS.
La hora en la que el SISTEMA EXPERTO EoS presentó al usuario las CAUSAS EoS.
El listado con las causas de la falla, indicando el Árbol de Conocimiento91 al que se
asocia el proceso que se realizó.
Si no se encuentran las causas que generaron la Alarma de Disparo, no se indica nada en el
cuadro de CAUSAS EoS.
90 Causas EoS: Es una de las salidas del sistema. 91 Árbol de Conocimiento: Representaciones gráficas y lógicas del Proceso de Inferencia que realiza el SISTEMA EXPERTO EoS con cada Alarma de Disparo para hallar las causas de la falla. Se utilizan para representar el conocimiento de los expertos en fallas. Cada Árbol de Conocimiento tiene un nombre asociado. Para más información remítase a la sección 6 del ANEXO C del libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo”, o a su sección 3.6.
21
RECOMENDACIONES EoS
Al terminar el proceso, el SISTEMA EXPERTO EoS presenta las RECOMENDACIONES EoS92, las
cuales son las posibles recomendaciones que se proponen para solucionar la falla que se
presentó en los turbocompresores.
Figura 39: Presentación de RECOMENDACIONES EoS.
En RECOMENDACIONES EoS se detalla:
El tag de la Alarma de Disparo que generó el proceso.
La fecha en la que el SISTEMA EXPERTO EoS presentó al usuario las
RECOMENDACIONES EoS.
La hora en la que el SISTEMA EXPERTO EoS presentó al usuario las
RECOMENDACIONES EoS.
El listado con las recomendaciones de la falla, indicando el Árbol de Conocimiento93 al
que se asocia el proceso que se realizó.
Ejemplo: “Aterrizamiento del cable (problema detectado o causa) -> Reemplazar tramo
de cable pelado (recomendación para solucionar el problema que se indica).”
Si no se encuentran recomendaciones para la falla ocurrida, no se indica nada en el cuadro de
RECOMENDACIONES EoS.
92 Recomendaciones EoS: Es una de las salidas del sistema. 93 Árbol de Conocimiento: Representaciones gráficas y lógicas del Proceso de Inferencia que realiza el SISTEMA EXPERTO EoS con cada Alarma de Disparo para hallar las causas de la falla. Se utilizan para representar el conocimiento de los expertos en fallas. Cada Árbol de Conocimiento tiene un nombre asociado. Para más información remítase a la sección 6 del ANEXO C del libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo”, o a su sección 3.6.
22
PROCESO EoS
Al terminar el proceso, el SISTEMA EXPERTO EoS presenta el PROCESO EoS94, en el cual se
indican los pasos y la manera en la que el sistema procedió para hallar las causas y
recomendaciones que generó.
Figura 40: Presentación de PROCESO EoS.
En PROCESO EoS se detalla:
El tag de la Alarma de Disparo que generó el proceso.
La fecha en la que el SISTEMA EXPERTO EoS presentó al usuario el PROCESO EoS.
La hora en la que el SISTEMA EXPERTO EoS presentó al usuario el PROCESO EoS.
El listado con los pasos que siguió el sistema para realizar el proceso, es decir los
resultados de las hipótesis intermedias, indicando el Árbol de Conocimiento95 al que se
asocia el proceso que se realizó.
94 Proceso EoS: Es una de las salidas del sistema. 95 Árbol de Conocimiento: Representaciones gráficas y lógicas del Proceso de Inferencia que realiza el SISTEMA EXPERTO EoS con cada Alarma de Disparo para hallar las causas de la falla. Se utilizan para representar el conocimiento de los expertos en fallas. Cada Árbol de Conocimiento tiene un nombre asociado. Para más información remítase a la sección 6 del ANEXO C del libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo”, o a su sección 3.6.
23
OBSERVACIONES DEL USUARIO
El SISTEMA EXPERTO EoS permite al usuario ingresar el nombre de la persona que se
encuentra a cargo del proceso y las observaciones que él considere convenientes agregar al
análisis.
Figura 41: El usuario puede ingresar su nombre y las observaciones adicionales, que considere convenientes.
Los cuadros de texto para ingresar el nombre y las observaciones están habilitados cuando el
sistema esta en proceso (es decir, cuando la señal de EoS EN PROCESO está resaltada en
azul96.)
Se recomienda al usuario no utilizar la letra Ñ ni tildes al momento de ingresar el nombre o las
observaciones para evitar errores de caligrafía en el reporte que se genera automáticamente al
final del proceso97.
Al culminar el proceso, el SISTEMA EXPERTO EoS presenta un mensaje con la ruta y nombre
donde se almacenó el reporte generado por el sistema,98 e indica que se puede terminar de
completar los campos para el nombre y observaciones del usuario.
Figura 42: Mensaje que se muestra al usuario al finalizar el proceso.
96 Remítase a la sección 0 de este Manual. 97 REPORTES: Se refiere a los REPORTES EoS. (Sección 0 de este Manual.) 98 REPORTES: Se refiere a los REPORTES EoS. (Sección 0 de este Manual.)
24
En este momento el SISTEMA EXPERTO EoS termina el proceso, (es decir, el mensaje EoS
EN PROCESO cambia su presentación y no se muestra resaltado en ningún color99), lo cual
indica que si hay un nuevo Archivo de Entrada se generará un proceso nuevo.
El reporte automático que se genera contiene la información que se encuentra en pantalla
excluyendo la del nombre y observaciones del usuario. Para incluir esta información al
reporte el usuario debe oprimir el botón FINALIZAR cuando éste se encuentre
habilitado.
Cuando el botón FINALIZAR se encuentre intermitente (se resalta en color azul y rojo) el
usuario podrá seguir completando los espacios para el nombre y las observaciones y luego
hacer clic sobre él.
Figura 43: El botón FINALIZAR se muestra intermitente después de haberse concluido el proceso. Permite al usuario ingresar la información de nombre y observaciones adicionales.
99 Remítase a la sección 0 de este Manual.
25
MODO ANÁLISIS DE EVENTOS
El SISTEMA EXPERTO EoS permite analizar eventos, de forma que el usuario puede ingresar la
información con las alarmas que generan los equipos y realizar manualmente un proceso.
Figura 44: Para analizar eventos de manera manual.
Al oprimir el botón ANALIZAR, el usuario debe seleccionar un archivo de texto previamente
creado (al que denominaremos “Archivo de Eventos”) con la información de las alarmas que
desea analizar y las mismas características del Archivo de Entrada100, y seleccionar ABRIR.
El SISTEMA EXPERTO EoS crea una carpeta llamada Eventos, la cual se encuentra ubicada en la
ruta de acceso que el usuario indicó en el archivo DataPathAlarms.Txt101, para almacenar los
Archivos de Eventos en ella.
Este archivo debe tener máximo quinientos (500) renglones y debe cumplir con:
Campo Columna inicial
Columna final
Descripción
Tag 4 27 Código para identificar las alarmas. Descripción 28 48 Breve descripción de la Alarma de Disparo. Estado de referencia
49 60 Estado de referencia de la alarma, complementa la descripción de la misma.
Estado 61 76 Estado de la alarma, complementa la descripción de la misma.
Fecha 77 87 Fecha en que ocurrió la Alarma de Disparo. Hora 88 107 Hora en que ocurrió la Alarma de Disparo.
Tabla 2: Características del archivo con el que el usuario analizaría eventos.
100 Archivo de Entrada: Al que se refiere la Figura 17. 101 DataPathAlarms.Txt: Remítase a la sección 0 de este Manual.
26
Figura 45: Ejemplo de un Archivo de Eventos.
Al seleccionar ABRIR, el SISTEMA EXPERTO EoS empezará el proceso. La ruta de acceso y
nombre del archivo que se está analizando se muestra en la ventana principal de EoS.
Figura 46: Ruta de acceso y nombre del archivo con el que se está realizando el análisis.
Cuando se está realizando un Análisis de Evento, el SISTEMA EXPERTO EoS NO está recibiendo
información del Archivo de Entrada, es decir NO disparará un proceso nuevo cuando
suceda una Alarma de Disparo REAL que se reporte en el Archivo de Entrada.
27
REPORTES EoS
Al terminar cada proceso, el SISTEMA EXPERTO EoS genera automáticamente un REPORTE en
formato texto (*.Txt) en el cual se detalla toda la información relacionada con la Alarma de
Disparo y el proceso ejecutado.
El REPORTE EoS se almacena en la carpeta Reportes SisExpEOS, la cual se encuentra ubicada
en la ruta de acceso que el usuario indicó en el archivo DataPathAlarms.Txt102.
Para ver los reportes, seleccione el icono REPORTES de la barra de herramientas.103
Figura 47: Botón de Reportes.
Si el REPORTE es resultado de un Análisis de Evento realizado por el usuario, es decir, la
entrada al sistema fue el Archivo de Eventos,104 el nombre del archivo cumple con:
Tag de la Alarma – AnalisisEventos—Año-Mes-Día—Hora;Minutos;Segundos.Txt
Ejemplo: M12-L45FTT_ALM--AnalisisEventos--2004-8-22--19;54;34.Txt
Si el REPORTE NO es resultado de un Análisis de Evento realizado por el usuario, es decir, la
entrada al sistema fue el Archivo de Entrada,105 el nombre del archivo cumple con:
Tag de la Alarma –- Año-Mes-Día — Hora;Minutos;Segundos.Txt
Ejemplo: M12-L45FTT_ALM--2004-8-22--19;54;34.Txt
El REPORTE EoS se compone de las siguientes partes:
Encabezado: Explicación general de qué es y para qué es el REPORTE EoS.
Nombre de la persona que realizó el proceso: Se incluye el nombre de la persona que
tuvo a su cargo el proceso. (Solo si el usuario, al concluir el proceso, ingresó su nombre
y posteriormente seleccionó FINALIZAR.106) 102 DataPathAlarms.Txt: Remítase a la sección 0 de este Manual. 103 Acceder a los Reportes EoS: Para más información remítase a la sección 0 de este Manual. 104 Archivo de Eventos: Remítase a la sección 0 de este Manual. 105 Archivo de Entrada: Remítase a la sección 0 y 0 de este Manual.
28
Tags de las alarmas relacionadas con el proceso realizado por el SISTEMA EXPERTO
EoS: Se detalla la lista de tags que hicieron parte en el proceso realizado por el
SISTEMA EXPERTO EoS. El primer tag corresponde a la Alarma de Disparo, los demás a
Alarmas Secundarias que intervinieron en el proceso.107
Ejemplo: M12-L45FTT_ALM (SS-L28FDB5) (SS-L28FDB2) (SS-L28FDB3) (SS-L28FDB7) (SS-L28FDB8)
Información correspondiente a la Alarma de Disparo del proceso: Detalla la información
que se refiere a la Alarma de Disparo. (Sección 0 de este Manual.)
Causas generadas por el SISTEMA EXPERTO EoS: Se refiere a la información que se
presenta en el cuadro de texto CAUSAS EoS (Sección 0 de este Manual.)
Proceso ejecutado por el SISTEMA EXPERTO EoS para hallar las causas de la falla: Se
refiere a la información que se presenta en el cuadro de texto PROCESO EoS (Sección 0
de este Manual.)
Recomendaciones correctivas sugeridas por el SISTEMA EXPERTO EoS: Se refiere a la
información que se presenta en el cuadro de texto RECOMENDACIONES EoS (Sección 0
de este Manual.)
Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas del
usuario: Se refiere a la información que se presenta en el cuadro de texto HISTORIAL
DE PREGUNTAS Y RESPUESTAS (Sección 0 de este Manual.)
Observaciones adicionales al proceso, proporcionadas por el usuario: Se refiere a la
información que se presenta en el cuadro de texto OBSERVACIONES DEL USUARIO
(Sección 0 de este Manual.), es decir a las observaciones adicionales que el usuario
agregó al proceso. (Solo si el usuario, al concluir el proceso, ingresó observaciones y
posteriormente seleccionó FINALIZAR.108)
Información detallada de las alarmas que interactuaron con el SISTEMA EXPERTO EOS:
Es la información del Archivo de Entrada o del Archivo de Evento que se analizó.
(Sección 0 ó 0 de este Manual.)
106 Remítase a la sección 0 de este Manual. 107 Alarmas secundarias: Son las que se encuentran en el Archivo de Entrada, que no son Alarmas de Disparo pero están relacionadas con los turbocompresores. (Remítase a la sección 0 de este Manual.) 108 Remítase a la sección 0 de este Manual.
29
Nombre del archivo que el usuario utilizó para realizar el análisis del evento: (Solo
cuando el usuario hace Análisis de Eventos.) Es la ruta de acceso y nombre del archivo
con el que se realizó el análisis. (Sección 0 de este Manual.)
30
BARRA DE HERRAMIENTAS
La funcionalidad de los botones y la barra de herramientas se detalla a continuación:
DETENER
Seleccionando el icono DETENER de la barra de herramientas, el SISTEMA EXPERTO EoS
permite al usuario detener la ejecución de un proceso. Para esto es necesario que el usuario
confirme su solicitud.
Figura 48: Botón detener.
Desde el menú Archivo, o con la combinación de teclas CRTL +D se logra el mismo efecto de
detener el proceso.
Figura 49: Detener el proceso utilizando el menú Archivo.
Esta acción solo está habilitada cuando el SISTEMA EXPERTO EoS se encuentra en proceso (es
decir cuando el mensaje EoS EN PROCESO se encuentra resaltado en color azul.109)
GUARDAR
Seleccionando el icono GUARDAR de la barra de herramientas, el SISTEMA EXPERTO EoS
permite al usuario guardar, en el lugar que desee del disco duro, la información relacionada con
un proceso, es decir la misma información que contiene el REPORTE EoS.110
109 Remítase a la sección 0 de este Manual. 110 Remítase a la sección 0 de este Manual.
31
Figura 50: Botón Guardar.
Desde el menú Archivo, o con la combinación de teclas CRTL +G se logra el mismo efecto de
guardar la información del proceso.
Figura 51: Guardar la información relacionada con el el proceso utilizando el menú Archivo.
Para esto, el usuario debe escoger la ruta de acceso donde desea almacenar la información y
luego hacer clic en GUARDAR.
Figura 52: Ventana para escoger la ruta de acceso donde el usuario desea guardar la información referente al proceso.
Esta acción solo está habilitada cuando el SISTEMA EXPERTO EoS NO está en proceso (es decir
cuando el mensaje EoS EN PROCESO NO se encuentra resaltado en ningún color.111)
BORRAR
Seleccionando el icono BORRAR de la barra de herramientas, el SISTEMA EXPERTO EoS permite
al usuario borrar la información relacionada con un proceso, es decir la información que se
encuentra en pantalla. Para esto es necesario que el usuario confirme su solicitud.
111 Remítase a la sección 0 de este Manual.
32
Figura 53: Botón Borrar
Desde el menú Archivo, o con la combinación de teclas CRTL +B se logra el mismo efecto de
borrar la información del proceso.
Figura 54: Borrar la información relacionada con el el proceso utilizando el menú Archivo.
Esta acción solo está habilitada cuando el SISTEMA EXPERTO EoS NO está en proceso (es decir
cuando el mensaje EoS EN PROCESO NO se encuentra resaltado en ningún color.112)
REPORTES
Seleccionando el icono REPORTES de la barra de herramientas, el SISTEMA EXPERTO EoS
permite al usuario seleccionar el Reporte EoS113 que desea ver.
Figura 55: Botón de Reportes.
El usuario debe seleccionar el archivo con el Reporte EoS que desea ver y seleccionar ACEPTAR.
112 Remítase a la sección 0 de este Manual. 113 Reportes EoS: Para más información remítase a la sección 0 de este Manual.
33
Figura 56: Ventana para escoger el archivo del Reporte EoS que el usuario desea ver.
Desde el menú Archivo, o con la combinación de teclas CRTL +R se logra el mismo efecto de
ver los reportes generados por el SISTEMA EXPERTO EoS.
Figura 57: Ver los Reportes utilizando el menú Archivo
OCULTAR EOS
Seleccionando el icono OCULTAR EoS de la barra de herramientas, el usuario puede ocultar la
ventana principal del SISTEMA EXPERTO EoS, de forma que se vería la ventana de Sistema de
Captura y Filtraje.
Figura 58: Botón Ocultar EoS
Desde el menú Archivo, o con la combinación de teclas CRTL +O se logra el mismo efecto de
ocultar la ventana principal del SISTEMA EXPERTO EoS.
34
Figura 59: Ocultar la ventana principal del SISTEMA EXPERTO EoS utilizando el menú Archivo.
35
BARRA DE MENÚ DEL SISTEMA EXPERTO EoS
La BARRA DE MENÚ del SISTEMA EXPERTO EoS consta de:
MENÚ ARCHIVO
Sus funciones se describieron en la sección 0 de esta Manual.
MENÚ PREFERENCIAS
Tiene cuatro (4) submenús, en los cuales el usuario tiene la posibilidad de cambiar las
preferencias de la pantalla.
Figura 60: Submenús del menú preferencias.
ESTILO FUENTE
Al hacer clic sobre esta opción (o con la combinación de teclas CRTL + E), el usuario podrá
cambiar el tipo, tamaño y estilo de letra de los cuadros de texto de Causas Eos, Proceso Eos,
Recomendaciones Eos, Historial De Preguntas Y Respuestas, Observaciones Del Usuario,
Información de la Alarma de Disparo y Nombre Del Archivo en Analizar Eventos.
Figura 61: Ventana que permite cambiar el tipo, tamaño y estilo de letra de los diferentes cuadros de texto.
36
Figura 62: Presentación de una ventana después de haber personalizado el Estilo de la Fuente.
COLOR FUENTE
Al hacer clic sobre esta opción (o con la combinación de teclas CRTL + C), el usuario podrá
cambiar el color de la letra de los cuadros de texto de Causas Eos, Proceso Eos,
Recomendaciones Eos, Historial De Preguntas Y Respuestas, Observaciones Del Usuario,
Información de la Alarma de Disparo y Nombre Del Archivo en Analizar Eventos.
Figura 63: Ventana que permite cambiar el color de letra de los diferentes cuadros de texto
Figura 64: Presentación de una ventana después de haber personalizado el Color de la Fuente.
COLOR FONDO
Al hacer clic sobre esta opción (o con la combinación de teclas CRTL + L), el usuario podrá
cambiar el color de fondo de los cuadros de texto de Causas Eos, Proceso Eos,
Recomendaciones Eos, Historial De Preguntas Y Respuestas, Observaciones Del Usuario,
Información de la Alarma de Disparo y Nombre Del Archivo en Analizar Eventos.
37
Figura 65: Presentación de una ventana después de haber personalizado el Color de Fondo.
VALORES PREDETERMINADOS
Al hacer clic sobre esta opción (o con la combinación de teclas CRTL + V), el usuario podrá
recuperar los valores predeterminados de tipo, tamaño, estilo y color de fuente y fondo de los
cuadros de texto de Causas Eos, Proceso Eos, Recomendaciones Eos, Historial De Preguntas Y
Respuestas, Observaciones Del Usuario, Información de la Alarma de Disparo y Nombre Del
Archivo en Analizar Eventos.
MENÚ AYUDA
Tiene dos (2) submenús que proporcionan ayuda e información sobre el SISTEMA EXPERTO
EoS:
Figura 66: Submenús del menú Ayuda.
MANUAL DE USUARIO
Permite acceder a este MANUAL DE USUARIO en formato digital. (*.PDF.)
Figura 67: Modo para acceder a este MANUAL DE USUARIO en formato digital.
ACERCA DEL SISTEMA EXPERTO EoS…
Presenta la información referente a los autores del SISTEMA EXPERTO EoS.
38
AYUDA DINÁMICA DEL SISTEMA EXPERTO EoS
A medida que el cursor se desplaza por los diferentes controles de la ventana principal, el
SISTEMA EXPERTO EoS indica al usuario la funcionalidad de cada cuadro de texto, y botón de
la aplicación.
Figura 68: Información de ayuda para el usuario, en la que se indica la función de cada control. (En este caso se muestra la función de la ventana inferior derecha que revela el estado de CLIPS.)
Esta información de ayuda para el usuario se muestra en la parte inferior izquierda de la
ventana principal cuando el cursor se detiene por lo menos un (1) segundo sobre algún control.
39
GLOSARIO
ALARMA DE DISPARO: Es la alarma que está directamente relacionada con la parada de un
turbocompresor y se encuentran en el Archivo de Entrada.
ALARMAS SECUNDARIAS: Son las alarmas que se encuentran en el Archivo de Entrada que
no son Alarmas de Disparo pero están relacionadas con los turbocompresores.
ANÁLISIS DE EVENTO: Es un modo de trabajo del SISTEMA EXPERTO EoS en el que el
usuario puede ingresar la información con las alarmas que generan los equipos y realizar
manualmente un proceso.
ÁRBOL DE CONOCIMIENTO: Representaciones gráficas y lógicas del Proceso de Inferencia
que realiza el SISTEMA EXPERTO EoS con cada Alarma de Disparo para hallar las causas de la
falla. Se utilizan para representar el conocimiento de los expertos en fallas. Cada Árbol de
Conocimiento tiene un nombre asociado.
ARCHIVO DE ENTRADA: Es un archivo de texto con la información de los sesenta (60)
minutos anteriores y el (1) minuto posterior a la Alarma de Disparo. Es la entrada al SISTEMA
EXPERTO EoS.
ARCHIVO DE EVENTOS: Es un archivo de texto, previamente creado por el usuario, con la
información de las alarmas con la que desea realizar el Análisis de Eventos. Debe tener las
mismas características del Archivo de Entrada.
CAUSAS EoS: Es una salida del SISTEMA EXPERTO EoS. Son las posibles causas que
generaron la falla.
CLIPS: Es un programa que trabaja de manera regular y sincrónica con la interfaz gráfica, es el
que realiza el proceso de inferencia y genera la información que se muestra al usuario.
Herramienta especializada para el desarrollo de sistemas expertos.
CONTROL ROOM: Es el cuarto de control donde se reportan las alarmas de los equipos que se
encuentran en el CPF de Cusiana, Casanare.
CPF: (Central Production Facilities.) Planta de extracción de petróleo ubicada en Cusiana,
Casanare.
40
HISTORIAL DE PREGUNTAS Y RESPUESTAS: Es el historial de preguntas realizadas por el
SISTEMA EXPERTO EoS y respuestas dadas por el usuario en medio del proceso.
INFORMACIÓN DE LA ALARMA DE DISPARO: Es la información referente a la Alarma de
Disparo: tag de la alarma, descripción de la alarma, estado de referencia de la alarma, estado
de la alarma, fecha en que ocurrió la alarma, hora en que ocurrió la alarma.
INTERFAZ GRÁFICA: Es el programa con el que el usuario interactúa, y donde se muestra la
información de interés para este. La interfaz gráfica la comparte con el Sistema de Captura y
Filtraje.
MANUAL TÉCNICO DE USUARIO: Es en el que se encuentra el código fuente de los
programas y aspectos más específicos del funcionamiento del SISTEMA EXPERTO EoS.
MENÚ PRINCIPAL: Es la ventana donde se puede seleccionar (para presentar en pantalla) el
SISTEMA EXPERTO EoS o el Sistema de Captura y Filtraje.
PROCESO EoS: Es una salida del SISTEMA EXPERTO EoS. Es la secuencia de pasos realizados
por el SISTEMA EXPERTO EoS para generar las demás salidas.
RECOMENDACIONES EoS: Es una salida del SISTEMA EXPERTO EoS. Son las
recomendaciones correctivas de la falla
REPORTE EoS: Es el reporte con la información de entrada, salida y adicional. Este reporte se
genera en formato de texto (*.Txt) al culminar el proceso.
SISTEMA DE CAPTURA Y FILTRAJE: Es el sistema que se encarga de recibir
constantemente las alarmas que generan los diferentes equipos que intervienen en el proceso
de extracción de petróleo en Cusiana y mostrarlas de manera detallada en pantalla. El sistema
fue desarrollado e instalado previamente en el Control Room de Cusiana; donde trabajan de
forma coordinada y bajo la misma interfaz gráfica del SISTEMA EXPERTO EoS.
SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para
turbocompresores utilizados en la extracción de petróleo: Libro donde se da a conocer
la forma como se cumplieron los objetivos propuestos inicialmente, dada la estructura del
prototipo del sistema experto, su construcción y la información recolectada y estudiada. Se
incluye en le CD del SISTEMA EXPERTO EoS.
TAG: Es el código que utilizan en el CPF de Cusiana para identificar cada una de las alarmas
relacionadas con los equipos de extracción de petróleo.
41
USUARIO EXPERTO: Quien posee el conocimiento especializado para alimentar el sistema
experto.
VENTANA PRINCIPAL: Ventana donde se presentan los controles y las salidas del SISTEMA
EXPERTO EoS.
MANUAL TÉCNICO DE USUARIO: Sistema Experto EoS
El presente documento está dirigido a personas con conocimientos en el área de programación que
deseen interactuar con la estructura interna del SISTEMA EXPERTO EoS, para modificarlo o
introducir nuevo conocimiento según la función específica para la cual se utilice. Por tanto, se
mostrará las funciones utilizadas en el programa y los pasos que se siguieron en el proceso de
elaboración del SISTEMA EXPERTO EoS.
1
TABLA DE CONTENIDO
TABLA DE CONTENIDO .............................................................................................. 1 LISTA DE FIGURAS ..................................................................................................... 3 INTRODUCCIÓN .......................................................................................................... 5 1. REQUERIMIENTOS DEL SISTEMA EXPERTO EoS......................................................... 6 2. COMPOSICIÓN DEL SISTEMA EXPERTO EoS .............................................................. 7 2.1 SISTEMA DE CAPTURA Y FILTRAJE ....................................................................... 7 2.2 SISTEMA EXPERTO EoS........................................................................................ 8 2.2.1 Interfaz gráfica ................................................................................................ 8 2.2.2 Programa CLIPS............................................................................................... 9 3 MODO DE TRABAJO DEL SISTEMA EXPERTO EoS ..................................................... 11 3.1 PASO 1: CAPTURA Y FILTRAJE DE LAS ALARMAS ................................................. 11 3.2 PASO 2: ENTRADA DE DATOS Y COMPARACIÓN DE ALARMAS .............................. 13 3.3 PASO 3: NOMBRE DE LOS ARCHIVOS E INICIO DEL PROCESO DE INFERENCIA EN CLIPS 16 3.4 PASO 4: PROCESO DE INFERENCIA DE CLIPS ...................................................... 18 3.5 PASO 5: FINALIZACIÓN DEL PROCESO Y PRESENTACIÓN DE LOS RESULTADOS EN PANTALLA..................................................................................................................... 21 3.6 PASO 6: RECOPILACIÓN DE INFORMACIÓN PARA EL REPORTE EoS ...................... 22 3.7 OTRO PASO: MODO ANÁLISIS DE EVENTOS ........................................................ 23 4 INSTALACIÓN Y EJECUCIÓN DEL SISTEMA.............................................................. 25 4.1 PASOS PRELIMINARES ....................................................................................... 25 4.2 INSTALAR Y EJECUTAR EL SISTEMA EXPERTO EoS............................................... 26 5 PROGRAMACIÓN Y ESTRUCTURA GENERAL DE CLIPS .............................................. 30 5.1 COMANDOS....................................................................................................... 31 5.1.1 Entrada......................................................................................................... 31 5.1.2 Salida ........................................................................................................... 31 5.1.3 Borrar la información en CLIPS........................................................................ 31 5.1.4 Ejecución de un programa .............................................................................. 32 5.1.5 Carga de comandos desde archivos ................................................................. 32 5.2 VARIABLES Y FUNCIONES .................................................................................. 33 5.2.1 Definición de variables.................................................................................... 33 5.2.2 Suma de números.......................................................................................... 34 5.2.3 Comparar igualdad......................................................................................... 35 5.3 HECHOS............................................................................................................ 35 5.3.1 Campos que componen los hechos .................................................................. 36 5.3.2 Adición de hechos.......................................................................................... 36 5.3.3 Asignación de un hecho a una variable ............................................................ 37 5.3.4 Eliminación de hechos .................................................................................... 37 5.3.5 Plantillas de hechos........................................................................................ 38 5.4 REGLAS ............................................................................................................ 39 5.4.1 Prioridad de las reglas .................................................................................... 41 5.5 FUNCIONES ...................................................................................................... 42 5.5.1 Carga de hechos: Función Load-Facts .............................................................. 42 5.5.2 Almacenamiento de hechos: Función Save-Facts .............................................. 43 5.5.3 Almacenar un valor en una variable: Función Bind ............................................ 44 5.5.4 Abrir archivos de lectura y escritura: Función Open........................................... 45
2
5.5.5 Cerrar un archivo: Función Close..................................................................... 45 5.5.6 Borrar un archivo: Función Remove................................................................. 46 5.5.7 Escritura en un archivo: Función Printout ......................................................... 46 5.5.8 Entrada de información: Función Read-ReadLine .............................................. 47 5.5.9 Renglón vacío................................................................................................ 48 5.6 FUNCIONES DE PROCEDIMIENTOS ..................................................................... 49 5.6.1 La función if .................................................................................................. 49 5.6.2 La función While ............................................................................................ 51 5.7 VENTANAS DE CLIPS.......................................................................................... 53 5.7.1 Dialog Window .............................................................................................. 53 5.7.2 Ventana de edición ........................................................................................ 53 6 ESTRUCTURA Y PROGRAMACIÓN DEL SISTEMA EXPERTO EoS EN CLIPS ................... 56 6.1 NOMBRE DE LOS ARCHIVOS DE CLIPS ................................................................ 56 6.2 ÁRBOLES DE CONOCIMIENTO ............................................................................ 58 6.3 EXPLICACIÓN DEL CÓDIGO DE UN ÁRBOL DE CONOCIMIENTO............................. 59 7 GLOSARIO ............................................................................................................ 60
3
LISTA DE FIGURAS
Figura 1. Esquema de la composición del SISTEMA EXPERTO EoS................................. 7 Figura 2. Lista de alarmas que se muestra en la interfaz del Sistema de Captura y Filtraje. Se detalla: Tag de la alarma, descripción de la alarma, estado de referencia de la alarma, estado de la alarma, fecha en que ocurrió la alarma, hora en que ocurrió la alarma ............. 8 Figura 3. Lista de alarmas que se encuentran en: C:/EJERVG/ArchivoHyp.Txt. ............... 11 Figura 4. Detalle de las características que debe tener el ArchivoHyp.Txt. ........................ 12 Figura 5. Esquema que indica la creación de archivos en el tiempo, desde que se presenta la parada de un turbocompresor. .............................................................................................. 13 Figura 6. Formato de los tags de las Alarmas de Disparo que debe tener el archivo ListaPrimarias.Txt. .............................................................................................................. 14 Figura 7: Tag de la alarma que resultó de la comparación de ListaPrimarias.Txt y el Archivo de Entrada. ............................................................................................................. 15 Figura 8. Información de la Alarma de Disparo. Se muestra cuando el sistema inicia un proceso. ................................................................................................................................ 15 Figura 9. Esquema de comparación y archivos resultado cuando el SISTEMA EXPERTO EoS empieza un proceso. ..................................................................................................... 16 Figura 10.Estructura de programación de CLIPS. ............................................................... 18 Figura 11. Formato que usa CLIPS para formular preguntas al usuario usando el archivo Pta.bin. ................................................................................................................................. 19 Figura 12. Presentación de la pregunta realizada al usuario por medio de la interfaz gráfica............................................................................................................................................... 20 Figura 13. Historial de preguntas y respuestas que se crea a medida que transcurre el proceso. ................................................................................................................................ 20 Figura 14: Ejemplo de un Archivo de Eventos. ................................................................... 24 Figura 15. Ubicación de la carpeta EJERVG en C\ ............................................................. 25 Figura 16: Pantalla de instalación de Framework.exe. ........................................................ 26 Figura 17: Archivo de texto DataPathAlarms, ubicado en C:, el cual contiene la ruta de acceso donde se crearán las carpetas Eventos y Repostes SisExpEoS. ............................... 26 Figura 18: Icono del SISTEMA EXPERTO EoS. ............................................................... 26 Figura 19: Ventana del Sistema de Captura y Filtraje y ventana de CLIPS ....................... 27 Figura 20: Línea de código para activar el programa CLIPS............................................... 27 Figura 21: Pantalla con código en CLIPS. ........................................................................... 28 Figura 22: Minimizar la ventana de CLIPS. ........................................................................ 28 Figura 23: Ventana MENÚ PRINCIPAL. ........................................................................... 29 Figura 24: Ventana principal del SISTEMA EXPERTO EoS. ............................................ 29 Figura 25: Presentación del puntero de CLIPS, después de haber instalado correctamente el programa .............................................................................................................................. 31 Figura 26: Ventana Dialog Window en CLIPS. .................................................................. 53 Figura 27: Ventana de edición de CLIPS, y ubicación del comando New. ......................... 54 Figura 28: Comando Select All de CLIPS. .......................................................................... 54
4
Figura 29: Lista de archivos con extensión *.CLP, ubicados en C:\EJERVG, donde se encuentra al código que alimenta el SISTEMA EXPERTO EoS. ....................................... 56 Figura 30: Fragmento de un Árbol de Conocimiento utilizado en la elaboración del SISTEMA EXPERTO EoS. ................................................................................................. 59
5
INTRODUCCIÓN
Bienvenidos al SISTEMA EXPERTO EoS, un programa fácil de usar que le ayudara a diagnosticar,
y hallar las causas de algunas fallas que se presentan en los turbocompresores de “BP Exploration
Company Colombia Ltda” ubicados en el CPF114 de Cusiana, Casanare.
El presente documento está dirigido a personas con conocimientos en el área de programación que
deseen interactuar con la estructura interna del SISTEMA EXPERTO EoS, para modificarlo o
introducir nuevo conocimiento según la función específica para la cual se utilice. Por tanto, se
mostrará las funciones utilizadas en el programa y los pasos que se siguieron en el proceso de
elaboración del SISTEMA EXPERTO EoS.
En este documento encontrará algunas funciones y procedimientos elaborados en CLIPS, al igual
que algunas variables utilizadas, la descripción del proceso realizado, y la información que alimenta
la base de conocimiento del SISTEMA EXPERTO EoS; mostrando la implementación de uno de los
casos específicos de análisis de fallas que lo conforman.
Acerca de…
El desarrollo del SISTEMA EXPERTO EoS, se realizó como tesis de grado titulada “Gestión de
fallas con diagnóstico experto para turbocompresores utilizados en la extracción de
petróleo”, por las Ingenieras Electrónicas Viviana Espinosa Rojas y Gina Paola Pulido Uriza, de la
Pontificia Universidad Javeriana, bajo la dirección del Ingeniero Adolfo León Recio y la asesoría del
Ingeniero Jose Fernando Vega y el Ingeniero Alejandro Forero Guzmán. Se desarrolló en las
empresas “BP Exploration Company Colombia Ltda” Y “Equipo De Servicios Petroleros Ltda” bajo el
conocimiento, asesoría y requerimientos del Ingeniero Carlos Olarte, Superintendente (R) de
operaciones de Cusiana de “BP Exploration Company Colombia Ltda.” y el Ingeniero Rubén Soler,
sección de Control en Cusiana de “Equipo de Servicios Petroleros Ltda.” Su instalación se realizó en
BP Exploration Company Colombia Ltda en Cusiana, Casanare en octubre de 2004.
Para conocer de manera detallada el modo de uso del SISTEMA EXPERTO EoS, y la función y
operación de cada una de sus partes remítase al MANUAL DE USUARIO.
114 CPF de Cusiana: Central Production Facilities. Planta de extracción de petróleo ubicada en Cusiana, Casanare.
6
2. REQUERIMIENTOS DEL SISTEMA EXPERTO EoS
El SISTEMA EXPERTO EoS está soportado bajo ambiente Windows, por lo tanto para su correcta
ejecución se necesita un computador personal con las siguientes características:
Hardware: Procesador Pentium II® o superior.
RAM: 128 MB o superior.
Disco duro: 12 GB o superior.
Software: Windows 98 o superior.
CLIPS.
Para una correcta visualización, se debe usar una resolución de pantalla de 768 píxeles máximo.
Tenga presente que:
En algunos casos el SISTEMA EXPERTO EoS no presenta al usuario las palabras con tildes,
para evitar errores de caligrafía.
Algunas palabras que contienen la letra ñ, se presentarán con la letra n.
7
3. COMPOSICIÓN DEL SISTEMA EXPERTO EoS
El SISTEMA EXPERTO EoS interactúa con el Sistema de Captura y Filtraje de las alarmas,
previamente desarrollado e instalado en el Control Room115 de Cusiana; donde trabajan de forma
coordinada y bajo la misma interfaz gráfica.
Figura 69. Esquema de la composición del SISTEMA EXPERTO EoS.
2.1 SISTEMA DE CAPTURA Y FILTRAJE
Se encarga de recibir constantemente las alarmas que generan los diferentes equipos que
intervienen en el proceso de extracción de petróleo en Cusiana, Casanare y mostrarlas de manera
detallada en pantalla.
115 Control Room: Es el cuarto de control donde se reportan las alarmas de los equipos que se encuentran en el CPF de Cusiana, Casanare.
Sistema de Captura y Filtraje
Interfaz gráfica CLIPS
SISTEMA EXPERTO EoS
Interacción
8
Figura 70. Lista de alarmas que se muestra en la interfaz del Sistema de Captura y Filtraje. Se detalla: Tag de la alarma, descripción de la alarma, estado de referencia de la alarma, estado de la alarma, fecha en que ocurrió la alarma, hora en que ocurrió la alarma
2.2 SISTEMA EXPERTO EOS
El SISTEMA EXPERTO EoS, en su composición, está dividido en dos programas. El correcto
funcionamiento de cada uno de ellos hace que el SISTEMA EXPERTO EoS trabaje adecuadamente,
de forma que, es indispensable que ambos programas se ejecuten simultáneamente y de manera
correcta.
2.2.1 Interfaz gráfica
Es el programa con el que el usuario interactúa, y donde se muestra la información de interés para
éste:
Posibles causas que generaron la falla: Causas EoS.116
Posibles recomendaciones correctivas a la falla: Recomendaciones EoS.117
116 Para más información, remítase a la sección 9 del MANUAL DE USUARIO. 117 Para más información, remítase a la sección 10 del MANUAL DE USUARIO.
9
Secuencia de pasos realizados por el SISTEMA EXPERTO EoS para generar las demás
salidas: Proceso EoS.118
Información referente a la Alarma de Disparo: Información de la Alarma de Disparo.119
Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas dadas por el
usuario: Historial de preguntas y respuestas.120
Reporte con la información de entrada, salida y adicional. Este reporte se genera en
formato de texto (*.Txt) al culminar el proceso: Reporte EoS.121
2.2.2 Programa CLIPS
Es un programa que trabaja de manera regular y sincrónica con la Interfaz Gráfica. Es el que
realiza el Proceso de Inferencia122 para hallar las causas de la falla, y genera la información que se
muestra al usuario.
Es una herramienta de software desarrollada por Software Technology Branch (STB) de
NASA/Lyndon B. Johnson Space Center, y fue creada específicamente para el desarrollo de
sistemas expertos, en la cual se especifican con código de programación los siguientes
elementos:123
a. Base de hechos: Donde se almacenan las alarmas de los equipos que intervienen en el
proceso de producción de petróleo en Cusiana. Registra conclusiones intermedias y datos
generados en el proceso de inferencia para explicar las deducciones y el comportamiento
del sistema.
b. Base del conocimiento: Son las reglas que contienen la información para que el SISTEMA
EXPERTO EoS sepa como proceder en los diferentes casos y determine las causas de falla
de las alarmas que llegan a la base de hechos.
118 Para más información, remítase a la sección 11 del MANUAL DE USUARIO. 119 Para más información, remítase a la sección 6 del MANUAL DE USUARIO. 120 Para más información, remítase a la sección 8 del MANUAL DE USUARIO. 121 Para más información, remítase a la sección 14 del MANUAL DE USUARIO. 122 Proceso de Inferencia: Para más información, remítase al libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo ” 123 Para conocer con más detalle el modo de funcionamiento de los sistemas expertos, remítase al libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo ”
10
c. Motor de inferencia: Es el programa que controla el razonamiento o proceso de inferencia
que sigue el sistema experto, puesto que debe comparar los patrones de reglas con la lista
de datos de la base de hechos. Si todos los patrones de una regla coinciden con los
hechos, la regla se activa y se coloca en la agenda124.
d. Módulo de adquisición del conocimiento: Permite añadir, eliminar o modificar elementos de
conocimiento (en la mayoría de los casos, reglas.)
124 Agenda: Donde se almacenan las reglas disparadas. Para más información, remítase al libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo ”
11
3 MODO DE TRABAJO DEL SISTEMA EXPERTO EoS
Los programas que componen el SISTEMA EXPERTO EoS trabajan de manera interactiva y
cooperativa entre ellos, de forma que es indispensable que todos funcionen correctamente para
que el sistema sea confiable.
A continuación, se describe de manera secuencial el modo de trabajo del SISTEMA EXPERTO EoS,
es decir cada uno de los pasos que realiza para su correcto funcionamiento.
3.1 PASO 1: CAPTURA Y FILTRAJE DE LAS ALARMAS
El Sistema de Captura y Filtraje125 recibe constantemente las alarmas que generan los diferentes
equipos que intervienen en el proceso de extracción de petróleo en Cusiana, y las muestra de
manera detallada en la pantalla, como lo indica la Figura 70.
Cuando recibe la información de una alarma que está directamente relacionada con la parada de un
turbocompresor126, (a la que denominaremos “Alarma de Disparo”) el sistema genera un archivo de
texto con la información de los sesenta (60) minutos anteriores y el (1) minuto posterior a la
alarma. Este archivo se denomina ArchivoHyp.Txt y se encuentra en C:/EJERVG127
Figura 71. Lista de alarmas que se encuentran en: C:/EJERVG/ArchivoHyp.Txt.
125 Sistema de Captura y Filtraje: Es un sistema que interactúa con el SISTEMA EXPERTO EoS, pero no hace parte de él. Fue desarrollado previamente en Cusiana, por el Ingeniero de Control. Para más información remítase a la sección 0 de este Manual. 126 Es decir, cuando ocurre una falla que genera que un turbocompresor PARE su actividad normal. 127 EJERVG se encuentra en el CD de instalación del SISTEMA EXPERTO EoS.
12
El ArchivoHyp.Txt debe tener máximo quinientos (500) renglones y debe cumplir con:
Campo Columna inicial
Columna final
Descripción
Tag128 4 27 Código para identificar las alarmas. Descripción 28 48 Breve descripción de la Alarma de Disparo. Estado de referencia
49 60 Estado de referencia de la alarma, complementa la descripción de la misma.
Estado 61 76 Estado de la alarma, complementa la descripción de la misma.
Fecha 77 87 Fecha en que ocurrió la Alarma de Disparo. Hora 88 107 Hora en que ocurrió la Alarma de Disparo.
Tabla 3: Características del ArchivoHyp.Txt.
Figura 72. Detalle de las características que debe tener el ArchivoHyp.Txt.
Adicionalmente, el Sistema de Captura y Filtraje, crea archivos de texto con las mismas
características del ArchivoHyp.Txt (a los que denominaremos “Archivos de Eventos”) y los almacena
en la carpeta Eventos. En estos archivos se almacena la información de las alarmas que se
presentaron después de la Alarma de Disparo (y que no se encuentran registradas en el
ArchivoHyp.Txt) que están directamente relacionadas con los turbocompresores de Cusiana, pero
que NO causaron la parada de la turbina, es decir son archivos que contienen Alarmas de Disparo
pero NO la alarma que causó directamente la parada en los turbocompresores.
128 Tag: Es el código que utilizan en Cusiana para identificar cada una de las alarmas relacionadas con los equipos de extracción de petróleo.
13
Figura 73. Esquema que indica la creación de archivos en el tiempo, desde que se presenta la parada de un turbocompresor.
Estos Archivos de Evento se utilizarán posteriormente para realizar Análisis de Eventos.129
3.2 PASO 2: ENTRADA DE DATOS Y COMPARACIÓN DE ALARMAS
El SISTEMA EXPERTO EoS empieza un proceso cuando se reporta la parada de una turbina, es
decir cuando se crea el archivo ArchivoHyp.Txt, (al que llamaremos Archivo de Entrada) el cual
contiene la información de la Alarma de Disparo.
Si el Archivo de Entrada contiene más de una (1) Alarma de Disparo, el SISTEMA EXPERTO EoS
solamente interpretará la primera como Alarma de Disparo y las demás no las tendrá en cuenta en
el análisis de Causas de Falla130.
Cada uno de los tags131 de las alarmas que hay en el Archivo de Entrada se compara con la
información que se encuentra en el archivo ListaPrimarias.Txt132, el cual contiene una lista con
129 Análisis de Eventos: Se explican en detalle en la sección 3.7 de este Manual. 130 Esto se debe a que sólo la primera Alarma de Disparo es la que realmente reporta la falla, las otras alarmas que suceden en el (1) minuto siguiente, son producto de la primera y NO suministran información al proceso.
Se crea el archivo…
Tiempo
PARADA DE LA TURBINA.
ArchivoHyp.Txt: Contiene la Alarma de Disparo que causo la parada en los turbocompresores.
Archivo de Evento1.Txt: Contiene la misma información de ArchivoHyp.Txt, es decir, contiene la Alarma de Disparo que causo la parada en los turbocompresores.)
Archivo de Evento2.Txt: Contiene alguna Alarma de Disparo, pero no la que causo la parada en los turbocompresores.
Archivo de Evento3.Txt: Contiene alguna Alarma de Disparo, pero no la que causo la parada en los turbocompresores.
Se crea el archivo… Se crea el archivo…
14
todos los tags de Alarmas de Disparo.133 Cada tag del archivo ListaPrimarias.Txt debe estar escrito
en un renglón diferente, como se muestra en la Figura 74.
Figura 74. Formato de los tags de las Alarmas de Disparo que debe tener el archivo ListaPrimarias.Txt.
De igual manera, cada uno de los tags de las alarmas que hay en el Archivo de Entrada se compara
con la información que se encuentra en el archivo ListaSecundarias.Txt134, el cual contiene una lista
con todos los tags de las alarmas que no son Alarmas de Disparo pero están relacionadas con los
turbocompresores, (a estas las llamaremos “Alarmas secundarias.”)135 Cada tag del archivo
ListaSecuntarias.Txt debe estar escrito en un renglón diferente, como en ListaPrimarias.Txt.
Si la comparación con ListaPrimarias.Txt resulta exitosa, se crea un archivo denominado
Primarias.bin con el tag de la alarma en común.
131 Tag: Es el código que utilizan en el CPF de Cusiana para identificar cada una de las alarmas relacionadas con los equipos de extracción de petróleo 132 ListaPrimarias.Txt se encuentra en C:/EJERVG. 133 Esta lista es creada por el Usuario Experto, y debe coincidir con la información que contiene CLIPS, es decir para cada tag que exista en el archivo ListaPrimarias.Txt, debe existir un programa en CLIPS, con el desarrollo del análisis para hallar las causas de la falla relacionada con ese tag. 134 ListaSecundarias.Txt se encuentra en C:/EJERVG. 135 Esta lista es creada por el Usuario Experto, y contiene los tags de las alarmas relacionadas con los turbocompresores que intervienen en el proceso de inferencia que realiza CLIPS.
15
Figura 75: Tag de la alarma que resultó de la comparación de ListaPrimarias.Txt y el Archivo de Entrada.
La información correspondiente a ese tag, es decir los demás datos que se obtuvieron del
ArchivoHyp.Txt, se presenta al usuario en la ventana principal del SISTEMA EXPERTO EoS, como
Información de la Alarma de Disparo.136
Figura 76. Información de la Alarma de Disparo. Se muestra cuando el sistema inicia un proceso.
Si la comparación con ListaSecuntarias.Txt resulta exitosa, se crea un archivo denominado
Secundarias.bin con los tags de las alarmas en común.
A continuación se presenta un esquema de la comparación que el SISTEMA EXPERTO EoS realiza:
136 Información de la alarma de disparo: Es la información adicional, relacionada con la Alarma de Disparo que se obtiene del ArchivoHyp.Txt.
16
Figura 77. Esquema de comparación y archivos resultado cuando el SISTEMA EXPERTO EoS empieza un proceso.
3.3 PASO 3: NOMBRE DE LOS ARCHIVOS E INICIO DEL PROCESO DE INFERENCIA EN CLIPS
Cuando CLIPS encuentra el tag de alguna Alarma de Disparo en el archivo Primarias.bin empieza el
Proceso de Inferencia para hallar las causas de la falla.
Cada Alarma de Disparo tiene un Proceso de Inferencia asociado a ella, en el cual se determina la
causa por la que se presentó esa falla. Para ello, se definió que cada proceso se programaría en un
archivo *.CLP diferente, de manera que el sistema fuera modular y fácil de alimentar137. Así, se
determinó que el nombre de cada archivo relacionado con un Proceso de Inferencia seria el del tag
de la Alarma de Disparo.CLP. Ejemplo: M11-LCLFDEN_ALM.CLP.138
137 Alimentar el SISTEMA EXPERTO EoS: Agregar información de procesos nuevos para que el sistema sea más completo y robusto. A cargo del Usuario Experto. 138 Ver figura 10, cuadro azul oscuro.
Archivo de entrada: ArchivoHyp.Txt Contiene la información de las alarmas que se generan cuando ocurre una falla que ocasiona la parada en un turbocompresor. Se especifica la información de las alarmas que sucedieron sesenta (60) minutos antes y un (1) minuto después de la Alarma de Disparo.
ListaPrimarias.Txt: Contiene la lista con todos los tags de Alarmas de Disparo. Esta lista es creada por el Usuario Experto, y debe coincidir con la información que contiene CLIPS.
ListaSecundarias.Txt: Contiene la lista con todos los tags de las Alarmas Secundarias Esta lista es creada por el Usuario Experto, y contiene los tags de las alarmas relacionadas con los turbocompresores que intervienen en el proceso de inferencia que realiza CLIPS.
COMPARACIÓN
Primarias.bin: Contiene el tag de la Alarma de Disparo en común.
Secundarias.bin: Contiene el tag de la Alarmas Secundarias en común.
17
En CLIPS, los archivos tienen un numero máximo de renglones de código permitido139, por lo tanto,
en algunos casos es necesario hacer llamados, desde el archivo con el nombre de la Alarma de
Disparo, a otros archivos de código para que continúen con un proceso determinado. Estos
“archivos de continuación” llevan el nombre del Árbol de Conocimiento140 al que se asocia la Alarma
de Disparo. Ejemplo: Transmisoresdecampo.CLP y TransmisoresdecampoPARTE2.CLP, los cuales se
nombran de esta manera porque están asociados al árbol “Transmisores de campo.”141
La estructura de programación realizada en CLIPS cuenta con un archivo denominado
PROGRAMAGLOBAL.CLP,142 el cual contiene el código que permite determinar cuál Proceso de
Inferencia debe seguir el SISTEMA EXPERTO EoS para hallar las causas de la falla de acuerdo con
la Alarma de Disparo que haya en Primarias.bin, es decir es donde se escoge el archivo de código
con el nombre del tag de la Alarma de Disparo que está en Primarias.bin.143
A continuación se presenta la estructura de programación utilizada en CLIPS para desarrollar el
SISTEMA EXPERTO EoS.
139 El número de caracteres permitidos en un renglón de código elaborado en CLIPS es ilimitado. 140 Árbol de Conocimiento: Representaciones gráficas y lógicas del Proceso de Inferencia que se realiza con cada Alarma de Disparo para hallar las causas de la falla. Cada Árbol de Conocimiento tiene un nombre asociado. Para más información remítase a la sección 6 del ANEXO C del libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo”, o a su sección 3.6. 141 Ver figura 10, cuadros azul claro. 142 PROGRAMAGLOBAL.CLP se encuentra en C:/EJERVG. 143 Ver figura 10, cuadro naranja.
18
Figura 78.Estructura de programación de CLIPS.
En cada uno de los archivos denominados con el tag de la Alarma de Disparo, o el nombre del
Árbol de Conocimiento asociado, se encuentra el código que permite al SISTEMA EXPERTO EoS
encontrar las causas de falla, es decir es allí donde se realiza verdaderamente el Proceso de
Inferencia.144
3.4 PASO 4: PROCESO DE INFERENCIA DE CLIPS
El SISTEMA EXPERTO EoS, utiliza dos métodos de trabajo en el Proceso de Inferencia145 que
realiza:
144 Para más información al respecto de los nombres de los archivos, remítase a la sección 6.1 de este Manual. 145 Para más información, remítase al libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo.”
PROGRAMAGLOBAL.CLP: Contiene el código que permite determinar cuál Proceso de Inferencia debe seguir el SISTEMA EXPERTO EoS. Ejemplo: M12-L45FTT_ALM ó PP-L28FDB4 ó M11-LCLFDEN_ALM ó M11-L3NZFLT
Primarias.bin: Contiene el tag de la Alarma de Disparo en común entre ArchivoHyp.Txt y ListaPrimarias.Txt. Ejemplo: M11-LCLFDEN_ALM
M11-LCLFDEN_ALM.CLP: Contiene el código del Proceso de Inferencia asociado con esa Alarma de Disparo. M11-LCLFDEN_ALM está asociado con el Árbol de Conocimiento denominado Transmisores de campo
Transmisoresdecampo.CLP: Contiene la continuación del código del Proceso de Inferencia asociado con la Alarma de Disparo M11-LCLFDEN ALM.
TransmisoresdecampoPARTE2.CLP: Contiene la continuación del código del Proceso de Inferencia asociado con la Alarma de Disparo M11-LCLFDEN ALM.
19
Preguntas realizadas al usuario: Durante el proceso que el sistema realiza, pregunta
constantemente al usuario sobre el estado de equipos e instrumentos relacionados con la
falla que se presentó, de manera que éste lo retroalimente y el sistema pueda hallar las
causas de la falla correctamente.
Existencia de Alarmas Secundarias que estén relacionadas con el proceso:
Durante el proceso que el sistema realiza, revisa en el archivo Secundarias.bin si existe una
Alarma Secundaria relacionada con el proceso que está desarrollando y de acuerdo a eso
asocia eventos y alarmas reportadas en otros equipos e instrumentos con la Alarma de
Disparo.
Para realizar preguntas al usuario y presentarlas en la interfaz gráfica, CLIPS crea un archivo
denominado Pta.bin, en el que almacena la pregunta que se va a formular y las posibles respuestas
por parte del usuario, cada una de ellas en un renglón diferente. CLIPS queda en espera de alguna
respuesta para continuar con el proceso, mientras la interfaz gráfica lee la información del archivo
de texto y la muestra al usuario.
Figura 79. Formato que usa CLIPS para formular preguntas al usuario usando el archivo Pta.bin.
El usuario debe responder cada una de las preguntas que se formulan, de manera que debe
seleccionar la respuesta correcta y hacer clic sobre ella. No existe la posibilidad de no elegir
alguna de las respuestas indicadas.
20
Figura 80. Presentación de la pregunta realizada al usuario por medio de la interfaz gráfica.
Cuando el usuario selecciona la respuesta correcta el sistema la almacena en un archivo
denominado Rta.bin, el cual es leído por CLIPS de manera que le permite continuar con el proceso.
El número de consultas realizadas por el SISTEMA EXPERTO EoS para verificar si existen Alarmas
Secundarias y el número de preguntas realizadas al usuario, depende de la magnitud y complejidad
del Árbol de Trabajo relacionado con la Alarma de Disparo.
A medida que el sistema le formula preguntas al usuario, y este las responde, se va creando un
historial de Preguntas y Respuestas con la fecha y hora en que ocurrió cada una de ellas.146
Figura 81. Historial de preguntas y respuestas que se crea a medida que transcurre el proceso.
146 Para más detalles sobre el Historial de Preguntas y Respuestas, remítase a la sección 8 del Manual de Usuario.
21
3.5 PASO 5: FINALIZACIÓN DEL PROCESO Y PRESENTACIÓN DE LOS RESULTADOS EN PANTALLA
A medida que transcurre el Proceso de Inferencia, CLIPS va almacenando en Deftemplates147 la
información referente a las Causas, Recomendaciones y Proceso EoS. Al final del proceso, esta
información se envía a archivos binarios denominados Causas.Bin, Recomendaciones.bin y
Proceso.bin, respectivamente.
Para mostrar estos resultados al usuario, la interfaz gráfica lee la información que se encuentra en
los archivos binarios y la presenta al usuario en su ventana principal. En este momento se termina
el proceso.
El SISTEMA EXPERTO EoS presenta al usuario los siguientes resultados:
Posibles causas que generaron la falla: Causas EoS.148
Posibles recomendaciones correctivas a la falla: Recomendaciones EoS.149
Secuencia de pasos realizados por el SISTEMA EXPERTO EoS para generar las demás
salidas: Proceso EoS.150
Tenga en cuenta que el SISTEMA EXPERTO EoS siempre debe terminar los procesos, lo que indica
que si el mensaje EoS EN PROCESO se encuentra resaltado en azul151 y el sistema NO está
realizando ninguna acción, se deben reiniciar los dos programas (la interfaz gráfica y CLIPS), para
que el sistema quede nuevamente en espera.
147 Deftemplates: Son arreglos donde se almacena información, como matrices de datos. Para mas información remítase a los manuales de CLIPS que se adjuntan en el CD de instalación del SISTEMA EXPERTO EoS: Guía del Usuario, Guía Básica de programación y Guía Avanzada de Programación. 148 Para más información, remítase a la sección 9 del MANUAL DE USUARIO. 149 Para más información, remítase a la sección 10 del MANUAL DE USUARIO. 150 Para más información, remítase a la sección 11 del MANUAL DE USUARIO. 151 Para más información remítase a la sección 0 del MANUAL DE USUARIO.
22
3.6 PASO 6: RECOPILACIÓN DE INFORMACIÓN PARA EL REPORTE EoS
Al terminar cada proceso, el SISTEMA EXPERTO EoS genera automáticamente un reporte en
formato texto (*.Txt) en el cual se detalla toda la información relacionada con la Alarma de Disparo
y el proceso ejecutado.
El REPORTE EoS se almacena en la carpeta Reportes SisExpEoS152, y es producto de la acumulación
de información a lo largo del desarrollo del proceso, que permite al SISTEMA EXPERTO EoS
presentar al final, toda la información asociada con el proceso realizado.
El REPORTE EoS se compone de las siguientes partes:153
Encabezado.
Nombre de la persona que realizo el proceso.
Tags de las alarmas relacionadas con el proceso realizado por el SISTEMA EXPERTO EoS.
Información correspondiente a la Alarma de Disparo del proceso.
Causas generadas por el SISTEMA EXPERTO EoS.
Proceso ejecutado por el SISTEMA EXPERTO EoS para hallar las causas de la falla.
Recomendaciones correctivas sugeridas por el SISTEMA EXPERTO EoS.
Historial de preguntas realizadas por el SISTEMA EXPERTO EoS y respuestas del usuario.
Observaciones adicionales al proceso, proporcionadas por el usuario.
Información detallada de las alarmas que interactuaron con el SISTEMA EXPERTO EOS.
Nombre del archivo que el usuario utilizó para realizar el análisis del evento.
152 Reportes del SISTEMA EXPERTO EoS: Se encuentra ubicada en la ruta de acceso que el usuario indicó en el archivo DataPathAlarms.Txt. Para más información remítase a la sección 3.1 del MANUAL DE USUARIO. 153 Para más información remítase a la sección 14 del MANUAL DE USUARIO.
23
3.7 OTRO PASO: MODO ANÁLISIS DE EVENTOS
El SISTEMA EXPERTO EoS permite Analizar Eventos, de forma que el usuario puede ingresar la
información con las alarmas que generan los equipos y realizar manualmente un proceso de
simulación.
Para ello, se utilizan los Archivos de Eventos que genera el Sistema de Captura y Filtraje.154 Estos
archivos tienen las mismas características de formato que el ArchivoHyp.Txt, y también contienen
una Alarma de Disparo, pero no la que generó la parada de los turbocompresores.
El SISTEMA EXPERTO EoS crea una carpeta llamada Eventos, la cual se encuentra ubicada en la
ruta de acceso que el usuario indicó en el archivo DataPathAlarms.Txt155, para almacenar los
Archivos de Eventos en ella.
Este archivo debe tener máximo quinientos (500) renglones y debe cumplir con:
Campo Columna
inicial
Columna
final
Descripción
Tag156 4 27 Código para identificar las alarmas.
Descripción 28 48 Breve descripción de la Alarma de Disparo.
Estado de
referencia 49 60 Estado de referencia de la alarma, complementa
la descripción de la misma.
Estado 61 76 Estado de la alarma, complementa la
descripción de la misma.
Fecha 77 87 Fecha en que ocurrió la Alarma de Disparo.
Hora 88 107 Hora en que ocurrió la Alarma de Disparo.
Tabla 4: Características del archivo con el que el usuario analizaría eventos.
154 Archivos de Eventos: Ver sección 3.1 de este manual. 155 DataPathAlarms.Txt: Para más información remítase a la sección 3.1 del MANUAL DE USUARIO. 156 Tag: Es el código que utilizan en Cusiana para identificar cada una de las alarmas relacionadas con los equipos de extracción de petróleo.
24
Figura 82: Ejemplo de un Archivo de Eventos.
Cuando se realiza el Análisis de Evento, el sistema toma como Archivo de Entrada el Archivo de
Evento que el usuario determine y deja de revisar el ArchivoHyp.Txt, es decir NO recibe
información de él, de forma que NO disparará un proceso nuevo cuando suceda una Alarma
de Disparo REAL que se reporte en el ArchivoHyp.Txt.
25
4 INSTALACIÓN Y EJECUCIÓN DEL SISTEMA
4.1 PASOS PRELIMINARES
Copiar las carpetas EJERVG y SistemaExperto, y el archivo de texto DataPathAlarms.Txt,157
en el disco duro C:\ de su computador.
Figura 83. Ubicación de la carpeta EJERVG en C\
Verificar que los tags de las alarmas que se encuentran en ListaPrimarias.Txt sean tags de
Alarmas de Disparo y coincidan con los Procesos de Inferencia que CLIPS tiene
programados. Verificar que los tags de las alarmas que se encuentran en
ListaSecundarias.Txt coincidan con la información que tiene el CLIPS en sus programas.158
El usuario no debe modificar ninguno de los demás archivos que se encuentran en
EJERVG o SistemaExperto, ni DataPathAlarms.Txt puesto que puede afectar el correcto
funcionamiento del sistema. Asegúrese que las carpetas NO sean de solo lectura.
Ejecutar el archivo “FrameWork.exe” que se encuentra en la carpeta C:\EJERVG, e instalar
el componente en su computador.
157 Los tres componentes se encuentra en el CD de instalación del SISTEMA EXPERTO EoS 158 ListaPrimarias.Txt, ListaSecundarias.Txt: Para más información vea la sección 3.2 de este manual.
26
Figura 84: Pantalla de instalación de Framework.exe.
El archivo de texto ubicado en C:\ denominado “DataPathAlarms.Txt”, especifica la ruta
donde se crean las carpetas Eventos y Reportes SisExpEOS que se utilizarán
posteriormente durante la ejecución del programa. La ruta de acceso será
C:\SistemaExperto\
Figura 85: Archivo de texto DataPathAlarms, ubicado en C:\, el cual contiene la ruta de acceso donde se crearán las carpetas Eventos y Repostes SisExpEoS.
4.2 INSTALAR Y EJECUTAR EL SISTEMA EXPERTO EoS
Copiar el archivo “SISTEMA EXPERTO EoS.exe”, en su disco duro (se recomienda el
escritorio), puesto que es el que se usará en situaciones posteriores cuando se requiera
abrir nuevamente el sistema.
Figura 86: Icono del SISTEMA EXPERTO EoS.
27
En la pantalla se mostrará la ventana del Sistema de Captura y Filtraje y la ventana de
CLIPS trabajando sobre DOS.
Figura 87: Ventana del Sistema de Captura y Filtraje y ventana de CLIPS
Escriba en la línea de comando de la ventana de CLIPS:
(batch C:\EJERVG\PROGRAMAGLOBAL.CLP)
Figura 88: Línea de código para activar el programa CLIPS.
Presione la tecla Enter. Observará en pantalla algunas líneas de código como las que se
muestran a continuación.
28
Figura 89: Pantalla con código en CLIPS.
Minimice la ventana de CLIPS.
Figura 90: Minimizar la ventana de CLIPS.
Haga doble clic sobre el icono de “SISTEMA EXPERTO EoS.exe.” A continuación se mostrará
la ventana con el MENÚ PRINCIPAL.
29
Figura 91: Ventana MENÚ PRINCIPAL.
Esta permite seleccionar entre el Sistema de Captura y Filtraje, el SISTEMA EXPERTO EoS, y salir
del programa. Ambos sistemas estarán funcionando simultáneamente, sin importar la ventana que
escoja el usuario para mostrar en pantalla.
Haga clic sobre SISTEMA EXPERTO EoS. A continuación se mostrará la ventana principal de
EoS.
Figura 92: Ventana principal del SISTEMA EXPERTO EoS.
La instalación del SISTEMA EXPERTO EoS ha terminado.
30
5 PROGRAMACIÓN Y ESTRUCTURA GENERAL DE CLIPS
A continuación se describen las funciones generales que se utilizan para alimentar el SISTEMA
EXPERTO EoS, y se hace una descripción específica de la estructura de los diferentes archivos que
conforman el sistema. Es necesario que el usuario se remita a los manuales159 de CLIPS para poder
entender los comandos utilizados y tener una mejor comprensión del código de programación.
Encontrará la descripción de los comandos, funciones y condiciones que se deben tener presentes
para alimentar el SISTEMA EXPERTO EoS. En cada caso se muestra la sintaxis adecuada que se
debe utilizar.
Notación utilizada
La notación que se utiliza en este manual para describir la sintaxis de CLIPS es:
Los símbolos y caracteres que se encuentran entre paréntesis ( ) generalmente son
comandos, e indican que deben introducirse tal y como aparecen. Ejemplo:
significa que debe introducirse como se muestra, y hace referencia al comando run.
El contenido que se encuentre entre los caracteres menor que y mayor que, < >, hace
referencia al tipo de información que se debe introducir. Por ejemplo:
significa que debe hacerse una sustitución por un entero real. La sintaxis seria:
podría reemplazarse por:
159 Para mas información remítase a los manuales de CLIPS que se adjuntan en el CD de instalación del SISTEMA EXPERTO EoS: Guía del Usuario, Guía Básica de programación y Guía Avanzada de Programación.
(assert 5 ) o (assert -5 ) o (assert 589 ) , etc
(assert <entero>)
< entero >
(run)
31
5.1 COMANDOS
5.1.1 Entrada
Después de instalar CLIPSWIN160 y activar el modo de ejecución apropiado, el puntero de la
ventana Dialog Window debe mostrarse en pantalla así:
Figura 93: Presentación del puntero de CLIPS, después de haber instalado correctamente el programa
En ese momento puede introducir los comandos directamente a CLIPS.
5.1.2 Salida
Para salir de CLIPS, use el comando exit:
5.1.3 Borrar la información en CLIPS
Para eliminar todas las construcciones contenidas en el entorno de CLIPS y todos los hechos de la
lista de hechos se utiliza el comando clear:
Ejemplo:
160 Para realizar la programación del código que alimenta el sistema, se trabajará con CLIPSWIN, el cual es la versión para Windows de CLIPS. El programa se encuentra en la carpeta EJERVG la cual se incluye en el CD de instalación del SISTEMA EXPERTO EoS. Para su ejecución haga doble clic sobre el ícono CLIPSWIN.
CLIPS> (clear)
(clear)
(exit)
32
5.1.4 Ejecución de un programa
Es posible hacer que un programa de CLIPS se ejecute con el comando run que tiene la siguiente
sintaxis:
Después de tener el código correspondiente a diferentes reglas en un programa, dicho programa se
ejecutar al aplicar el comando (run) al final del código que se desea ejecutar.
El SISTEMA EXPERTO EoS utiliza el comando (run) en cada uno de los archivos, al final de cada
código de programación, para que se pueda efectuar su ejecución.
5.1.5 Carga de comandos desde archivos
Para cargar un archivo de CLIPS (*.CLP) que tiene comandos y código de programación, se utiliza
el comando batch. Su sintaxis es la siguiente:
donde < ruta del archivo> corresponde al archivo que se desea cargar en CLIPS incluyendo la
información de su ruta de acceso en el computador, es decir, el directorio donde se encuentra el
archivo. Por ejemplo:
en este caso se carga el archivo PROGRAMAGLOBAL.CLP que se encuentra en la carpeta EJERVG la
cual está dentro de C:/.
El SISTEMA EXPERTO EoS tiene un archivo principal llamado PROGRAMAGLOBAL.CLP el cual
contiene las reglas que indican cual archivo cargar según la Alarma de Disparo.161
Por ejemplo, si el SISTEMA EXPERTO EoS lee la alarma M11-PT1801 correspondiente al hecho
(M11-PT1801), la regla llamada transmisores se dispara y carga en CLIPS, el archivo ALARMAM11-
161 Para más información remítase a la sección 3.3 de este Manual.
(batch c:/EJERVG/PROGRAMAGLOBAL.CLP)
(batch <ruta del archivo>)
(run)
33
PT1801.CLP, donde está el código de programación correspondiente al análisis de causas de falla
de la alarma M11-PT1801. A continuación se muestra la regla que ilustra éste caso la cual se
encuentra en PROGRAMAGLOBAL.CLP:
5.2 VARIABLES Y FUNCIONES
Las variables que se utilizan en CLIPS se escriben con un signo de interrogación seguido de un
nombre de campo simbólico. Se debe tener en cuenta que NO debe haber espacio entre el signo de
interrogación y el nombre. Ejemplo:
5.2.1 Definición de variables
Para definir una variable global con un valor predeterminado se utiliza el comando defglobal, asi:
donde <nombre de la variable > puede ser cualquier palabra o número que representa la variable y
la cual inicia en el <valor de la variable > el cual puede ser un número entero (5, 8, 1,etc.) ó vacío
(" ") Por ejemplo:
(defglobal ?*var* = 1) (defglobal ?*hecho* = "")
(defglobal ?*<nombre de la variable >* = <valor de la variable >)
?a0 ?prueba ?e21
(defrule transmisores ;Se define una regla de nombre transmisores (declare (salience 20)) ;se declara la prioridad ?a4 <-(M11-PT1801) => (assert (RESULTADO(HIPOTESIS "(Transmisores): ALARMA M11-PT1801 . Falla en Transmisores de campo "))) ;Se escribe el proceso que siguió el sistema (assert (alarma M11-PT1801)) ;Se define un hecho (batch c:/EJERVG/ALARMAM11-PT1801.CLP)
34
significa que la variable var inicia en 1 y la variable hecho esta vacía, es decir, no tiene ningún
carácter o string asociado.
5.2.2 Suma de números
La sintaxis para sumar dos números es:
De modo que el resultado será la suma del <número 1> más el <número 2>.
En el siguiente ejemplo:
el resultado de la suma es 7, porque 3+4=7.
Si se desea sumar un número y una variable que representa un valor numérico, la sintaxis es la
siguiente:
donde el resultado es la suma del <número> más la <variable> que representa el valor numérico.
En el siguiente ejemplo se define la variable ?*var*:
la cual tiene el valor de 1. Si se realiza la siguiente suma:
el resultado será 6 porque la suma es 5 + 1 =6 donde el número 1 corresponde al valor de la
variable ?*var*.
(+ ?*var* 5)
(defglobal ?*var* = 1)
(+ <variable> <numero>)
(+ 3 4 )
(+ <número 1> <número 2> )
35
5.2.3 Comparar igualdad
Para comparar una variable y un número y afirmar que son o no iguales, se utiliza la función eq.
La sintaxis de la función eq es la siguiente:
La <variable> y el <simbolo> son los dos valores que se comparan para verificar su igualdad. Por
ejemplo:
Se define la variable ?*var* igual a 1 y luego, dentro del programa, se compara el valor de ?*var*
con el número 1, si es verdadero se cumplirá la sentencia y se convierte en una afirmación
verdadera.162
5.3 HECHOS
Los hechos son fragmentos de información o datos que se le proporciona a CLIPS para que pueda
llevar a cabo el razonamiento. Los hechos que se introducen en el SISTEMA EXPERTO EoS son los
tags de las Alarmas de Disparo que se encuentran en el Archivo de Entrada,163 y las conclusiones
que se infieren a través de la ejecución de un análisis.
Formato de las alarmas que llegan a CLIPS:
La palabra que hace referencia al tag de la alarma va dentro de paréntesis.
162 Ver ejemplo de la sección 5.6.1 de este Manual. 163 Para más información sobre el Archivo de Entrada y Alarma de Disparo, remítase a la sección 3.1 de este Manual.
(M12-L39VCT)
(defglobal ?*var* = 1) . . . (eq ?*var* 1)
(eq <variable> <simbolo>)
36
Las Alarmas de Disparo que lee CLIPS, se registran en la Base de Hechos,164 de donde
posteriormente las toma para activar las reglas relacionadas.
5.3.1 Campos que componen los hechos
En el SISTEMA EXPERTO EoS, los hechos deben estar compuestos preferiblemente máximo por dos
campos, es decir dos palabras, debido a que las reglas se disparan únicamente con dos campos.
Por ejemplo:
Si un hecho está compuesto por más de dos campos, CLIPS sólo entenderá los primeros dos
campos y la regla asociada con éste se disparará únicamente con los dos primeros campos. Por
ejemplo, si se define el hecho:
la regla asociada se dispara únicamente con los dos primeros campos, es decir:
NO se permite usar la ñ en las palabras que componen los campos de un hecho.
5.3.2 Adición de hechos
Para agregar las conclusiones intermedias se utiliza el comando assert, el cual agrega hechos que
representan información a la Lista de Hechos. La sintaxis del comando assert se muestra a
continuación:
164 Para más información remítase al libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo.”
(defrule transmisor-malo ?hecho <- (realtmisor NO)
=> . . (retract ?hecho))
(realtmisor NO Esta)
(alarma M11-PT1801) (M12-L39VCT) (realtmisor NO)
37
Para el SISTEMA EXPERTO EoS, < hecho> se ha definido de dos campos (dos palabras) que
representan un hecho particular. Se debe tener en cuenta que éstos no se deben repetir para evitar
duplicación de hechos y conflictos en el proceso de análisis.
Ejemplo:
Se observa que el nuevo hecho es alarma M11-L86CBT_ALM.
5.3.3 Asignación de un hecho a una variable
Para manipular un hecho dentro de una regla, se debe asignar a una variable utilizando el operador
de unión de patrones “ <- ” como se muestra a continuación:
donde ?prueba representa el hecho (PRUEBA CLIPS), es decir el valor de ?prueba es (PRUEBA
CLIPS)
5.3.4 Eliminación de hechos
La eliminación de hechos se realiza con el comando retract. Su sintaxis se muestra a continuación:
donde < hecho-numero> corresponde a una variable que se le asigna a cada hecho en particular
cuando se dispara una regla. Por ejemplo, en la siguiente regla:
(defrule prueba-ejecucion ;se declara una regla y se le da nombre ?prueba <-(PRUEBA CLIPS) ;Se adiciona un hecho
=> (assert (RESULTADO(HIPOTESIS "(Prueba de ejecución de CLIPS): PRUEBAPROCESO"))) ;Se escribe el proceso seguido (retract ?prueba)) ;Se elimina el hecho
(retract <hecho-numero>)
?prueba <- (PRUEBA CLIPS)
(assert (alarma M11-L86CBT_ALM))
(assert <hecho>)
38
El hecho (PRUEBA CLIPS) es asignado a la variable ?prueba, para que después de que se ejecute la
regla, el hecho pueda ser borrado de la Lista de Hechos y no genere un nuevo disparo de la regla,
es decir una nueva ejecución.
5.3.5 Plantillas de hechos
Los grupos de hechos que comparten el mismo hecho de relación y tienen información común se
pueden describir utilizando plantillas de definición o deftemplates, los cuales son arreglos de
variables y/o hechos.
El formato de la plantilla de definición utilizada es la siguiente:
El <nombre del deftemplate> es una palabra que se le asigna al deftemplate para poder
reconocerlo. Cada campo que pertenece a un deftemplate se llama slot, por tal motivo multislot
hace referencia a cero o más campos o valores que puede contener el deftemplate, de forma que el
deftemplate puede almacenar varias palabras.
El <nombre de los campos del deftemplate> es una palabra para llamar a los campos que contiene
el deftemplate.
El SISTEMA EXPERTO EoS tiene definidos tres (3) deftemplates, cada uno de ellos correspondiente
a las Causas Inmediatas, Resultados Hipótesis (es decir los pasos del proceso) y Recomendaciones
Correctivas respectivas; con el fin de agrupar las diferentes conclusiones de cada uno de estos
aspectos durante el proceso.
El formato para los Antecedentes de la causa, es decir los pasos que siguió el SISTEMA EXPERTO
EoS durante el proceso, es:
Se observa que el <nombre del deftemplate> es RESULTADO y <nombre de los campos del
deftemplate> es HIPOTESIS.
(deftemplate <nombre del deftemplate> (multislot <nombre de los campos del deftemplate>))
(deftemplate RESULTADO (multislot HIPOTESIS))
39
Para el deftemplates de Causas se tiene:
5.4 REGLAS
El SISTEMA EXPERTO EoS está conformado por diferentes archivos que contienen el código de
programación de las reglas de los procesos de análisis específicos, los cuales se cargan a CLIPS
dependiendo de la Alarma de Disparo que se haya activado. Cada proceso de análisis para hallar las
causas de falla cuenta con uno o mas archivos que se cargan durante el proceso dependiendo de
los requerimientos que se generan en la ejecución165
Las reglas son el conocimiento y se represen en un pseudocódigo equivalente al formato SI
…ENTONCES ... expresada en sintaxis de CLIPS.
El formato general de una regla es el siguiente:
La regla completa debe ponerse entre paréntesis al igual que cada uno de sus patrones y acciones,
los cuales pueden ser múltiples.
La regla debe empezar con la palabra clave defrule, seguida por el <nombre de la regla> el cual es
el nombre que se le asigna para reconocerla, generalmente es un nombre asociado a su definición
y se utilizan palabras diferentes para cada una de ellas ya que no pueden existir reglas repetidas
(con el mismo nombre) en los diferentes procesos de análisis.
165 Para más información remítase a la sección 5.5.1 y 5.5.2 de este Manual.
( defrule <nombre de la regla> <patrones> ; lado izquierdo de la regla => <acciones> ; lado derecho de la regla
(deftemplate CAUSA (multislot INMEDIATAS))
Formato para las recomendaciones correctivas de las fallas:
(deftemplate RECOMENDACION
(multislot CORRECTIVA))
40
Después del encabezado de la regla sigue cero o más elementos condicionales que son los
<patrones>, es decir, corresponden a uno o más hechos que hacen que se dispare la regla.
CLIPS compara los patrones de las reglas con los hechos de la Lista de Hechos, los cuales son:
Los hechos que obtuvo CLIPS correspondientes a las alarmas,
Las diferentes respuestas del usuario durante la ejecución, y
Las conclusiones intermedias que genera CLIPS a través del análisis que realiza.
Si todos los patrones de una regla coinciden con los hechos que se mencionaron anteriormente, la
regla se activa y se ubica en la agenda.166
Al símbolo => que sigue los patrones de una regla se le llama flecha, se forma al escribir el signo
de igual y luego el signo de mayor que y representa el principio de la parte ENTONCES de una
regla: “SI ... ENTONCES”, es decir: SI ..... => ENTONCES ...... A la parte de la regla que va antes
de la flecha se le llama lado izquierdo y a la parte que va después de la flecha se le llama lado
derecho.
La última parte de una regla son las <acciones> las cuales son la lista de acciones que se
ejecutarán cuando se dispare la regla como respuesta a los patrones. El término disparar significa
que CLIPS ejecuta las acciones de la regla en la Agenda.
Por ejemplo, el siguiente pseudocódigo de una regla
SI se detecta la alarma M11-PT1801
ENTONCES ocurre una falla en los transmisores de campo. Presencia de la alarma M11-
PT1801.
se expresa en la sintaxis de CLIPS de la siguiente forma donde se añaden comentarios explicativos
de cada renglón:
; Encabezado de la regla: Donde transmisores es el nombre de la regla
166Agenda: Colección de reglas activadas, donde puede haber cero o más reglas. Para más información remítase al libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo.”
((defrule transmisores
41
; Patrones: Hechos por los cuales la regla se dispara. El hecho es (M11-PT1801) y se le asigna a la
variable ?a4
; Flecha equivalente a ENTONCES
=>
; Acciones: Respuestas que se emprenderán ante los hechos (patrones). En este caso, coloca como
resultado de las hipotesis “ALARMA M11-PT1801. Falla en los transmisores de campo”, adiciona a la
lista de hechos el nuevo hecho correspondiente a (alarma M11-PT1801) y elimina el hecho
asignado a la variable ?a4, el cual era (M11-PT1801)
5.4.1 Prioridad de las reglas
En algunos casos las reglas tienen mayor prioridad que otras debido a que tienen en sí información
más relevante que debe ser atendida antes que otras. Por defecto CLIPS asigna una prioridad a
todas las reglas de cero (0) pero el programador puede forzar a que las reglas se disparen según
su prioridad definiendo explícitamente la prioridad de una regla dentro del rango de –10000 hasta
10000.
Es importante tener en cuenta no usar en exceso la asignación de prioridades en las reglas ya que
puede forzar a que las reglas se disparen de forma secuencial.
Normalmente, el orden en que se disparan las reglas depende del orden en que se afirman los
hechos que satisfacen los patrones de la regla. Si se invierte el orden en que se afirman los hechos,
también se invertirá el orden en que se disparan las reglas.
Asignar la prioridad a una regla se utiliza para que a pesar del orden en que se afirman los hechos,
se disparen primero unas reglas que otras. La declaración de valores de prioridad se hace de la
siguiente manera:
(declare (salience <rango de prioridad>))
(assert (RESULTADO(HIPOTESIS "(Transmisores): ALARMA M11-PT1801 . Falla en Transmisores de campo "))) (assert (alarma M11-PT1801)) (retract ?a4))
?a4 <-(M11-PT1801)
42
donde <rango de prioridad> es el valor de prioridad que se debe asignar y puede ser cualquier
valor entre –10000 y 10000. Ejemplo:
La prioridad de una regla se define dentro de su estructura como se muestra a continuación:
5.5 FUNCIONES
5.5.1 Carga de hechos: Función Load-Facts
El comando load-facts permite cargar hechos que se encuentran en archivo de texto (*.TXT) a
CLIPS167. La sintaxis del comando load-facts es:
La función load-facts carga un grupo de hechos almacenados en un archivo de texto llamado
<nombre del archivo> incluyendo la información de su ruta de acceso en el computador. Los
hechos que se cargan deben estar en el formato estándar de un hecho. Por ejemplo,
carga los hechos que están en el archivo binario Primarias.bin, los cuales cumplen el siguiente
formato:
El SISTEMA EXPERTO EoS utiliza la función load-facts para cargar la Alarma de Disparo y las
Alarmas Secundarias cuando se requiera.
167 Se pueden cargar también archivos con otra extensión, como *.DOC, *.BIN, etc.
(M12-L39VCT) (M11-LCLFDEN_ALM)
(load-facts c:/EJERVG/Primarias.bin)
(load-facts <nombre del archivo>)
(defrule transmisores ;Se define una regla (declare (salience 20)) ;Se define la prioridad
?a4 <-(M11-PT1801) ;Se incluye un hecho => (assert (RESULTADO(HIPOTESIS "(Transmisores): ALARMA M11-PT1801 . Falla en Transmisores de campo ")));Se escribe el proceso que lleva es sistema (assert (alarma M11-PT1801)) ;Se incluye un hecho (retract ?a4)) ;Se elimina una variable
(declare (salience 30))
43
5.5.2 Almacenamiento de hechos: Función Save-Facts
El comando save-facts permite guardar hechos que se encuentran en la Lista de Hechos de CLIPS
a un archivo de texto (*.TXT)168. La sintaxis del comando save-facts es:
El <nombre del archivo> es el nombre del archivo texto donde se van a guardar los hechos de la
Lista de Hechos generados por CLIPS. El <ámbito guardado> en este caso es la palabra “local”
para especificar que se desea guardar sólo lo que se encuentra en el deftemplate169 específico
llamado <nombre del deftemplate>. Ejemplo:
En éste ejemplo se guarda en el archivo Causas.Bin, que se encuentra en la carpeta C:/EJERVG,
todos los hechos de la Lista de Hechos correspondientes al deftemplate CAUSA.
Si por ejemplo en el programa se encuentra lo siguiente:
Observe que inicialmente el deftemplate CAUSA tuvo que haber sido definido. Cuando la regla
válvula-venteo se dispara se agregan a la Lista de Hechos tres (3) hechos:
168 Se pueden guardar también archivos con otra extensión, como *.DOC, *.BIN, etc. 169 Deftemplates: Son arreglos donde se almacena información, como matrices de datos. Para mas información remítase a los manuales de CLIPS que se adjuntan en el CD de instalación del SISTEMA EXPERTO EoS: Guía del Usuario, Guía Básica de programación y Guía Avanzada de Programación.
((deftemplate CAUSA (multislot RAIZ)) (deftemplate CAUSAS
(multislot ANTECEDENTES)) (defrule valvula-venteo ?e23 <-(venteotmisor NO) => (assert (CAUSA(RAIZ "(Transmisores): VALVULA DE VENTEO ABIERTA"))) (assert (CAUSAS(ANTECEDENTES "(Transmisores): Verificacion de estado de la valvula de venteo -> Valvula abierta"))) (assert (continua erroneo)) (retract ?23 )) (save-facts c:/EJERVG/Causas.Bin local CAUSA) (run)
(save-facts c:/EJERVG/Causas.Bin local CAUSA)
(save-facts <nombre del archivo> <ámbito guardado> <nombre del deftemplate> )
44
sin embargo la instrucción (save-facts c:/EJERVG/Causas.Bin local CAUSA) sólo guardara en el
archivo Causas.Bin el primer hecho
el cual corresponde al deftemplate CAUSA.
5.5.3 Almacenar un valor en una variable: Función Bind
Para almacenar un valor en una variable temporal se utiliza la función bind. La sintaxis
utilizada es la siguiente:
La <variable> es el nombre de la variable que previamente se inició y a la cual se le asigna el
<valor de la variable> .Ejemplo:
A la variable ?*var se le asigna el valor de 0+1, es decir, 1. Es necesario tener en cuenta que la
función bind SIEMPRE se utiliza al lado derecho de una regla, es decir donde se encuentran las
acciones. Por ejemplo:
La variable ?*var* sólo será 1 si se dispara la regla alarma-principal, de lo contrario seguirá siendo
0 como inicialmente se definió.
(defglobal ?*var* = 0) Se define una variable (defrule alarma-principal ;Se define una regla (declare (salience 20)) ;Se determina la prioridad ?f01 <- (BANDERA INICIO) ;Bandera de inicio principal => (bind ?*var* (+ 0 1)) Se almacena en una variable
(retract ?f01 )) Se elimina el hecho
(bind ?*var* (+ 0 1))
(bind <variable> <valor de la variable>)
(CAUSA(RAIZ "(Transmisores): VALVULA DE VENTEO ABIERTA"))
1. (CAUSA(RAIZ "(Transmisores): VALVULA DE VENTEO ABIERTA")) 2. (CAUSAS(ANTECEDENTES "(Transmisores): Verificacion de estado de la valvula de venteo > Valvula abierta"))
45
5.5.4 Abrir archivos de lectura y escritura: Función Open
Para leer un archivo texto o poder escribir en él, se necesita abrir con la función open. La sintaxis
de la función open es:
El <nombre del archivo> es el nombre del archivo que se desea abrir incluyendo la información de
su ruta de acceso en el computador. Cada archivo debe tener un nombre lógico asociado, que es el
<nombre lógico del archivo> el cual es definido por el programador y es con el que se identifica el
archivo a lo largo del programa en CLIPS. Por ejemplo, se utiliza el nombre lógico “repuesta” para
hacer referencia al archivo Rta.bin. El argumento <acceso al archivo> representa los posibles
modos de acceso al archivo. El SISTEMA EXPERTO EoS utiliza dos accesos:
Modo “ r ” para acceso de sólo lectura
Modo “ w ” para acceso de sólo escritura
A continuación se muestra un ejemplo.
El archivo que se va abrir es "c:/EJERVG/Rta.bin". El nombre lógico que se la asocia al archivo es
respuesta, y "r" significa que el archivo se va abrir para acceso de sólo lectura.
Se debe tener en cuenta que si el archivo que se desea abrir no existe, la función open lo creará
instantáneamente.
5.5.5 Cerrar un archivo: Función Close
Cuando se termine de utilizar un archivo, se debe cerrar con la función close. La sintaxis es:
donde <nombre lógico del archivo> especifica el nombre lógico del archivo a cerrarse. Por ejemplo:
(close respuesta)
(close <nombre lógico del archivo >)
(open "c:/EJERVG/Rta.bin" respuesta "r")
(open <nombre del archivo><nombre lógico del archivo><acceso al archivo>)
46
cerrará el archivo conocido por CLIPS con el nombre lógico respuesta.
Es importante recordar que NO deben quedar archivos abiertos.
5.5.6 Borrar un archivo: Función Remove
Para borrar un archivo se utiliza la función remove. La sintaxis es:
donde <nombre-ruta del archivo> especifica el nombre y ruta específica del archivo que se desea
borrar. En el siguiente ejemplo:
se borrará el archivo Primarias.bin que se que se encuentra dentro de la carpeta EJERVG que esta
en c:/.
5.5.7 Escritura en un archivo: Función Printout
Para imprimir información en un archivo, es decir, para escribir información en un archivo se utiliza
la función printout. La sintaxis es la siguiente:
El <nombre lógico del archivo > es el nombre lógico del archivo donde se va a escribir el "<texto
escrito>", el cual va entre comillas. Por ejemplo:
significa que en el archivo especificado con el nombre lógico pregunta se va a escribir el texto: “La
lectura del transmisor que causo el trip esta en cero (0v)?”
Para poder escribir en un archivo se necesita, abrirlo con la función open en modo de acceso de
escritura, escribirlo con la función printout, y cerrarlo con la función close. Ejemplo:
(printout pregunta "La lectura del transmisor que causo el trip esta en cero (0v) ? ")
(printout <nombre lógico del archivo > "<texto escrito>")
(remove "c:/EJERVG/Primarias.bin")
(remove “<nombre-ruta del archivo >”)
47
Si se desea escribir más de un renglón en el archivo se utiliza el comando crlf el cual actúa como
enter170 en el archivo, haciendo que el cursor se ubique en el renglón siguiente del archivo.
Ejemplo:
En este caso, se imprimirá la información en el archivo Pta.bin de la siguiente manera:
5.5.8 Entrada de información: Función Read-ReadLine
Para leer información que esta en un archivo de texto se utiliza la función read .La sintaxis es la
siguiente:
donde <nombre lógico del archivo > es el nombre lógico del archivo del que se lee la información.
Para recuperar valores que están escritos en un archivo de binario (.bin), primero se abre dicho
archivo con acceso de solo lectura, se utiliza la función read y finalmente se cierra.
Suponga que dentro del archivo Rta.bin se encuentra escrita la palabra NO y tiene las siguientes
instrucciones en CLIPS:
170 Enter: Salto de línea.
(open "c:/EJERVG/Rta.bin" respuesta "r") (bind ?*si5* (read respuesta)) (close respuesta)
(read <nombre lógico del archivo >)
La lectura del transmisor que causo el trip esta en cero (0v)?
SI
NO
(open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta "La lectura del transmisor que causo el trip esta en cero (0v) ? "crlf"SI"crlf"NO"crlf)
(close pregunta)
(open "c:/EJERVG/Pta.bin" pregunta "w") (printout pregunta "La lectura del transmisor que causo el trip esta en cero (0v) ? )
(close pregunta)
48
En el caso anterior, se abre el archivo Rta.bin en acceso de sólo lectura “r”. Una vez abierto se usa
la función read para recuperar el valor escrito el cual es la palabra NO que esta en el archivo
asociado con el nombre lógico respuesta (Rta.bin ). Para no perder este valor se utiliza la función
bind171 , la cual le asigna a la variable ?*si5* el valor que se leyó (la palabra NO). Finalmente el
archivo se cierra con la función close172; pero el valor no se pierde porque está almacenado en la
variable ?*si5*.
La función read sólo leerá el primer campo de un renglón, es decir, si se tiene la siguiente entrada
en el archivo que se va a leer:
BANDERA INICIO
Utilizando la función read, sólo se leerá el primer campo: BANDERA.
Para leer una línea completa de entrada se utiliza la función readline. Su sintaxis es:
Se utiliza de la misma manera que la función read con al única diferencia que lee más de un
campo. Por ejemplo, si el archivo Primarias.bin tiene escrito las palabras BANDERA INICIO:
en la variable ?*hecho se almacenan las palabras BANDERA INICIO.
5.5.9 Renglón vacío
El símbolo EOF (End Of File, final del archivo), es el valor que CLIPS retorna a las funciones de
entrada cuando se intenta leer más allá del final de un archivo, es decir, cuando ya no hay más
datos en un archivo.
Si se verifica el valor que retorna la función read o readline, es posible determinar el momento en
que ya no hay más datos en el archivo. Por ejemplo:
171 Para más detalles, remítase a la sección 5.5.3 de este Manual. 172 Para más detalles, remítase a la sección 5.5.5 de este Manual.
(open "c:/EJERVG/Primarias.bin" primarias "r") (bind ?*hecho* (readline primarias)) (close primarias)
(readline <nombre lógico del archivo >)
49
El ejemplo anterior corresponde a la regla alarma-principal. Allí se observa que, cuando ésta se
dispara, se abre el archivo Primarias.bin y se lee la línea del archivo con la función readline. El valor
leído se guarda en la variable ?*hecho* por medio de la función bind y se evalúa la siguiente regla:
5.6 FUNCIONES DE PROCEDIMIENTOS
El SISTEMA EXPERTO EoS utiliza dos funciones de procedimiento, while e if que son
proporcionadas por CLIPS para controlar el flujo de ejecución de acciones en el lado derecho de
algunas reglas, teniendo presente que sólo están destinadas para realizar ciclos simples de control
en casos de fuerza mayor donde es prudente utilizarlas. Esto con el fin de de no anular el propósito
del uso de un programa basado en reglas173 como lo es el SISTEMA EXPERTO EoS.
5.6.1 La función if
La sintaxis de la función if se muestra a continuación:
173 Para más información sobre programación basada en reglas remítase al libro “SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para turbocompresores utilizados en la extracción de petróleo.”
Si1 la variable ?*hecho* es igual al símbolo EOF, es decir si es vacío (es final
del archivo y el renglón es vacío),
Entonces la variable ?*var* es igual a la variable ?*var* más cero.
(defrule alarma-principal ;Se define una regla ?f01 <- (BANDERA INICIO) ;Se asigna valor a una variable => (open "c:/EJERVG/Primarias.bin" primarias "r") ;Se abre un archivo (bind ?*hecho* (readline primarias)) Se asigna el valor de la línea leída en el archive primarias, a la variable hecho (close primarias) ;Se cierra el archivo (if (eq ?*hecho* EOF) ;Cuando no hayan más renglones… then(bind ?*var* (+ ?*var* 0)) Asigne el valor de 0 a var else (bind ?*var* (+ ?*var* 1)))) ;Asisgne el valor de 1 a var (retract ?f01 )) ;elimine la variable
50
donde <expresion-condicion> es una expresión simple (como una función) que expresa una
condición. La <expresion-accion-caso condicion > que sigue a la palabra then y <expresion-accion-
caso segundo condicion > que sigue a la palabra else son expresiones que se evalúan con base en
el valor de devolución de la evaluación de <expresion-condicion>
En una función if, lo primero que se evalúa es la condición que representa <expresion-condicion>
para determinar si se ejecutan las acciones de la cláusula then o de la cláusula else. Es decir, si se
cumple la condición descrita en <expresion-condicion> se ejecutan las acciones de la cláusula then
correspondientes a <expresion-accion-caso condicion >, si por el contrario, NO se cumple la
condición descrita en <expresion-condicion> se ejecutan las acciones de la cláusula else
correspondientes a <expresion-accion-caso segundo condicion >
La función if se utiliza en el lado derecho de una regla. En el siguiente ejemplo se muestra el uso
de la función if dentro de la regla alarma-principal:
Donde (eq ?*hecho* EOF) corresponde a la <expresion-condicion>, (bind ?*var* (+ ?*var* 0) a la
<expresion-accion-caso condicion> que sigue a la palabra then y (bind ?*var* (+ ?*var* 1) a la
<expresion-accion-caso segundo condicion > que sigue a la palabra else. Se puede observar que la
función if está en el lado derecho de la regla alarma-principal. Esta regla se dispara con el hecho
(BANDERA INICIO), si éste hecho se encuentra en la Lista de Hechos la regla se dispara ejecutando
varias acciones, A continuación se explica detalladamente las acciones que se ejecutan en el
ejemplo anterior al dispararse la regla alarma-principal:
(defrule alarma-principal ;Se define una regla ?f01 <- (BANDERA INICIO) ;Se define una variable => (bind ?*var* (+ 0 1)) Se asigna 1 a var (open "c:/EJERVG/Primarias.bin" primarias "r") ;Se abre un archivo binario (bind ?*hecho* (readline primarias)) ;Se lee una línea del archivo (close primarias) ;Se cierra el archivo (if (eq ?*hecho* EOF) ;Se hay un fin de línea…
then(bind ?*var* (+ ?*var* 0)) ;Asignele 0 a var
else ;si no es asi… (bind ?*var* (+ ?*var* 1)))) ;Asígnele 1 a var ( ?f01 )) li i l i bl
(If <expresion-condicion> then <expresion-accion-caso-condicion> else <expresion-accion-caso-segunda-condicion >)
51
5.6.2 La función While
La sintaxis de la función while se muestra a continuación:
donde <expresion-condicion> es una expresión simple (como una función) que expresa una
condición. Las <expresiones-acciones-condicion > que sigue a la palabra do, son cero o más
expresiones que se evalúan con base en el valor de devolución de la evaluación de <expresion-
condicion>. Estas expresiones componen el cuerpo del ciclo, ya que mientras la <expresion-
condicion> sea verdadera se sigue en un ciclo ejecutando las acciones correspondientes a las
<expresiones-acciones-condicion > hasta que la <expresion-condicion> deje de ser verdadera, en
ese momento, se sale del ciclo de la función while.
(while <expresion-condicion> do <expresiones-acciones- condicion > )
Asigna a la variable ?*var* la suma 1+0=1 :
(bind ?*var* (+ 0 1))
MIENTRAS la variable ?*var* sea igual a 1
(while (= ?*var* 1)
REALICE las siguientes acciones:
do
Abre un archivo llamado Primarias.bin para leerlo:
(open "c:/EJERVG/Primarias.bin" primarias "r")
Asigna a la variable ?*hecho* lo que lee de ese archivo :
(bind ?*hecho* (readline primarias))
Cierra el archivo primarias :
(close primarias)
Asigne a la variable ?*var* el valor de (?*var* + 1 )
(bind ?*var* (+ ?*var* 1))
Elimine el hecho (BANDERA INICIO):
(retract ?f01 ))
52
Lo primero que se evalúa en un función while es la condición que representa <expresion-
condicion> para determinar si se ejecutan las acciones del cuerpo correspondientes a las
<expresiones-acciones-condicion > las cuales van después de la cláusula do. La condición de la
función while (<expresion-condicion>) se revisará cada vez que se ejecute el cuerpo
(<expresiones-acciones-condicion >) para determinar si debe ejecutarse otra vez.
La función while se utiliza en el lado derecho de una regla. En el siguiente ejemplo se muestra el
uso de la función while dentro de la regla “alarma-principal”
Donde (= ?*var* 1) corresponde a la <expresion-condicion>, y los cuatro renglones que siguen a
la palabra do son las (<expresiones-acciones-condicion>) Se puede observar que la función while
está en el lado derecho de la regla alarma-principal. Esta regla se dispara con el hecho (BANDERA
INICIO), si éste hecho se encuentra en la Lista de Hechos la regla se dispara ejecutando varias
acciones. A continuación se explica detalladamente las acciones que se ejecutan en el ejemplo
anterior al dispararse la regla alarma-principal.
Asigna a la variable ?*var* la suma 1+0=1 :
(bind ?*var* (+ 0 1))
MIENTRAS la variable ?*var* sea igual a 1
(while (= ?*var* 1)
REALICE las siguientes acciones:
do
Abre un archivo llamado Primarias.bin para leerlo:
(open "c:/EJERVG/Primarias.bin" primarias "r")
Asigna a la variable ?*hecho* lo que lee de ese archivo :
(bind ?*hecho* (readline primarias))
(defrule alarma-principal ?f01 <- (BANDERA INICIO) => (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Primarias.bin" primarias "r") (bind ?*hecho* (readline primarias)) (close primarias)
(bind ?*var* (+ ?*var* 0))
53
5.7 VENTANAS DE CLIPS
5.7.1 Dialog Window
La ventana llamada Dialog Window es la que permite realizar la compilación del código de
programación.
Figura 94: Ventana Dialog Window en CLIPS.
5.7.2 Ventana de edición
En la ventana de edición se permite escribir, modificar y guardar el código de programación, para
posteriormente simularlo en la ventana Dialow Window.
Igualmente se puede abrir el número de ventanas que se desee.
Para escribir el código primero se debe abrir una ventana de edición con el comando New.
(bind ?*hecho* (readline primarias))
Cierra el archivo primarias :
(close primarias)
Asigne a la variable ?*var* el valor de (?*var* + 1 )
(bind ?*var* (+ ?*var* 1))
Elimine el hecho (BANDERA INICIO):
(retract ?f01 ))
54
Figura 95: Ventana de edición de CLIPS, y ubicación del comando New.
La ventana de edición se llama Untitled pero el usuario le puede asignar el nombre que desea
cuando la guarde con el comando Save.
En la ventana de edición se escribe el código de programación para después simularlo en la
ventana de diálogo llamada Dialog Window.
Se debe tener en cuenta que la ventana de edición tiene un número máximo de renglones para
escribir código, es decir no se pueden escribir más de 470 líneas de código en una ventana.
Para compilar el programa, se debe seleccionar la parte de código que se desea compilar, hacer clic
en el botón derecho del ratón y escoger el comando Select All.
Figura 96: Comando Select All de CLIPS.
Luego de haber seleccionado el código que se desea compilar, se compila trasladándolo a la
ventana Dialog Window presionando simultáneamente las teclas Crtl +M.
55
Cuando el código es compilado se puede detectar si simula bien o no, ya que en caso de errores
CLIPS arroja comentarios174 de error en la ventana Dialog Window.
174 La descripción de los comentarios de errores se encuentran en el Apéndice G de la Guía Básica de Programación de CLIPS, el cual se incluye en el CD de instalación del SISTEMA EXPERTO EoS.
56
6 ESTRUCTURA Y PROGRAMACIÓN DEL SISTEMA EXPERTO EoS EN CLIPS
A continuación se presenta la estructura general y el código de programación utilizados para
alimentar el SISTEMA EXPERTO EoS. Encontrará la representación de los Árboles de Conocimiento
utilizados para la desarrollo del sistema y las aclaraciones pertinentes al modo de programación del
SISTEMA EXPERTO EoS en CLIPS.
El código de programación referente a la información que alimenta al SISTEMA EXPERTO EoS se
guarda en diferentes archivos en la carpeta EJERVG que se encuentra en C:/
Los archivos con extensión *.CLP que se encuentran en la carpeta EJERVG son los archivos que
CLIPS utiliza, dependiendo del caso, para poder hacer el proceso de análisis de causa de falla.
Figura 97: Lista de archivos con extensión *.CLP, ubicados en C:\EJERVG, donde se encuentra al código
que alimenta el SISTEMA EXPERTO EoS.
6.1 NOMBRE DE LOS ARCHIVOS DE CLIPS
La estructura de programación realizada en CLIPS cuenta con un archivo denominado
PROGRAMAGLOBAL.CLP,175 el cual contiene el código de programación que permite determinar
cuál Proceso de Inferencia debe seguir el SISTEMA EXPERTO EoS para hallar las causas de la falla
de acuerdo con la Alarma de Disparo que haya en Primarias.bin.
Adicionalmente, cada caso de estudio para hallar las causas de falla de una Alarma de Disparo, se
encuentra en uno (1) o más archivos en CLIPS, cuyos nombres hacen referencia a:
175 PROGRAMAGLOBAL.CLP se encuentra en C:/EJERVG.
57
El tag de la Alarma de Disparo con la cual se hace el análisis,
El caso de Árbol de Conocimiento que se analiza.
Es decir, cada análisis de causa de falla consta usualmente176 de dos archivos, uno llamado según
el tag de la Alarma de Disparo que se analiza y los demás nombrados según el árbol de falla de
análisis de causa que contienen.
En el archivo llamado PROGRAMAGLOBAL.CLP es dónde se encuentran las reglas para cada una de
las Alarmas de Disparo, es decir es donde se hace el llamado al archivo cuyo nombre es el tag de la
Alarma de Disparo. Este archivo siempre existirá, puesto que es el que hace que empiece un
proceso en CLIPS y es el primer archivo que llama CLIPS al detectar una Alarma de Disparo.
Dentro de este archivo se encuentran las primeras reglas y líneas de código que se estudian al
presentarse la Alarma de Disparo respectiva. Si el código que contiene este archivo supera las 470
líneas177 se realiza el llamado al archivo cuyo nombre corresponde al Árbol de Conocimiento, el cual
contiene la continuación del código.
Por ejemplo, si la Alarma de Disparo que se activó es M11-PT1801, CLIPS la detecta por medio de
la siguiente regla que se encuentra en el archivo PROGRAMAGLOBAL.CLP:
Donde se observa que, al dispararse la regla debido a la presencia de la alarma (M11-PT1801) se
hace el llamado del archivo ALARMAM11-PT1801.CLP, el cual lleva el nombre de la Alarma de
Disparo, donde se encuentran las primeras reglas para el análisis de las causas de falla. Dentro del
código del archivo ALARMAM11-PT1801.CLP se hace el llamado a los archivos necesarios para
proseguir el análisis como se muestra a continuación: (solo si se supera el número de líneas
permitidas de código.)
176 El número de archivos puede ser mayor o menor de acuerdo al caso de estudio, su complejidad y cantidad de información. 177 Recuerde que en CLIPS los archivos tienen un numero máximo de renglones de código permitido, por lo tanto, en algunos casos es necesario hacer llamados a otros archivos para continuar con el código.
;*** ARBOL DE TRANSMISORES DE CAMPO: (defrule transmisores (declare (salience 20)) ?a4 <-(M11-PT1801) ;Alarma principal de disparo => (assert (CAUSAS(ANTECEDENTES "(Transmisores): ALARMA M11-PT1801 . Falla en Transmisores de campo "))) (assert (alarma M11-PT1801)) (batch c:/EJERVG/ALARMAM11-PT1801.CLP) (retract ?a4))
58
Como se puede observar, al final del código del archivo ALARMAM11-PT1801.CLP se cargan los
archivos Transmisoresdecampo.CLP y TransmisoresdecampoPARTE2.CLP cuyos nombres hacen
referencia a los Árboles de Conocimiento asociados con la Alarma de Disparo activada y contienen
las reglas restantes para poder realizar el análisis de causas de falla.
6.2 ÁRBOLES DE CONOCIMIENTO
Los Árboles de Conocimiento son representaciones gráficas y lógicas del Proceso de Inferencia que
realiza el SISTEMA EXPERTO EoS con cada Alarma de Disparo para hallar las causas de la falla. Se
utilizan para representar el conocimiento de los expertos en fallas de BP Exploration Company
Colombia Ltda. y Equipo de Servicios Petroleros Ltda.
Para ello, tienen en medio de su cuerpo preguntas, posibles respuestas y modos de actuación; de
acuerdo al análisis y estado de los equipos relacionados con los turbocompresores. Estas preguntas
se realizan en medio de la ejecución del programa usando la interfaz gráfica y son un insumo para
llegar a las posibles causas de fallas.
A continuación se presenta un fragmento del Árbol de Conocimiento de Detección de Fuego
utilizado para alimentar el SISTEMA EXPERTO EoS.
;*********A R B O L: TRANSMISORES DE CAMPO ****************** . . . (batch c:/EJERVG/Transmisoresdecampo.CLP) (batch c:/EJERVG/TransmisoresdecampoPARTE2.CLP) ;se carga TransmisoresdecampoPARTE2 el cual es la continuación de Transmisoresdecampo
59
Figura 98: Fragmento de un Árbol de Conocimiento utilizado en la elaboración del SISTEMA EXPERTO EoS.
Los especialistas en el tema fueron los responsables de suministrar la información para la creación
de los Árboles de Conocimiento de manera que tuvieran relaciones bien definidas, explicadas y con
validez.
Las reglas que conforman la base del conocimiento se expresan en un pseudocódigo equivalente al
formato SI …ENTONCES (IF…THEN.)
6.3 EXPLICACIÓN DEL CÓDIGO DE UN ÁRBOL DE CONOCIMIENTO
En el Anexo A de este documento se presenta de manera detalla y explicativa el código de
programación elaborado en CLIPS del Árbol de Conocimiento Detección de Fuego.
60
7 GLOSARIO
AGENDA: Donde se almacenan las reglas disparadas.
ALARMA DE DISPARO: Es la alarma que está directamente relacionada con la parada de un
turbocompresor y se encuentran en el Archivo de Entrada.
ALARMAS SECUNDARIAS: Son las alarmas que se encuentran en el Archivo de Entrada que no
son Alarmas de Disparo pero están relacionadas con los turbocompresores.
ALIMENTAR EL SISTEMA EXPERTO EoS: Agregar información de procesos nuevos para que el
sistema sea más completo y robusto. A cargo del Usuario Experto.
ANÁLISIS DE EVENTO: Es un modo de trabajo del SISTEMA EXPERTO EoS en el que el usuario
puede ingresar la información con las alarmas que generan los equipos y realizar manualmente un
proceso.
ÁRBOL DE CONOCIMIENTO: Representaciones gráficas y lógicas del Proceso de Inferencia que
realiza el SISTEMA EXPERTO EoS con cada Alarma de Disparo para hallar las causas de la falla. Se
utilizan para representar el conocimiento de los expertos en fallas. Cada Árbol de Conocimiento
tiene un nombre asociado.
ARCHIVO DE ENTRADA: Es un archivo de texto con la información de los sesenta (60) minutos
anteriores y el (1) minuto posterior a la Alarma de Disparo. Es la entrada al SISTEMA EXPERTO
EoS.
ARCHIVO DE EVENTOS: Es un archivo de texto, previamente creado por el usuario, con la
información de las alarmas con la que desea realizar el Análisis de Eventos. Debe tener las mismas
características del Archivo de Entrada.
ARCHIVOHYP.TXT: Archivo de texto con la información de los sesenta (60) minutos anteriores y
el (1) minuto posterior a la Alarma de Disparo. Es el nombre del Archivo de Entrada. Se encuentra
en C:\EJERVG.
ARCHIVOS DE CONTINUACIÓN: Archivos con código en CLIPS, que tienen la continuación de
un proceso determinado, cuando los archivos donde está la información se le terminan los
61
renglones permitidos de escritura. Estos archivos de continuación llevan el nombre del Árbol de
Estudio asociado al análisis de fallas.
BASE DE HECHOS: Componente de los sistemas expertos. Lugar donde se almacenan las alarmas
de los equipos que intervienen en el proceso de producción de petróleo en Cusiana. Registra
conclusiones intermedias y datos generados en el proceso de inferencia para explicar las
deducciones y el comportamiento del sistema.
BASE DEL CONOCIMIENTO: Componente de los sistemas expertos. Son las reglas que contienen
la información para que el SISTEMA EXPERTO EoS sepa como proceder en los diferentes casos y
determine las causas de falla de las alarmas que llegan a la Base de Hechos.
CAUSAS EoS: Es una salida del SISTEMA EXPERTO EoS. Son las posibles causas que generaron la
falla.
CAUSAS.BIN: Archivo donde se almacenan las posibles causas que generaron la falla. Se
encuentra en C:\EJERVG.
CLIPS: Es un programa que trabaja de manera regular y sincrónica con la Interfaz Gráfica, es el
que realiza el proceso de inferencia y genera la información que se muestra al usuario. Herramienta
especializada para el desarrollo de sistemas expertos.
CONTROL ROOM: Es el cuarto de control donde se reportan las alarmas de los equipos que se
encuentran en el CPF de Cusiana, Casanare.
CPF: Central Production Facilities. Planta de extracción de petróleo ubicada en Cusiana, Casanare.
DEFTEMPLATES: Son arreglos donde se almacena información. Similares a matrices de datos.
HISTORIAL DE PREGUNTAS Y RESPUESTAS: Es el historial de preguntas realizadas por el
SISTEMA EXPERTO EoS y respuestas dadas por el usuario en medio del proceso.
INFORMACIÓN DE LA ALARMA DE DISPARO: Es la información referente a la Alarma de
Disparo: tag de la alarma, descripción de la alarma, estado de referencia de la alarma, estado de la
alarma, fecha en que ocurrió la alarma, hora en que ocurrió la alarma.
62
INTERFAZ GRÁFICA: Es el programa con el que el usuario interactúa, y donde se muestra la
información de interés para éste. La interfaz gráfica la comparte con el Sistema de Captura y
Filtraje y está desarrollada en Visual Basic.NET 6.0.
LISTAPRIMARIAS.TXT: Contiene una lista con todos los tags de Alarmas de Disparo. Se
encuentra en C:\EJERVG.
LISTASECUNDARIAS. TXT: Contiene una lista con todos los tags de las alarmas que no son
Alarmas de Disparo pero están relacionadas con los turbocompresores, es decir con las Alarmas
Secundarias.
MANUAL DE USUARIO: Detalla el modo de uso y las funcionalidades del SISTEMA EXPERTO EoS.
MENÚ PRINCIPAL: Es la ventana donde se puede seleccionar (para presentar en pantalla) el
SISTEMA EXPERTO EoS o el Sistema de Captura y Filtraje.
MÓDULO DE ADQUISICIÓN DEL CONOCIMIENTO: Componente de los sistemas expertos.
Permite añadir, eliminar o modificar elementos de conocimiento (en la mayoría de los casos,
reglas.)
MOTOR DE INFERENCIA: Componente de los sistemas expertos. Es el programa que controla el
razonamiento o proceso de inferencia que sigue el sistema experto.
PRIMARIAS.BIN: Contiene los tags de las alarmas que resultan de la comparación entre
ArchivoHyp.Txt con ListaPrimarias.Txt. Se encuentra en C:\EJERVG.
PROCESO DE INFERENCIA: Es el programa que controla el razonamiento que sigue el sistema
experto, puesto que debe comparar los patrones de reglas con la lista de datos de la Base de
Hechos.
PROCESO EoS: Es una salida del SISTEMA EXPERTO EoS. Es la secuencia de pasos realizados por
el SISTEMA EXPERTO EoS para generar las demás salidas.
PROCESO.BIN: Archivo donde se almacena la secuencia de pasos realizados por el SISTEMA
EXPERTO EoS para generar las demás salidas. Se encuentra en C:\EJERVG.
PTA.BIN: Archivo donde se almacena la pregunta que el sistema le formula al usuario. Se
encuentra en C:\EJERVG.
63
RECOMENDACIONES EoS: Es una salida del SISTEMA EXPERTO EoS. Son las recomendaciones
correctivas de la falla.
RECOMENDACIONES.BIN: Archivo donde se almacenan las recomendaciones correctivas de la
falla. Se encuentra en C:\EJERVG.
REPORTE EoS: Es el reporte con la información de entrada, salida y adicional. Este reporte se
genera en formato de texto (*.Txt) al culminar el proceso.
RTA.BIN: Archivo donde se almacena la respuesta dada por el usuario al sistema. Se encuentra en
C:\EJERVG.
SECUNDARIAS.BIN: Contiene los tags de las alarmas que resultan de la comparación entre
ArchivoHyp.Txt con ListaSecuntarias.Txt. Se encuentra en C:\EJERVG.
SISTEMA DE CAPTURA Y FILTRAJE: Es el sistema que se encarga de recibir constantemente las
alarmas que generan los diferentes equipos que intervienen en el proceso de extracción de petróleo
en Cusiana y mostrarlas de manera detallada en pantalla. El sistema fue desarrollado e instalado
previamente en el Control Room de Cusiana; donde trabajan de forma coordinada y bajo la misma
Interfaz Gráfica del SISTEMA EXPERTO EoS.
SISTEMA EXPERTO EoS: Gestión de fallas con diagnóstico experto para
turbocompresores utilizados en la extracción de petróleo: Libro donde se da a conocer la
forma como se cumplieron los objetivos propuestos inicialmente, dada la estructura del prototipo
del sistema experto, su construcción y la información recolectada y estudiada. Se incluye en le CD
del SISTEMA EXPERTO EoS.
TAG: Es el código que utilizan en el CPF de Cusiana para identificar cada una de las alarmas
relacionadas con los equipos de extracción de petróleo.
USUARIO EXPERTO: Quien posee el conocimiento especializado para alimentar el sistema
experto.
VENTANA PRINCIPAL: Ventana donde se presentan los controles y las salidas del SISTEMA
EXPERTO EoS.
ANEXOS
1
ANEXO A: EXPLICACIÓN DEL CÓDIGO DE PROGRAMACIÓN DEL ÁRBOL DE CONOCIMIENTO
DETECCIÓN DE FUEGO
A continuación se presenta de manera detallada y explicativa el código de programación
elaborado en CLIPS del Árbol de Conocimiento Detección de Fuego. Se incluye la descripción
del archivo PROGRAMAGLOBAL.CLP.
ARCHIVO PROGRAMAGLOBAL.CLP
En este archivo se encuentra el código de CLIPS, en donde se hace el llamado del archivo
correspondiente para hacer el análisis según la alarma disparada.
1. Se asegura que se elimine todas las construcciones contenidas en el entorno de CLIPS
y todos los hechos de la lista de hechos:
(clear)
2. Definición de los deftemplates que se van a utilizar:
(deftemplate RESULTADO ;formato para los resultados de las hipotesis (multislot HIPOTESIS)) (deftemplate CAUSA ;formato para la causa inmediata de la falla (multislot INMEDIATA)) (deftemplate RECOMENDACION ;formato para las sugerencias de las fallas (multislot CORRECTIVA) ;****************************************
3. Definición de las variables utilizadas:
(defglobal ?*var* = 1) ;Se define como global una variable var (defglobal ?*hecho* = "") ;Se define como global una variable hecho
4. Se carga el archivo Inicio.bin donde se encuentra una bandera que permite arrancar el
programa, esa bandera es constante e inamovible:
(load-facts c:/EJERVG/Inicio.bin) ;Se carga la bandera para disparar el programa
5. La bandera que esta en el archivo Inicio.bin es el hecho (BANDERA INICIO), el cual
permite que se dispare el programa. Este hecho permite que el programa se mantenga
en proceso para poder leer constantemente el archivo Primarias.bin donde llegan las
2
Alarmas de Disparo. La regla que se dispara al detectar el hecho (BANDERA INICIO) se
muestra a continuación:
(defrule alarma-principal (declare (salience 20)) ?f01 <- (BANDERA INICIO) ;Bandera de inicio principal => (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Primarias.bin" primarias "r") ;Abre Primarias para leer UNA alarma primaria (bind ?*hecho* (readline primarias)) ;Asigna a hecho UNA alarma primaria (close primarias) (if (eq ?*hecho* EOF) ;Si no se encontro UNA alarma primaria then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else ; Si encontró UNA alarma primaria (bind ?*var* (+ ?*var* 1)))) (load-facts c:/EJERVG/Primarias.txt) ;Carga la alarma principal (hecho) para empezar proceso de hallar la causa raiz (retract ?f01 )) ; Elimina hecho (BANDERA INICIO) de la lista de hechos
6. El hecho (PRUEBACLIPS) avisa si CLIPS se está ejecutando correctamente y no ha
ocurrido un error:
;****************PARA VERIFICAR FUNCIONAMIENTO DE CLIPS ************* (defrule prueba-ejecucion ; Regla para verificar que CLIPS se esté ejecutando (declare (salience 30)) ?prueba <-(PRUEBACLIPS) => (assert (CAUSAS(ANTECEDENTES "(Prueba de ejecucion de CLIPS): PRUEBAPROCESO"))) (retract ?prueba))
7. Regla para las alarmas primarias relacionadas con el árbol de Detección de Fuego:
M12-L45FTT_ALM, M12-L45FTT_ALM, M12-L45FTT_ALM, M12-L45FTT_ALM, M12-
L45FTT_ALM o M12-L45FTT_ALM.
Cada Alarma de Disparo tiene definida una regla que carga el archivo específico según la
alarma que se haya disparado, es decir, si la Alarma de Disparo es M12-L45FTT_ALM, ésta se
almacena en el archivo Primarias.bin donde se lee y permite que se dispare la regla deteccion-
fuego para cargar el archivo ALARMA-M12-L45FTT_ALM.CLP, que es donde esta el código inicial
del análisis del árbol Detección de Fuego. Al mismo tiempo, se afirma como antecedente la
presencia de una alarma que avisa detección de fuego.
;*** ARBOL DE DETECCION DE FUEGO: (defrule deteccion-fuego (declare (salience 20)) (or ?a0 <- (M12-L45FTT_ALM) ;Alarma principal de disparo ; ?a0 <- (M13-L45FTT_ALM) ?a0 <- (M14-L45FTT_ALM)
3
?a0 <- (M15-L45FTT_ALM) ?a0 <- (M16-L45FTT_ALM) ?a0 <- (M17-L45FTT_ALM)) => (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Deteccion de fuego "))) (assert (alarma M12-L45FTT_ALM)) (batch c:/EJERVG/ALARMA-M12-L45FTT_ALM.CLP) (retract ?a0))
8. Cada Alarma de Disparo tiene definida una regla que carga el archivo específico según
la Alarma de Disparo que se haya activado.
;*** ARBOL DE VIBRACION : (defrule vibracion (declare (salience 20)) (or ?a1 <- (M12-L39VCT_ALM) ;Alarma principal de disparo ?a1 <- (M13-L39VCT_ALM) ?a1 <- (M14-L39VCT_ALM) ?a1 <- (M15-L39VCT_ALM) ?a1 <- (M16-L39VCT_ALM) ?a1 <- (M17-L39VCT_ALM)) => (assert (RESULTADO(HIPOTESIS "(Vibracion): ALARMA Vibracion "))) (assert (alarma M12-L39VCT_ALM)) (batch c:/EJERVG/ALARMA-M12-L39VCT_ALM.CLP) (retract ?a1)) ;*** ARBOL DE IGV o NOZZLES : (defrule igv12-nozzles12 (declare (salience 20)) (or ?a2 <- (M12-L3NZFLT) ;Alarma principal de disparo ; ?a2 <- (M13-L3NZFLT) ?a2 <- (M14-L3NZFLT) ?a2 <- (M15-L3NZFLT) ?a2 <- (M16-L3NZFLT) ?a2 <- (M17-L3NZFLT)) => (assert (RESULTADO(HIPOTESIS "(IGV o Nozzles): ALARMA IGV o Nozzles "))) (assert (alarma M12-L3NZFLT)) (batch c:/EJERVG/ALARMAM12-L3NZFLT.CLP) (retract ?a2)) ;*** ARBOL DE TRANSMISORES DE CAMPO : (defrule transmisores (declare (salience 20)) (or ?a4 <- (M12-PT2606) ;Alarma principal de disparo ; ?a4 <- (M12-PT2609) ?a4 <- (M12-TT2602) ?a4 <- (M13-PT2704) ?a4 <- (M13-PT2707) ?a4 <- (M13-TT2702) ?a4 <- (M14-PT2656) ?a4 <- (M14-PT2659) ?a4 <- (M14-TT2652) ?a4 <- (M15-PT2754) ?a4 <- (M15-PT2757) ?a4 <- (M15-TT2752) ?a4 <- (M16-PT2906) ?a4 <- (M16-PT2909) ?a4 <- (M16-TT2902)
4
?a4 <- (M17-PT3004) ?a4 <- (M17-PT3007) ?a4 <- (M17-TT3002)) => (assert (RESULTADO(HIPOTESIS "(Transmisores): ALARMA de aviso de Falla en Transmisores de campo "))) (assert (alarma M12-PT2606)) (batch c:/EJERVG/ALARMAM12-PT2606.CLP) (retract ?a4)) ;*** ARBOL DE BLEED VALVE : (defrule bleed-valve (declare (salience 20)) (or ?a5 <- (M12-L86CBT_ALM) ;Alarma principal de disparo ; ?a5 <- (M13-L86CBT_ALM) ?a5 <- (M14-L86CBT_ALM) ?a5 <- (M15-L86CBT_ALM) ?a5 <- (M16-L86CBT_ALM) ?a5 <- (M17-L86CBT_ALM)) => (assert (RESULTADO(HIPOTESIS "(Bleed Valve): ALARMA Falla Bleed Valve "))) (assert (alarma M12-L86CBT_ALM)) (batch c:/EJERVG/ALARMAM12-L86CBTALM.CLP) (retract ?a5)) ;*** ARBOL DE CLUTCH: (defrule clutch (declare (salience 20)) (or ?a6 <- (M12-LCLFEN_ALM) ;Alarma principal de disparo ?a6 <- (M13-LCLFEN_ALM) ?a6 <- (M14-LCLFEN_ALM) ?a6 <- (M15-LCLFEN_ALM) ?a6 <- (M16-LCLFEN_ALM) ?a6 <- (M17-LCLFEN_ALM)) => (assert (RESULTADO(HIPOTESIS "(Clutch): ALARMA Falla en Clutch"))) (assert (alarma M12-LCLFEN_ALM)) (batch c:/EJERVG/ALARMA-M12-LCLFEN_ALM.CLP) (retract ?a6))
9. Para hacer posible que el código anteriormente descrito se ejecute se utiliza el
comando (run).
Sin embargo, inmediatamente después que finaliza un análisis completo, se siguen las
instrucciones que están después de ese comando:
;***PARA VISUALIZAR CAUSAS Y PROCESO (run)
10. Las instrucciones a seguir después de finalizado un análisis son guardar las causas
inmediatas, resultados hipótesis, y recomendaciones correctivas que se generaron en
todo el proceso de análisis, en los archivos correspondientes para después poder
mostrarlos al usuario:
(save-facts c:/EJERVG/Causas.bin local CAUSA) ; Se guarda en el archivo Causas.txt todas las causas generadas en el proceso de análisis
5
(save-facts c:/EJERVG/Recomendaciones.bin local RECOMENDACION) ; Se guarda en el archivo Recomendaciones.txt todas las Recomendaciones generadas en el proceso de análisis (save-facts c:/EJERVG/Proceso.bin local CAUSAS) ; Se guarda en el archivo Proceso.txt todas los resultados de las hipótesis generados en el proceso de análisis
11. Se asegura que los archivos Secundarias.bin y Primarias.bin se limpien finalizado el
proceso:
(remove "c:/EJERVG/Secundarias.txt") ;Limpia archivo de alarmas secundarias (open "c:/EJERVG/Secundarias.txt" secundarias "w") (close secundarias) (remove "c:/EJERVG/Primarias.txt") ;Limpia archivo de alarmas primarias (open "c:/EJERVG/Primarias.txt" primarias "w") (close primarias)
12. Finalizado el proceso de análisis se vuelve a cargar el archivo PROGRAMAGLOBAL.CLP
para que se siga ejecutando reiteradamente hasta que se presente una nueva Alarma
de Disparo:
(batch c:/EJERVG/PROGRAMAGLOBAL.CLP) ;Carga el programa PROGRAMAGLOBAL.CLP y lo ejecuta (run)
Como se explico anteriormente, si la alarma que se disparó es M12-L45FTT_ALM, ésta se
almacena en el archivo Primarias.bin donde se lee y permite que se dispare la regla deteccion-
fuego para cargar el archivo ALARMA-M12-L45FTT_ALM.CLP.
ARCHIVO ALARMA-M12-L45FTT_ALM.CLP
13. Definición de las variables utilizadas:
;*********A R B O L: DETECCION DE FUEGO ****************** (defglobal ?*aux* = "") (defglobal ?*var* = 1)
14. Regla que se dispara con el hecho (alarma M12-L45FTT_ALM), el cual se afirma si el
sistema detecta la alarma M12-L45FTT_ALM o M13-L45FTT_ALM o M14-L45FTT_ALM o
M15-L45FTT_ALM o M16-L45FTT_ALM o M17-L45FTT_ALM:
;***PREGUNTA a que zona pertenece según el led: (defrule alarma-deteccion-fuego (declare (salience 20)) ?f02 <- (alarma M12-L45FTT_ALM) ;Alarma principal de disparo
6
=> (open "c:/EJERVG/Rta.txt" respuesta "w");Creación del archivo Rta.txt (close respuesta) (open "c:/EJERVG/Pta.txt" pregunta "w") ;Abre un archivo Pta.Txt para escribir la pregunta (printout pregunta "En cual modulo detonador esta prendido el LED? "crlf"Zona1-A"crlf"Zona1-B"crlf"Zona2-A"crlf"Zona2-B") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1)
do (open "c:/EJERVG/Rta.txt" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*aux* (read respuesta)) ;Asigna a aux la respuesta (Rta) del usuario (close respuesta) (if (eq ?*aux* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.txt") ;Si encontro respuesta tomela como nuevo hecho (zona *aux*: donde aux=respuesta usuario =(1-A/1-B/2-A)) y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (zona ?*aux*)) ;Nuevo hecho (zona *aux*) (1-A/1-B/2-A) (assert (auxiliar M12-L45FTT_ALM)) ;variable alarma auxiliar =M12-L45FTT_ALM (retract ?f02 )) ;Elimina hecho (alarma M12-L45FTT_ALM) de la lista de hechos
15. Regla para el hecho (M12-L45CP_ALM), el cual se afirma si se detecta la alarma
secundaria M12-L45CP_ALM:
;***Alarma secundaria que puede estar presente: (defrule alarma-CO2 ;Regla para (MXX-L45CP_ALM) (or ?f02a <- (M12-L45CP_ALM) ;Si alarma de alarma-CO2 ?f02a <- (M13-L45CP_ALM) ?f02a <- (M14-L45CP_ALM) ?f02a <- (M15-L45CP_ALM) ?f02a <- (M16-L45CP_ALM) ?f02a <- (M17-L45CP_ALM)) => (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Presencia de CO2"))) (retract ?f02a ))
16. Carga de los archivos DetecciondefuegoZONA1A.CLP, DetecciondefuegoZONA1B.CLP y
DetecciondefuegoZONA2.CLP los cuales tiene el código necesario para continuar con el
proceso de análisis:
;***Carga de los archivos relacionados con la alarma M12-L45FTT_ALM o M13-L45FTT_ALM o M14-L45FTT_ALM o M15-L45FTT_ALM o M16-L45FTT_ALM o M17-L45FTT_ALM (batch c:/EJERVG/DetecciondefuegoZONA1A.CLP) (batch c:/EJERVG/DetecciondefuegoZONA1B.CLP) (batch c:/EJERVG/DetecciondefuegoZONA2.CLP) (run)
7
17. El primer archivo que se carga es DetecciondefuegoZONA1A.CLP.
ARCHIVO DETECCIONDEFUEGOZONA1A.CLP
18. Definición de algunas de las variables que se utilizan:
;**** A R B O L: DETECCION DE FUEGO ******** ;*CASO 2: Zona 1-A Compartimento turbina (deteccion-fuego) (defglobal ?*si10* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado
19. Regla para el hecho (zona Zona1-A), el cual se afirma si el usuario observó encendido
el led de en modulo detonador zona 1-A. Las acciones de esta regla contiene varias
preguntas que el usuario responde para continuar con el proceso:
;***PREGUNTAS led en Zona 1-A ********** (defrule deteccion1A-fuego1A-compartimento1A-turbina1A ;Opcion zona 1-B ?f20 <- (zona Zona1-A) ;Si led en modulo detonador zona 1-A encendido => (load-facts c:/EJERVG/Secundarias.bin) (open "c:/EJERVG/Rta.bin" respuesta "w") ;Abre un archivo para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta "ACCION: Inspeccion visual de evidencias de rastros de aceite .Verificar si la alarma fue real. PREGUNTA: Hay rastros de aceite que indiquen que la alarma fue real ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si10* (read respuesta));Asigna a si la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si10* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (fuegoreal1A ?*si10*: donde *si10*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (fuegoreal1A ?*si10*)) ;Si la alarma fue real Nuevo hecho: (fuegoreal1A ?*si10*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Led Zona 1-A encendido -> Fuego en compartimento turbina "))) (assert (auxL45HTA 1A)) ; Auxiliar para reconocer a donde pertenece la alarma secundaria (retract ?f20)) ;Elimina hecho (zona Zona1-A) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
20. Regla para hecho (fuegoreal1A SI), el cual se afirma si la alarma fue real:
8
;**DEDUCCION si alarma real en zona 1-A ************** (defrule fuga1A-aceite1A-turbina1A ;Regla para (fuegoreal1A SI) ?f21 <-(fuegoreal1A SI) ;Si alarma fue real en zona 1-A => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FUGA DE ACEITE EN COMPARTIMENTO TURBINA "))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Presencia de fuego "))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Evidencia visual de rastros de aceite -> Alarma real"))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Fuego por fuga de aceite en compartimento turbina -> Normalizar reset de la zona "))) (retract ?f21)) (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
21. Definición de algunas variables utilizadas y reglas para el hecho (fuegoreal1A NO), el
cual se afirma si la alarma no es real:
;***PREGUNTAS si alarma NO es real en Zona 1-A ************** (defglobal ?*si11* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule resistencia600-infinita600 ;Regla para (fuegoreal1A NO) ?f23 <- (fuegoreal1A NO) ;Si alarma NO real => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar resistencia de fin de linea. Megguear en IJB-3 Bornera 7-8 hacia tierra. PREGUNTA: La resistencia es infinita ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si11* (read respuesta)) ;Asigna a s1 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si11* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (noaterrizadocable600 ?*si11*: donde *si11*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (noaterrizadocable600 ?*si11*)) ;Si respuesta es SI:NO aterrizamento del cable. Si respuesta es NO: SI aterrizamiento entre los cables .Nuevo hecho: (noaterrizadocable600 ?*si11*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): La alarma de deteccion de fuego no fue real "))) (retract ?f23)) ;Elimina hecho (fuegoreal1A NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
22. Regla para el hecho (noaterrizadocable600 NO), el cual se afirma si hay aterrizamiento
del cable:
9
;**DEDUCCIONES si aterrizamiento del cable*** (defrule cable600-aterrizado600 ;Regla para (noaterrizadocable600 NO) ?f24 <-(noaterrizadocable600 NO) ;Si aterrizamiento del cable => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FALLA EN CABLEADO DETECTORES 600 GRADOS"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-3 Bornera 7-8 -> Resistencia diferente a infinito"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Aterrizamiento del cable"))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Falla en cableado detectores 600 grados -> Reemplazar tramo de cable pelado "))) (retract ?f24 ))
23. Definición de algunas variables y Regla para el hecho (noaterrizadocable600 SI), el cual
se afirma si no hay aterrizamiento del cable:
;**DEDUCCIONES si NO aterrizamiento del cable*** (defglobal ?*si12* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;**PREGUNTAS si NO aterrizamiento del cable*** (defrule corto600-entre600-cables600 ;Regla para (noaterrizadocable600 SI) ?f25 <- (noaterrizadocable600 SI) ;Si NO aterrizamento del cable => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " Hay corto entre los cables? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si12* (read respuesta)) ;Asigna a si12 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si12* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cortocables600 ?*si12*: donde *si12*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cortocables600 ?*si12*)) ;Si respuesta es SI:corto entre los cables .Si respuesta es NO:No hay corto entre los cables.Nuevo hecho:(cortocables600 ?*si12*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-3 Bornera 3-4 -> Resistencia infinita"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): El cable NO esta aterrizado"))) (retract ?f25)) ;Elimina hecho (noaterrizadocable600 SI) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
10
24. Definición de algunas variables y regla para el hecho (cortocables600 SI), el cual se
afirma si hay corto entre los cables:
;***DEDUCCIONES si hay corto entre los cables**** (defglobal ?*si13* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;***PREGUNTAS si hay corto entre los cables**** (defrule revision600-sensores600 ;Regla para (cortocables600 SI) ?f26 <-(cortocables600 SI) ;Si corto entre los cables => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar detector (sensor) de 600 grados. PREGUNTA: Continua corto entre los cables ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si13* (read respuesta)) ;Asigna a si13 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si13* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (continuacorto ?*si13*: donde *si13*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (continuacorto600 ?*si13*)) ;Si respuesta es SI:cable dañado. Si respuesta es NO: revisar sensores. Nuevo hecho:(continuacorto600 ?*si13*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Corto entre los cables"))) (retract ?f26)) ;Elimina hecho (cortocables600 SI) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
25. Definición de algunas variables y Regla para el hecho (continuacorto600 SI), el cual se
afirma si continua el corto entre los cables:
;**DEDUCCION Si continua el corto entre los cables con detector desconectado: (defrule continua600-corto600 ;Regla para (continuacorto600 SI) ?f27 <-(continuacorto600 SI) ;Si cable dañado => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): CABLE EN MAL ESTADO"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los sensores -> Continua corto entre los cables "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Cable en mal estado -> Reemplazar los cables"))) (retract ?f27 ))
26. Definición de algunas variables y regla para el hecho (continuacorto600 NO), el cual se
afirma si no continua el corto entre los cables:
11
;***DEDUCCION Si NO continua el corto entre los cables con detector desconectado: (defglobal ?*si14* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule detectores-600grados ;Regla para (continuacorto600 NO) ?f28 <-(continuacorto600 NO) ;Si posible daño en los sensores => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Meguear detectores (sensores) de 600 grados. PREGUNTA: Los sensores estan en corto ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si14* (read respuesta)) ;Asigna a si14 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si14* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cortosensores600 ?*si14*: donde *si14*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cortosensores600 ?*si14*)) ;Si respuesta es SI:Daño en sensores. ;Nuevo hecho:(cortosensores600 ?*si14*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los sensores -> No hay corto entre los cables "))) (retract ?f28)) ;Elimina hecho (continuacorto600 NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
27. Definición de algunas variables y regla para el hecho (cortosensores600 SI), el cual se
afirma si los sensores están en corto:
;**DEDUCCIONES SI los sensores estan en corto: (defrule falla600-detector600 ;Regla para (cortosensores600 SI) ?f29 <-(cortosensores600 SI) ;Si daño en sensores de 600 grados => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FALLA EN DETECTORES DE INCREMENTO TERMICO 600 GRADOS"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Megueo de los detectores de 600 grados -> Los sensores estan en corto "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Falla en detectores de incremento termico 600 grados -> Reemplazar los dos (2) sensores de incremento termico"))) (retract ?f29 ))
28. Definición de algunas variables y regla para el hecho (cortocables600 NO ), el cual se
afirma si NO hay corto entre los cables:
12
;***DEDUCCIONES si NO hay corto entre los cables: Revision detectores 450 grados**** (defglobal ?*si15* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule revision-detectores-450grados ;Regla para (cortocables600 NO) ?f30 <-(cortocables600 NO) ;Si NO hay corto entre los cables => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar resistencia de fin de linea. Megguear en IJB-3 Bornera 3-4 hacia tierra. PREGUNTA: La resistencia es infinita ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si15* (read respuesta)) ;Asigna a si15 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si15* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (noaterrizadocable450 ?*si15*: donde *si15*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (noaterrizadocable450 ?*si15*)) ;Si respuesta es SI:NO aterrizamento del cable. Si respuesta es NO: SI aterrizamiento entre los cables ;Nuevo hecho: (noaterrizadocable450 ?*si11*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): No hay corto entre los cables en detectores 600 grados"))) (retract ?f30)) ;Elimina hecho (cortocables600 NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
29. Regla para el hecho (noaterrizadocable450 NO), el cual se afirma si hay aterrizamiento
del cable:
;**DEDUCCIONES si aterrizamiento del cable para detectores 450 grados*** (defrule cable450-aterrizado450 ;Regla para (noaterrizadocable450 NO) ?f31 <-(noaterrizadocable450 NO) ;Si aterrizamiento del cable => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FALLA EN CABLEADO DETECTORES 450 GRADOS"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-3 Bornera 3-4 -> Resistencia diferente a infinito"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Aterrizamiento del cable"))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Falla en cableado detectores 450 grados -> Reemplazar tramo de cable pelado "))) (retract ?f31 ))
13
30. Definición de algunas variables y regla para el hecho (noaterrizadocable450 SI), el cual
se afirma si no hay aterrizamiento del cable:
;**DEDUCCION si NO aterrizamiento del cable detectores 450 grados *** (defglobal ?*si16* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;**PREGUNTAS si NO aterrizamiento del cable*** (defrule corto450-entre450-cables450 ;Regla para (noaterrizadocable450 SI) ?f32 <- (noaterrizadocable450 SI) ;Si NO aterrizamento del cable => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " Hay corto entre los cables? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si16* (read respuesta)) ;Asigna a si16 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si16* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cortocables450 ?*si16*: donde *si16*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cortocables450 ?*si16*)) ;Si respuesta es SI:corto entre los cables .Si respuesta es NO: No hay corto entre los cables ;Nuevo hecho:(cortocables450 ?*si16*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-3 Bornera 3-4 -> Resistencia infinita"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): El cable NO esta aterrizado"))) (retract ?f32)) ;Elimina hecho (noaterrizadocable450 SI) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
31. Definición de algunas variables y regla para el hecho (cortocables450 SI), el cual se
afirma si hay corto entre los cables:
;***DEDUCCIONES si hay corto entre los cables**** (defglobal ?*si17* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;***PREGUNTAS si hay corto entre los cables**** (defrule revision450-sensores450 ;Regla para (cortocables450 SI) ?f33 <-(cortocables450 SI) ;Si corto entre los cables =>
14
(open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar detectores (sensores) de 450 grados. PREGUNTA: Continua corto entre los cables ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si17* (read respuesta)) ;Asigna a si17 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si17* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (continuacorto450 ?*si17*: donde *si17*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (continuacorto450 ?*si17*)) ;Si respuesta es SI:cable dañado. Si respuesta es NO: revisar sensores ;Nuevo hecho:(continuacorto450 ?*si17*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Corto entre los cables"))) (retract ?f33)) ;Elimina hecho (cortocables450 SI) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
32. Regla para el hecho (continuacorto450 SI), el cual se afirma si continua corto entre los
cables:
;***DEDUCCION Si continua el corto entre los cables con detector desconectado: (defrule continua450-corto450 ;Regla para (continuacorto450 SI) ?f34 <-(continuacorto450 SI) ;Si cable dañado => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): CABLE EN MAL ESTADO"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los sensores -> Continua corto entre los cables "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Cable en mal estado -> Reemplazar los cables"))) (retract ?f34 ))
33. Regla para el hecho (continuacorto450 NO), el cual se afirma si NO continua corto
entre los cables:
;***DEDUCCION Si NO continua el corto entre los cables con detector desconectado: (defglobal ?*si18* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule detectores-450grados ;Regla para (continuacorto450 NO) ?f35 <-(continuacorto450 NO) ;Si posible daño en los sensores =>
15
(open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Meguear detectores (sensores) de 450 grados. PREGUNTA: Los sensores estan en corto ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si18* (read respuesta)) ;Asigna a si18 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si18* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cortosensores450 ?*si18*: donde *si18*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cortosensores450 ?*si18*)) ;Si respuesta es SI:Daño en sensores. ;Nuevo hecho:(cortosensores450 ?*si18*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los sensores -> No hay corto entre los cables "))) (retract ?f35)) ;Elimina hecho (continuacorto450 NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
34. Regla para el hecho (cortosensores450 SI), el cual se afirma si los sensores están en
corto:
;**DEDUCCIONES SI los sensores estan en corto: (defrule falla450-detector450 ;Regla para (cortosensores450 SI) ?f36 <-(cortosensores450 SI) ;Si daño en sensores de 450 grados => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FALLA EN DETECTORES DE INCREMENTO TERMICO 450 GRADOS"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Megueo de los detectores de 450 grados -> Los sensores estan en corto "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Falla en detectores de incremento termico 450 grados -> Reemplazar los dos (2) sensores de incremento termico"))) (retract ?f36 ))
35. Regla para el hecho (cortocables450 NO), el cual se afirma si NO hay corto entre los
cables (450 grados):
;***DEDUCCION si NO hay corto entre los cables en detectores 450 grados**** (defglobal ?*si19* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule cable1A-Fire1A-Gas1A ;Regla para (cortocables450 NO) ?f37 <-(cortocables450 NO) ;Si NO hay corto entre los cables (450 grados) =>
16
(open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar cables a meguear. Meguear desde el instrumento o caja de paso hacia el sistema Fire & Gas Detronix PREGUNTA: El cable se encuentra abierto ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si19* (read respuesta)) ;Asigna a si9 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si19* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cablefireandgas1A ?*si19*: donde *si19*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cablefireandgas1A ?*si19*)) ;Si respuesta es SI:Daño en sensores. ;Nuevo hecho:(cablefireandgas1A SI) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Corto entre los cables"))) (retract ?f37)) ;Elimina hecho (cortocables450 NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
36. Regla para el hecho (cablefireandgas1A NO), el cual se afirma si el cable NO esta
abierto en Fire & Gas:
;**DEDUCCIONES SI cable NO esta abierto en Fire & Gas zona 1-A: (defrule modulo1A-cablefg1A ;Regla para (cablefireandgas1A NO) ?f37a <-(cablefireandgas1A NO) ;Si cable NO abierto => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): POSIBLE FALLA EN EL MODULO"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los cables a meguear. Megueo desde el instrumento o caja de paso hacia el sistema Fire & Gas Detronix -> El cable NO se encuentra abierto "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Posible falla en el modulo -> Evalue el cambio del modulo"))) (retract ?f37a ))
37. Reglas para cada una de las alarmas secundarias que se pueden disparar, los hechos
que se afirman según el caso son:
(M12-L26BA1H) o (M13-L26BA1H) o (M14-L26BA1H) o (M15-L26BA1H) o (M16-L26BA1H) o
(M17-L26BA1H) si se presenta alarma de alta temperatura;
17
(M12-L71PSAL_ALM) o (M13-L71PSAL_ALM) o (M14-L71PSAL_ALM) o (M15-L71PSAL_ALM)
o (M16-L71PSAL_ALM) o (M17-L71PSAL_ALM) si se presenta alarma de bajo nivel overhead
tank
(M12-L45HTA) o (M13-L45HTA) o (M14-L45HTA) o (M15-L45HTA) o (M16-L45HTA) o (M17-
L45HTA) si se presenta alarma de gas encendido.
Se debe observar que algunas de estas reglas se disparan si también está presente el hecho
(auxiliar M11-TFT), el cual se ubicó en la Lista de Hechos en el momento en se activó la Alarma
de Disparo de Detección de Fuego para asegurar que las alarmas secundarias hacen referencia
al análisis de detección de fuego, ya que la alarma se podría dispar por otras razones. Al mismo
tiempo, cada una de estas reglas solo se dispara si se confirma el hecho (auxL45HTA 1A), el
cual se afirma para especificar que se está haciendo referencia al caso cuando el led de la zona
1-A esta encendido.
;***Alarmas secundarias que pueden estar presentes: (defrule alta-temperatura ;Regla para (MXX-L26BA1H) (or ?f40 <- (M12-L26BA1H) ;Si alarma de alta temperatura ?f40 <- (M13-L26BA1H) ?f40 <- (M14-L26BA1H) ?f40 <- (M15-L26BA1H) ?f40 <- (M16-L26BA1H) ?f40 <- (M17-L26BA1H)) => (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Alta Temperatura"))) (retract ?f40 )) (defrule gas1A-tanque1A-aceite1A ;Regla para para alarma (MXX-L71PSAL) bajo nivel overhead tank zona 1-A (or ?f40a <- (M12-L71PSAL_ALM);Si alarma de bajo nivel overhead tank encendido ?f40a <- (M13-L71PSAL_ALM) ?f40a <- (M14-L71PSAL_ALM) ?f40a <- (M15-L71PSAL_ALM) ?f40a <- (M16-L71PSAL_ALM) ?f40a <- (M17-L71PSAL_ALM)) ?f40b<- (auxiliar M11-TFT) ;y alarma=M11-TFT. Arbol detección de fuego ?f40c <-(auxL45HTA 1A) ;y led zona 1-A => (assert (CAUSA(INMEDIATA"(Deteccion de fuego): FUEGO POR GAS EN TANQUE DE ACEITE"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Mxx-L71PSAL. Bajo nivel de overhead tank"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Alarma presente en Zona 1-A. Compartimento Turbina"))) (retract ?f40a ?f40b ?f40c)) (defrule fuga1A-de1A-gas1A ;Regla para alarma (MXX-L45HTA) gas presente (or ?f40d <- (M12-L45HTA) ;Si alarma de gas presente ?f40d <- (M13-L45HTA) ?f40d <- (M14-L45HTA) ?f40d <- (M15-L45HTA)
18
?f40d <- (M16-L45HTA) ?f40d <- (M17-L45HTA)) ?f40e <- (auxiliar M11-TFT) ;y auxiliar = M11-TFT. Arbol detección de fuego ?f40f <-(auxL45HTA 1A) ;y led zona 1-A => (assert (CAUSA(INMEDIATA"(Deteccion de fuego): FUEGO POR FUGA DE GAS"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Mxx-L45HTA. Gas presente "))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Alarma presente en Zona 1-A. Compartimento Turbina"))) (retract ?f40d ?f40e ?f40f)) (defrule fuego1A-turbina1A ;Regla para para alarmas(M11-L45HTA) Y (M11-L71PSAL) (declare (salience 10)) (or ?f40g <- (M12-L45HTA) ;Si alarma de gas presente ?f40g <- (M13-L45HTA) ?f40g <- (M14-L45HTA) ?f40g <- (M15-L45HTA) ?f40g <- (M16-L45HTA) ?f40g <- (M17-L45HTA)) (or ?f40h <- (M12-L71PSAL_ALM) ;Si alarma de bajo nivel overhead tank encendido ?f40h <- (M13-L71PSAL_ALM) ?f40h <- (M14-L71PSAL_ALM) ?f40h <- (M15-L71PSAL_ALM) ?f40h <- (M16-L71PSAL_ALM) ?f40h <- (M17-L71PSAL_ALM)) ?f40i <- (alarma M11-TFT) ;y alarma=M11-TFT. Arbol detección de fuego ?f40j <-(auxL45HTA 1A) ;y led zona 1-A => (assert (CAUSA(INMEDIATA"(Deteccion de fuego): FUEGO POR GAS EN TANQUE DE ACEITE - FUEGO POR FUGA DE GAS"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Mxx-L45HTA. Gas Presente"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Mxx-L71PSAL. Bajo nivel de overhead tank"))) (retract ?f40g ?f40h ?f40i ?f40j))
38. Se compila el código del archivo DetecciondefuegoZONA1A.CLP
(run)
39. El segundo archivo que se llama desde ALARMA-M12-L45FTT_ALM.CLP es
DetecciondefuegoZONA1B.CLP.
ARCHIVO DETECCIONDEFUEGOZONA1B.CLP
40. Definición de algunas variables y regla para el hecho (zona Zona1-B), el cual se afirma
si el usuario observo encendido el led de en modulo detonador zona 1-B. Las acciones
de esta regla contiene varias preguntas que el usuario responde para continuar con el
proceso:
;**** A R B O L : DETECCION DE FUEGO ********
19
;***** CASO 3 : Zona 1-B Compartimento accesorios (deteccion-fuego)*********** (defglobal ?*si20* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;** PREGUNTAS led en Zona 1-B ********** (defrule deteccion1B-fuego1B-compartimento1B-accesorios ;Opcion zona 1-B ?f45 <- (zona Zona1-B) ;Si led en modulo detonador zona 1-B encendido => (open "c:/EJERVG/Rta.bin" respuesta "w");Abre un archivo para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w");Abre un archivo para escribir la pregunta (printout pregunta "ACCION: Inspeccion visual de evidencias de rastros de aceite .Verificar si la alarma fue real. PREGUNTA: Hay rastros de aceite que indiquen que la alarma fue real ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si20* (read respuesta));Asigna a si20 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si20* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (fuegoreal1B ?*si20*: donde *si20*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (fuegoreal1B ?*si20*)) ;Si Respuesta es SI:alarma real. Si Respuesta es NO: alarma NO real ;Nuevo hecho: (fuegoreal1B ?*si20*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Led Zona 1-B encendido -> Fuego en compartimento accesorios "))) (assert (auxL45HTA 1A)) ; Auxiliar para despues reconocer a donde pertenece la alarma secundaria (retract ?f45)) ;Elimina hecho (zona Zona1-B) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
41. Regla para el hecho (fuegoreal1B SI), el cual se afirma si la alarma fue real:
;**DEDUCCION si alarma real en zona 1-B ************** (defrule fuga1B-aceite1B-accesorios1B ;Regla para (fuegoreal1B SI) ?f46 <-(fuegoreal1B SI) ;Si alarma real => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FUGA DE ACEITE POR ACCESORIOS "))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Presencia de fuego "))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Evidencia visual de rastros de aceite -> Alarma real"))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Fuego por fuga de aceite por accesorios -> Normalizar reset de la zona "))) (retract ?f46)) (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado
20
42. Definición de algunas variables y regla para el hecho (fuegoreal1B NO), el cual se
afirma si la alarma no fue real:
;**PREGUNTAS si alarma NO es real en Zona 1-B ************** (defglobal ?*si21* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule resistencia1B-infinita1B ;Regla para (fuegoreal1B NO) ?f47 <- (fuegoreal1B NO) ;Si alarma NO real => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar resistencia de fin de linea. Megguear en IJB-2 Bornera 1-2 hacia acople, hacia tierra. PREGUNTA: La resistencia es infinita ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si21* (read respuesta)) ;Asigna a si21 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si21* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (noaterrizadocable1B ?*si21*: donde *si21*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (noaterrizadocable1B ?*si21*)) ;Si respuesta es SI:NO aterrizamento del cable. Si respuesta es NO: SI aterrizamiento entre los cables ;Nuevo hecho: (noaterrizadocable1B ?*si21*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): La alarma de deteccion de fuego no fue real "))) (retract ?f47)) ;Elimina hecho (fuegoreal1B NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
43. Definición de algunas variables y regla para el hecho (noaterrizadocable1B NO), el cual
se afirma si hay aterrizamento del cable:
;**DEDUCCION si aterrizamiento del cable*** (defrule cable1B-aterrizado1B ;Regla para (noaterrizadocable1B NO) ?f48 <-(noaterrizadocable1B NO) ;Si aterrizamento del cable => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): ATERRIZAMIENTO DEL CABLE"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Falla en lazos de deteccion compartimento acople"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-2 Bornera 1-2 -> Resistencia diferente a infinito")))
21
(assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Aterrizamiento del cable -> Reemplazar tramo de cable pelado "))) (retract ?f48 ))
44. Definición de algunas variables y regla para el hecho (noaterrizadocable1B SI), el cual
se afirma si NO hay aterrizamento del cable:
;**DEDUCCIONES si NO aterrizamiento del cable*** (defglobal ?*si22* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;**PREGUNTAS si NO aterrizamiento del cable*** (defrule corto1B-entre1B-cables1B ;Regla para (noaterrizadocable1B SI) ?f49 <- (noaterrizadocable1B SI) ;Si NO aterrizamento del cable => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " Hay corto entre los cables? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si22* (read respuesta)) ;Asigna a si22 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si22* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cortocables1B ?*si22*: donde *si22*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cortocables1B ?*si22*)) ;Si respuesta es SI:corto entre los cables .Si respuesta es NO:No hay corto entre los cables ;Nuevo hecho:(cortocables1B ?*si22*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-2 Bornera 1-2 -> Resistencia infinita"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): El cable NO esta aterrizado"))) (retract ?f49)) ;Elimina hecho (zona Zona1-B) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
45. Definición de algunas variables y regla para el hecho (cortocables1B SI), el cual se
afirma si hay corto entre los cables:
;***DEDUCCION si hay corto entre los cables**** (defglobal ?*si23* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;***PREGUNTAS si hay corto entre los cables**** (defrule revision1B-sensores1B ;Regla para (cortocables1B SI) ?f50 <-(cortocables1B SI) ;Si corto entre los cables =>
22
(open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar detectores (sensores). PREGUNTA: Continua corto entre los cables ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si23* (read respuesta)) ;Asigna a s23 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si23* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (continuacorto1B ?*si23*: donde *si23*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (continuacorto1B ?*si23*)) ;Si respuesta es SI:cable dañado. Si respuesta es NO: revisar sensores ;Nuevo hecho:(continuacorto1B ?*si23*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Corto entre los cables"))) (retract ?f50)) ;Elimina hecho (zona Zona1-B) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
46. Definición de algunas variables y regla para el hecho (continuacorto1B SI), el cual se
afirma si continua corto entre los cables:
;***DEDUCCION Si continua el corto entre los cables : (defrule continua1B-corto1B ;Regla para (continuacorto1B SI) ?f52 <-(continuacorto1B SI) ;Si cable dañado => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): CABLE EN MAL ESTADO"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los sensores -> Continua corto entre los cables "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Cable en mal estado -> Reemplazar los cables"))) (retract ?f52 ))
47. Definición de algunas variables y regla para el hecho (continuacorto1B NO), el cual se
afirma si NO continua corto entre los cables:
;***DEDUCCION Si NO continua el corto entre los cables : (defglobal ?*si24* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule detectores1B ;Regla para (continuacorto1B NO) ?f53 <-(continuacorto1B NO) ;Si posible daño en los sensores => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta
23
(close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Meguear los detectores (sensores). PREGUNTA: Los sensores estan en corto ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si24* (read respuesta)) ;Asigna a si24 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si24* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (continuacorto ?*si24*: donde *si24*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cortosensores1B ?*si24*)) ;Si respuesta es SI:Daño en sensores. ;Nuevo hecho:(continuacorto1B ?*si24*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los sensores -> No hay corto entre los cables "))) (retract ?f53)) ;Elimina hecho (continuacorto1B NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
48. Regla para el hecho (cortosensores1B SI), el cual se afirma si los sensores están en
corto:
;**DEDUCCION SI los sensores estan en corto: (defrule falla1B-detector1B ;Regla para (cortosensores1B SI) ?f54 <-(cortosensores1B SI) ;Si daño en sensores => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FALLA EN DETECTORES DE INCREMENTO TERMICO COMPARTIMENTO DE ACOPLE"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Megueo los detectores -> Los sensores estan en corto "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Falla en detectores de incremento termico -> Reemplazar los dos (2) sensores de incremento"))) (retract ?f54 ))
49. Definición de algunas variables y regla para el hecho (cortocables1B NO) el cual se
afirma si no hay corto entre los cables:
;***DEDUCCION si NO hay corto entre los cables**** (defglobal ?*si25* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule cable1B-Fire1B-Gas1B ;Regla para (cortocables1B NO) ?f55 <-(cortocables1B NO) ;Si NO hay corto entre los cables => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta)
24
(open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar cables a meguear. Meguear desde el instrumento o caja de paso hacia el sistema Fire & Gas Detronix PREGUNTA: El cable se encuentra abierto ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si25* (read respuesta)) ;Asigna a si25 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si25* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cablefireandgas1 ?*si25*: donde *si25*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cablefireandgas1B ?*si25*)) ;Si respuesta es SI:Cable abierto. Si Respuesta es NO: Cable NO abierto ;Nuevo hecho:(cablefireandgas1B SI) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): No hay corto entre los cables"))) (retract ?f55)) ;Elimina hecho (cortocables1B NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo Rta
50. Regla para el hecho (cablefireandgas1B NO), el cual se afirma si el cable NO se
encuentra abierto:
;**DEDUCCIONES SI cable NO esta abierto:
(defrule modulo1B-cablefg1B ;Regla para (cablefireandgas1B NO)
?f55a <-(cablefireandgas1B NO) ;Si cable NO abierto
=>
(assert (CAUSA(INMEDIATA "(Deteccion de fuego): POSIBLE FALLA EN EL MODULO")))
(assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los cables a meguear. Megueo desde el instrumento o caja de paso hacia el sistema Fire & Gas Detronix -> El cable NO se encuentra abierto "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Posible falla en el modulo -> Evalue el cambio del modulo"))) (retract ?f55a ))
51. Reglas para cada una de las alarmas secundarias que se pueden disparar, los hechos
que se afirman según el caso son:
(M12-L71PSAL_ALM) o (M13-L71PSAL_ALM) o (M14-L71PSAL_ALM) o (M15-L71PSAL_ALM)
o (M16-L71PSAL_ALM) o (M17-L71PSAL_ALM) si se presenta alarma de bajo nivel overhead
tank
25
(M12-L45HTA) o (M13-L45HTA) o (M14-L45HTA) o (M15-L45HTA) o (M16-L45HTA) o (M17-
L45HTA) si se presenta alarma de gas encendido.
Se debe observar que algunas de estas reglas se disparan si también esta presente el hecho
(auxiliar M11-TFT), el cual se ubicó en la Lista de Hechos en el momento en se activó la Alarma
de Disparo de Detección de Fuego para asegurar que las Alarmas Secundarias hacen referencia
al análisis de Detección de Fuego, ya que la alarma se podría dispara por otras razones.
Al mismo tiempo, cada una de estas reglas solo se dispara si se confirma el hecho (auxL45HTA
1B), el cual se afirma para especificar que se está haciendo referencia al caso cuando el led de
la zona 1-B esta encendido.
;***Alarmas secundarias que pueden estar presentes: (defrule gas1B-tanque1B-aceite1B ;Regla para para alarma (M11-L71PSAL) bajo nivel overhead tank zona 1-A (or ?f60a <- (M12-L71PSAL_ALM) ;Alarma principal de disparo ?f60a <- (M13-L71PSAL_ALM) ?f60a <- (M14-L71PSAL_ALM) ?f60a <- (M15-L71PSAL_ALM) ?f60a <- (M16-L71PSAL_ALM) ?f60a <- (M17-L71PSAL_ALM)) ?f60b<- (auxiliar M11-TFT) ;y alarma=M11-TFT. Arbol detección de fuego ?f60c <-(auxL45HTA 1B) ;y led zona 1-B => (assert (CAUSA(INMEDIATA"(Deteccion de fuego): FUEGO POR GAS EN TANQUE DE ACEITE"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA que indica Bajo nivel de overhead tank"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Alarma presente en Zona 1-B. Compartimento Accesorios"))) (retract ?f60a ?f60b ?f60c)) (defrule fuga1B-de1B-gas1B ;Regla para alarma (M11-L45HTA) gas presente (or ?f60d <- (M12-L45HTA) ;Alarma principal de disparo ?f60d <- (M13-L45HTA) ?f60d <- (M14-L45HTA) ?f60d <- (M15-L45HTA) ?f60d <- (M16-L45HTA) ?f60d <- (M17-L45HTA)) ?f60e <- (auxiliar M11-TFT) ;y auxiliar = M11-TFT. Arbol detección de fuego ?f60f <-(auxL45HTA 1B) ;y led zona 1-B => (assert (CAUSA(INMEDIATA"(Deteccion de fuego): FUEGO POR FUGA DE GAS"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Mxx-L45HTA. Gas presente "))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Alarma presente en Zona 1-B. Compartimento Accesorios"))) (retract ?f60d ?f60e ?f60f)) (defrule fuego1A-turbina1A ;Regla para para alarmas(Mxx-L45HTA) Y (Mxx-L71PSAL) (declare (salience 10)) (declare (salience 10)) (or ?f60g <- (M12-L71PSAL_ALM) ;Alarma principal de disparo ?f60g <- (M13-L71PSAL_ALM)
26
?f60g <- (M14-L71PSAL_ALM) ?f60g <- (M15-L71PSAL_ALM) ?f60g <- (M16-L71PSAL_ALM) ?f60g <- (M17-L71PSAL_ALM)) (or ?f60h <- (M12-L45HTA) ;Alarma principal de disparo ?f60h <- (M13-L45HTA) ?f60h <- (M14-L45HTA) ?f60h <- (M15-L45HTA) ?f60h <- (M16-L45HTA) ?f60h <- (M17-L45HTA)) ?f40i <- (alarma M11-TFT) ;y alarma=M11-TFT. Arbol detección de fuego ?f40j <-(auxL45HTA 1A) ;y led zona 1-A => (assert (CAUSA(INMEDIATA"(Deteccion de fuego): FUEGO POR GAS EN TANQUE DE ACEITE - FUEGO POR FUGA DE GAS"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Mxx-L45HTA. Gas Presente"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): ALARMA Mxx-L71PSAL. Bajo nivel de overhead tank"))) (retract ?f40g ?f40h ?f40i ?f40j))
52. Se compila el código del archivo DetecciondefuegoZONA1B.CLP:
(run)
53. El tercer archivo que fue llamado desde ALARMA-M12-L45FTT_ALM.CLP es
DetecciondefuegoZONA2.CLP.
ARCHIVO DETECCIONDEFUEGOZONA2.CLP
54. Definición de algunas variables y regla para el hecho (zona Zona2-B), el cual se afirma
si el usuario observo encendido el led de en modulo detonador zona 2-B. Las acciones
de esta regla contiene varias preguntas que el usuario responde para continuar con el
proceso:
;**** A R B O L : DETECCION DE FUEGO ******** ;************** CASO 1 : Zona 2-B Compartimento acople (deteccion-fuego)*********************** (defglobal ?*si* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;** PREGUNTAS si led en Zona 2-B ********** (defrule deteccion2B-fuego2B-compartimento2B-acople2B ;Opcion zona 2-B ?f1 <- (zona Zona2-B) ;Si led en modulo detonador zona 2-B encendido => (open "c:/EJERVG/Rta.bin" respuesta "w") ;Abre un archivo para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta
27
(printout pregunta "ACCION: Inspeccion visual de evidencias de rastros de aceite .Verificar si la alarma fue real. PREGUNTA: Hay rastros de aceite que indiquen que la alarma fue real ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si* (read respuesta));Asigna a si la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (fuegoreal2B ?*si*: donde *si*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (fuegoreal2B ?*si*)) ;Si Respuesta es SI:alarma real. Si Respuesta es NO: alarma NO real ;Nuevo hecho: (fuegoreal2B ?*si*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Led Zona 2-B encendido -> Fuego en compartimento acople "))) (retract ?f1)) ;Elimina hecho (zona Zona2-B) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
55. Regla para el hecho (fuegoreal2B SI), el cual se afirma si la alarma fue real:
;**DEDUCCIONES si alarma real en zona 2-B ************** (defrule fuga2B-aceite2B-acople2B ;Regla para (fuegoreal2B SI) ?f2 <-(fuegoreal2B SI) ;Si alarma real => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FUGA DE ACEITE POR ACOPLE "))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Presencia de fuego "))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Evidencia visual de rastros de aceite -> Alarma real"))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Fuego por fuga de aceite por acople -> Normalizar reset de la zona "))) (retract ?f2)) (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado
56. Definición de algunas variables y regla para el hecho (fuegoreal2B NO), el cual se
afirma si la alarma no fue real:
;**PREGUNTAS si alarma NO es real en Zona 2-B ************** (defglobal ?*si1* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule resistencia2B-infinita2B ;Regla para (fuegoreal2B NO) ?f3 <- (fuegoreal2B NO) ;Si alarma NO real => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta
28
(printout pregunta " ACCION: Desconectar resistencia de fin de linea. Megguear en IJB-3 Bornera 11-12 hacia acople. Hacia tierra. PREGUNTA: La resistencia es infinita ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si1* (read respuesta)) ;Asigna a s1 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si1* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (noaterrizadocable2B ?*si1*: donde *si1*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (noaterrizadocable2B ?*si1*)) ;Si respuesta es SI:NO aterrizamento del cable. Si respuesta es NO: SI aterrizamiento entre los cables ;Nuevo hecho: (noaterrizadocable2B ?*si1*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): La alarma de deteccion de fuego no fue real "))) (retract ?f3)) ;Elimina hecho (zona Zona2-B) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
57. Regla para el hecho (noaterrizadocable2B NO), el cual se afirma si hay aterrizamiento
del cable:
;**DEDUCCIONES si aterrizamiento del cable*** (defrule cable2B-aterrizado2B ;Regla para (noaterrizadocable2B NO) ?f4 <-(noaterrizadocable2B NO) ;Si aterrizamento del cable => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): ATERRIZAMIENTO DEL CABLE"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Falla en lazos de deteccion compartimento acople"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-3 Bornera 11-12 -> Resistencia diferente a infinito"))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Aterrizamiento del cable -> Reemplazar tramo de cable pelado "))) (retract ?f4 ))
58. Regla para el hecho (noaterrizadocable2B SI) el cual se afirma si NO hay aterrizamiento
del cable:
;**DEDUCCIONES si NO aterrizamiento del cable*** (defglobal ?*si2* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;**PREGUNTAS si NO aterrizamiento del cable*** (defrule corto2B-entre2B-cables2B ;Regla para ?f5 <- (noaterrizadocable2B SI) ;Si NO aterrizamento del cable => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta)
29
(open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " Hay corto entre los cables? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si2* (read respuesta)) ;Asigna a si2 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si2* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cortocables2B ?*si2*: donde *si2*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cortocables2B ?*si2*)) ;Si respuesta es SI:corto entre los cables .Si respuesta es NO:No hay corto entre los cables ;Nuevo hecho:cortocables2B ?*si2*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-3 Bornera 11-12 -> Resistencia infinita"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): El cable NO esta aterrizado"))) (retract ?f5)) ;Elimina hecho (zona Zona2-B) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
59. Regla para el hecho (cortocables2B SI), el cual se afirma si hay corto entre los cables:
;***DEDUCCIONES si hay corto entre los cables**** (defglobal ?*si2a* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;***PREGUNTAS si hay corto entre los cables**** (defrule revision2B-sensores2B ;Regla para (cortocables2B SI) ?f6 <-(cortocables2B SI) ;Si corto entre los cables => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar detector (sensor). PREGUNTA: Continua corto entre los cables ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si2a* (read respuesta)) ;Asigna a s2 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si2a* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (continuacorto2B ?*si2a*: donde *si2a*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1))))
30
(assert (continuacorto2B ?*si2a*)) ;Si respuesta es SI:cable dañado. Si respuesta es NO: revisar sensores ;Nuevo hecho:(continuacorto ?*si2a*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Corto entre los cables"))) (retract ?f6)) ;Elimina hecho (zona Zona2-B) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
60. Regla para el hecho (continuacorto2B SI), el cual se afirma SI continua corto entre los
cables:
;***Si continua el corto entre los cables : (defrule continua2B-corto2B ;Regla para (continuacorto2B SI) ?f7 <-(continuacorto2B SI) ;Si cable dañado => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): CABLE EN MAL ESTADO"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los sensores -> Continua corto entre los cables "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Cable en mal estado -> Reemplazar los cables"))) (retract ?f7 ))
61. Regla para el hecho (continuacorto2B NO), el cual se afirma si NO continua corto entre
los cables:
;***DEDUCCIONES Si NO continua el corto entre los cables : (defglobal ?*si3* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule detectores2B ;Regla para (continuacorto2B NO) ?f8 <-(continuacorto2B NO) ;Si posible daño en los sensores => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Meguear el detector (sensor). PREGUNTA: Los sensores estan en corto ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si3* (read respuesta)) ;Asigna a si3 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si3* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (continuacorto2B ?*si3*: donde *si3*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cortosensores2B ?*si3*)) ;Si respuesta es SI:Daño en sensores. ;Nuevo hecho:(continuacorto2B ?*si2*) (SI/NO)
31
(assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los sensores -> No hay corto entre los cables "))) (retract ?f8)) ;Elimina hecho (continuacorto NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
62. Regla para el hecho (cortosensores2B SI), el cual se afirma SI continua corto entre los
cables:
;**DEDUCCION SI los sensores estan en corto: (defrule falla2B-detector2B ;Regla para (cortosensores2B SI) ?f9 <-(cortosensores2B SI) ;Si daño en sensores => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FALLA EN DETECTORES DE INCREMENTO TERMICO COMPARTIMENTO DE ACOPLE"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Megueo del detector -> Los sensores estan en corto "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Falla en detectores de incremento termico -> Reemplazar los dos (2) sensores de incremento"))) (retract ?f9 ))
63. Regla para el hecho (cortocables2B NO) el cual se afirma si no hay corto entre los
cables:
;***DEDUCCIONES si NO hay corto entre los cables**** (defglobal ?*si4* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule cable2B-Fire2B-Gas2B ;Regla para (cortocables2B NO) ?f10 <-(cortocables2B NO) ;Si NO hay corto entre los cables => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar cables a meguear. Meguear desde el instrumento o caja de paso hacia el sistema Fire & Gas Detronix PREGUNTA: El cable se encuentra abierto ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si4* (read respuesta)) ;Asigna a si4 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si4* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cortocables2B ?*si4*: donde *si4*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cablefireandgas2B ?*si4*)) ;Si respuesta es SI:Cable abierto. Si Respuesta es NO: Cable NO abierto ;Nuevo hecho:(cablefireandgas2B SI) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): No hay corto entre los cables")))
32
(retract ?f10)) ;Elimina hecho (cortocables2B NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
64. Regla para el hecho (cablefireandgas2B NO), el cual se afirma si el cable no esta
abierto:
;**DEDUCCIONES SI cable NO esta abierto: (defrule modulo2B-cablefg2B ;Regla para (cablefireandgas2B NO) ?f10a <-(cablefireandgas2B NO) ;Si cable NO abierto => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): POSIBLE FALLA EN EL MODULO"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los cables a meguear. Megueo desde el instrumento o caja de paso hacia el sistema Fire & Gas Detronix -> El cable NO se encuentra abierto "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Posible falla en el modulo -> Evalue el cambio del modulo"))) (retract ?f10a ))
65. Definición de algunas variables y regla para el hecho (zona Zona2-A), el cual se afirma
si el usuario observo encendido el led de en modulo detonador zona 2-A. Las acciones
de esta regla contiene varias preguntas que el usuario responde para continuar con el
proceso:
;************** CASO 2: Zona 2-A Push Button (deteccion-fuego)*********************** (defglobal ?*si5* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;** PREGUNTAS led en Zona 2-A ********** (defrule fuego-push-button ;Opcion zona 2-A ?f11 <- (zona Zona2-A) ;Si led en modulo detonador zona 2-B encendido => (open "c:/EJERVG/Rta.bin" respuesta "w") ;Abre un archivo para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta "ACCION: Inspeccion visual del Push-Botton PREGUNTA: Esta activo ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si5* (read respuesta)) ;Asigna a si5 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si5* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (fuego real ?*si*: donde *si*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1))))
33
(assert (fuegopushbotton ?*si5*)) ;Si Respuesta es SI: Push Botton activado. Si Respuesta es NO: Push Botton NO activado ;Nuevo hecho: (fuegopushbotton ?*si5*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Led Zona 2-A encendido -> Push Botton "))) (retract ?f11)) ;Elimina hecho (zona Zona2-A) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
66. Regla para el hecho (fuegopushbotton SI), el cual se afirma si el Push Botton está
activo:
;**DEDUCCIONES si push botton activo ************** (defrule activo-pb ;Regla para (fuegopushbotton SI) ?f12 <-(fuegopushbotton SI) ;Si Push Botton activo => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): PUSH BOTTON ACTIVO "))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Inspeccion visual de Push Botton activo "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Push Botton activo -> Normalizar la zona "))) (retract ?f12))
67. Definición de algunas variables y regla para el hecho (fuegopushbotton NO) el cual se
afirma si el Push Botton NO esta activo:
;**PREGUNTAS si alarma NO push botton NO activo en Zona 2-B ************** ;...REVISAR JBxxxxxx} (defglobal ?*si6* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule resistencia2A-infinita2A ;Regla para (fuegopushbotton NO) ?f13 <- (fuegopushbotton NO) ;Si Push Botton NO activo => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar resistencia de fin de linea. Megguear en IJB-9 Bornera 7-8 hacia acople.Hacia tierra. PREGUNTA: La resistencia es infinita ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si6* (read respuesta)) ;Asigna a si6 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si6* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (noaterrizadocable2A ?*si6*: donde *si6*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1))))
34
(assert (noaterrizadocable2A ?*si6*)) ;Si respuesta es SI:NO aterrizamento del cable. Si respuesta es NO:SI aterrizamiento entre los cables ;Nuevo hecho: (noaterrizadocable2A ?*si6*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): El Push botton NO esta activo "))) (retract ?f13)) ;Elimina hecho (fuegopushbotton NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
68. Definición de algunas variables y regla para el hecho (noaterrizadocable2A NO), el cual
se afirma si hay aterrizamiento del cable:
;**DEDUCCION si aterrizamiento del cable*** (defrule cable2A-aterrizado2A ;Regla para (noaterrizadocable2A SI) ?f14 <-(noaterrizadocable2A NO) ;Si aterrizamento del cable => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): FALLA EN CABLEADO"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Aterrizamiento del cable"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-9 Bornera 7-8 -> Resistencia diferente a infinito"))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Aterrizamiento del cable -> Reemplazar tramo de cable pelado "))) (retract ?f14 ))
69. Definición de algunas variables y regla para el hecho (noaterrizadocable2A SI), el cual
se afirma si NO hay aterrizamiento del cable:
;**DEDUCCION si NO aterrizamiento del cable*** (defglobal ?*si7* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;**PREGUNTAS si NO aterrizamiento del cable*** (defrule corto2A-entre2A-cables2A ;Regla para (noaterrizadocable SI) ?f15 <- (noaterrizadocable2A SI) ;Si NO aterrizamento del cable => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " Hay corto entre los cables? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si7* (read respuesta)) ;Asigna a si7 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si7* EOF) ;Si no se encontro respuesta (Rta vacio) then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cortocables2A ?*si7*: donde *si7*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1))))
35
(assert (cortocables2A ?*si7*)) ;Si respuesta es SI:corto entre los cables .Si respuesta es NO:No hay corto entre los cables ;Nuevo hecho:(cortocables2A ?*si7*) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de resistencia de fin de linea. Meggueo en IJB-9 Bornera 7-8 -> Resistencia infinita"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): El cable NO esta aterrizado"))) (retract ?f15)) ;Elimina hecho (aterrizadocable2A SI) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
70. Definición de algunas variables y regla para el hecho (cortocables2A SI), el cual se
afirma si hay corto entre los cables:
;***DEDUCCION si hay corto entre los cables**** (defglobal ?*si8* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado ;***PREGUNTAS si hay corto entre los cables**** (defrule revision2A-pushbotton ;Regla para (cortocables2A SI) ?f16 <-(cortocables2A SI) ;Si corto entre los cables => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): PUSH BOTTON EN MAL ESTADO"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Corto entre los cables "))) (retract ?f16)) ;Elimina hecho (cortocables2A SI) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
71. Definición de algunas variables y regla para el hecho (cortocables2A NO), el cual se
afirma si NO hay corto entre los cables:
;***DEDUCCION si NO hay corto entre los cables**** (defglobal ?*si9* = "") (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (remove "c:/EJERVG/Rta.bin") ; Asegura que Rta sea borrado (defrule cable2A-Fire2A-Gas2A ;Regla para (cortocables2A NO) ?f17 <-(cortocables2A NO) ;Si NO hay corto entre los cables => (open "c:/EJERVG/Rta.bin" respuesta "w"); Crea archivo Rta para escribir la respuesta (close respuesta) (open "c:/EJERVG/Pta.bin" pregunta "w") ;Abre un archivo para escribir la pregunta (printout pregunta " ACCION: Desconectar cables a meguear. Meguear desde el instrumento o caja de paso hacia el sistema Fire & Gas Detronix PREGUNTA: El cable se encuentra abierto ? "crlf"SI"crlf"NO") (close pregunta) (bind ?*var* (+ 0 1)) (while (= ?*var* 1) do (open "c:/EJERVG/Rta.bin" respuesta "r") ;Abre Rta para leer la respuesta (bind ?*si9* (read respuesta)) ;Asigna a si9 la respuesta (Rta) del usuario (close respuesta) (if (eq ?*si9* EOF) ;Si no se encontro respuesta (Rta vacio)
36
then(bind ?*var* (+ ?*var* 0)) ;Entonces siga esperandola else (remove "c:/EJERVG/Rta.bin") ;Si encontro respuesta tomela como nuevo hecho (cablefireandgas ?*si9*: donde *si9*=respuesta usuario = SI/NO),y borre archivo de respuestas de usuario (Rta vacio) (bind ?*var* (+ ?*var* 1)))) (assert (cablefireandgas2A ?*si9*)) ;Si respuesta es SI:Daño en sensores. ;Nuevo hecho:(cablefireandgas2A SI) (SI/NO) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Corto entre los cables"))) (retract ?f17)) ;Elimina hecho (continuacorto NO) de la base de hechos (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta (remove "c:/EJERVG/Rta.bin") ;Asegura que se borre archivo de Rta
72. Regla para el hecho (cablefireandgas2A NO) el cual se afirma si NO hay corto entre los
cables:
;**DEDUCCION SI cable NO esta abierto Fire & Gas: (defrule modulo2A-cablefg2A ;Regla para (cablefireandgas2A NO) ?f17a <-(cablefireandgas2A NO) ;Si cable NO abierto => (assert (CAUSA(INMEDIATA "(Deteccion de fuego): POSIBLE FALLA EN EL MODULO"))) (assert (RESULTADO(HIPOTESIS "(Deteccion de fuego): Desconexion de los cables a meguear. Megueo desde el instrumento o caja de paso hacia el sistema Fire & Gas Detronix -> El cable NO se encuentra abierto "))) (assert (RECOMENDACION(CORRECTIVA "(Deteccion de fuego): Posible falla en el modulo -> Evalue el cambio del modulo"))) (retract ?f17a )) (run)