Anda di halaman 1dari 16

Murillo Soto, Luis Diego.

Simulación de un sistema de manufactura flexible con redes de Petri coloreadas


Tecnología en Marcha, Vol. 23, N.° 1, Enero-Marzo 2010, P. 47-62

Simulación de un sistema de
manufactura flexible con redes de
Petri coloreadas
Fecha de recepción: 14/04/2009
Fecha de aceptación:20/06/2009 Luis Diego Murillo Soto1

Palabras clave Coloreadas (RdPC) y su implementación


Sistema de Manufactura Flexible (SMF), se realizó con la herramienta CPNTool.
Redes de Petri Coloreadas (RdPC),
CPNTool, Simulación.
Abstract
One way to study a flexible manufacturing
Key words system is making a model of the system
Flexible manufacturing systems (FMS), and simulates it, to observe its behavior
Coloured Petri Nets (CPN), CPNTool, indices, graphs, etc. Following this
Simulation. guideline, the present work plans, the
simulation of a production line with three
machines, two robots and three types
Resumen of different products. For this system is
Una forma de estudiar un sistema de desired to obtain machines utilization,
manufactura flexible es por medio de queues average size, charts of queues
un modelo del sistema y someterlo a un behavior and the automatic generation of
simulacro para observar sus índices de
the diagram Gantt. The modeled one of
comportamiento, gráficas, etc. Siguiendo
production line was made with Coloured
esta pauta, el presente trabajo plantea la
Petri Nets (CPN) and its implementation
simulación de una línea de producción
con tres máquinas, dos robots y tres tipos was made with the CPNTool tool.
de productos distintos. Con dicho sistema
se desea obtener, en forma automática,
Introducción
porcentajes del uso de las máquinas,
tamaño promedio de las colas, gráficas Este artículo describe los resultados de un
del comportamiento de las colas y el proyecto2 académico realizado a finales del
diagrama Gantt. El modelado de la línea de 2008, cuyos objetivos específicos fueron
producción se realizó con Redes de Petri los siguientes:

1. Profesor de la Escuela de Ingeniería Electromecánica del Instituto Tecnológico de Costa Rica.


Correo electrónico: lmurillo@itcr.ac.cr
2. Proyecto desarrollado en el Seminario II de la Maestría en Ingeniería Eléctrica de la UCR.

Enero - Marzo 2010 47


• Investigar fuentes bibliográficas que se brindan recomendaciones para futuros
relacione las RdPC y la manufactura. trabajos.
• Seleccionar una herramienta
computacional de uso libre que permita Planteamiento del problema y
construir, editar y simular modelos sus supuestos
con RdPC.
El sistema de manufactura que se desea
• Dominar la herramienta seleccionada. modelar cuenta con tres máquinas, dos
• Modelar y simular una celda de brazos robot de siete grados de libertad
manufactura flexible. y seis almacenes de materiales que se
encuentran a la entrada y salida de cada
Este documento pretende mostrar hechos máquina. En total, la línea de producción
importantes del proceso de investigación trabaja tres tipos de producto o materiales,
por lo que se dividirá en seis secciones. La los cuales llamaremos “A”, “B” y “C”.
sección II plantea el problema a resolver, La figura 1 muestra un esquema del
los requerimientos y los supuestos. proceso productivo. Para este proceso de
La sección III presenta los principales manufactura, se desea construir un modelo
criterios utilizados para la selección con RdPC y hacer una simulación con el
de la herramienta, así como una breve fin de:
introducción de la misma. La sección • Generar automáticamente el diagrama
IV consiste en la definición matemática de GANTT, que muestre el recorrido
de las Redes de Petri Coloreadas con la de las piezas a lo largo de todo el
finalidad de conocer cada componente proceso.
y así eliminar ambigüedades cuando
• Generar porcentajes de utilización de
se presente el modelo. En la sección
cada máquina y de cada robot.
V se presenta el modelo del proceso
realizado con la herramienta CPNTool, • Generar los promedios ponderados de
así como una explicación de cada parte piezas en cada cola.
de la RdPC. La sección VI muestra los • Generar el conjunto de datos para
resultados de la simulación, gráficas e construir las gráficas de material en
índices. Finalmente, en la última sección cola.

Figura 1. Esquema del proceso productivo que se desea modelar. Se observa tres tipos de productos, las colas de espera, tres
máquinas y dos robots.

48 Vol. 23, N.° 1 2010


Dado que este es un problema teórico especificó en N(10,4), cuyo significado
que no responde a ningún proceso de es que, en promedio, cada diez unidades
manufactura existente, se deberá suponer de tiempo arriba a la celda una pieza del
la taza de llegadas de nuevos objetos λ, tipo A, B, o C; además la curva normal
así como las duraciones de los objetos presenta una varianza de cuatro, que la
cuando una determinada máquina o robot hace más abierta o achatada. La selección
los esté manipulando. Las duraciones de cuál pieza ingresa al sistema se realiza
de los tiempos de manipulación de aleatoriamente (distribución uniforme). El
cada máquina se presume que poseen cuadro 1 asigna las duraciones para cada
un comportamiento estadístico, por lo máquina del sistema según el tipo de
que se utiliza la función de distribución pieza.
normal, N(μ,ν) con μ como la media y ν
Para el modelo del robot de siete grados
como la varianza, lo cual permitirá que el
de libertad, se utilizó como referencia el
modelo tenga un comportamiento “real”.
ARMDROID 2001 de Lab Volt. Si se
Por ejemplo, la taza de llegadas λ se
estudia su operación, se determina que
una forma de modelar el robot es mediante
Cuadro 1. Asignación de duraciones los puntos de referencia que se programan
para recoger, trasladar, entregar una pieza
y devolverse. De esta manera se determina
Material Máquina 1 Máquina 2 Máquina 3
que el robot posee seis puntos de referencia
A N(20,1) N(10,1) N(5,1) y los recorre en ocho movimientos distintos.
B N(10,1) N(15,1) N(20,1) El cuadro 2 muestra las duraciones de cada
movimiento, según el tipo de pieza para
C N(15,1) N(20,1) N(10,1)
ambos brazos robots.

