Capítulo 08 extensión lógica con procesos

28
Traducción de Material Capacitación Simio LLC. Se traduce solamente las explicaciones, manteniendo los comandos y nombre de las variables en inglés. www.evirtual.cl - Capacitación

description

 

Transcript of Capítulo 08 extensión lógica con procesos

Page 1: Capítulo 08 extensión lógica con procesos

Traducción de Material Capacitación Simio LLC. Se traduce solamente las explicaciones, manteniendo los comandos y nombre de las variables en inglés. www.evirtual.cl - Capacitación

Page 2: Capítulo 08 extensión lógica con procesos

Introducción a los procesos. ◦ Process logic, Steps, Elements, and Tokens.

◦ Procesos Add-on.

Decisions, Statistics ◦ Workshop – Agony Continued

Seize, Delay, Release ◦ Workshop – MRI with Technician

Logic and coordinación. ◦ Ejemplos SimBit

◦ Workshop – Devoluciones en Biblioteca

Page 3: Capítulo 08 extensión lógica con procesos

Un proceso es un conjunto de acciones que ocurren en el tiempo que pueden cambiar el estado del sistema..

En Simio, un proceso está definido como un flujograma usando steps que son ejecutados por un token y puede cambiar el estado de uno o más elementos.

Steps realizan acciones tales como:

◦ Delay por un tiempo especificado.

◦ Seize o release un objecto.

◦ Wait por la ocurrencia de un evento.

◦ Decide basado en una probabilidad o condición.

◦ Transfer una entidad en una station.

◦ ….

Page 4: Capítulo 08 extensión lógica con procesos

con Design/Team Edition los procesos se pueden usar para construir lógicas de modelamiento. Los modelos se pueden construir enteramente con objetos, con procesos, o con una combinación de ambos.

Los objetos permiten un modelamiento rápido y proveen flexibilidad.

La Standard Library de objetos están todos contruídos usando procesos.

Los procesos se pueden usar para insertar lógica especial en la Standard Library en una instancia en base a instancias.

Page 5: Capítulo 08 extensión lógica con procesos

Un token puede tener propiedades y estados.

Un token lleva una referencia a su parent object y al associated object.

Los atribbutos del Associated object puede ser referenciado usando el nombre de la clase; e.g. ModelEntity.TimeCreated

Los atributos del parent object pueden ser referenciados por su nombre; e.g. ProcessTime

Parent Object

Tokens

Associated Object

In the case of entity visits the associated object is the visiting

entity.

If the process is being executed inside the

Server, then the Server would be the parent

object.

Page 6: Capítulo 08 extensión lógica con procesos

Un standard process es un procesos definido por Simio que se ejecuta automáticamente por el motor Simio. Por ejemplo, el proceso OnInitialized es ejecutado por Simio para cada objeto en la inicialización. ◦ Un decision process es un standard process usado por el

motor para pedirle al objeto que entregue una decisión True/False (e.g. Me recogerá?). Decision processes no pueden tener demoras de tiempo.

Un add-on process se incorpora en el modelo de un objeto parapermitir al usuario de ese objeto de insertar una lógica especial.

Un event-triggered process es un proceso definido por el usuario que es activado por un evento que se gatilla dentro del modelo. (e.g. Input.Entered).

Page 7: Capítulo 08 extensión lógica con procesos

Asgrega funcionalidad a un objeto sin cambiar el objeto.

Mirala descripción para determinar el mejor punto de activación.

Procesa “vida” en parent model

Page 8: Capítulo 08 extensión lógica con procesos

Steps (ejecutado por tokens) ◦ Propiedades

Elements (referenciados por los steps) ◦ Properties ◦ States ◦ Events

Tokens ◦ Properties ◦ States

Page 9: Capítulo 08 extensión lógica con procesos

Elements tienen comportamiento definido por Simio que es controlado usando los steps.

Elements tienen propiedades que especifican opciones de entrada.

Elements tienen estados que pueden cambiar con el tiempo.

Elements pueden activar eventos en puntos seleccionados en el tiempo.

Elements son agregados en la Definitions window del modelo.

Page 10: Capítulo 08 extensión lógica con procesos

Nombre Elemento Descripción

Station Define la capacidad restringida al interior de un objeto

Timer Activa una corriente de evento de acuerdo a un IntervalType especificado.

Failure Define el estado de la falla para el objeto parent.

BatchLogic Forma un batch clasificando entidades y adjuntándola a una parent entity.

Storage Define una cola de almacenamiento temporal para una o más entidades en un

