Separator
Objeto | Separator |
Función | Desagrupación, copia y creación de entidades |
Clase | Fixed |
Process Triggers | Run Initialized, Run Ending, Entered, Before Processing, Processing, After Processing, Parent Exited, Member Exited, Failed, Repaired, Evaluating Seize Request, On Shift, Off Shift |
Asignación de estados | On Entering, Before Processing, After Processing, Before Parent Exiting, Before Member Exiting, On Balking, On Reneging |
Este objeto tiene como función principal la de separar un batch de su entidad padre (ver Combiner). Cuenta con un nodo de entrada (Input) y dos nodos de salida: el primero para la entidad padre (ParentOutput) y el segundo para las entidades miembro (MemberOutput). Cada nodo de salida cuenta con su respectiva cola o buffer de salida.
Modos de operación (Separation Mode)
A pesar de que por defecto este objeto opera como el inverso al Combiner, en realidad tiene 3 modos de operación o de separación. Además, este objeto permite asignarle un tiempo de proceso, este se especifica en la propiedad Processing Time.
-
Separar (Split Batch): Modo por defecto. Funciona de forma inversa al Combiner: recibe en su nodo de entrada a una entidad padre con su batch, lo procesa y los separa, saliendo la entidad padre por el nodo de salida ParentOutput y las entidades miembro por el nodo MemberOuput. Este modo permite especificar por medio de la propiedad, Desired Split Quantity, cuántos miembros serán removidos del batch. Si el batch es más grande que la cantidad definida, la entidad padre saldrá del objeto con las entidades que no fueron removidas (sigue teniendo un batch, pero con menos entidades).
-
Copiar (Make Copies): Este modo hará que el Separator cree copias de la entidad entrante. La cantidad de copias a crear se define en la propiedad Copy Quantity y el tipo de entidad se define en la propiedad Copy Entity Type (por defecto creará una copia del mismo tipo). La entidad original sale por el nodo ParentOutput, las copias por el nodo MemberOutput. Simio se encargará de copiar los valores de los atributos desde el original a las copias.
- Crear (Create New): Similar al modo de copia, pero sin copiar los atributos. La cantidad a crear se define en la propiedad New Entity Quantity y el tipo en la propiedad New Entity Type. La entidad original sale del objeto usando el nodo ParentOutput y las nuevas entidades usando el nodo MemberOutput.
Tipos de capacidad (Capacity types)
La capacidad representa la cantidad de entidades que el objeto puede procesar de manera simultánea.
- Fija (Fixed): La capacidad estará dada por la propiedad Initial Capacity. Esta puede ser una expresión, pero solo es evaluada al comienzo de la simulación. La capacidad puede ser modificada durante la simulación asignándole un nuevo valor al estado CurrentCapacity del objeto (Ej: MiObjeto.CurrentCapacity)
- Horario de trabajo (Work Schedule): Para utilizar este tipo, se debe definir un Work Schedule en la pestaña Data. Este modo permite asignar un horario de trabajo al objeto, de manera que automáticamente comienza a procesar entidades cuando comienza su turno (On Shift) y deja de procesarlas cuando el turno termina (Off Shift).
Objeto Separator visto en vista Facility (2D)
Algunas propiedades
Propiedad | Tipo | Descripción |
Separation Mode | List | Modo de operación. Ver arriba para más detalles. |
Desired Split Quantity | Expression | Número de entidades a extraer del batch. |
Removal Order | List |
Orden en que se remueven las entidades del batch. LastBatchedFirst: LIFO |
Copy Quantity | Expression | Número de copias a crear. |
Copy Entity Type | Nombre de entidad | Tipo de entidad a crear. |
New Entity Quantity | Expression | Número de entidades a crear. |
New Entity Type | Nombre de entidad | Tipo de entidad a crear. |
Initial Capacity | Expression |
Capacidad inicial del Separator. Corresponde a la cantidad de entidades que se pueden procesar de forma simultánea. Se evalúa al comenzar la simulación. |
Transfer-In Time | Expression |
Corresponde al tiempo que toma transferir una entidad al Separator. |
Off Shift Rule | List |
Indica la política que utilizará el objeto para determinar qué hacer cuando se acabe el turno y exista una entidad en proceso.
Suspend Processing: se suspende el procesamiento y continua en el siguiente turno. Finish Work Already Started: no procesará nuevas entidades pero terminará las que se encuentran actualmente en proceso. |
Add-On Process Triggers
Trigger | Descripción |
Run Initialized | Ocurre cuando la simulación es iniciada. |
Run Ending | Ocurre cuando la simulación está terminando. |
Entered | Ocurre cuando una entidad ha entrado al objeto y está por empezar el Transfer-In Time. |
Before Processing | Ocurre cuando le ha sido asignada capacidad del Separator a la entidad pero esta aún no ingresa a la estación de proceso. |
Processing | Ocurre cuando la entidad padre ha sido transferida a la estación de proceso y está a punto de comenzar su procesamiento. |
After Processing | Ocurre cuando la entidad padre ha completado su procesamiento y está por salir de la estación de proceso. |
Parent Exited | Ocurre cuando una entidad padre ha salido del objeto. |
Member Exited | Ocurre cuando una entidad miembro ha salido del objeto. |
Failed | Ocurre cuando este objeto ha fallado. |
Repaired | Ocurre cuando este objeto ha sido reparado. |
Evaluating Seize Request | Ocurre cuando el objeto está determinando si aceptará o no la solicitud de capacidad por parte de la entidad. Para rechazar se debe asignar un valor negativo al ReturnValue del Token. |
On Shift | Ocurre cuando el objeto está al inicio de un turno definido en su Work Schedule. |
Off Shift | Ocurre cuando el objeto está al término de un turno definido en su Work Schedule. |