Cuadro 2. Duraciones para cada movimiento de los robots, según producto a manipular.

Tipo de Producto
Movimiento del robot A B C
Robot 1 Robot 2 Robot 1 Robot 2 Robot 1 Robot 2
Del Punto 1 al Punto 2: (P1→P2)
N(2,1) N(2,1) N(2,1) N(2,1) N(2,1) N(2,1)
Baja y abre la pinza
Del Punto 2 al Punto 3: (P2→P3)
N(1,1) N(1,1) N(1,1) N(1,1) N(1,1) N(1,1)
Cierra la pinza (toma objeto)
Del Punto 3 al Punto 1: (P3→P1)
N(2,1) N(3,1) N(3,1) N(4,1) N(2,1) N(3,1)
Mueve arriba brazo
Del Punto 1 al Punto 4: (P1→P4)
N(5,1) N(5,1) N(6,1) N(6,1) N(4,1) N(4,1)
Traslado de la pieza
Del Punto 4 al Punto 5: (P4→P5)
N(2,1) N(3,1) N(3,1) N(4,1) N(2,1) N(3,1)
Baja la pinza
Del Punto 5 al Punto 5: (P5→P6)
N(1,1) N(1,1) N(1,1) N(1,1) N(1,1) N(1,1)
Abre pinza (entrega objeto)
Del Punto 6 al Punto 4: (P6→P4)
N(2,1) N(2,1) N(2,1) N(2,1) N(2,1) N(2,1)
Sube el brazo
Del Punto 4 al Punto 1: (P4→P1)
N(3,1) N(3,1) N(3,1) N(3,1) N(3,1) N(3,1)
Retorno del brazo

Enero - Marzo 2010 49


Búsqueda y selección de la y ambos softwares fueron desarrollados
herramienta por la Universidad de Aarhus, bajo la guía
La búsqueda de un software adecuado para de Kurt Jensen, proponente de las Redes
editar y simular RdPC es un proceso que de Petri Coloreadas. Dado que CPNTool
consume gran cantidad de tiempo, debido a cumple con todos los requerimientos
la disponibilidad de numerosos paquetes en planteados, se escogió esta herramienta
la World Wide Web. Por ejemplo, la página para su aprendizaje, así como para la
“Petri Nets World” de la Universidad de construcción y simulación del sistema de
Hamburgo [11], registra más de setenta manufactura.
herramientas de evaluación/simulación y CPNTool y otras herramientas
cerca de dieciséis de ellas corresponden a
herramientas para trabajar con Redes de La herramienta CPNTool es un software
Petri Coloreadas. La selección formal de especializado en la declaración, simulación
un software implica que, con anterioridad, y análisis de Redes de Petri Coloreadas
se debe definir una serie de requerimientos Jerarquizadas Temporizadas. Esta sección
de evaluación tales como: desempeño, presenta los componentes más importantes
tamaño, fiabilidad, robustez, portabilidad, de la interfase gráfica sin pretender ser
usabilidad, etc., sin embargo esto no es un tutorial. Existe literatura especializada
factible de realizar, por lo que se recurrirá [7,12] que documenta en detalle todas las
al criterio de expertos y a los siguientes partes del paquete y su óptima utilización
requerimientos: en la creación, simulación y análisis de
una RdPC. Este software esta disponible
• El software debe ser de licenciamiento en forma gratuita, así como toda su
libre y preferiblemente que se utilice documentación en [10].
en entornos académicos.
La interfase gráfica de usuario (GUI) de
• El software debe respetar la sintaxis y la herramienta CPNTool, no posee menús
la semántica de las RdPC, tal y como desplegables, solo usa un “scrollbar” y
se propone en [4,5]. muy pocos cuadros de diálogo. Los dos
• El software debe ser un editor gráfico, componentes principales del GUI son el
con características de simulación y Índice y el Espacio de trabajo. El índice
reporte. es una columna que enlista todos las
herramientas disponibles y es similar al
• El software debe ser compatible con el
menú tipo árbol del administrador de
sistema operativo Windows XP.
archivos de “Windows Explorer”. El índice,
• El software debe poseer soporte en línea, consta de cuatro entradas principales que
vía correo y amplia documentación. aparecen en el siguiente orden: “Tool
box”, “Help”, “Options”, y los proyectos
En 1998 la Universidad de Munich
cargados en la herramienta (ver figura 2).
realizó un estudio comparativo de todos
los softwares existentes para el análisis La entrada “Help” brinda acceso a la ayuda
y simulación de Redes de Petri de alto del programa, mientras que la entrada
nivel. Ese estudio [9] incluyó 91 paquetes “Options” muestra cada cuántos comandos
y determinó entre los paquetes tanto se auto-salvarán los archivos generados
comerciales como académicos, el que por la GUI. La entrada “Tool box”
mejor puntaje obtuvo a través de todas las despliega todos los grupos de herramientas
pruebas realizadas fue el llamado Design/ disponibles, llamados paletas; la manera
CPN. Más recientemente, en el 2007, Hrúz de desplegar las paletas en pantalla, es al
[3] recomienda la herramienta CPNTool. seleccionar la paleta buscada y arrastrala al
Este paquete es el sucesor del Design/CPN espacio de trabajo. Las paletas existentes