orden especificado.

Monitor Activa un evento cuando el estado cambia o cruza un valor especificado.

Network Define una malla de links

RoutingGroup Define la lógiva de enrutamiento para seleccionar un nodo de destino desde una

lista de posibles destinos.

OutputStatistics Define una expresión que se guarda al final de cada réplica.

Statetaistics Registra las estadísticas dependiente del tiempo en una variable de estado

TallyStaistics Mantiene un resumen estadístico para los valores observados registrados

usando un Tally step.

Operation Define una secuencia de actividades que se desarrollan en el tiempo.

Activity Define una actividad que se desarrolla dentro de una operación.

Material Define un material que puede ser producido o consumido y que tiene un Bill of

Material

Page 11: Capítulo 08 extensión lógica con procesos

Steps realizan una acción tal como seize, delay, decide, wait, etc.

Steps no tienen estado.

Steps pueden cambiar el estado de un element/token/entity/object.

Steps están organizados en grupos (Common, All, User-Defined)

Page 12: Capítulo 08 extensión lógica con procesos

Processes tienen un solo Begin y uno o más Ends. Ponga los steps en el gráfico y se arreglan automáticamente. Arrastre un End al punto de entrada de un step. Arrastre un step para moverlo a una nueva ubicación. Seleccione el proceso entero hacieno clic fuera de los steps. Acerque el proceso seleccionado usando las teclas +/- . Copie y pegue un proceso dentro de Simio o en aplicaciones

externas (Special Paste in MS Office). Asigna una Category de proceso el cual se puede expandir o

contraer.

Page 13: Capítulo 08 extensión lógica con procesos

Common Steps

Step Name Acción

Assign Asigna un valor de una expresión a una variable de estado

Decide Envía un token a una de dos puntos de salida según una expresión.

Delay Demora el token por un tiempo específico.

Execute Ejecuta un proceso y puede esperar o continuar

Tally Cuadra un valor en un elemento TallyStatistics específico

Create Crea una nueva entidad

Destroy Destruye la entidad parent o asociada.

Fire Dispara el objeto evento especificado.

Wait Espera por un evento especificado que se dispare

Seize Captura uno omás objetos recursos

Release Libera uno o más objetos recursos.

Transfer Transfiere ña entidad asociada entre objetos y/o lebera espacio o entre

estaciones.

EndTransfer Completa el transfer de la entidad asociada en el objeto y/o estación.

Page 14: Capítulo 08 extensión lógica con procesos

Step Name Acción

Allocate Gatilla manualmente captura de recursos para la parent entity.

Batch Crea un lote con la entidad asociada usando el elemento BatchLogic

Consume Consume una cantidad específica de material.

EndActivity Termina la operación vigente de la entidad asociada.

EndOperation Termina la operación vigente de una entidad.

Fail Especifica el elemento Failure para cambiar a estado falla.

Insert Inserta el objeto asociada o parent en un cola

Interrupt Puede ser usado para interrumpir demoras de procesos.

Produce Produce una cantidad específica de material

Remove Remueve el objeto asociado o parent desde una cola.

Rapair Especifica un elemento Failure para restablecer a estado reparado

Resume Reactiva un proceso suspendido o movimiento del objeto asociado o

parent.

Search Busca una colección de ítemes incluyendo filas de tablas u objetos en

una lista o cola.

SetNetwork Define la malla vigente para el objeto asociado o parent.

SetNode Define el destino vigente para el objeto asociado o parent.

SetTable Define una tabla de referencia y fila para un token u objeto

parent/asociado

StartActivity Inicia una actividad específica para una operación

StartOperation Inicia una operación específica

Subscribe Agrega un nuevo triggering event a un proceso.

Suspend Suspende un proceso o movimiento de un objeto asociado o parent

Unsubscribe Retira un triggered evento para un proceso.

Page 15: Capítulo 08 extensión lógica con procesos

Step Name Action

Arrive Notifies the visit request that the entity has arrived to the requested location.

PlanVisit Search for and accept a ride pickup or visit request as a planned node visit.

SelectVisit Select a planned node visit and set the destination to the selected node.

Step Name Action

Dropoff Drop off a passenger entity at the current node.

Pickup Pickup a passenger entity from the RidePickupQueue at the current node.

SelectDropoff Set the destination to a selected passenger entity in the RideQueue.

Step Name Action

Park* Park the associated or parent entity in the parking area of a node.

Ride Initiate a transporter ride request for the associated entity.

Route Set the destination for the associated entity using a RoutingGroup element.

