Está en la página 1de 38

Introducción a Flexsim

Pablo Concha Erilkin


Introducción.
• Flexsim
– Software de simulacion de eventos discretos.
– Visualización y trabajo en ambiente 3d.
– Objetos altamente parametrizados para minimizar
la necesidad de programar.
– Tiene la flexibilidad de permitir programar y
modificar objetos base para su reutilización
(creación de librerias de usuario)
Modelos, Objetos y Flowitems
• Modelo– Conjunto de objetos de flexsim que representan
un sistema. (sólo con suficiente detalle para responder a
algun problema!!)

• Objeto– Pieza de construcción de un modelo con


comportamiento heredado y atributos, variables y
propiedades visuales definidas por el usuario.

• Flowitem – Entidades que se mueven en el modelo,


pueden ser: productos, clientes, información, etc.

3
Modelo

Objetos

Flowitems

4
Modelo de Flexsim
• Un modelo de Flexsim es un sistema de
colas, procesos y transportes.
– Colas se generan de forma natural por la
diferencia entre tiempos de llegada y de
procesamiento en un punto del modelo.
– Procesos permiten definir una demora forzada
sobre una entidad mientras es procesada.
– Transporte es el movimiento físico de una
entidad desde un recurso a otro.

5
Clasificación de Objetos
• Recursos Fijos– Objetos que envian y/o
reciben entidades
ej.

• Recursos Móviles (TaskExecuters) – recursos


que pueden moverse entre recursos fijos.
ej.

6
Clasificación de Objetos
• Flowitems - Entidades que pasan de un
recurso fijo a otro en el modelo.
• También son objetos de Flexsim.
• Pueden contener información, la cual
puede ser leida o manipulada durante la
simulación.
– Esta informacion puede ser utilizada para
tomar decisiones de ruta, controlar tiempos de
proceso, etc.
Comportamiento del Modelo
La mayoría del comportamiento del modelo
se define en los recursos fijos:
– Cuanto tiempo procesar una entidad
– A donde enviar la entidad
– Llamar un recurso movil (operador) para
procesar a la entidad
– Llamar un recurso movil (transporte) para
mover la entidad a su próximo destino
Puertos de Conexión
• Puertos de entrada/salida- las conexiones de
puertos de salida hacia puertos de entrada
definen las posibles rutas que puede seguir un
flowitem en el modelo.

entrada salida
Puertos de Conexión
• Puertos centrales- se utilizan para hacer referencia
a otros objetos, el uso más comun es por ejemplo
para llamar a un recurso movil para transportar (o
procesar) el flowitem.

central
Triggers

• Oportunidad para definir


comportamiento
específico en un momento
dado.
– Leer/escribir informacion
en un flowitem/objeto.
– Cambiar propiedades
visuales de un objeto.
– Enviar mensajes a otros
objetos.
– Cambiar comportamiento
de otros objetos.
– Mucho mas.…
Pasos básicos de modelado en Flexsim
1 - Crear layout usando objetos de la librería
2 - Hacer conexiones de puertos
3 - Editar comportamiento y propiedades
visuales de los objetos
4 - Correr el modelo
5 - Ver resultados
Modelo 1
• Objetivo
– Introducción a los 5 pasos de modelado en Flexsim,
mediante el uso de un sistema de una cola y un proceso
(oficina de correos)
• Descripción
– Gente llega a la oficina de correos cada 60 segundos en
promedio. La distribución estadística que mejor
representa estos tiempos entre llegada es una
exponential(0,60).
– El tiempo de servicio en la única ventana de atención es
de lognormal(31, 3.1, 0.5) segundos.
– Si la cola de servicio supera las 20 personas, la siguiente
persona que entra al modelo es ruteada fuera de este y
clasificada como “cliente insatisfecho”.

