Implementacin programada de Redes de Petri en Java

  • Slides: 27
Download presentation
Implementación programada de Redes de Petri en Java. Control de una célula de fabricación

Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible. Módulo Inline Tsx Momentum Identificador de Productos Tsx Momentum Módulo Inline IBS PCI SC/I-T Ramón Piedrafita Moreno José Luis Villarroel Salcedo Departamento de Informática e Ingeniería de Sistemas Universidad de Zaragoza CEDI. Simposio de Sistemas de Tiempo Real Granada 15 -09 -2005

Introducción n n Desarrollo de sistemas de control de eventos discretos. Avanzar en las

Introducción n n Desarrollo de sistemas de control de eventos discretos. Avanzar en las técnicas de control con Redes de Petri (Rd. P) de sistemas complejos Evaluación del lenguaje Java como plataforma de implementación. Continuación de los trabajos sobre implementación de Rd. P realizados en la Universidad de Zaragoza Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Java? ? n n Comparación con implementaciones previas en Ada. Primeros pasos en su

Java? ? n n Comparación con implementaciones previas en Ada. Primeros pasos en su aplicación al desarrollo de sistemas de control y empotrados. Posibilidad de ejecutar el mismo código en diferentes plataformas. Dos líneas de trabajo: una en Java “clásico” y otra en Java para Tiempo Real ( j. Rate) Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Implementación de Redes de Petri n n Java como lenguaje para la implementación de

Implementación de Redes de Petri n n Java como lenguaje para la implementación de Rd. P con tiempo. Se han adaptado a Java varias técnicas de implementación de Rd. P y se ha desarrollado una nueva, los coordinadores concurrentes. Se ha introducido en estas técnicas de implementación el tiempo mediante retrasos asociados a los lugares Se ha desarrollado un ejemplo de aplicación real: el control de una célula de fabricación flexible. Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

La célula de fabricación

La célula de fabricación

Bus Interbus Módulo Inline Tsx Momentum Identificador de Productos Tsx Momentum Módulo Inline IBS

Bus Interbus Módulo Inline Tsx Momentum Identificador de Productos Tsx Momentum Módulo Inline IBS PCI SC/I-T

Maestros de Interbus n IBS PCI SC/I-T Phoenix Contact Entorno Windows n CIF 50

Maestros de Interbus n IBS PCI SC/I-T Phoenix Contact Entorno Windows n CIF 50 -IBM Hilscher Entorno Linux Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Bus Interbus Estación 1 Estación 4 Implementación programada de Redes de Petri en Java.

Bus Interbus Estación 1 Estación 4 Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Bus Interbus Estación 3 Transporte 1 Implementación programada de Redes de Petri en Java.

Bus Interbus Estación 3 Transporte 1 Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Red de Petri Estación 1 Interpretación de Rd. P en control de sistemas: •

Red de Petri Estación 1 Interpretación de Rd. P en control de sistemas: • Acciones impulsionales al disparo de transiciones • Generación de señales de control asociadas al marcado de lugares • Predicados que condicionan el disparo de las transiciones sensibilizadas Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Implementación Programada de Redes de Petri public class Transicion boolean habilitada = false; Vector

Implementación Programada de Redes de Petri public class Transicion boolean habilitada = false; Vector <Estado> lugares. Entrada; Vector <Estado> lugares. Salida; int prioridad; … métodos public Transicion(Estado est. Ent, Estado est. Sal); public int get. Num. Lugares. Entrada(); public int get. Num. Lugares. Salida(); public int get. Prioridad(); public void set. Prioridad(int priorid); Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Implementación Programada de Redes de Petri public class Estado int tokens = 0; Temporizador

Implementación Programada de Redes de Petri public class Estado int tokens = 0; Temporizador temporizador; … métodos public Estado(int toks) public void set. Tokens(int T) public int get. Tokens() public boolean is. Marcado() public int get. Tiempo. Marcado(); Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Implementación Programada de Redes de Petri public class Red public int[][] matriz. Incidencia. Previa;

