Informe Final - zimmcl/Programacion-Concurrente GitHub Wiki

Sistema de manufacturación robotizado

1. Objetivo

Parametrizar un problema a través de las redes de Petri, para luego construir y ejecutar un framework asociado en lenguaje Java.

El sistema a resolver, es el de un sistema de manufacturación roborizado consistente de tres robots y cuatro máquinas que procesan tres tipos de piezas diferentes.

2. Introducción

Una Red de Petri (RdP) es un modelo gráfico bipartito, formal y abstracto para describir y analizar el flujo de información. Conforma una herramienta matemática que puede aplicarse especialmente a los sistemas paralelos que requieran simulación y modelado de la concurrencia en los recursos compartidos.

Los siguientes elementos conforman una RdP: *

Plazas: graficados por un círculo, permiten representar estados parciales del sistema y toman valores enteros. *

Token: representan el valor específico de un estado parcial o plaza, interpretándose como recursos. El número y ubicación en las plazas varían dinámicamente en función de la ejecución de la red. *

Transiciones: graficadas por segmento rectos, representan el conjunto de sucesos que provocan la modificación de los estados del sistema. *

Arcos dirigidos: indican las conexiones entre lugares y transiciones, siendo esta asociación bidireccional, de plaza(s) a transición(es) o de transición(es) a plaza(s). *

Peso: número entero asociado a cada arco, que indica la cantidad de tokens que se consumen o generan al atravesarlo. Los arcos que no especifican un peso, se suponen con peso unitario.

2.1 Definición matemática de la Red de Petri

A los fines del trabajo práctico definimos a la RdPT (red de Petri temporal) como una tupla N\, donde: 1.

P = {P1, P2, P3, Pm}, conjunto finito y no vacío de lugares 2.

T = {t1, t2, t3, tn}, conjunto finito y no vacío de transiciones 3.

P ∩ T = Ø 4.

P ∪ T ≠ Ø 5.

F : (P x T)∪(T x P)→{0,1,2,3,...}, conjunto de arcos ponderados (relación de flujo) 6.

Pre (I-): P x T → N, matriz de incidencia negativa. Esta matriz es de dimensión mxn y representa los pesos de los arcos que ingresan desde las plazas P a las transiciones T 7.

Post (I+) T x P → N, matriz de incidencia positiva. Esta matriz es de dimensión mxn y representa los pesos de los arcos que salen desde las transiciones T hacia las plazas P 8.

A partir de las dos últimas definiciones se obtiene la matriz de incidencia: I = I+ - I- 9.

M0 es la función de marcado inicial M0 : P→N 10.

CIS es una correspondencia de intervalos estáticos, CIS : T→Q+ x (Q+ ∪ ∞), donde Q+ es el conjunto de los números racionales positivos junto con el cero. Esto último asocia a cada transición un par (CIS(ti) = (αi, βi)), que define un intervalo temporal, por lo que se debe verificar: 0≤αi≤∞, 0≤βi≤∞, y αi≤βi si βi≠∞ ó αi\<βi si βi=∞

2.2 Formalismo a utilizar durante el trabajo

La elección de las RdPT conlleva que se asuma una semántica de tiempo de sensibilización (el parámetro temporal determina el tiempo que ha de transcurrir desde que una transición queda sensibilizada hasta que se dispara, procediéndose entonces a la retirada y colocación de marcas de forma atómica) y de tiempo fuerte (se especifica un intervalo de tiempo en el cual el disparo debe producirse). Con el fin de reducir aún más el indeterminismo en el modelo base consideramos el uso de las siguientes extensiones:

  • Eventualmente asociaremos predicados a las transiciones, que condicionarán el disparo de las mismas (políticas). Los predicados dependerán de datos del sistema que no serán explicitamente representados en la red.
  • Podremos asignar prioridades a las transiciones, que serán utilizadas para resolver conflictos.
  • Para las transiciones que no tengan asociado un intervalo de disparo explícito supondremos un intervalo de [0,0], es decir el disparo será inmediato.

2.3 Modelado de sistemas mediante RdPT

En el modelado de sistemas es preciso representar de manera no ambigua determinados aspectos como los siguientes:

  • Eventos a los que debe responder el sistema.
  • Los patrones temporales que rigen estos eventos, es decir, su periodicidad o aperiodicidad.
  • Las acciones activadas por estos eventos y sus características temporales.
  • Las interacciones entre las distintas acciones, que pueden consistir en sincronizaciones, comunicaciones, relaciones de precedencia u otras.