13
Paso 1. Crear Layout
• Arrastrar con el mouse objetos desde la librería de objetos a cualquier ventana
de vista del modelo.
• Reposicionar, rotar y cambiar tamaño de objetos.
Operaciones del Mouse
• Navegación en ventanas de vistas:
– Trasladar vista: click izquierdo - arrastrar
– Girar angulo de vista: click derecho y arrastrar
– Zoom: click 2 botones del mouse - arrastrar (o usar rueda
del mouse)
• Objetos:
– Trasladar en ejes X e Y: click izquierdo – arrastrar objeto
– Trasladar en eje Z: click 2 botones y arrastrar

• Resaltar (Highlighed) = caja amarilla: click izquierdo


• Seleccionar = caja roja: shift click or control-click
– Seleccionar multiples objetos de la misma forma, pero
hacer click y arrastrar hasta envolver a objetos deseados
Paso 2. Hacer conexiones de puerto
• Mientras se presiona la tecla “A”, hacer click izquierdo desde
el objeto de donde saldrá la entidad y arrastrar hasta el objeto
donde llegará la entidad.
• La direccíon es importante! Arrastrar desde donde sale la entidad hacia
su/sus posible(es) destino(s).
• Estas conexiones de salida/entrada se hacen para definir el
flujo de las entidades en el layout.

16
Teclas usadas para conexiones de puertos
Salida a entrada Centro a centro

Desconectar
Q W
Conectar
A S
Visualizar
V C
Paso 3. Editar objetos
• Ventana de propiedades
– Hacer doble click en el objeto o boton derecho y
seleccionar “propierties” para abrir ventana de edición
– Se utiliza para editar toda opción de un objeto
• Comportamiento del objeto
• Propiedades visuales, orientación,posición, rotación
• Nombre del objeto
• Conexiones de puerto
• Labels
• Visualización de resultados
Ventana de Propiedades
• Cada objeto tiene su propia
ventana de propiedades

• Estas propiedades definen el


comportamiento del objeto,
como el tiempo de estadía de
una entidad en el objeto y
reglas de ruteo a la salida de
esta.

• Apply acepta los cambios


realizados
• OK acepta cambios y cierra la
ventana
• Cancel cierra la ventana sin
aceptar cambios
Entendiendo las opciones de edición básicas

• Seleccion de opciones

• Plantilla (edición amigable)


• Edicion de código(acceso a Flexscript/C++)
Entendiendo las opciones de edición de triggers

• Código o selección actual seleccionada

• Agregar opcion con bloque de código


• Eliminar todas las opciones seleccionadas
• Plantilla (edición amigable)
• Edicion de código(acceso a Flexscript/C++)
Paso 4. Correr la simulación

• Controles de la simulación

• Control de la velocidad de la
corrida (no tiene efecto sobre
los resultados)
Paso 5. Ver Resultados
• Crear reportes completos,
de estadísticas o estados.
• Otras formas de ver estadísticas:
– Objeto Visual Tool
• Texto dinámico
– Objeto Recorder
• Histogramas, gráficos vs tiempo,
gráficos de torta, etc.
– Tab Statistics en la ventana de
propiedades
– Escribir estadísticas en Tablas
Globales desde los triggers.
Itemtypes
• itemtype – Todas las entidades tienen un atributo
llamado itemtype. Es un identificador numerico
que permite diferenciar “tipos” de entidades. Se
puede utilizar la característica itemtype, para
definir flujos, tiempos de proceso, etc.
Itemtypes
• Ejemplo.
– Crear el layout de la figura.
– Seleccionar el trigger “OnCreation” del Source, la
opción “Set Itemtype and Color” (tab “Triggers”)
– Seleccionar en la opción “Send To Port” del tab “Flow”
del Source, la opción “by Expression”
Equipo de recursos móviles
Si se requiere usar el
equipo para transportar
entidades, en el Tab
“Flow”, seleccionar la
opcion “Use Transport”.

Salida Si sólo hay un recurso