50 Vol. 23, N.° 1 2010


son: “Auxiliary”, “Create”, “Hierarchy”, último “History” muestra un recuento de
“Net”, “Simulation”, “Monitoring”, comandos ejecutados en la red y la entrada
“State Space”, “Style” y “View”. La “Monitors” es un listado de herramientas
paleta “Auxiliary” agrupa las herramientas de captura de datos que se aplicaron a la
para crear etiquetas informativas, estas red. Finalmente, la entrada “Declarations”
herramientas no aportan significado es donde se definen los tipos de datos
semántico a la red. La paleta “Create”, a manejar por la red (colores), las
contiene herramientas, tales como creación variables y las funciones; la sintaxis de las
de transiciones, lugares y arcos dirigidos, declaraciones para nuevos tipos de datos,
con lo que se dibuja la topología de variables y funciones, se realiza de acuerdo
una red. La paleta “Hierarchy” posee al lenguaje CPN ML que es propio de
las herramientas destinadas a la creación CPNTool. Para la utilización adecuada de
de jerarquías entre redes. Por otro lado, CPN ML es necesario conocer el lenguaje
la paleta “Net” se utiliza para salvar y
“Standar ML”, cuya documentación esta
cargar redes al GUI, así como para la
disponible en [1].
exportación de las redes al formato de
gráfico “Encapsulated PostScript” (EPS). El espacio de trabajo es un área color gris
Las paletas “Simulation” y “Monitoring” a la derecha de la GUI, en ese espacio
se encargan de ejecutar la red y capturar se cargan ventanas flotantes llamadas
datos de la evolución de las marcas a “binder”, que a su vez contienen una
través de la red. La paleta “State Space” o varias páginas. Sobre cada página es
posee un conjunto de herramientas para posible crear y editar una RdPC o parte
el análisis del espacio de estados de de ella. La forma en que se crean los
la red y la generación automática del “binder”, las páginas contenidas en los
grafo de estados. Finalmente, la paleta “binder”, las redes dentro de las páginas,
“Style” posee herramientas para el color, etc, es por medio de un menú contextual
ancho, estilo de líneas de texto, mientras llamado menú de marcas, que es fácil
que “View” contiene herramientas para de reconocer por ser circular. Este menú
realizar vistas parciales, acercamientos y aparece con el botón derecho del ratón y
desplazamientos de la red. En la figura las opciones del menú dependen de la zona
2 se aprecia parte de las herramientas especifica en la GUI que se seleccione.
descritas anteriormente.
Así, por ejemplo, en la figura 2, se pulsó
El proyecto cargado en el sistema es sobre la página llamada Robot 2, y el menú
visto en el índice por su nombre, la de marcas ofreció las siguientes opciones
figura 2 muestra el nombre del proyecto de acuerdo a ese contexto: creación de
SistemaManufactura.cpn. La GUI puede lugares, transiciones, etc.
soportar varios proyectos cargados de
forma simultanea, y para cada proyecto se El software CPNTool presenta herramientas
cargan en el índice las siguientes entradas: de monitoreo de la red que permiten
“Step”, “Time”, “Options”, “History”, exportar los datos capturados y guardarlos
“Declarations” y “Monitors”. La entrada en archivos de texto. Los archivos salvados
“Step” contabiliza la cantidad de pasos luego se pueden procesar en hojas de
ejecutados en la red cuando se realiza una cálculo u otros programas, sin embargo,
simulación, es decir, este parámetro indica a diferencia del software predecesor,
la cantidad de transiciones disparadas, CPNTool no posee herramientas para la
mientras que la entrada “Time” muestra generación automática de gráficos, por
el tiempo simulado actual de la red. La lo que hay recurrir al software llamado
entrada “Options” permite configurar BRITNeY. Dicho paquete informático
la dirección de las carpetas donde se esta disponible en forma gratuita en [14],
salva el archivo y los reportes, etc. Por BRITNeY se destina a la creación de más

Enero - Marzo 2010 51


Índice

Figura 2. Interfase gráfica de usuario de CPNTool. Se aprecia los componentes principales: índice, espacio de trabajo, ligaduras,
páginas, paletas de herramientas, herramientas particulares y el menú contextual (marcas). La RdPC que se observa corresponde
al modelo del robot dos.

de quince tipos de gráficas (gantt, pastel, hacer una introducción de las Redes de
barras, etc.) y animaciones, la explicación Petri Coloreadas. Si se desea una mayor
de cómo crear las gráficas y establecer el compresión y profundidad del tema se
enlace con CPNTool está disponible en el puede consultar [4,5].
artículo [13], que es un tutorial paso a paso
para aprender a usar la herramienta. Las RdPC utilizan diversos conceptos y
definiciones. A continuación se presenta
algunas definiciones importantes para el
Redes de Petri Coloreadas entendimiento posterior de la definición
El modelo realizado del proceso productivo de RdPC:
corresponde a una RdPC jerarquizada y
• Los elementos de tipo s, son el conjunto
temporizada, lo cual es una extensión
de elementos contenidos en S.
de la RdPC original definida en 1981
por Jensen [2,3,4,5]. Sin embargo, para • El tipo de una variable v, se denota por
lograr entender el modelo, es necesario Type(v).

52 Vol. 23, N.° 1 2010