2.4 Tipos de transiciones. Unidades de ejecución

Con el fin de mostrar en nuestro modelo los diferentes papeles que una transición puede representar, y con el propósito último de hacer más clara la generación de código, vamos a distinguir tres tipos de transiciones que, junto con sus lugares de entrada, conformarán los elementos de modelado o unidades de ejecución básicos. Los tipos de transiciones son los siguientes:

  1. Transiciones CODE. Cada una de estas transiciones junto con sus lugares de entrada representan una actividad desarrollada por el sistema. Este código comenzará a ejecutarse en el momento en que la transición sea sensibilizada, es decir, todos sus lugares de entrada estén marcados. Este tipo de transiciones están marcadas con dos valores temporales [a,b]. En el modelo, el significado de estos valores está asociado al tiempo de cómputo del código que representa. En el mejor caso la ejecución durará a y en el peor b. La finalización de la ejecución está representada por el disparo de la transición. Por lo tanto, la ejecución de la actividad asociada ocupa un tiempo entre [a,b]. Dibujaremos una transición CODE con un rectángulo de color negro.

  2. Transiciones TIME. Son transiciones asociadas a alguna actividad temporal. Están etiquetadas con un intervalo temporal, si bien en este caso es puntual [a,a], donde a representa el instante, a partir del de sensibilización de la transición, en el que se producirá el evento. Dibujaremos este tipo de transición con un rectángulo de color blanco.

  3. Transiciones SYCO. Son el resto de transiciones, y no tienen significado temporal explícito asociado. Su disparo será inmediato, lo que supone un intervalo temporal implícito de [0,0]. Dibujaremos este tipo de transición con un segmento negro delgado.

2.5 Unidades de ejecución

Como consecuencia de la anterior clasificación distinguiremos entre tres unidades de ejecución:

  1. Unidad CODE: la formada por una transición CODE y sus lugares de entrada que modelará la ejecución de un cierto código en el sistema; esta unidad comenzará a ejecutarse cuando se sensibilice su transición, estará en ejecución mientras sus lugares de entrada permanezcan marcados, y terminará en un instante determinado por su intervalo temporal, o si deja de estar sensibilizada (abortada).

  2. Unidad TIME: la integrada por una transición TIME y sus lugares de entrada, que corresponderá a la posible ocurrencia de un evento temporal; la unidad se ejecutará cuando transcurra la cantidad de tiempo especificada por su intervalo temporal, siempre que la transición permanezca sensibilizada de forma continuada durante esa cantidad de tiempo.

  3. Unidad SYCO: la formada por una transición SYCO que representa acciones de control o sincronización; se ejecuta inmediatamente en el momento en que se detecta su sensibilización.

3. Desarrollo

La red de Petri propuesta modela el sistema de manufactura robotizado.

Las plazas de p21 a p23 representan las etapas de la línea de producción de la pieza B, las plazas de p11 a p18 representan las etapas de la línea de producción de la pieza A consistente en dos caminos de producción, y las plazas de p31 a p35 representan las etapas de la línea de producción de la pieza C.

Las plazas p10, p20 y p30 representan los inventarios de cada línea de producción, y las marcas de cada una son la cantidad máxima de productos que pueden estar simultáneamente en cada línea de producción. Las piezas B y C presentan un único camino o traza de producción por tal motivo solo una única pieza se puede estar produciendo. Por el contrario la pieza A presenta dos caminos y a partir de cómo se estructura la red podemos determinar que la cantidad máxima de producto es cinco ya que, las plazas p12 y p13 pueden estar ocupadas en simultáneo a diferencia de las plazas p14 y p15 en donde debido al uso compartido del recurso de la plaza r2 solo puede continuar un único camino. Para concluir el análisis podemos decir que los productos pueden situarse en las plazas p11, p12, p13, p14 y p16 ó p11, p12, p13, p15 y p17 dando en ambos casos un total de cinco productos en simultáneo.

La Figura 1 muestra la red en cuestión, la cual presenta interbloqueo.

{Imagen}