Implementación Programada de Redes de Petri public class Red public int[][] matriz. Incidencia. Previa; public int[][] matriz. Incidencia. Posterior; public int[] marcado. Inicial; public Vector < Conflicto > conflictos; public Vector < Estado > estados; public Vector < Transicion > transiciones; Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Creación de Redes de Petri Editor HPsim // Transition Name Vector: (T 0 ;

Creación de Redes de Petri Editor HPsim // Transition Name Vector: (T 0 ; T 1 ; T 2 ; T 3 ; ) // Position Name Vector: (P 0; P 1; P 2; P 3; P 4; ) // Inzidenz Matrix: { ( 1 0 0 -1 ) (-1 1 0 0 ) (-1 0 ) ( 0 -1 0 1 ) ( 0 0 -1 1 ) } // Marking Vector: (1 0 0 ). . Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Clase coordinador “Thread” Encargado de: n. Hacer evolucionar el estado de la Rd. P

Clase coordinador “Thread” Encargado de: n. Hacer evolucionar el estado de la Rd. P en sincronía con el sistema controlado. n. Controlar el disparo de las transiciones de la Rd. P. n Realizar las acciones sobre el sistema físico ejecutando el código asociado a los lugares de la Rd. P. n. El acceso al bus de campo, al identificador de productos y el intercambio de información con la tarea HMI, se realizará a través de monitores que garantizaran la exclusión mutua en el acceso a las variables. Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Clase coordinador Clase madre public class Coordinador { public Red red; public Vector <

Clase coordinador Clase madre public class Coordinador { public Red red; public Vector < Transicion > transiciones. Habilitadas; private final Reentrant. Lock monitor = new Reentrant. Lock(); Clase hija public Coordinador(Red r); protected native void inicializa. Comunicacion(); public void set. Transiciones. Habilitadas(); public Transicion get. Transicion. ADisparar(); public void dispara. Transicion(Transicion t); Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Ejecución periódica Implementa la interfaz Runnable, puede ser lanzado como un “thread” de ejecución

Ejecución periódica Implementa la interfaz Runnable, puede ser lanzado como un “thread” de ejecución independiente. n n El coordinador será una tarea de ejecución periódica. El periodo de ejecución elegido es de 10 ms. En cada periodo de ejecución se actualizan los datos del bus. El tiempo de Scan del bus es menor de 2 ms. Java clase Timer. Java para Tiempo Real Thread de tiempo Real periódico. Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Ciclo de Ejecución Al principio de su ejecución el coordinador carga la Rd. P,

Ciclo de Ejecución Al principio de su ejecución el coordinador carga la Rd. P, la analiza y crea un vector con las transiciones habilitadas según el marcado inicial. Para ejecutar la Rd. P el proceso cíclico que se sigue es: n Se realiza la acción continua de los lugares marcados. n Dentro del vector de transiciones habilitadas se escoge la de mayor prioridad, o en caso de igual prioridad, cualquiera, comprobando que su condición de disparo se cumpla. Esta política también se aplica en caso de conflicto. n Se dispara la transición. n Se ejecuta el código asociado al desmarcado de los lugares de entrada y al marcado de los lugares de salida. n Se actualiza el vector de transiciones habilitadas Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Búsqueda de transiciones Para la búsqueda eficiente de transiciones habilitadas y la actualización de

Búsqueda de transiciones Para la búsqueda eficiente de transiciones habilitadas y la actualización de la estructura de datos que las almacena se han propuesto en la literatura diversas técnicas: n n n transiciones sensibilizadas lugares representantes dinámicos En el presente trabajo se han implementado las dos primeras. Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Ejecución Concurrente Coordinador Estación 4 Coordinador Estación 3 Coordinador Estación 2 Monitor Estación 4

Ejecución Concurrente Coordinador Estación 4 Coordinador Estación 3 Coordinador Estación 2 Monitor Estación 4 Coordinador Estación 1 Coordinador célula Monitor Estación 3 Monitor Estación 2 Monitor HMI Monitor Estación 1 Funciones nativas Variables E/S C Orden Actualización Bus Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Ejecución Concurrente La ejecución de la aplicación de control se puede configurar de dos

Ejecución Concurrente La ejecución de la aplicación de control se puede configurar de dos formas: n Implementación centralizada. Un solo “thread” encargado de ejecutar la Rd. P que controla la totalidad de la célula de fabricación. n Implementación descentralizada: Múltiples coordinadores pueden ser lanzados en concurrencia, realizando cada uno de ellos la ejecución de la subred de Petri encargada de controlar una de las estaciones de la célula. La técnica de implementación en cada coordinador será centralizada. Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Desarrollo de aplicaciones de control Implementación programada de Redes de Petri en Java. Control

Desarrollo de aplicaciones de control Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Java como plataforma de Ejecución Desarrollo de aplicaciones de control: • Ejecución concurrente de

Java como plataforma de Ejecución Desarrollo de aplicaciones de control: • Ejecución concurrente de threads. Características que dificultan su uso para aplicaciones de control: • Es un lenguaje Interpretado. Técnica compilación "Just in Time" se acelera la interpretación de "bytecode". • Enlazado dinámico de clases dinámicamente (descarga de clases remotas ). • Recolección de basura thread de prioridad máxima. • El planificador no es “preemptivo” (expulsivo) ni posee prioridades estáticas, ejecución en el sistema (“row robbin”). Estas últimas características suponen un grado de impredecibilidad temporal en la ejecución de un programa multiflujo. Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Java para Tiempo Real j. Rate Estos problemas han sido abordados en la Especificación

Java para Tiempo Real j. Rate Estos problemas han sido abordados en la Especificación de Java para Tiempo Real. (j. Rate): • Planificador expulsivo • No ejecuta "bytecodes" sino que se compila a código máquina • “Realtime. Thread”, periódicos, aperiódicos y esporádicos • Clases tratamiento de eventos asíncronos y para la transferencia asíncrona del control • Relojes de tiempo real de alta resolución • Implementa No. Heap. Realtime. Thread, “threads” que se pueden ejecutar siempre antes que el recolector de basura. Características que proporcionan a Java Tiempo Real la predecibilidad temporal necesaria para la ejecución de aplicaciones de control. Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Conclusiones Objetivo fundamental: Evaluación del lenguaje Java para la codificación de sistemas de control

Conclusiones Objetivo fundamental: Evaluación del lenguaje Java para la codificación de sistemas de control modelados mediante Rd. P. Aplicación práctica en funcionamiento: El control de una célula de fabricación De este trabajo cabe destacar: • Adaptación sin problemas a Java de los métodos de implementación de Rd. P • La orientación a objeto del lenguaje y el soporte multiplataforma han facilitado el desarrollo de la aplicación de control. • La planificación de tareas de Java impiden que la aplicación sea predecible. Se descarta el uso de Java “clásico” para la implementación de sistemas de control de Tiempo Real. Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Futuras Líneas de Investigación Se está finalizando la implementación en Java Tiempo Real. Próximas

Futuras Líneas de Investigación Se está finalizando la implementación en Java Tiempo Real. Próximas investigaciones en los campos de la implementación programada de Rd. P, de los lenguajes y plataformas de ejecución y tiempo real. Próximos pasos serán: • la migración a sistemas operativos en tiempo real, • la implementación de Rd. P con Tiempo en Java para Tiempo Real. • Aplicación de algoritmos para descomposición de Rd. P, para implementaciones descentralizadas y distribuidas Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Control en Tiempo Real Implementación programada de Redes de Petri en Java. Control de

Control en Tiempo Real Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.