You are on page 1of 27

Implementacin programada de Redes de

Petri en Java.
Control de una clula de fabricacin
flexible.

Mdulo Inline

Tsx Momentum
Tsx Momentum
Identificador de Productos

Tsx Momentum
Mdulo Inline

IBS PCI SC/I-T

Ramn Piedrafita Moreno Jos Luis Villarroel Salcedo


Departamento de Informtica e Ingeniera de Sistemas
Universidad de Zaragoza

CEDI. Simposio de Sistemas de Tiempo Real


Granada 15-09-2005

Introduccin

Desarrollo de sistemas de control de eventos discretos.


Avanzar en las tcnicas de control con Redes de Petri (RdP) de
sistemas complejos
Evaluacin del lenguaje Java como plataforma de
implementacin.
Continuacin de los trabajos sobre implementacin de RdP
realizados en la Universidad de Zaragoza

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Java??

Comparacin con implementaciones previas en Ada.


Primeros pasos en su aplicacin al desarrollo de sistemas de
control y empotrados.
Posibilidad de ejecutar el mismo cdigo en diferentes
plataformas.
Dos lneas de trabajo: una en Java clsico y otra en Java
para Tiempo Real ( jRate)

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Implementacin de Redes de Petri

Java como lenguaje para la implementacin de RdP con


tiempo.
Se han adaptado a Java varias tcnicas de implementacin de
RdP y se ha desarrollado una nueva, los coordinadores
concurrentes.
Se ha introducido en estas tcnicas de implementacin el
tiempo mediante retrasos asociados a los lugares
Se ha desarrollado un ejemplo de aplicacin real: el control de
una clula de fabricacin flexible.

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

La clula de fabricacin
Zona de Expedicin

Zona de Produccin

Estacin 3

Estacin 4

Estacin 5

Transporte 1

Estacin 2

Transporte 2

Estacin 1

Estacin 7
Estacin 6

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Bus Interbus

Mdulo Inline

Tsx Momentum
Tsx Momentum
Identificador de Productos

Tsx Momentum
Mdulo Inline

IBS PCI SC/I-T

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Maestros de Interbus

IBS PCI SC/I-T Phoenix Contact


Entorno Windows

CIF50-IBM Hilscher
Entorno Linux

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Bus Interbus

Estacin 1

Estacin 4

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Bus Interbus

Estacin 3

Transporte 1

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Red de Petri Estacin 1

Interpretacin de RdP en control de sistemas:


Acciones impulsionales al disparo
de transiciones
Generacin de seales de control
asociadas al marcado de lugares
Predicados que condicionan el
disparo de las transiciones
sensibilizadas
Implementacin programada de Redes de Petri en Java.
Control de una clula de fabricacin flexible.

Implementacin Programada de Redes de Petri


public class Transicion
boolean habilitada = false;
Vector <Estado> lugaresEntrada;
Vector <Estado> lugaresSalida;
int prioridad;

mtodos
public Transicion(Estado estEnt, Estado estSal);
public int getNumLugaresEntrada();
public int getNumLugaresSalida();
public int getPrioridad();
public void setPrioridad(int priorid);

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Implementacin Programada de Redes de Petri


public class Estado
int tokens = 0;
Temporizador temporizador;

mtodos
public Estado(int toks)
public void setTokens(int T)
public int getTokens()
public boolean isMarcado()
public int getTiempoMarcado();

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Implementacin Programada de Redes de Petri


public class Red
public int[][] matrizIncidenciaPrevia;
public int[][] matrizIncidenciaPosterior;
public int[] marcado;
public int[] marcadoInicial;
public Vector < Conflicto > conflictos;
public Vector < Estado > estados;
public Vector < Transicion > transiciones;

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

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

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Clase coordinador
Thread Encargado de:
Hacer

evolucionar el estado de la RdP en sincrona con el sistema


