ROGLE
10Feb/12Off

Capsula 11: Punto de Uso

Descripción del problema En una línea de montaje de automóviles, existen diversos sistemas que se han denominado puntos de uso. La función principal de estos puntos de uso no es otra que la de ensamblar los componentes con su automóvil … Sigue leyendo
10Feb/12Off

Capsula 10: Generación de productos a partir de un instante determinado y almacenamiento de datos de salida en un fichero de texto

Descripción del problema Existen ciertos productos que tienen ciertas características diferentes entre ellos, estas características se denominarán Tipo y podrán tomar valores enteros entre 1 y 5. Así habrá productos tipo 1, 2, 3, 4 o 5. Estos productos solo … Sigue leyendo
20Oct/11Off

CAPSULA 9: Carga y descarga de componentes en racks

Descripción del problema Como se ha comentado en apartados anteriores, los componentes fabricados son cargados en Racks para poder ser transportados fácilmente, ya sea mediante carretillas o mediante automotores. Con esta capsula lo que se pretende es simular la carga … Sigue leyendo
20Oct/11Off

CAPSULA 8: Linea de Fabricación

Descripción del problema Las líneas de fabricación en la industria del automóvil y en general en la industria manufacturera se caracterizan por tener varios puestos de trabajo. Cada uno de estos puestos de trabajo tiene un tiempo de ciclo por … Sigue leyendo
20Oct/11Off

CAPSULA 7: Ascensores y distintos automotores

Descripción del problema Existen dos tipos de productos, P1 y P2. Tanto los productos P1 como los P2 se fabrican en JC y se consumen en la planta de ensamblaje y son transportados en racks. Para salir de JC, los … Sigue leyendo
20Oct/11Off

CAPSULA 6: Un transporte para cada producto

Descripción del problema Existen dos tipos de productos (P1 y P2) y cada tipo de producto solo puede ser transportado por una determinada carretilla. Los productos son transportados hasta un proceso y de este proceso vuelven a ser transportados hasta … Sigue leyendo
13Oct/11Off

CAPSULA 5: Ascensor

Descripción del problema El Ascensor encargado de bajar los racks llenos y posteriormente subir los vacios, necesariamente tiene que transportar 2 racks, es decir, no puede subir/bajar con un solo rack o sin ninguno. Arquitectura del modelo El ascensor se … Sigue leyendo
13Oct/11Off

CAPSULA 4: Numero constante de Entities en el Modelo

Descripción del problema

Se desea que siempre existan 3 Entitys en un modelo. Es decir, que cuando un Entity se destruya en el Sink aparezca otro nuevo en el Source.

El objetivo del problema es poder tener siempre aprovisionados puntos virtuales demandados.

Un ejemplo real de esta aplicación podría ser un proceso en el que se paletizan determinados productos, pero que nunca habrá interrupción del proceso por falta de palets, porque siempre se dispondrá de palets en almacén.

Pasos a seguir

  1. Se introduce en el modelo un Source, un Server y un Sink y se une mediante Timepaths.
  2. Se modifica el modo de llegada del Source1 a basado en evento, es decir, el Source generará Items cuando ocurra un evento especifico
  3. Se introduce el número inicial de de Entities en el sistema como 3
  4. Se introduce el evento que dispara la creación de entities: Input@Sink1.Entered. Es decir, cuando un entity entra al Sink

13Oct/11Off

CAPSULA 3: Uso de Networks

Descripción del problema

Existen dos tipos de ítems (P1 y P2) y disponemos de 5 servers en nuestro modelo (Server1, Server2, Server3, ServerP1, ServerP2 y Almacén). También existe un Sink y dos Sources (Source1 y Source2) que producen P1 y P2 respectivamente. Todas las conexiones entre los objetos se realizarán mediante TimePaths.

A continuación se adjunta una tabla donde vemos qué tipo de Ítems pueden procesar cada uno de los Servers.

Server

P1

P2

Server1

SI

SI

Server2

SI

SI

Server3

SI

SI

ServerP1

SI

NO

ServerP2

NO

SI

Almacén

SI

SI

La secuencia que siguen los Ítems es la siguiente:

  1. Tanto P1 como P2 se procesan en el Server1
  2. A continuación el P1 se dirige al ServerP1 y el P2 al ServerP2
  3. Una vez procesados en sus respectivos Servers, se dirigen al Almacén (tiempo de proceso 0)
  4. Desde el Almacén los dos Ítems pueden dirigirse indistintamente al Server2 o al Server3
  5. Tanto del server2 y el Server3 los Ítems se dirigen a un Sink

