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

Módulo Inline

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Módulo Inline

Implementación programada de Redes de Implementación programada de Redes de Petri en Java. Petri en Java.

Control de una célula de fabricación Control de una célula de fabricación flexible.flexible.

Módulo Inline

Módulo Inline

Tsx Momentum

Tsx Momentum

Tsx Momentum

Identificador de Productos

IBS PCI SC/I-T

CEDI. Simposio de Sistemas de Tiempo Real Granada 15-09-2005

Ramón Piedrafita Moreno José Luis Villarroel Salcedo

Departamento de Informática e Ingeniería de SistemasUniversidad de Zaragoza

Page 2: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

IntroducciónIntroducción

Desarrollo de sistemas de control de eventos discretos. Desarrollo de sistemas de control de eventos discretos. Avanzar en las técnicas de control con Redes de Petri (RdP) de Avanzar en las técnicas de control con Redes de Petri (RdP) de

sistemas complejos sistemas complejos Evaluación del lenguaje Java como plataforma de Evaluación del lenguaje Java como plataforma de

implementación.implementación. Continuación de los trabajos sobre implementación de RdP Continuación de los trabajos sobre implementación de RdP

realizados en la Universidad de Zaragozarealizados en la Universidad de Zaragoza

Page 3: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Java??Java??

Comparación con implementaciones previas en Ada. Comparación con implementaciones previas en Ada. Primeros pasos en su aplicación al desarrollo de sistemas de Primeros pasos en su aplicación al desarrollo de sistemas de

control y empotrados.control y empotrados. Posibilidad de ejecutar el mismo código en diferentes Posibilidad de ejecutar el mismo código en diferentes

plataformas.plataformas. Dos líneas de trabajo: una en Java “clásico” y otra en Java Dos líneas de trabajo: una en Java “clásico” y otra en Java

para Tiempo Real ( jRate)para Tiempo Real ( jRate)

Page 4: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Implementación de Redes de PetriImplementación de Redes de Petri

Java como lenguaje para la implementación de RdP con Java como lenguaje para la implementación de RdP con tiempo.tiempo.

Se han adaptado a Java varias técnicas de implementación de Se han adaptado a Java varias técnicas de implementación de RdP y se ha desarrollado una nueva, los coordinadores RdP y se ha desarrollado una nueva, los coordinadores concurrentes.concurrentes.

Se ha introducido en estas técnicas de implementación el Se ha introducido en estas técnicas de implementación el tiempo mediante retrasos asociados a los lugarestiempo mediante retrasos asociados a los lugares

Se ha desarrollado un ejemplo de aplicación real: el control de Se ha desarrollado un ejemplo de aplicación real: el control de una célula de fabricación flexible.una célula de fabricación flexible.

Page 5: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

La célula de fabricaciónLa célula de fabricación

Estación 1Estación 2

Estación 3 Estación 4

Estación 6

Estación 7

Zona de Producción Zona de Expedición

Estación 5Transporte 1 Transporte 2

Page 6: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Módulo Inline

Módulo Inline

Tsx Momentum

Tsx Momentum

Tsx Momentum

Identificador de Productos

IBS PCI SC/I-T

Bus

Int

erbu

sB

us I

nter

bus

Page 7: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Maestros de InterbusMaestros de Interbus

IBS PCI SC/I-T Phoenix ContactIBS PCI SC/I-T Phoenix Contact

Entorno WindowsEntorno Windows

CIF50-IBM HilscherCIF50-IBM Hilscher

Entorno LinuxEntorno Linux

Page 8: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Estación 1 Estación 4

Bus InterbusBus Interbus

Page 9: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Transporte 1Estación 3

Bus InterbusBus Interbus

Page 10: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Red de Petri Estación 1Red de Petri Estación 1

Interpretación de RdP en control de sistemas:Interpretación de RdP en control de sistemas:•Acciones impulsionales al disparo Acciones impulsionales al disparo de transicionesde transiciones•Generación de señales de control Generación de señales de control asociadas al marcado de lugares asociadas al marcado de lugares •Predicados que condicionan el Predicados que condicionan el disparo de las transiciones disparo de las transiciones sensibilizadassensibilizadas

Page 11: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Implementación Programada de Redes de PetriImplementación Programada de Redes de Petripublicpublic classclass Transicion Transicion booleanboolean habilitada = habilitada = falsefalse; ;

Vector <Estado> lugaresEntrada; Vector <Estado> lugaresEntrada; Vector <Estado> lugaresSalida; Vector <Estado> lugaresSalida; intint prioridad; prioridad;