• El tipo de una expresión exp, se denota llamados transiciones. Las transiciones
por Type(exp). se asociarán al conjunto de eventos
• El conjunto de variables de una discretos que suelen suceder al inicio
expresión exp, se denota por o final de una serie de actividades.
Var(exp). • A es un conjunto finito de arcos
• La letra B denota el conjunto de dirigidos, tal que P∩T = P∩A =
elementos tipo booleano {verdadero, T∩A=Ø.
falso}.
• N es una función de nodo, N(a), que
• Las RdPC utilizan el concepto de permite asociar a cada arco sus nodos
multi-conjunto para explicar qué pasa terminales (origen, destino). Los nodos
con los colores (datos) en un nodo. Se terminales deben ser de tipo distinto,
podría definir un multi-conjunto como por tanto, si el nodo origen es una
un conjunto, pero con la diferencia transición, el otro debe ser un lugar, o
de que pueden existir múltiples viceversa. Es decir, N define A dentro
apariciones del mismo elemento. Para
P×T ∪ T×P.
ejemplificar, suponga que tiene un
conjunto llamado S con los elementos • C es un conjunto de funciones de color
{a,b,c}, si a este conjunto le agrega C(p), que especifica, para cada nodo
el elemento b, lo que obtienen es lugar, el tipo de entidades que puede
el mismo conjunto S. Ahora bien, almacenar. Esto significa que cada
si el conjunto S se define como marca sobre p debe poseer un color
multi-conjunto, entonces existen dos que pertenezca al tipo C(p).
elementos de b, por lo que el multi-
• G es una función llamada guarda,
conjunto es {a,b,b,c}. Cada nueva
la cual se asocia a los nodos tipo
aparición de un elemento s existente
en S, genera un nuevo multi-conjunto, transición G(t), esta función puede
así si se agrega nuevamente b, el especificar una lista de expresiones
nuevo multi-conjunto es {a,b,b,b,c}. booleanas que cuando son verdaderas,
De esta forma, es posible afirmar que habilitan la respectiva transición. La
existe una infinita cantidad de multi- definición es,
conjuntos definidos sobre S dado que B
se pueden añadir n elementos de a,
b o c. La manera de representar el
conjunto de todos los multi-conjuntos E es la función que asocia las
sobre S, es SMS. expresiones a los arcos, E(a). Las
expresiones deben ser del tipo C(p(a))
En [4] se define una Red de Petri , esto significa que cada evaluación
MS
Coloreada no jerarquizada como una tupla de la expresión del arco debe arrojar
RdPC=(Σ,P,T,A,N,C,G,E,I), donde : un multi-conjunto definido sobre la
• Σ es un conjunto finito no vacío de colección de colores que está asociada
tipos de colores, llamado colección al lugar respectivo. Esto es:
de colores. Los colores permiten
especificar los atributos de cada
entidad u objeto que se desea modelar,
es decir, se definen los tipos de datos
con que se trabajará en el modelo.
Es decir, las expresiones E(a) ligadas
• P es un conjunto finito de nodos al arco de entrada de una transición,
llamados lugares.
especifican el tipo de objeto del nodo
• T es un conjunto finito de nodos lugar de entrada que debe seleccionarse

Enero - Marzo 2010 53


de entre los objetos almacenados en ese temporizadas sobre C(p(a)) y C(p).
nodo lugar, para habilitar la transición
• R es un conjunto de valores de tiempo,
al momento del evento. Si la expresión
llamados estampas de tiempos.
E(a) está vinculada al arco de salida de
una transición, la expresión se utiliza • r0 es un elemento de R, llamado tiempo
para evaluar los nuevos valores de los inicial.
atributos de los objetos de salida.
Las definiciones anteriores establecen
• I es la función de inicialización y cómo es la estructura de una RdPC o una
permite determinar los atributos de RdPCT, sin embargo, no especifican el
los objetos (colores de la marcas) comportamiento dinámico; es decir, no
que se almacenan desde un principio definen el conjunto de reglas que rigen
en los lugares. Es decir, el estado la evolución de los objetos dentro de
inicial del sistema, conocido como la red. Para una explicación detallada y
marcado inicial M0, que es el conjunto formal ver [4], mientras que [6] es una
de objetos y sus colores almacenados introducción narrativa basada en ejemplos,
inicialmente en los nodos lugar, se que evita las definiciones matemáticas.
especifica con la función I. La función
I cumple que:
Modelado del proceso
El sistema productivo descrito en una
sección anterior se clasifica como un
Las funciones de inicialización son del sistema de eventos discretos, según
tipo multi conjunto y se especifican de [8]. Existen diversos formalismos para
la forma el modelo de este tipo de sistemas, sin
embargo, las RdPC representan, en forma
natural, sistemas de este tipo. Para el
sistema productivo planteado, cada evento
del sistema se asociará a un nodo transición
Donde: y cada actividad se asociará a un nodo
lugar de la red, así una transición disparada
ni = número de objetos que poseen provoca un cambio en las variables de
los valores de colores descritos entre estado del sistema, y cada lugar de la red
paréntesis. encapsula lo que sucede entre dos eventos.
ci = valor del color, que puede ser De acuerdo con lo anterior, el estado del
desde ningún valor hasta el último. No sistema de producción estará determinado
por todas las marcas distribuidas en los
se pueden repetir valores de color en
nodos lugares. Esto significa que cada
la misma asociación.
evento del sistema, conceptualizado como
Debido a que se desea obtener métricas la finalización de una actividad y principio
de rendimiento para el sistema productivo de otra, se representará como un nodo
planteado, es necesario definir una Red de transición de la RdPC. Las actividades
Petri Coloreada Temporizada (RdPCT), la del sistema, vistas como la manipulación
cual se entiende como una tupla RdPCT= o transporte de piezas, la espera en cola
de un producto por falta de recursos, el
(RdPC, R, r0) tal que:
movimiento de un punto a otro del robot,
• RdPC es la red antes definida con etc., se representarán como nodos lugar.
el siguiente cambio, tanto en E(a) En la herramienta CPNTool, los lugares
como I(p) pueden, o no, ser funciones de una red se representan como óvalos,