El disparo de las transiciones t21←R2, t22←M2 | t22→R2, t23←R2 | t22→M2, t24→R2 causan el movimiento de tokens (producto) entre las plazas de la línea de producción de la pieza B, el disparo de las transiciones t10←R1, t11←M1 | t11→R1, t12←M3 | t12→R1, t13←R2 | t13→M1, t14←R2 | t14→M3, t15←M2 | t15→R2, t16←M4 | t16→R2, t17←R3 | t17→M2, t18←R3 | t18→M4, t19→R3 causan movimiento de tokens (producto) entre las plazas de la línea de producción de la pieza A, y el disparo de las transiciones t31←R3, t32←M4 | t32→R3, t33←R2 | t33→M4, t34←M3 | t34→R2, t35←R1 | t35→M3, t36→R1 causan el movimiento de tokens (producto) entre las plazas de la línea de producción de la pieza C. Las plazas de M1 a M4 y de R1 a R3 representan la disponibilidad de los recursos del sistema, máquinas y robots respectivamente.

La precedente notación se realizo con el objeto de facilitar la lectura y análisis de la red. El etiquetado presenta una o dos partes dependiendo si toma recurso (izquierda), devuelve recurso (derecha), o ambos en simultáneo, representando la flecha el arco que une la plaza con la transición.

3.1 Análisis de interbloqueo

Debido a que la configuración inicial de la red presentaba interbloqueo, se realizo un análisis del árbol de alcanzabilidad buscando los nodos muertos a los fines de imponerle restricciones a la red mediante plazas de control ci, garantizando de esta manera su normal funcionamiento. Desarrollo en Anexo

{imagen de RdP sin DL}

La Figura 2 muestra como queda la red una vez impuestas las restricciones para evitar el interbloqueo.

###Plazas y Transiciones

Plaza Descripción Transición Descripción
p10 Pieza A esperando en deposito de entrada I1 | Pieza A procesada en deposito de salida O1 t10 Selección de Pieza A de deposito I1 por R1
p11 Pieza A en posesión de R1 t11 Carga de Pieza A en M1 por R1 para Procesamiento 1
p12 Pieza A en máquina M1 en Procesamiento 1 t12 Carga de Pieza A en M3 por R1 para Procesamiento 1
p13 Pieza A en máquina M3 en Procesamiento 1 t13 Toma de Pieza A procesada de M1 por parte de R2
p14 Pieza A procesada en posesión de R2 t14 Toma de Pieza A procesada de M3 por parte de R2
p15 Pieza A procesada en posesión de R2 t15 Carga de Pieza A en M2 por R2 para Procesamiento 2
p16 Pieza A en máquina M2 en Procesamiento 2 t16 Carga de Pieza A en M4 por R2 para Procesamiento 2
p17 Pieza A en máquina M4 en Procesamiento 2 t17 Toma de Pieza A procesada de M2 por parte de R3
p18 Pieza A procesada en posesión de R3 t18 Toma de Pieza A procesada de M4 por parte de R3
t19 Desplazamiento de Pieza A a deposito O1 por parte de R3
p20 p20: Pieza B esperando en deposito de entrada I2 | Pieza B procesada en deposito de salida O2 t21 Selección de Pieza B de deposito I2 por R2
p21 Pieza B en posesión de R2 t22 Carga de Pieza B en M2 por R2 para Procesamiento 1
p22 Pieza B en máquina M2 en Procesamiento 1 t23 t23: Toma de Pieza B procesada de M2 por parte de R2
p23 Pieza B procesada en posesión de R2 t24 Desplazamiento de Pieza B a deposito O2 por parte de R2
p30 Pieza C esperando en deposito de entrada I3 | Pieza C procesada en deposito de salida O3 t31 Selección de Pieza C de deposito I3 por R3
p31 Pieza C en posesión de R3 t32 Carga de Pieza C en M4 por R1 para Procesamiento 1
p32 Pieza C en máquina M4 en Procesamiento 1 t33 Toma de Pieza C procesada de M4 por parte de R2
p33 Pieza C procesada en posesión de R2 t34 Carga de Pieza C en M3 por R2 para Procesamiento 2
p34 Pieza C en máquina M3 en Procesamiento 2 t35 Toma de Pieza C procesada de M3 por parte de R1
p35 Pieza C procesada en posesión de R1 t36 Desplazamiento de Pieza C a deposito O3 por parte de R1

###Recursos

Plaza Descripción
m1 Máquina 1
m2 Máquina 2
m3 Máquina 3
m4 Máquina 4
r1 Robot 1
r2 Robot 2
r3 Robot 3

###Plazas de control

Plaza Descripción
c1 Control 1
c2 Control 2
⚠️ **GitHub.com Fallback** ⚠️