Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Implementación programada de redes de Petri en Java. Control de una célula de fabricación flexible (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

RdP Estación 3

Monografias.com

Implementación Programada de Redes de Petri
public class Transicion
boolean habilitada = false;
Vector < Estado> lugaresEntrada;
Vector < Estado> lugaresSalida;
int prioridad;

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

Monografias.com

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

métodos
public Estado(int toks)
public void setTokens(int T)
public int getTokens()
public boolean isMarcado()
public int getTiempoMarcado();

Monografias.com

Implementación 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;

Monografias.com

Creació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 )
….

Monografias.com

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.

Monografias.com

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);

Monografias.com

Clase coordinador
En las clases descendientes se deberán implementar los métodos encargados del “control real”:

Las acciones realizadas en el marcado, desmarcado o mantenimiento del marcado de un lugar de la RdP
Evaluar la condición de disparo de las transiciones
creación de temporizadores para conocer y controlar el tiempo de marcado de un lugar.
Acceso al bus de campo y al identificador de productos

Monografias.com

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.

Monografias.com

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

Monografias.com

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.

Monografias.com

(Gp:) Coordinador Estación 4

(Gp:) Coordinador Estación 3

(Gp:) Coordinador Estación 2

(Gp:) Coordinador Estación 1

(Gp:) Coordinador célula

Monitor
Estación 1
Monitor
Estación 2
Monitor
Estación 3
Monitor
Estación 4
Funciones nativas
Variables E/S C
Monitor
HMI
Orden Actualización Bus
Ejecución Concurrente

Monografias.com

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.

Monografias.com

Ejecución Concurrente

Comunicación entre “threads” a través de monitores
Monitores de las estaciones donde “residirán” el valor de las variables de entrada y salida y variables referidas a su estado en el control (automático, manual, fallo…).
Tarea gráfica con función HMI “thread” de menor prioridad. Escribe en un monitor las órdenes de mando que el operador envía al sistema de control.

Monografias.com

Desarrollo de aplicaciones de control

Monografias.com

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.

Monografias.com

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.

Monografias.com

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

Monografias.com

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

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter