Implementaci - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Implementaci

Description:

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 Salcedo – PowerPoint PPT presentation

Number of Views:63
Avg rating:3.0/5.0
Slides: 28
Provided by: OscarGarc
Category:

less

Transcript and Presenter's Notes

Title: Implementaci


1
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

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)

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.

5
Plataforma de desarrollo
  • Implementación de diferentes técnicas de control
    y diferentes formas de ejecutar las RdP.
  • Biblioteca de clases Java de RdP
  • Clase Lugar
  • Clase Transición
  • Clase Red de Petri
  • Las tareas encargadas de la ejecución de forma
    concurrente de la RdP.
  • Ejecución centralizada por el thread
    coordinador o por varios coordinadores ( control
    simultaneo de varias máquinas).

6
La célula de fabricación
7
Bus Interbus
Módulo Inline
Tsx Momentum
Tsx Momentum
Identificador de Productos
Tsx Momentum
Módulo Inline
IBS PCI SC/I-T
8
Maestros de Interbus
  • CIF50-IBM Hilscher
  • Entorno Linux
  • IBS PCI SC/I-T Phoenix Contact
  • Entorno Windows

9
Bus Interbus
Estación 4
Estación 1
10
Bus Interbus
Estación 3
Transporte 1
11
Redes de Petri
  • Descripción funcional de comportamientos en los
    sistemas de eventos discretos
  • lugar parte del estado a la que puede llegar el
    sistema
  • A las transiciones se les asocian los eventos

12
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

13
RdP Estación 3
14
Implementación Programada de Redes de Petri
  • public class Transicion
  • boolean habilitada false
  • Vector ltEstadogt lugaresEntrada
  • Vector ltEstadogt 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)

15
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()

16
Implementación Programada de Redes de Petri
  • public class Red
  • public int matrizIncidenciaPrevia
  • public int matrizIncidenciaPosterior
  • public int marcado
  • public int marcadoInicial
  • public Vector lt Conflicto gt conflictos
  • public Vector lt Estado gt estados
  • public Vector lt Transicion gt transiciones

17
Creación de Redes de Petri
// Transition Name Vector (T0 T1 T2 T3 ) //
Position Name Vector (P0P1P2P3P4) //
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
18
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.

19
Clase coordinador
  • Clase madre
  • public class Coordinador
  • public Red red
  • public Vector lt Transicion gt transicionesHabilitad
    as
  • 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)

20
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

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

22
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

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

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

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

27
Desarrollo de aplicaciones de control
28
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.

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

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

31
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

32
Control en Tiempo Real
Write a Comment
User Comments (0)
About PowerShow.com