Pasos a seguir

  1. Nos dirigimos a Definitions y creamos dos nuevos Networks (Network1 y Network2).
  2. A continuación, asignamos el Network1 al Ítem P1 (Properties à Initial Network à Network1) y el Network2 al P2
  3. Ahora debemos añadir los TimePaths a sus respectivos Networks (Clik derecho encima del Path à Add to Network à Network…). Resaltar que un mismo TimePath puede tener asignado uno o más Networks.
  4. Podemos visualizar los Networks en el menú de la parte superior del programa (View à View Networks à Network…)
  5. Para clarificar esta asignación haremos uso de la siguiente tabla:

Desde

Hasta

Network1

Network2

Source1

Server1

SI

NO

Source2

Server1

NO

SI

Server1

ServerP1

SI

NO

Server1

ServerP2

NO

SI

ServerP1

Almacén

SI

NO

ServerP2

Almacén

NO

SI

Almacén

Server2

SI

SI

Almacén

Server3

SI

SI

Server2

Sink

SI

SI

Server3

Sink

SI

SI

    6. Una vez asignados los TimePaths a los Networks ya podemos correr el modelo y           verificar si funciona según lo deseado.


13Oct/11Off

CAPSULA 2: Despaletizado, Consumo de Items y Retorno del rack

Descripcion del problema

A la llegada del rack con productos (5 por rack) al punto de consumo, los operarios de la línea van sacando del rack los productos conforme los van necesitando para montarlos en la línea. Por lo tanto hasta que el rack no esté completamente vacío, este no podrá ser devuelto a su punto inicial.

Por otro lado, cuando quede 1 solo Ítem en el rack, del almacén deberá salir el siguiente rack para que así el operario no espere.

El objetivo de la simulación

Pasos a seguir

La simulación constará de los siguientes elementos:

Entities

  • Item
  • Rack

Sources

  • SourceRack
  • SourceItem

Combiner

  • Combiner1

Separator

  • Combiner2

Servers

  • Almacén
  • EsperaRack
  • PuntoUsoItems

Sink

  • SinkItem

Se ha subdividido el problema en dos partes:

A) El Rack no puede retornar hasta que se hayan cogido todos los ítems para su uso. Es decir, hasta que la cola de PuntoUsoItems sea nula.

Para ello modificaremos la capacidad de EsperaRack. Será 1 cuando queramos que salga el Rack, y 0 cuando queramos que espere.

1. Creamos un process llamado AbreEsperaRack. Añadimos un step Assign y seleccionamos la variable de capacidad de EsperaRack (Properties >> Basic Logic  >>State Variable Name >>EsperaRack.CurrentCapacity) y le asignamos el valor 1 (Properties àNew Value à 1).

2. Creamos un process llamado CierraEsperaRack. Añadimos un step Assign y seleccionamos la variable de capacidad de EsperaRack (Properties >> Basic Logic  >> State Variable Name >> EsperaRack.CurrentCapacity) y le asignamos el valor 0 (Properties >> New Value >> 0).

3. En la pantalla Definitions creamos un Monitor y lo llamamos DisparaVaciadoRack (Properties à General à Name à DisparaVaciadoRack).

  • a)      Modificamos el tipo de monitor a CrossingStateChange (Properties >>Basic Logic >> Monitor Type >>CrossingStateChange).
  • b)      Seleccionamos la variable a monitorizar (Properties >> Basic Logic >> State Variable Name >> PuntoUsoItem.AllocationQueue), es decir, el valor de actual de la cola de PuntoUsoItem.
  • c)       Cambiamos el valor umbral a 1 (Properties >> Basic Logic >> Threshold Value >> 1), es decir, cuando el valor de la variable monitorizada “cruce” 1, el monitor disparara el proceso asociado.
  • d)      Cambiamos la “dirección de cruce” a negativa (Properties à Basic Logic >> Crossing Direction à Negative), es decir, cuando cruze el valor umbral en sentido negativo, por ejemplo, 3, 2, 1, 0. Destacar que el monitor disparará el proceso asociado cuando “cruce” el valor umbral, no cuando el estado de la variable sea igual al umbral. Es decir, se disparará cuando el valor de la variable sea menor que uno, PuntoUsoItem.AllocationQueue  < 1.
  • e)      Finalmente seleccionamos el proceso a disparar (Properties >> Advanced Options >> On Event Process >> AbreEsperaRack).