54 Vol. 23, N.° 1 2010


las transiciones como rectángulos y los se modela la máquina con sus colas de
arcos dirigidos como flechas, los arcos entrada y salida, en color verde se modela
dirigidos en ambos sentidos como una
flecha bidireccional. la máquina 2 y sus respectivas colas, y

El modelo del sistema fue elaborado con en color café se modela la máquina 3 con
el método constructivo “Top-Botton”, de sus colas. En este nivel los robots no son
lo general a lo específico. El nivel superior modelados, pero se señalan como una
de la red representa las máquinas, los
almacenes de espera (colas) y los arribos transición, que se representa en la figura
de las piezas; en un nivel inferior se como un doble rectángulo. La figura 4
modelan los dos robots del sistema. La muestra la RdPC para el robot 1; la
figura 3 muestra la RdPC del nivel superior
llamada Sistema: en color rojo se modela figura para el robot 2 no aparece debido
el arribo de piezas al sistema, en color azul a su similitud topológica con el robot

Figura 3. Representación del sistema productivo por medio de una red coloreada, temporizada y jerarquizada. Las transiciones
con doble rectángulo indican que existe, en una RdPC de nivel inferior, una para cada brazo robot.

Enero - Marzo 2010 55


Figura 4. Modelo del Robot 1. El nodo lugar Cola out M1 funciona como un puerto de entrada
y el nodo lugar Cola in M2 funciona como un puerto de salida de la red de nivel inferior. Los
nodos lugares y arcos de color rojo modelan si el robot esta ocupado transportando una pieza, o
está libre esperando una pieza de la cola de salida de M1. La sección de la red en color violeta
modela el transporte de la pieza, el retorno del brazo robot a su punto inicial y su duración en cada
movimiento.

Cuadro 3. Declaraciones de los colores, variables y funciones según lenguaje CPN ML.

Colores Funciones
fun TiempoIN() = IntInf.toInt (time());
colset U= int; fun tiempo(promedio:int, varianza:int)=
let
colset TI=int; val realPrd = Real.fromInt promedio
colset UT=int timed; val realvr = Real.fromInt varianza
colset Tipo=string with “A”..”C”; val rv = normal(realPrd,realvr)
in
colset Dato=product U*Tipo*TI timed; floor (rv+0.5)
colset dato=product U*TI timed; end;
structure gantt=GanttChart(val name=”Prueba”);
structure cola=XYChart(val name=”Prueba2”);
Variables fun tarea(nume:int, producto:string)=
let
val s1=Int.toString nume
var i,n:U; val s2=s1^producto
in
var p,p1:Tipo; s2
var ti,t1,t2,t3,k,k1:TI; end;
var dat:dato; fun calculoH(tin:U)=
let
val tmp=tin; val m= 60; val x=tmp div m;
in
x
end;
fun calculoM(tin:U)=
let
val tmp=tin; val m= 60; val y1= tmp mod m;
in
y1
end;

56 Vol. 23, N.° 1 2010


1. Para interpretar correctamente estas RdPC, es necesario ver las declaraciones de colores (datos), variables y
funciones que se muestran del cuadro 3.

Cuadro 4. Representación de la RdPCT Sistema (fig. 3) en forma de tuplas.

Colección de
→= {U, UT, TI, Tipo, Dato}
colores

{Conteo, Productos, Cola in M1, M1 Libre, Maq M1, Cola out M1, Cola in M2, M2 Libre,
Lugares P=
Maq M2, Cola out M2, Cola in M3, M3 Libre, Maq M3, Cola out M3}

{Llegadas, Inicio M1, Salida M1, Inicio M2, Salida M2, Inicio M3, Salida M3, Robot 1,
Transiciones T=
Robot 2}

{(Conteo, Llegadas), (Llegadas, Conteo), (Productos, Llegada), (Llegadas, Producto),


(Llegadas, Cola in M1), (Cola in M1, Inicio M1), (Inicio M1, Maq M1), (Maq M1, Salida M1),
(Salida M1, Cola out M1), (Salida M1, M1 Libre), (M1 Libre, Inicio M1), (Cola in M2, Inicio
Arcos M2), (Inicio M2, Maq M2), (Maq M2, Salida M2), (Salida M2, Cola out M2), (Salida M2, M2
A=
Libre), (M2 Libre, Inicio M2), (Cola in M3, Inicio M3), (Inicio M3, Maq M3), (Maq M3, Salida
M3), (Salida M3, Cola out M3), (Salida M3, M3 Libre), (M3 Libre, Inicio M3), (Cola out M1,
Robot 1), (Robot 1, Cola in M2), (Cola out M2, Robot 2), (Robot 3, Cola in M3), }

Función de nodos N(a) = (Origen, Destino) Si a tienen la forma de par ordenado (x,y)

Tipo Si p = Productos
UT Si p = Conteo
Función de color U Si p {M1 Libre, M2 Libre, M3 Libre}
C(p) =
Dato Si p { Cola in M1, Maq M1, Cola out M1, Cola in M2,
Maq M2, Cola out M2, Cola in M3, Maq M3, Cola out M3}