controlado.
Controlar el disparo de las transiciones de la RdP.
Realizar las acciones sobre el sistema fsico ejecutando el cdigo
asociado a los lugares de la RdP.
El acceso al bus de campo, al identificador de productos y el
intercambio de informacin con la tarea HMI, se realizar a travs
de monitores que garantizaran la exclusin mutua en el acceso a las
variables.

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Clase coordinador
Clase madre
public class Coordinador {
public Red red;
public Vector < Transicion > transicionesHabilitadas;
private final ReentrantLock monitor = new ReentrantLock();
Clase hija
public Coordinador(Red r);
protected native void inicializaComunicacion();
public void setTransicionesHabilitadas();
public Transicion getTransicionADisparar();
public void disparaTransicion(Transicion t);

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Ejecucin peridica
Implementa la interfaz Runnable, puede ser lanzado como un
thread de ejecucin independiente.

El coordinador ser una tarea de ejecucin peridica. El


periodo de ejecucin elegido es de 10 ms.
En cada periodo de ejecucin 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 peridico.

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Ciclo de Ejecucin
Al principio de su ejecucin el coordinador carga la RdP, la analiza y crea un vector
con las transiciones habilitadas segn el marcado inicial. Para ejecutar la RdP el
proceso cclico que se sigue es:

Se realiza la accin 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 condicin de
disparo se cumpla. Esta poltica tambin se aplica en caso de conflicto.

Se dispara la transicin.

Se ejecuta el cdigo asociado al desmarcado de los lugares de entrada y al


marcado de los lugares de salida.

Se actualiza el vector de transiciones habilitadas

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Bsqueda de transiciones
Para la bsqueda eficiente de transiciones habilitadas y la
actualizacin de la estructura de datos que las almacena se han
propuesto en la literatura diversas tcnicas:

transiciones sensibilizadas
lugares representantes
lugares representantes dinmicos

En el presente trabajo se han implementado las dos primeras.

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Ejecucin
Concurrente
Coordinador
Estacin 4

Coordinador
Estacin 3
Coordinador
Estacin 2
Coordinador
clula

Monitor
Estacin 4

Coordinador Estacin 1
Monitor
Estacin 3
Monitor
Estacin 2

Monitor
HMI

Monitor
Estacin 1
Funciones nativas
Variables E/S C

Orden Actualizacin Bus

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Ejecucin Concurrente
La ejecucin de la aplicacin de control se puede configurar de dos formas:

Implementacin centralizada. Un solo thread encargado de


ejecutar la RdP que controla la totalidad de la clula de
fabricacin.

Implementacin descentralizada: Mltiples coordinadores pueden


ser lanzados en concurrencia, realizando cada uno de ellos la
ejecucin de la subred de Petri encargada de controlar una de las
estaciones de la clula. La tcnica de implementacin en cada
coordinador ser centralizada.

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Desarrollo de aplicaciones de control

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Java como plataforma de Ejecucin


Desarrollo de aplicaciones de control:
Ejecucin concurrente de threads.
Caractersticas que dificultan su uso para aplicaciones de control:
Es un lenguaje Interpretado. Tcnica compilacin "Just in Time" se
acelera la interpretacin de "bytecode".
Enlazado dinmico de clases dinmicamente (descarga de clases
remotas ).
Recoleccin de basura thread de prioridad mxima.
El planificador no es preemptivo (expulsivo) ni posee prioridades
estticas, ejecucin en el sistema (row robbin).
Estas ltimas caractersticas suponen un grado de impredecibilidad
temporal en la ejecucin de un programa multiflujo.

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

Java para Tiempo Real jRate


Estos problemas han sido abordados en la Especificacin de Java para
Tiempo Real. (jRate):
Planificador expulsivo
No ejecuta "bytecodes" sino que se compila a cdigo mquina
RealtimeThread, peridicos, aperidicos y espordicos
Clases tratamiento de eventos asncronos y para la transferencia
asncrona del control
Relojes de tiempo real de alta resolucin
Implementa NoHeapRealtimeThread, threads que se pueden
ejecutar siempre antes que el recolector de basura.
Caractersticas que proporcionan a Java Tiempo Real la predecibilidad
temporal necesaria para la ejecucin de aplicaciones de control.
Implementacin programada de Redes de Petri en Java.
Control de una clula de fabricacin flexible.

Conclusiones
Objetivo fundamental:
Evaluacin del lenguaje Java para la codificacin de sistemas de
control modelados mediante RdP.
Aplicacin prctica en funcionamiento:
El control de una clula de fabricacin
De este trabajo cabe destacar:
Adaptacin sin problemas a Java de los mtodos de implementacin
de RdP
La orientacin a objeto del lenguaje y el soporte multiplataforma han
facilitado el desarrollo de la aplicacin de control.
La planificacin de tareas de Java impiden que la aplicacin sea
predecible . Se descarta el uso de Java clsico para la
implementacin de sistemas de control de Tiempo Real.
Implementacin programada de Redes de Petri en Java.
Control de una clula de fabricacin flexible.

Futuras Lneas de Investigacin


Se est finalizando la implementacin en Java Tiempo Real.
Prximas investigaciones en los campos de la implementacin
programada de RdP, de los lenguajes y plataformas de
ejecucin y tiempo real.
Prximos pasos sern:
la migracin a sistemas operativos en tiempo real,
la implementacin de RdP con Tiempo en Java para
Tiempo Real.
Aplicacin de algoritmos para descomposicin de RdP,
para implementaciones descentralizadas y distribuidas
Implementacin programada de Redes de Petri en Java.
Control de una clula de fabricacin flexible.

Control en Tiempo Real

Implementacin programada de Redes de Petri en Java.


Control de una clula de fabricacin flexible.

You might also like