4. Para disparar el proceso CierraEsperaRack no usaremos un monitor, si no que lo haremos con un Add-On Process. Hacemos click en EsperaRack (Properties à Add-On Process Triggers à Entered à CierreEsperaRack). En definitiva, cuando el rack entre en el proceso la capacidad de EsperaRack sera 0, por tanto, hasta que no se dispare el monitor DisparaVaciadoRack, no podrá ser procesado ningún Rack.

5. Para evitar un posible problema de ceros cambiaremos el tiempo de viaje del TimePath que va desde Separator1 hasta PuntoUsoItems (Properties >> Travel Logic >> Travel Time).

6. Ahora deberemos cambiar la capacidad inicial de EsperaRack a 0 (Properties >> Process Logic >> Initial capacity >> 0).

7. Por último cambiaremos el tiempo de proceso de EsperaRack a 0 (Properties >>Process Logic >> Processing Time >> 0).

B) Solo saldrá un Rack el almacén cuando quede 1 Ítem en el Rack. Es decir, cuado la cola de PuntoUsoItems sea 1.

Para ello modificaremos la capacidad de Almacén. Será 1 cuando queramos que salga el Rack, y 0 cuando queramos que espere.

1. Creamos un process llamado AbreAlmacen. Añadimos un step Assign y seleccionamos la variable de capacidad de Almacen (Properties >> Basic Logic  >> State Variable Name >> Almacen.CurrentCapacity) y le asignamos el valor 1 (Properties >> New Value à 1).

2. Creamos un process llamado CierraAlmacen. Añadimos un step Assign y seleccionamos la variable de capacidad de Almacen (Properties >> Basic Logic  >> State Variable Name >> Almacen.CurrentCapacity) y le asignamos el valor 0 (Properties àNew Value >> 0).

3. En la pantalla Definitions creamos un Monitor y lo llamamos DisparaAlmacen (Properties >> General >> Name >> DisparaAlmacen).

  • a)       Modificamos el tipo de monitor a CrossingStateChange (Properties >> Basic Logic >> Monitor Type >> CrossingStateChange).
  • b)      Seleccionamos la variable a monitorizar (Properties >> Basic Logic >> State Variable Name >> PuntoUsoItem.AllocationQueue), es decir, el valor de actual de la cola de PuntoUsoItem.
  • c)      Cambiamos el valor umbral a 2 (Properties >> Basic Logic >> Threshold Value >> 1), es decir, cuando el valor de la variable monitorizada “cruce” 2, el monitor disparara el proceso asociado.
  • d)        Cambiamos la “dirección de cruce” a negativa (Properties >> Basic Logic >> Crossing Direction >> Negative), es decir, cuando cruze el valor umbral en sentido negativo, por ejemplo, 3, 2, 1. Destacar que el monitor disparará el proceso asociado cuando “cruce” el valor umbral, no cuando el estado de la variable sea igual al umbral. Es decir, se disparará cuando el valor de la variable sea menor que uno, PuntoUsoItem.AllocationQueue  < 2.
  • e)        Finalmente seleccionamos el proceso a disparar (Properties >> Advanced Options >> On Event Process >> AbreAlmacen).

4. Para disparar el proceso CierraAlmacen no usaremos un monitor, si no que lo haremos con un Add-On Process. Hacemos click en Almacen (Properties >> Add-On Process Triggers >> Exited >> CierreAlmacen). En definitiva, cuando el rack abandone el proceso la capacidad del Almacen sera 0, por tanto, hasta que no se dispare el monitor DisparaAlmacen, no podrá ser procesado ningún Rack.

5. Por último cambiaremos el tiempo de proceso del Almacen a 0 (Properties >> Process Logic >> Processing Time à 0).

Con fin de poder observar mejor la simulación cambiaremos el tiempo de proceso de PuntoUsoItem a 1 (Properties >> Process Logic >> Processing Time >> 1).

Y para finalizar limitaremos la salida de Racks a 3. Hacemos click en SourceRack (Properties >> Stopping Conditions >> Maximum Arrivals >> 3).

Ya podemos correr el modelo y observar que se cumplen las restricciones impuestas.