n=k1 Si t {Inicio M1, Inicio M2, Inicio M2}


Guardas G(t) = TRUE Cualquier otro t

(k+1)@+tiempo(5,4) Si a = (Llegadas, Conteo)


k Si a = (Conteo, Llegadas)
p Si a {(Productos, Llegada), (Llegadas, Producto)}
n Si a {(M1 Libre, Inicio M1), (M2 Libre, Inicio M2), (M3 Libre,
Inicio M3)}
k1+1 Si a {(M1 Libre, Inicio M1), (M2 Libre, Inicio M2), (M3 Libre,
Inicio M3)}
Expresiones de los
E(a) = (k1,p1,ti) Si a {(Cola in M1, Inicio M1), (Cola in M2, Inicio M2), (Cola in
arcos
M3, Inicio M3), (Llegadas, Cola in M1)}
(k1,p1,t1) Si a {(Inicio M1, Maq M1), (Maq M1, Salida M1), (Inicio M2,
Maq M2), (Maq M2, Salida M2), (Inicio M3, Maq M3), (Maq
M3, Salida M3)}
(k1,p1,t2) Si a {(Salida M1, Cola out M1), (Salida M2, Cola out M2),
(Salida M3, Cola out M3),} Continúa...

Enero - Marzo 2010 57


Continuación Cuadro 4.

1` (1) Si p {Conteo, M1 Libre, M2 Libre, M3 Libre}


1`(“A”)++1`(“B”)++1`(“C”) Si p = Producto
Función de
I(p)=
inicialización
Ø Cualquier otro p

@+(case p1 of Si t = Inicio M1
“A” => tiempo(20,1)
| “B” => tiempo(10,1)
| “C” => tiempo(15,1))

@+(case p1 of Si t = Inicio M2
“A”=> tiempo(10,1)
| “B” => tiempo(15,1)
Función de retardo | “C” => tiempo(20,1))
D(t)=
de tiempo
@+(case p1 of Si t = Inicio M3
“A” => tiempo(5,1)
| “B” => tiempo(20,1)
| “C” => tiempo(10,1))

0 Cualquier otro t

La RdPC Sistema (figura 3) se especificó de la estampa de tiempo. Esto implica


en forma de tuplas, dicha representación que estas funciones determinan cuánto
matemática se muestra en el cuadro 4. En tiempo debe permanecer una marca en
este cuadro se muestran todos los colores un nodo lugar antes de ser removida. Las
usados en la red, los nodos lugares y funciones de retardo se reconocen porque
transiciones, arcos dirigidos, funciones de tienen la siguiente estructura @+(código
color, guardas, expresiones de los arcos CPN ML). En la figura 3 y en el cuadro
y funciones de inicialización, todos estos 4 se observa que las funciones de retardo
conjuntos y funciones fueron definidos llaman a la función tiempo(μ,ν). Esta
según la sección previa. Sin embargo, la función implementa la duración de los
herramienta CPNTool implementa dos tiempos según la distribución normal, tal
tipos de funciones llamadas retardo de y como se planteo en el problema. Los
tiempo y segmento de código, por tanto, argumentos de entrada para la función son
CPNTool amplia la definición de la RdPC la media y la varianza.
establecida en [4].
La herramienta CPNTool crea las funciones
La función de retardo de tiempo, es una llamadas “segmento de código”. Estas
función que se asocia a cada transición de funciones son útiles para calcular nuevos
la red. Cuando se dispara la transición, la valores de datos, capturar tiempos del
función suma a la estampa de tiempo de la sistema y, especialmente, comunicarse con
marca (token) el tiempo que determina la otros programas. Esta función se codifica
función; esta marca no puede ser removida con CPN ML y con funciones propias de
del nodo lugar posterior hasta que el BRITNeY. De manera que, para generar
tiempo simulado general del sistema es de forma automática el diagrama de gantt,
mayor o igual al nuevo valor calculado el diagrama de colas, etc., CPNTool debe

58 Vol. 23, N.° 1 2010


