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.

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.


Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s