1 / 27

Módulo Inline

Módulo Inline. Tsx Momentum. Tsx Momentum. Identificador de Productos. Tsx Momentum. Módulo Inline. IBS PCI SC/I-T. Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

Download Presentation

Módulo Inline

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Java?? • 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 ( jRate) Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

  4. Implementación de Redes de Petri • Java como lenguaje para la implementación de RdP con tiempo. • Se han adaptado a Java varias técnicas de implementación de RdP 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.

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

  6. Bus Interbus Módulo Inline Tsx Momentum Tsx Momentum Identificador de Productos Tsx Momentum Módulo Inline IBS PCI SC/I-T Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

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

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

  9. 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.

  10. Red de Petri Estación 1 • Interpretación de RdP 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.

  11. Implementación Programada de Redes de Petri publicclass Transicion boolean habilitada = false; Vector <Estado> lugaresEntrada; Vector <Estado> lugaresSalida; int prioridad; … métodos public Transicion(Estado estEnt, Estado estSal); publicint getNumLugaresEntrada(); publicint getNumLugaresSalida(); publicint getPrioridad(); publicvoid setPrioridad(int priorid); Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

  12. Implementación Programada de Redes de Petri publicclass Estado int tokens = 0; Temporizador temporizador; … métodos public Estado(int toks) publicvoid setTokens(int T) publicint getTokens() publicboolean isMarcado() publicint getTiempoMarcado(); Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

  13. Implementación Programada de Redes de Petri publicclass Red publicint[][] matrizIncidenciaPrevia; publicint[][] matrizIncidenciaPosterior; publicint[] marcado; publicint[] marcadoInicial; 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.

  14. Creación de Redes de Petri // Transition Name Vector: (T0 ;T1 ;T2 ;T3 ;) // Position Name Vector: (P0;P1;P2;P3;P4;) // Inzidenz Matrix: { ( 1 0 0 -1 ) (-1 1 0 0 ) (-1 0 1 0 ) ( 0 -1 0 1 ) ( 0 0 -1 1 ) } // Marking Vector: (1 0 0 0 0 ) .... Editor HPsim Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

  15. Clase coordinador “Thread” Encargado de: • Hacer evolucionar el estado de la RdP en sincronía con el sistema controlado. • Controlar el disparo de las transiciones de la RdP. • Realizar las acciones sobre el sistema físico ejecutando el código asociado a los lugares de la RdP. • 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.

  16. Clase coordinador Clase madre publicclass Coordinador { public Red red; public Vector < Transicion > transicionesHabilitadas; privatefinal ReentrantLock monitor = new ReentrantLock(); Clase hija public Coordinador(Red r); protectednativevoid inicializaComunicacion(); publicvoid setTransicionesHabilitadas(); public Transicion getTransicionADisparar(); publicvoid disparaTransicion(Transicion t); Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

  17. Ejecución periódica Implementa la interfaz Runnable, puede ser lanzado como un “thread” de ejecución independiente. • 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.

  18. Ciclo de Ejecución Al principio de su ejecución el coordinador carga la RdP, la analiza y crea un vector con las transiciones habilitadas según el marcado inicial. Para ejecutar la RdP el proceso cíclico que se sigue es: • Se realiza la acción continua de los lugares marcados. • 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. • Se dispara la transición. • Se ejecuta el código asociado al desmarcado de los lugares de entrada y al marcado de los lugares de salida. • 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.

  19. 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: • transiciones sensibilizadas • lugares representantes • 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.

  20. Coordinador célula Coordinador Estación 2 Coordinador Estación 4 Coordinador Estación 3 Coordinador Estación 1 Ejecución Concurrente Monitor Estación 4 Monitor Estación 3 Monitor Estación 2 Monitor Estación 1 Monitor HMI 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.

  21. Ejecución Concurrente La ejecución de la aplicación de control se puede configurar de dos formas: • Implementación centralizada. Un solo “thread” encargado de ejecutar la RdP que controla la totalidad de la célula de fabricació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.

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

  23. 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 basurathread 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.

  24. Java para Tiempo Real jRate • Estos problemas han sido abordados en la Especificación de Java para Tiempo Real. (jRate): • Planificador expulsivo • No ejecuta "bytecodes" sino que se compila a código máquina • “RealtimeThread”, 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 NoHeapRealtimeThread, “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.

  25. Conclusiones • Objetivo fundamental: • Evaluación del lenguaje Java para la codificación de sistemas de control modelados mediante RdP. • Aplicación práctica en funcionamiento: • El control de una célula de fabricación • De este trabajo cabe destacar: • Adaptación sin problemasa Java de los métodos de implementación de RdP • 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.

  26. 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 RdP, 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 RdP con Tiempo en Java para Tiempo Real. • Aplicación de algoritmos para descomposición de RdP, para implementaciones descentralizadas y distribuidas Implementación programada de Redes de Petri en Java. Control de una célula de fabricación flexible.

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

More Related