transferir los datos al software BRITNeY piezas que pasan por el nodo lugar Maq
mediante el segmento de código, si desea M1, a lo largo del tiempo de simulación. Es
conocer mayor detalle puede consultar importante aclarar que la forma en que se
[13]. Cada función segmento de código está programó la generación del diagrama gantt,
ligada a un determinado nodo transición, permite graficar únicamente piezas que han
por ejemplo, en la figura 4, el segmento finalizado una actividad determinada, por
código de la transición “Sensor cola Punto tanto, una actividad que se esté ejecutando
1”, aparece en la esquina superior izquierda no aparece en el diagrama.
de la figura. Esta función posee tres partes
Las piezas que ingresan al sistema se
principales: input(), o lista de argumentos
identifican mediante un número ascendente
en la que cada argumento debe ser una
seguido del tipo de producto. Por ejemplo,
variable existente en las expresiones de los
el diagrama gantt se construyó con las
arcos que entrada al nodo; output() o lista
siguiente siete piezas: 1B, 2A, 3B, 4B,
de argumentos de salida, que son variables
5C, 6A, 7C. Cada pieza se representa en
que aparecen o sustituyen a otras variables
el diagrama como barras de un color: la
en las expresiones de los arcos de salida
pieza 1B se muestra como el conjunto
del nodo; y action que es la sección del
de barras color rojo, 2A son las barras
segmento de código donde se declaran las
El modelo del sistema color verde claro, y así sucesivamente. En
funciones y operaciones de cálculo, la cual
de manufactura se el diagrama gantt aparecen otras barras
se llama función gantt.addTaskMinute()
simuló varias veces nombradas como 1T, 2T, 3T, 4T, 5T.
pues grafica el gantt y captura el instante
con la idea de verificar Las barras indican que los robots no
de tiempo simulado en que ocurrió la
el comportamiento están transportando piezas debido a que
transición. Una explicación a profundidad
dinámico y la se encuentran en uno de los siguiente
sobre el uso del segmento de código esta
estructura de la red. dos estados: o en reposo, o que están
disponible en [10].
A continuación se retornando al punto de inicio, (Punto 1).
presentan resultados de La figura 5 muestra el recorrido de la
una simulación rápida Simulación pieza 1B por todo el sistema mediante
de tan solo 91 pasos El modelo del sistema de manufactura flechas color negro; al estar el sistema
ejecutados y un tiempo se simuló varias veces con la idea de en un estado inicial no existen colas de
simulado de 86 unidades verificar el comportamiento dinámico y espera y todas las máquinas y robots están
de tiempo. disponibles, por tanto se puede observar
la estructura de la red. A continuación se
presentan resultados de una simulación que esta pieza nunca estuvo en colas. Por
rápida de tan solo 91 pasos ejecutados otro lado, cuando la pieza 2A ingresa al
y un tiempo simulado de 86 unidades sistema, entra directamente a la cola de
de tiempo. Simulaciones con una mayor la máquina M1, puesto que la máquina
cantidad de pasos generan un volumen de M1 se encuentra procesando la pieza 1B.
información tal que el diagrama de gantt La pieza 2A es procesada hasta que M1
no es legible. se desocupe. El recorrido de la pieza 2A
por todo el sistema, se señala con flechas
La figura 5 muestra un diagrama gantt
rayadas. Se representa en la figura trazos
generado automáticamente, el eje equis
de líneas punteadas y rayas que muestran la
representa el tiempo simulado. Así, una
operación de ambos robots, principalmente
simulación de 80 unidades de tiempo, se
desocupación y ocupación.
representa en el diagrama como 01:20. En
el eje ya aparecen actividades del proceso Si se toma la actividad Cola M1 y se
productivo. Cada actividad listada está grafica sólo el comportamiento de esa
asociada a un nodo lugar de la RdPC, esto actividad, se obtiene la gráfica 6, la cual
significa que la actividad Proceso M1 del se conoce como gráfica de evolución
gráfico captura el comportamiento de las de cola. Esta gráfica es una muestra, ya

Enero - Marzo 2010 59


Figura 5. Diagrama de Gantt obtenido por simulación. Los productos son tres tipos: A, B, C y están numerados ascendentemente.
En la gráfica aparece 1T, 2T, 3T, etc., estas barras corresponden a lapsos de tiempo, donde los robots estan sin trabajo o en el
proceso de retorno al punto uno.

Figura 6. Diagrama que muestra el comportamiento de la cola de entrada a la máquina M1. El área
bajo la curva brinda el promedio de piezas en la cola. Este gráfico fue realizado en Microsoft Excel,
los datos fueron exportados de CPNTool en un archivo de texto.

60 Vol. 23, N.° 1 2010


que se pueden obtener las seis gráficas La herramienta CPNTool permite calcular
de cola del sistema al graficar los datos una serie de estadísticas, promedios
capturados por los monitores (funciones ponderados, desviaciones estándar,
de CPNTool). Esto se logra al instalar porcentajes de utilización, tiempos
una función monitor en cada nodo lugar promedios de espera en cola, etc.; sin
en que se desee conocer los instantes de embargo, muchas de estas estadísticas
tiempo en que cambia el conteo del nodo. están disponibles si los datos dentro de
El historial luego es exportado en forma los nodos lugares son declarados en listas.
de un archivo de texto que posteriormente El manejo de datos que se utilizó en el
se analiza con MS Excel. El área bajo la sistema está basado en el concepto de
curva de la gráfica representa la cantidad tupla, por lo que si se desea calcular, por
de piezas en espera promedio, para esta ejemplo, el tiempo promedio de espera de
cala es de 4,53 piezas. una pieza, hay que programar la función
que la implemente. El cuadro 5 presenta
estadísticas del sistema, las cuales fueron
Cuadro 5. Estadísticas generadas en la simulación del sistema de definidas en los objetivos del proyecto. De
manufactura. la figura 5 se pueden hacer conclusiones
sobre los porcentajes de utilización;
Nodo
Indice Explicación por ejemplo, según los cálculos de la
Lugar
herramienta, la máquina M1 trabaja a un
Cola in
4,534884
Promedio de piezas en la cola de entrada de 100%, sin embargo no da abasto, puesto
M1 M1. que los tiempos de duración programados
Cola in Promedio de piezas en la cola de entrada de para esta máquina son superiores a la tasa
0,081395 de arribo de nuevas piezas, lo que causa un
M2 M2.
cuello de botella.
Cola in Promedio de piezas en la cola de entrada de
0,034884
M3 M3.
M1 Libre 0,000000 Máquina M1 no tiene desocupación. Recomendaciones
M1 Dado que los softwares utilizados son
1,000000 Máquina M1 esta en 100% de utilización.
Ocupada de licenciamiento libre, con potentes
capacidades de edición, simulación y reporte,
Máquina M2 tiene un 52,3% del tiempo en
M2 Libre 0,523256
desocupación. es recomendable establecer proyectos de
investigación en las siguientes líneas:
M2 Máquina M2 tiene un 47,7% del tiempo
0,476744 • Desarrollar metodologías que permitan
Ocupada procesando.
un adecuado proceso de modelado
Máquina M3 tiene un 68,6% del tiempo en
M3 Libre 0,686047 de sistemas de eventos discretos con
desocupación.
RdPC y otras familias.
M3 Máquina M2 tiene un 31,4% del tiempo • Extender el desarrollo científico
0,313953
Ocupada procesando.
tecnológico al medio industrial, de tal
El 32,6% del tiempo R1 esta desocupada o forma que la utilización de modelos
R1 Libre 0,325581
devolviéndose al punto 1. simulados con RdPC permita mejorar
R1 El 67,4% del tiempo R1 traslada piezas del los sistemas de manufactura reales, y
0,674419 elimine desbalances de producción,
Ocupado punto 1 al punto 6.
bloqueos, subutilización de sistemas,
El 58,1% del tiempo R1 esta desocupada o
R2 Libre 0,581395 etc.
devolviéndose al punto 1.
• Establecer procedimientos de
R2 El 41,9% del tiempo R2 traslada piezas del
0,418605 verificación y validación para los
Ocupado punto 1 al punto 6.
modelos de simulación.

