DISEÑO Y SIMULACIÓN DE UN SISTEMA INDUSTRIAL CON REDES DE PETRI COLOREADAS JERARQUIZADAS Mario Distefano, Santiago Perez y Antonio Pasero Facultad Regional Mendoza, Universidad Tecnológica Nacional RESUMEN: Para resolver problemas complejos que dan lugar a redes muy grandes, se puede utilizar Redes de Petri Coloreadas Jerárquicas, que permite subdividir dicha red en redes más pequeñas que facilitan la construcción y comprensión del sistema. Se analiza las capacidades de las redes jerárquicas desarrollando una aplicación en una celda de fabricación flexible robotizada. Se utiliza el simulador CPNTool que permite manejar estructuras jerárquicas y emular el sistema en forma dinámica. 1. INTRODUCCION A CPN 1.1 Definición Redes de Petri Coloreadas Jerárquicas Los problemas complejos que dan lugar a redes muy grandes, se pueden subdividir en subredes o módulos mas simples que faciliten la construcción, la comprensión, la búsqueda de errores y la puesta a punto del sistema. La técnica utilizada es similar a la programación en lenguajes de alto nivel estructurados en programa principal y subprogramas (subrutinas). La herramienta de simulación CPNTools [1][2] soporta dos formas de definir subredes: Sustitución de Transiciones y Fusión de Lugares. Se trata de una traslación entre redes diferentes, la jerárquica y la no jerárquica. La sustitución de transiciones consiste de una transición especial en el diagrama jerárquico que permite acceder a un subdiagrama (submodelo). Las marcas de entrada de dicha transición son transferidas al subdiagrama y este entrega los resultados o marcas de salida del sub- modelo al jerárquico. La fusión de lugares consiste en utilizar lugares idénticos en diferentes diagramas de tal manera que la adición o remoción de marcas en un lugar se realiza idénticamente en todos los otros. Ese lugar es compartido por todos los subdiagramas. 1.2 Definición Formal Una CPN jerárquica [Jensen] [3],[4]se define formalmente como una tupla de la forma ( ∑ S, PS, TS, AS, NS, CS, GS, ES, IS), donde s es el conjunto de páginas donde para cada página s ∈ S es del tipo nojerárquica ∑ = U∑ s s∈S T = U Ts s∈S P = U Ps s∈S A = U As s∈S La definición formal de las CPN jerárquicas es una tupla: HCPN= (S, SN, SA, PN, PT, PA, FS, FT, PP), donde S es un número finito de páginas, tal que: cada página s ∈ S es una CPN no-jerárquica ( ∑ S, PS, TS, AS, NS, CS, GS, ES, IS) Además el número de elementos de red son pares disjuntos. SN ⊆ T Es el número de nodos de sustitución SA es una función de asignación de página PN ⊆ P Es el número de puertos PT es la función de tipo de puerto. Definido en PN (in, out, i/o) PA es la función de asignación de puertos, definido en SN Los nodos sockets de vinculación están relacionados con los nodos puertos. Los nodos relacionados son del mismo set de color y equivalentes a las expresiones de inicialización. FS ⊆ Ps Es un conjunto finito de sets de fusión tal que: Miembros de un set de fusión tienen idéntico color y equivalentes expresiones de inicialización. FT es una función tipo fusión. Se define del set de fusión en (global, pagina, instancia) tal que: Pagina y fusión de instancia corresponde a una misma página. PP es un multiset de páginas principales. Estas relaciones matemáticas y restricciones están consideradas en gran medida en el simulador de CPN Tools por lo cual con cierta consideración se puede proceder a realizar aplicaciones, sin necesidad de ahondar en el desarrollo matemático. En la práctica, con el simulador, resulta sencillo aplicar los conceptos abstractos de las relaciones matemáticas no expuestas en este trabajo. 2. APLICACIONES DE CPN JERARQUICAS 2.1 Celda Flexible de Maquinado Está demostrada la eficiencia de las Redes de Petri Ordinarias para simular procesos industriales de fabricación [5]. Para procesos complejos se puede recurrir a las CPN. El sistema a analizar se compone de cuatro máquinas que realizan la misma operación, cada una dispone de un palet giratorio con dos posiciones, interna (A) del lado de la máquina y externa (B) del lado del robot. El ingreso de materia prima y la salida de piezas terminadas se realiza mediante una cinta giratoria. El robot tiene un movimiento giratorio para situarse frente a cada máquina y un movimiento axial para la carga y descarga de piezas en el respectivo palet. Atiende a las máquinas en forma secuencial: máquina 1, máquina 2, máquina 3 y máquina 4 y se repite la secuencia indefinidamente. En esta aplicación no se incluyen los automatismos de la cinta giratoria ni de la entrada y salida de piezas. El sistema requiere de la asistencia de un operario para realizar tareas de mantenimiento o reparaciones en caso de averías. Para el proceso de mantenimiento el sistema dispone automáticamente de una parada cada cierta cantidad de piezas maquinadas, cuya duración es de un ciclo del robot. En caso de avería la máquina se detiene automáticamente, el operario prolonga manualmente la parada hasta completar la reparación. Un esquema de la celda se indica en la Fig. 1. sando a herramienta 2. Para las otras máquinas corresponde el mismo razonamiento. La transición Retorno dispara el comienzo de una nueva secuencia. 2.3 Submodelo Herramienta 1 Figura: 1 Celda Flexible de Maquinado El problema a solucionar consiste en desarrollar el automatismo de la celda y su correspondiente simulación dinámica. El modelo se realiza bajo el concepto de una estructura jerárquica. 2.2 Diagrama Jerárquico del Sistema El diagrama jerárquico del sistema (Figura: 2) contiene lugares y transiciones, donde estas últimas representan submodelos independientes que se vinculan bajo el concepto de sustitución de transiciones. En este diagrama existen cuatro máquinas representadas por maquina 1, 2, 3 y 4. Las transiciones herramienta 1, 2, 3 y 4 tienen asociados cuatro submodelos. Los estados A, B,…J, indican la secuencia de operación de las máquinas. El submodelo herramienta determina si existe tarea de mantenimiento o reparación por avería de la correspondiente máquina. El submodelo máquina representa la rotación del palet, el maquinado de la pieza y la carga y descarga del robot. El diagrama inicia la secuencia en el estado A con una marca que indica el nº de máquina 1. La marca habilita el submodelo herramienta 1. En caso que la marca entre al estado B, indica que la máquina 1 está en línea. Caso contrario la marca se incrementa en 1 para pasar al estado C, con lo cual indica que la maquina 1 está fuera de servicio, ingre- El submodelo (Figura:3) comienza con el estado A (In) y finaliza en los estados B (Out) o C (Out), según sea operación normal o en su defecto se trate de tarea de mantenimiento o reparación. En la transición Acceso la marca deriva a los estados A1 y B1. B1 y C1 son contadores que indican la cantidad de ciclos que trabajará la máquina que se ha fijado en seis, para suspender la máquina automáticamente para tareas de mantenimiento; cuando C1 no tenga marca se bloquea la salida normal B. Cuando B1 alcance seis marcas pasa a cero marcas y se habilitará la máquina siguiente a través de la salida C a través de la transición Mantenimiento; el tiempo de duración de esta parada es el tiempo que dura un ciclo completo de secuencia. La transición Mantenimiento habilita al estado Operario con una marca, que en conjunto con la próxima marca que llegue a A1 permite inicializar el contador C1 con 5 marcas. Ver Figura:3 y 5. En cuanto a la suspensión por avería se trata en el estado Oper 1 que se encuentra en el submodelo Máquina 1 que se fusiona a través del estado Oper 1 de Herramienta 1 (Fusión 1); una marca en este estado con A1 y B1 marcados habilita la transición Parar1 enviando una marca a C para pasar a Herramienta 2. Si la reparación de maquina 1 dura más de un ciclo se puede detener temporalmente por una operación manual a cargo del operario a través Oper Manual enviando una marca a C. Todas los submodelos Herramienta 1,2,3 y 4 funcionan de la misma manera. 2.4 Submodelo Máquina 1 El submodelo (Figura:4) comienza con el estado B (In) y finaliza en el estado C (Out). El diagrama se compone de dos partes: una corresponde al palet del lado de la máquina (parte izquierda del diagrama), donde contempla el maquinado de la pieza y la detección de problemas de funcionamiento. La otra parte (parte derecha del diagrama) corresponde a la operación del robot de descarga y carga de piezas. Ambas partes están vinculadas a la transición Palet 1, que indica la rotación del palet. Ver Figura: 4 y 6. Cuando hay marca en B y también en A1 y B1 se realiza la rotación del palet, produciéndose el cambio de marcas, la marca de A1 pasa a A3 y la de B1 pasa a B2. Del estado B2 pasa al estado A2 a través de la operación de Maquinado 1 cambiando la marca de (1,B) a (1,A), donde hay un tiempo de maquinación representado por @+20. La marca retorna a A1 a través de la transición: Hay que parar Maquina? Por otro lado con el objeto de simular un desperfecto de la máquina se ha incluido en el arco la función CAMBIAR () que permite en forma aleatoria habilitar C1, que a través de Parar Máquina pasa al estado de Fusión 1 (estado Oper 1) que tiene su réplica en el submodelo Herramienta 1; donde en el próximo ciclo la máquina permanecerá parada el tiempo necesario para su reparación. Cuando hay marca en A3 la marca del robot debe estar en R2 para poder habilitar transición “abrir bridas descarga y carga de piezas cerrar bridas”, donde se han sintetizado cuatro operaciones distintas con el objeto de simplificar el diagrama. En la transición Robot no se ha incluido un retardo. Una vez terminada esa operación retorna la marca (1,B) a B1 y además retorna al diagrama principal a través de C una marca “i” indicando numéricamente la próxima maquina a atender por el robot. La ausencia de marca en A1 puede interpretarse que la máquina no está disponible y consecuentemente el robot estaría detenido innecesariamente hasta que la maquina se encuentre disponible; esto puede salvarse sacando la marca de B directamente a través de C sin rotar el palet, cosa que en el diagrama no está contemplado, debido a que hemos elegido la estrategia de atención secuencial. Esto se puede resolver con una estrategia de tipo FIFO. Se han incluido los submodelos para las máquinas 1 y 2 de la celda, siendo similar para las máquinas 3 y 4. Esta aplicación se basa en el trabajo realizado en el documento 31128-1.pdf [6]. DIAGRAMA JERARQUICO DEL SISTEMA D I maquina 2 herramienta 2 E herramienta 3 I maquina 2 herramienta 2 herramienta 3 C F I I 1`1 1 1`1 A maquina 1 maquina 3 I maquina 1 maquina 3 Retorno Retorno G B herramienta 1 I maquina 4 J I herramienta 1 maquina 4 I H herramienta 4 I herramienta 4 Declaraciones colset colset colset colset colset colset colset I =int with 1..4; N = int with 1..4; P = with A|B; PALET =product N*P timed; OPERARIO =with O; robo =with R; ROBOT=product robo*N; var n : N; var i : I; var p : P; var oper : OPERARIO; var rob :ROBOT; colset CAMBIO = int with 1..9; fun CAMBIAR ()=CAMBIO. ran (); Figura: 2 Diagrama Jerárquico del Sistema Herramienta 1 A 1 In I 1 I 1 B1 1`1 I 1 Acceso A1 1 6`1 oper Mantenimiento Oper Manual oper Oper 1 Fusion 1 OPERARIO 1 1 Normal oper OPERARIO 2 1 Detencion manual 2 C 2 Out 1 5`1 5 parar 1 C1 I I Mantener maquina 1 en reparacion B 5`1 Operario 5`1 1 oper Reinicio OPERARIO Figura:3 Herramienta 1 Out I maquina 1 (1,A) (1,B) 1 1`(1,A)@0 A1 (1,A) B1 (1,B) PALET PALET 4`B OPERARIO Parar Maquina (1,A) Piezas 4 4`B oper 1 oper Fusion 1 P ROBOT (1,A) (1,B) C p p R2 C1 1 1`(1,B)@0 Out PALET if CAMBIAR () > 8 1 then 1`(1,A) else empty Palet 1 rob (R,1) B (1,A) In PALET (1,A) rob R1 I Pieza final ROBOT A3 (1,A) abrir bridas descarga y carga de piezas cerrar bridas Robot Hay que parar Maquina ? 2 rob rob I 1 1`(R,1) (1,B) PALET (1,A) @+20 (1,A) Maquinado 1 (1,B) B2 A2 PALET PALET Figura: 4 Máquina 1 herramienta 2 C In I 2 2 B2 2 Acceso A2 I 7`2 2 oper 2 Fusion 2 Mantenimiento Oper Manual OPERARIO oper oper Detencion manual 3 oper 2 3 3 E Out OPERARIO C2 2 6`2 6 6`2 Out reinicio 2 D Parar 2 I oper normal I Mantener maquina 2 en reparacion operario 2 I 2 6`2 OPERARIO Figura: 5 Herramienta 2 I maquina 2 (2,A) A1 (2,B) 1 1`(2,A)@0 B1 (2,A) PALET 1 1`(2,B)@0 PALET 4`B piezas4 4`B Parar Maquina 2 oper 2 oper Fusion 2 (2,A) ROBOT (2,B) OPERARIO R2 (2,A) rob C1 2 PALET palet 2 In R1 (2,A) A3 3 rob abrir bridas descarga y carga de piezas cerrar bridas (R,2) I I (2,B) rob D Hay que parar Maquina 2? Out p p Robot if CAMBIAR () > 8 then 1`(2,A) else empty E P (2,A) rob pieza final 1 1`(R,2) ROBOT PALET PALET (2,B) (2,A) (2,A) (2,A) @+20 Maquinado 2 (2,B) B2 A2 PALET PALET Figura: 6 Máquina 2 3 CONCLUSIONES 4 BIBLIOGRAFIA Las Redes de Petri Coloreadas constituyen un importante soporte para el estudio, diseño y simulación dinámica de los procesos industriales. Esta herramienta facilita la evaluación cuantitativa del comportamiento, rendimiento y costos de cada maquina. Ya sea incorporando subredes de evaluación o a través de los diagramas de estado. La evolución del sistema a través de disparos de las transiciones se puede realizar mediante archivos de parámetros que se van modificando hasta lograr la optimización del proceso. Se comprueba una gran facilidad para subdividir redes complejas utilizando los recursos de fusión de lugares y sustitución de transiciones. Con ligeras modificaciones a este trabajo se pueden incorporar subredes con diferentes estrategias del robot para atender las colas de espera de las máquinas. En la aplicación desarrollada se puede reducir los cuatro diagramas de máquinas y herramientas a uno solo diagrama de cada clase modificando el diagrama jerárquico. No se hizo a los fines de comprobar el estado de cada máquina en un instante determinado a los fines de un análisis detallado. La herramienta CPNTools presenta una gran flexibilidad para modelar sistemas industriales y además permitir simular los modelos en distintas situaciones. [1] CPN/Tools: A Post-WIMP Interface for Editing and Simulating Coloured Petri Nets Michel Beaudouin-Lafon, Wendy E. Mackay, Peter Andersen, Paul Janecek, Mads Jensen, Michael Lassen, Kasper Lund, Kjeld Mortensen, Stephanie Munck, Anne Ratzer, Katrine Ravn, Søren Christensen and Kurt Jensen Department of Computer Science University of Aarhus IT-Parken, Aabogade 34 8200 Aarhus N Denmark E-mail: [email protected] [2] CPNTools http://www.daimi.au.dk/CPNTools/ [3] K. Jensen, Coloured Petri Nets. Basic Concepts, Analysis Methods and Practical Use, Vol. 1:Basic Concepts, Ed: Springer-Verlag, 1992. [4] K. Jensen, Coloured Petri Nets. Basic Concepts, Analysis Methods and Practical Use. Vol. 2: Analysis Methods, Ed. Springer-Verlag,1994. [5] Proth J. Marie Les Reseaux de Petri pour la Conception et la Gestion de Production. Paris, Masson, 1995. [6] Documento Modelado y Análisis de un Sistema de Fabricación mediante Redes de Petri Coloreadas. http:// bibliotecnica.upc.es/PFC/arxius/migrats/ 31128-1.pdf