……métodosmétodospublicpublic Transicion(Estado estEnt, Estado estSal); Transicion(Estado estEnt, Estado estSal);publicpublic intint getNumLugaresEntrada(); getNumLugaresEntrada();publicpublic intint getNumLugaresSalida(); getNumLugaresSalida();publicpublic intint getPrioridad(); getPrioridad();publicpublic voidvoid setPrioridad( setPrioridad(intint priorid); priorid);

Page 12: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Implementación Programada de Redes de PetriImplementación Programada de Redes de Petri

publicpublic classclass Estado Estado intint tokens = 0; tokens = 0; Temporizador temporizador;Temporizador temporizador;

……métodosmétodospublicpublic Estado( Estado(intint toks) toks) publicpublic voidvoid setTokens( setTokens(intint T) T)publicpublic intint getTokens() getTokens() publicpublic booleanboolean isMarcado() isMarcado()

publicpublic intint getTiempoMarcado(); getTiempoMarcado();

Page 13: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Implementación Programada de Redes de PetriImplementación Programada de Redes de Petri

publicpublic classclass Red Red publicpublic intint[][] matrizIncidenciaPrevia; [][] matrizIncidenciaPrevia; publicpublic intint[][] matrizIncidenciaPosterior; [][] matrizIncidenciaPosterior; publicpublic intint[] marcado; [] marcado; publicpublic intint[] marcadoInicial; [] marcadoInicial; publicpublic Vector < Conflicto > conflictos; Vector < Conflicto > conflictos; publicpublic Vector < Estado > estados; Vector < Estado > estados; publicpublic Vector < Transicion > transiciones; Vector < Transicion > transiciones;

Page 14: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Creación de Redes de PetriCreación de Redes de Petri

Editor HPsim

// 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 )....

Page 15: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Clase coordinadorClase coordinador““Thread” Encargado de:Thread” Encargado de:

Hacer evolucionar el estado de la RdP en sincronía con el Hacer evolucionar el estado de la RdP en sincronía con el sistema controlado. sistema controlado. Controlar el disparo de las transiciones de la RdP. Controlar el disparo de las transiciones de la RdP. Realizar las acciones sobre el sistema físico ejecutando el Realizar las acciones sobre el sistema físico ejecutando el código asociado a los lugares de la RdP. código asociado a los lugares de la RdP. El acceso al bus de campo, al identificador de productos y el El acceso al bus de campo, al identificador de productos y el intercambio de información con la tarea HMI, se realizará a intercambio de información con la tarea HMI, se realizará a través de monitores que garantizaran la exclusión mutua en el través de monitores que garantizaran la exclusión mutua en el acceso a las variables.acceso a las variables.

Page 16: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Clase coordinadorClase coordinador

Clase madreClase madrepublicpublic classclass Coordinador { Coordinador {

publicpublic Red red; Red red; publicpublic Vector < Transicion > transicionesHabilitadas; Vector < Transicion > transicionesHabilitadas; privateprivate finalfinal ReentrantLock monitor = ReentrantLock monitor = newnew

ReentrantLock();ReentrantLock();

Clase hijaClase hijapublicpublic Coordinador(Red r); Coordinador(Red r);

protectedprotected nativenative voidvoid inicializaComunicacion(); inicializaComunicacion();publicpublic voidvoid setTransicionesHabilitadas(); setTransicionesHabilitadas();publicpublic Transicion getTransicionADisparar(); Transicion getTransicionADisparar();publicpublic voidvoid disparaTransicion(Transicion t); disparaTransicion(Transicion t);

Page 17: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Ejecución periódicaEjecució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.

Page 18: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Ciclo de EjecuciónCiclo 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

Page 19: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Búsqueda de transicionesBú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.

Page 20: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Coordinador Estación 4

Coordinador Estación 3

Coordinador Estación 2

Coordinador Estación 1Coordinador

célula

MonitorEstación 1

MonitorEstación 2

MonitorEstación 3

MonitorEstación 4

Funciones nativasVariables E/S C

MonitorHMI

Orden Actualización Bus

Ejecución Ejecución ConcurrenteConcurrente

Page 21: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Ejecución ConcurrenteEjecució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.

Page 22: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Desarrollo de aplicaciones de controlDesarrollo de aplicaciones de control

Page 23: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Java como plataforma de EjecuciónJava como plataforma de EjecuciónDesarrollo 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.

Page 24: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Java para Tiempo Real jRateJava 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.

Page 25: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

ConclusionesConclusionesObjetivo 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 problemas a 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.

Page 26: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Futuras Líneas de InvestigaciónFuturas Líneas de InvestigaciónSe 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

Page 27: Módulo Inline

Implementación programada de Redes de Petri en Java.Implementación programada de Redes de Petri en Java.

Control de una célula de fabricación flexible.Control de una célula de fabricación flexible.

Control en Tiempo RealControl en Tiempo Real