Enero - Marzo 2010 61


En cuanto al modelo planteado, éste se vol 1492, Berlin: Spring-Verlag, 237-292.
podría mejorar si se realizan los siguientes Fuente: http://www.daimi.au.dk/~kjensen/
papers_books/use.pdf
cambios:
[7]. Jensen, K., et al., ( Junio 2007). Coloured
• Modificar la topología de la red, de Petri Nets and CPN Tools for modeling
tal forma que cada máquina y cada and validation of concurrent systems,
robot se puedan trabajar como marcas International Journal on Software Tools
(objetos) dentro de la red, lo cual for Technology Transfer (STTT), vol 9,
No 3-4, Berlin: Spring-Verlag, 213-254.
permitirá un modelo más compacto. Fuente: http://www.daimi.au.dk/~kjensen/
Sin embargo, esto dificultaría la papers_books/sttt2007.pdf
compresión del modelo.
[8]. Silva, M., et al., (1998). Petri nets and
• Establecer un mayor nivel de Production Systems, LNCS: Lecture on
abstracción, al utilizar listas en lugar Petri Nets Application II, vol 1492, Berlin:
Spring-Verlag, 85-124.
de tuplas para el manejo de los objetos
en los nodos lugar, esto permitiría al [9]. Stöle, H., (1998). An Evaluation of High-
CPNTool calcular el retardo promedio End Tools for Petri Nets, Technical Report
9802, University of Munich, 1998. Sitio:
de un objeto en la cola, etc. http://www.pst.informatik.uni-muenchen.
• Establecer límites a las colas de entrada de/personen/stoerrle/V/Evaluierung.pdf
a cada máquina y a cada robot, con la [10]. University of Aarhus. Denmark, Computer
finalidad de observar el bloqueo del Tool for Coloured Petri Nets (CPNTOOL),
sistema. Fuente: http://wiki.daimi.au.dk/cpntools/_
home.wiki
[11]. University of Hamburg. Germany, et al,
Bibliografía Petri Nets World, Fuente: http://www.
informatik.uni-hamburg.de/TGI/PetriNets/
[1]. Bell Labs, Lucent Technologies, The
Standard ML Basis Library, Sitio: [12]. Vinter, A., et al., (2003). CPN Tools for
http://www.dcs.napier.ac.uk/~andrew/ Editing, Simulating and Analysing Coloured
SMLBasis/sml-std-basis.html Petri Nets, Lecture Notes in Computer
Science: ICATPN 2003, vol 2679, Berlin:
[2]. Guasch, A. et al., (2005). Modelado y
Spring-Verlag, 450-462. Fuente: http://
simulación. Aplicación a procesos
citeseerx.ist.psu.edu/viewdoc/summary;js
logísticos de fabricación y servicios.
essionid=8278F4ECFF9373D19D45C7C2
Mexico, Alfaomega.
1EBFBC2C?doi=10.1.1.87.7860
[3]. Hrúz, B., et al., (2007). Modeling and
[13]. Westergaard, M., et al., (Octubre 2007).
Control of Discrete-event Dynamic
Building and Deploying Visualizations of
Systems. Advanced Textbooks in Control
Coloured Petri Net Models Using BRITNeY
and Signal Processing. Springer-Verlag,
Animation and CPN Tools, Proceedings
London.
of Sixth Workshop on Practical Use of
[4]. Jensen, K., (1992). Coloured Petri Nets. Coloured Petri Nets and the CPN Tools.
Basic Concept. Analysis Methods and Århus, Denmark. Fuente: http://klafbang.
Practical Use, Vol 1, Vol 2, EATCS eu/personlig/publications.php3
Monographs on Theoretical Computer
[14]. Westergaard, M. BRITNeY Suite, Fuente:
Science, Spring-Verlag. Berlin.
http://wiki.daimi.au.dk/britney/britney.wiki
[5]. Jensen, K., (1994). An Introduction to the
Theoretical Aspects of Coloured Petri Nets.
A Decade of Concurrency, Lecture Notes
in Computer Science vol. 803, Springer-
Verlag, 230-272. Fuente: http://www.daimi.
au.dk/~kjensen/papers_books/rex.pdf
[6]. Jensen, K., (1998). An Introduction to
the Practical Use of Coloured Petri Nets,
LNCS: Lecture on Petri Nets Application II,

62 Vol. 23, N.° 1 2010

Anda mungkin juga menyukai