UnPark* Move the parked parent or associated entity into the crossing area of the node.

VisitNode Execute the OnVisitingNode standard process for the associated entity.

Step Name Action

Disengage Unlock the entity from the link so that it can move independently.

Engage Lock an entity to the current location or nearest cell location on the link.

Entity

Transporter

Node

Link * These steps may also be used by an entity/transporter.

Page 16: Capítulo 08 extensión lógica con procesos

Simio tiene una estructura abierta .NET que soporta user-defined steps and elements.

Steps/elements pueden ser codificados en cualquier lenguaje .NET (e.g. Visual Basic, C#).

User-defined steps tiene sus propias propiedades yson usadas exactamente como steps construidos pero se despliegan en azul.

Page 17: Capítulo 08 extensión lógica con procesos

Statistics ◦ Tallies, Tally

Logic ◦ Decide, Delay, SetNode

Page 18: Capítulo 08 extensión lógica con procesos

Arrive – Adjust – Inspect – Rework (10%).

Marcar rechazosen “rojo”

Permitir máximo de 3 ajustes antes de failed.

Registrar la cantidad de ajustes.

Adjust Inspect

10%

90%

Failed

Passed

Rework

Page 19: Capítulo 08 extensión lógica con procesos

Mejorer el modelo de Agony Airport para registrar las estadísticas de los pasajeros atrasados.

Pasajeros llegan 0.4-1.2 horas (uniform) antes de sus vuelos (e.g. sus vuelos es esa cantidad de tiempo después de pasar por la entrada).

Agregue la lógica al modelo para registrar las estadísticas de la cantidad y la tardanza de los pasajeros atrasados.

Page 20: Capítulo 08 extensión lógica con procesos

Agregar una state variable en ModelEntity llamada FlightTime para almacenar las horas de salida de cada pasajero . Difínalo con un add-on process en el Source en TimeNow más una distribución.

Agregue un Tally Statistic element y Tally step en la variable en Model llamada LateDepartures para almacenar estas mediciones de salida. Defínalo con un add-on process en la Gate (Sink).

Decide FlightTime < TimeNow

Tally TimeNow - FlightTime

Page 21: Capítulo 08 extensión lógica con procesos

ServerA

ServerB

PartA

PartB

Depart

E(3)

E(4) T(1,2,3)

T(1,2,3)

Depot

Repairman

20

50

50

Failures : E(100) Repairs : T(1,2,3)

Page 22: Capítulo 08 extensión lógica con procesos

Use a standard Server to represent an MRI

Use add-on process to require technician for 5 minute setup and 5 minute cleanup in addition to normal processing time.

Patients arrive 1 per hour

Service time is 45 minutes

Page 23: Capítulo 08 extensión lógica con procesos

Partes que llegan visitan los cuatro

servidores usando la ruta menos usada.

Server1

Server4

Server3

Server2

Arrive Depart

From/To Server1 Server2 Server3 Server4

Server1 0 12 16 13

Server2 0 0 14 10

Server3 0 17 0 15

Server4 0 9 8 0

Initial Data

Page 24: Capítulo 08 extensión lógica con procesos
Page 25: Capítulo 08 extensión lógica con procesos

Coloque un Resource llamado Technician

Agregur un proceso en Processing para Seize Technician y Delay por 5 minutos.

Agregue un proceso en Processed para Delay por 5 minutos y Release Technician.

Page 26: Capítulo 08 extensión lógica con procesos

SeizingVehicle ◦ Seize a vehicle for certain parts. Vehicle does normal

transportation otherwise.

OverflowWIP, WorkerUsedForMultipleTasks ◦ Overflow waiting area, secondary resources

TransferLine ◦ Synchronized movement

RecordDistanceTraveled ◦ Incremental statistics

MoveableOperator ◦ Illustrates smart entity behavior (Employee)

Page 27: Capítulo 08 extensión lógica con procesos

Materials son devueltos en un buzón de libros cada .25 minutos (expo).

El bibliotecario solamente procesa cuando hay a lo menos 10 libros esperando, y luego los procesa todos a la vez.

Use un dashboard para graficar la cantidad de libros esperando.

Page 28: Capítulo 08 extensión lógica con procesos

Use Source y Sink para los lobros de llegada y para los guardados respectivamente.

Use Worker para representar al bibliotecario.

Add Process - Evaluating Transport Request ◦ Decide DropBox.OutputBuffer.Contents < 10 &&

Worker.NumberRiders ==0

◦ Assign Token.ReturnValue to -1 (reject)