Central para realizar el
transporte, la conexión
Dispatcher de puerto central es
Operadores directa entre objeto y
operador (o transporte
Entrada /robot /grua, etc) y se
selecciona la misma
opcion anterior.
Modelo 1
• Descripcion
– 3 tipos de piezas distribuidas uniforme llegan al proceso
de pulido con un tiempo entre llegadas distribuido
exponential(0,2).Las piezas vienen clasificadas, por lo
cual cada una llega a la estacion de pulido en un
conveyor distinto.
– Cada tipo de pieza debe ser pulida en una máquina
distinta (3 pulidoras), proceso que demora 2 segundos.
– Un equipo de 2 robots transportan las piezas pulidas
directo desde la máquina a un conveyor de salida del
sistema. (Un conveyor por tipo de pieza). El primer robot
atiende a la estacion de pulido 1, el segundo robot
atiende la estacion de pulido 3 y los dos robots
(coordinados por un dispatcher) atienden la estacion 2.
– Las velocidades de rotación de los robots en el eje z e y
es de 80.
Modelo 1, Layout
Modelo 2
• Descripcion
– Un producto llega a la zona de empaquetado, con un
tiempo entre llegadas distribuido exponential(0,10), hay
3 máquinas empaquetadoras las cuales trabajan de la
misma forma.
– El producto es transportado por un operador de un
equipo de 2 operadores, desde la cola de recepcion de
productos hasta la primera máquina disponible, luego
en la máquina el operador debe configurar la máquina,
proceso que demora 2 segundos, luego el proceso de
empaquetado se realiza por si solo y demora 6
segundos. La pieza luego queda en cola al lado de la
máquina esperando transporte a bodega.
– El transporte desde la espera de la máquina hasta
bodega (un rack), es realizado por un transporte con
capacidad de mover hasta 5 productos a la vez.
Modelo 2, Layout
Calculo tiempos de ciclo.
• Tiempo de ciclo.
– Tiempo de permanencia de una entidad en el
modelo.

• Para su cálculo, se necesita del uso de algunas


herramientas del software:
– Labels.
– Triggers.
Calculo tiempos de ciclo.
• Labels.
– Se puede almacenar
información en las entidades
en forma de labels.
– Los labels constan de 2
partes, nombre e
información. El nombre es
como hacemos referencia al
label y la informacion es el
dato almacenado (puede ser
de texto o numerico)
Comandos para uso de Labels
– getlabelnum( objecto, “NombredeLabel” )
– setlabelnum( objecto, “NombredeLabel” , value )
– getlabelstr( objecto, “NombredeLabel” )
– setlabelstr( objecto, “NombredeLabel” , string )
– label( objecto, “NombredeLabel” )

• Ejemplos
– getlabelnum( item, “serialnumber” )
– setlabelnum( item, “serialnumber”, 5 )
– getlabelstr( current, “category” )
– setlabelstr( current, “category”, “groceries” )
– inc( label(item, “stepnum”), 1 )
• The increment command only works with number data nodes
33
Calculo tiempos de ciclo.

Triggers
• Oportunidad de definir
comportamiento del
modelo en un evento
específico.
– Escribir/leer informacion.
– Cambiar propiedades
visuales de un objeto.
– Enviar mensajes a otros
objetos.
– Etc.

34
Calculo tiempos de ciclo.
• Ejemplo. Calculo de tiempo de ciclo promedio.
– Construir el layout de la figura.

• Los tiempos de procesamiento en A y B son iguales de 10


segundos.
• El tiempo de procesamien to en B es de 9 segundos.
Calculo tiempos de ciclo.
• En el source, ir al tab
“Triggers” y en la opcion
“OnCreation” seleccionar
“Create and Initialize
Label”. Luego ingresar los
datos que se muestran en
la figura.
Calculo tiempos de ciclo.
• En el Sink, ir al tab “Labels” y crear 2 labels
numéricos llamados “suma” y “promedio”. Esto se
hace presionando el boton “Add Number Label” y
cambiando el nombre del nuevo label creado como
en la figura.
Calculo tiempos de ciclo.
• En el Sink, ir al tab “Triggers” y seleccionar la opcion
“Set Label”, dos veces, completar como en la figura.

• Al correr el modelo, si vamos al tab “labels” de las opciones


del sink, vamos a ver en “promedio” el tiempo de ciclo
promedio de las entidades que han salido del modelo.

También podría gustarte