manual en español de software flexsim

298
1

Upload: restaurante-a-lo-llanero

Post on 19-Jan-2017

11.357 views

Category:

Engineering


464 download

TRANSCRIPT

1

2

3

Guia de Usuario para el modelamiento y análisis con el

Software Flexsim

4

Universidad Francisco de Paula Santander Facultad de Ingenierías Programa de Ingeniería Industrial Grupo de Investigación en Productividad y Competitividad

Título Original: Guía de Usuario para el modelamiento y análisis con el Software Flexsim

Autor: Rodolfo Casadiego Alzate

5

Prólogo

La simulación es una técnica que permite recrear ciertos aspectos de la realidad con bastante similitud, cuyo objetivo es el de estudiar cómo funcionaría un determinado sistema o cómo reaccionaría frente a ciertos cambios. La utilidad de los modelos de simulación, radica en que la experimentación sobre sistemas reales resulta muy costosa, puede generar el colapso de los procesos, o simplemente resultar infactible. La simulación permite que una vez construido el modelo, sea posible realizar modificaciones fácilmente, con el objeto de probar cómo se comporta el sistema frente a un aumento o reducción de un recurso, o frente al aumento de la producción, así como el impacto que podría generar la eliminación y/o agregación de un sub-proceso al sistema. Los modelos de simulación, pueden ser clasificados como determinísticos o estocásticos. Un modelo estocástico, no tiene ningún componente asociado a una distribución de probabilidad, esto quiere decir, que conocido el input que se entrega al sistema, se conoce inmediatamente el output que éste producirá. Un modelo probabilístico, por otra parte, sí incorpora componentes aleatorios, asociados a distribuciones de probabilidad, que durante la ejecución de la tarea, determinarán finalmente el output del sistema1. El presente manual se hace en base a una herramienta de simulación capaz de manejar tanto modelos estocásticos como modelos probabilísticos. Flexsim es un software de simulación diseñado para eventos discretos y contínuos con el fin de facilitar cualquier tipo de modelamiento en una sola herramienta. Este software no solo cuenta con estas características, sino también integra otras que lo convierte en poderoso aliado para el análisis de sistemas complejos. Permite realizar el modelamiento y la corrida del modelo en 3D, lo que facilita identificar posibles cuellos de botella u otros impactos a simple vista. En este manual, el usuario encontrará una combinación de conceptos simples y modelos sencillos para el manejo práctico del software. Recopila información no solo de la guía de usuario que se encuentra disponible en inglés, sino también del trabajo y la experiencia de distintas personas que lo han utilizado en el transcurso los años. Así mismo, se ha diseñado teniendo en cuenta lo que los usuarios necesitan saber del software y a su vez como poner en práctica lo aprendido. Este manual constituye una valiosa fuente de consulta, que ayudará a los usuarios en un sinnúmero de problemas en los cuales la simulación sea la herramienta que brinde una respuesta aproximada al problema que se tiene.

1 CORTÉS, Sebastián Ignacio. Evaluación de esquemas de secuenciación de intervenciones

6

CONTENIDO

pág.

PRÓLOGO Capítulo 1. Fundamentos del Software de Simulación Flexsim

1. Conceptos básicos para la construcción de un modelo de simulación 12 2. Metodología para realizar un proyecto de Simulación 13 2.1 Recopilación y validación de la información 14 2.2 Construcción y validación del modelo base 15 2.3 Construcción y comparación de escenarios 16 2.4 Pruebas de robustez 17 2.5 Recomendaciones 18 3. Introducción al Software Flexsim 19 3.1 Características del Software Flexsim 19 3.2 Barra de herramientas de Flexsim 27 3.3 File Menu 29 3.4 Edit Menu 36 3.5 View Menu 38 3.6 Build Menu 74 3.7 Execute Menu 75 3.8 Statistics Menu 76 3.8.1 Herramientas 83

7

3.8.1.1 Flexsim Chart 83 3.8.1.2 Experimenter 116 3.8.1.3 OptQuest Optimizer 129 3.8.1.4 Experfit 140 3.8.1.5 Dashboard 152 3.9 Tools Menu 166 3.9.1 Global Tables 168 3.9.2 Global Time Table 170 3.9.3 User Events 172 3.9.4 MTBF / MTTR 173 3.9.5 Graphical User Interfaces 175 3.9.6 Global Task Sequences 177 3.9.7 Flowitem Bin 183 3.9.8 Global Variables 184 3.9.9 AVI Maker 186 3.9.10 Presentation Builder 187 3.9.11 Import Media Files 189 3.9.12 Model Triggers 190 3.9.13 User Commands 191 3.9.14 Excel Interface 193 3.10 Debug Menu 194 3.10.1 Breakpoints 194 3.10.2 Event List 195

8

3.10.3 Event Log 196 3.11 Window Menu 197 3.12 Help Menu 196 3.13 Programación en Flexscript 204 3.13.1 ItemTypes 204 3.13.2 Labels 205 3.13.3 Triggers 206 3.13.4 Mensajes 206 3.13.5 Funciones 207 3.13.6 Reglas generales para la sintaxis 207 3.13.7 Tipos de variables 208 3.13.8 Operadores matemáticos 208 3.13.9 Operadores matemáticos de comparación 209 3.13.10 Operadores matemáticos de actualización 209 3.13.11 Referencias básicas de objetos 210 3.13.12 Estadísticas básicas de objetos 210 3.13.13 Características básicas de objetos 210 3.13.14 Atributos básicos de los objetos 211 3.13.15 Uso del “If”, “While” y “For” 211 3.13.16 Labels 212 3.13.17 Tablas 212 3.13.18 Control básico de los objetos 213

9

Capítulo 2. Objetos de la Librería de Flexsim

1. Fixed Resources 215 2. Task Executers 217 3. Other Discrete Objects 218 4. Fluid Objects 219 5. Pestañas de propiedades compartidas 221 5.1 Breakdowns Tab Page 221 5.2 Breaks Tab Page 223 5.3 Collision Tab Page 224 5.4 Conveyor Tab Page 226 5.5 Flow Tab Page 231 5.6 FluidLevelDisplay Tab Page 233 5.7 General Tab Page 234 5.8 Ventana Initial Product 237 5.9 Labels Tab Page 238 5.9.1 Tree View 239 5.9.2 Label Table View 239 5.10 Layout Tab Page 240 5.11 ProcessTime Tab Page 242 5.12 Statistics Tab Page 244 5.13 TaskExecuter Tab Page 246 5.14 Triggers Tab Page 248

10

Capítulo 3. Ejercicios Aplicativos

3.1. Recepción de materias primas y despacho de producto terminado 252 3. 2. Evaluación de una línea de producción de velas 286 BIBLIOGRAFIA 296

11

1

FUNDAMENTOS DEL SOFTWARE DE

SIMULACIÓN FLEXSIM

12

1. Conceptos básicos para la construcción de un modelo de Simulación2

Modelo: Es una representación simplificada de un sistema, construido con el propósito de estudiarlo, donde son considerados los aspectos que afectan al problema de estudio y debe ser lo suficientemente detallado para obtener conclusiones que apliquen al sistema real. Sistema: Colección de entes que actúan o interactúan para la consecución de un determinado fin. Estado: es una condición propia de cada objeto en un instante dado, que describe como se encuentra el objeto en el momento en que se detiene la corrida, está determinada por el conjunto de variables o parámetros utilizados para construir cualquier sistema. Evento: Suceso instantáneo que puede cambiar el estado del sistema y de los objetos. Entidad: Representación de los flujos de entrada a un sistema. Locaciones: Todos aquellos lugares en los que la entidad puede detenerse para

ser transformada o esperar a serlo. Recursos: Dispositivos necesarios para llevar a cabo una operación, estos

pueden moverse. Atributos: Características de una entidad.

Variables: Condiciones cuyos valores se crean y se modifican por medio de

ecuaciones matemáticas y relaciones lógicas.

2 CABRERA, Constanza. Propuesta de un manual de prácticas de Simulaciónde sistemas

discretos con PROMODEL, para el desarrollo de ejercicios aplicados en diferentes asignaturas de la carrera Ingeniería Industrial en la Pontificia Universidad Javeriana. Bogotá D.C.: Pontificia Universidad Javeriana. 2009. p.36.

13

Reloj de Simulación: Contador de tiempo de la Simulación. Mediante este se

establece el tiempo que debe durar una Simulación. “Históricamente se han considerado dos mecanismos para el registro del tiempo reloj. El primero, que se conoce como avance variable de tiempo o avance de tiempo al siguiente evento, consiste en avanzar el reloj a la siguiente hora a que debe ocurrir el siguiente evento. El segundo método conocido como avance de tiempo de incremento fijo, consiste en avanzar el reloj en intervalos pequeños uniformes de tiempo y determinar en cada intervalo si deben ocurrir eventos en ese lapso. 2. Metodología para realizar un proyecto de Simulación Antes de abordar el tema de cómo realizar un proyecto de Simulación, es importante que entendamos lo siguiente3: “Un modelo es una representación simplificada de una porción de la realidad, por lo tanto, si la modelación se realiza apropiadamente desde el inicio (desde la requisición de información), seguramente conducirá a una buena representación de la realidad a analizar. Una requisición y pre-procesamiento de información apropiada no es sinónimo de volumen, es decir, el hecho de recopilar grandes cantidades de información no garantiza el éxito de la modelación. El éxito radica en la capacidad para simplificar el gran volumen de información y nivel de detalle que seguramente quiere representarse en el modelo. El resultado: un modelo con estructura mínima, la más simple, capaz de representar la complejidad de un sistema real.”

3 Vatic Consulting Group. Workshop Simulación [diapositivas]. Bogotá D.C, 2012. p. 54.

14

2.1 Recopilación y validación de la información4 Figura 1. Resumen de metodología de Simulación, paso 1

Fuente. Vatic Consulting Group. Workshop Simulación

En esta etapa se obtiene toda la información tanto cualitativa como cuantitativa requerida para construir un modelo fiable de la realidad (ver figura 1). Sugerencia: realizar entrevistas a las personas vinculadas al proceso, realizar visitas a la empresa o entidad a la cual se le va a realizar el modelamiento y solicitar la información que el modelador considere necesaria para posteriormente analizarla.

4 Ibid., p. 24-25

1. RECOPILACION Y VALIDCIÓN DE

LA INFORMACIÓN

2. CONSTRUCCIÓN

Y VALIDACIÓN DEL MODELO

BASE

3. CONSTRUCCIÓN Y COMPARACIÓN DE ESCENARIOS

4. PRUEBAS DE ROBUTEZ

5. RECOMENDACIONES

15

2.2 Construcción y validación del modelo base5 Figura 2. Resumen de metodología de Simulación, paso 2

Fuente. Vatic Consulting Group. Workshop Simulación

El objetivo de esta etapa es la construcción y análisis de un modelo de Simulaciónque represente fiablemente la realidad de la operación que se lleva a cabo hoy en día en el sistema que se está modelando (ver figura 2). Hay que tener en cuenta que con la información obtenida que se considera ya esta previamente analizada y validada, se debe construir el modelo verificando que este se comporte de acuerdo a los parámetros o características que el modelador considera son propias a la realidad. Dicho modelo debería arrojar resultados que en contraste con la información real, tengan similitud y permitan comprender el sistema con mayor detalle. La validación del modelo base se realiza mediante evaluación de indicadores que se comparan con la información de la operación real. En dado caso que el modelo arroje algunos resultados que no tengan similitud con respecto a la operación real, se debería validar contra el criterio de las personas que diariamente se encuentran en la operación.

5 Ibid. p. 30-33

1. RECOPILACION Y VALIDCIÓN DE

LA INFORMACIÓN

2. CONSTRUCCIÓN

Y VALIDACIÓN DEL MODELO

BASE

3. CONSTRUCCIÓN Y COMPARACIÓN DE ESCENARIOS

4. PRUEBAS DE ROBUTEZ

5. RECOMENDACIONES

16

2.3 Construcción y comparación de escenarios6

Figura 3. Resumen de metodología de Simulación, paso 3

Fuente. Vatic Consulting Group. Workshop Simulación

Los escenarios son modelos similares del sistema real, pero cada uno de ellos se evalúa de diferente manera teniendo en cuenta que a cada escenario se le cambian ciertas variables (ver figura 3). Sugerencia 1: es importante que se definan premisas y medidas de desempeño

que permitan evaluar dichos escenarios. Sugerencia 2: al ejecutar esta etapa se debe tener modelos de los escenarios

planteados, una breve descripción de cada escenario y un resumen con los resultados arrojados por cada escenario a la luz de los indicadores definidos.

6 Ibid. p. 35-36

1. RECOPILACION Y VALIDCIÓN DE

LA INFORMACIÓN

2. CONSTRUCCIÓN

Y VALIDACIÓN DEL MODELO

BASE

3. CONSTRUCCIÓN Y COMPARACIÓN DE ESCENARIOS

4. PRUEBAS DE ROBUTEZ

5. RECOMENDACIONES

17

2.4 Pruebas de robustez7 Figura 4. Resumen de metodología de Simulación, paso 4

Fuente. Vatic Consulting Group. Workshop Simulación

El objetivo de esta etapa es evaluar la robustez* de los escenarios ante cambios en las variables exógenas** (ver figura 4). Aquí es importante definir que variables se van a sensibilizar, realizar las corridas de cada escenario con las variables sensibilizadas y analizar los resultados. *Pruebas de robustez: son pruebas que se le realizan a/o los modelos de Simulación y consiste en someterlos a cambios en determinadas variables o parámetros. Ejemplo: si hablamos de un supermercado (sistema), el modelo que represente este sistema se someterá a un aumento en la demanda de determinado producto, esto sería una de las posibles pruebas de robustez. **Variables exógenas: Son variables externas al sistema. Por ejemplo: la

demanda.

7 Ibid. p. 42-43

1. RECOPILACION Y VALIDCIÓN DE

LA INFORMACIÓN

2. CONSTRUCCIÓN

Y VALIDACIÓN DEL MODELO

BASE

3. CONSTRUCCIÓN Y COMPARACIÓN DE ESCENARIOS

4. PRUEBAS DE ROBUTEZ

5. RECOMENDACIONES

18

2.5 Recomendaciones8

Figura 5. Resumen de metodología de Simulación, paso 5

Fuente. Vatic Consulting Group. Workshop Simulación

En esta etapa es importante que el modelador en base a los resultados, realice una recopilación de todas aquellas recomendaciones sujetas al proyecto (ver figura 5). Estas recomendaciones son el producto del análisis de los resultados de los distintos escenarios planteados y comparación con la situación actual. Sugerencia: es importante que las recomendaciones se den a nivel cuantitativo, teniendo en cuenta la relación costo – beneficio en dado caso que una de estas conlleve a inversiones.

8 Ibid. p. 48-49

1. RECOPILACION Y VALIDCIÓN DE

LA INFORMACIÓN

2. CONSTRUCCIÓN

Y VALIDACIÓN DEL MODELO

BASE

3. CONSTRUCCIÓN Y COMPARACIÓN DE ESCENARIOS

4. PRUEBAS DE ROBUTEZ

5. RECOMENDACIONES

19

3. Introducción al Software Flexsim 3.1 Características del Software Flexsim9 Flexsim es un Software que posee un ambiente orientado a objetos, para desarrollar, modelar, simular, visualizar y monitorear actividades y sistemas con procesos deflujo dinámico. Flexsim es una completa serie de herramientas paradesarrollar y compilar aplicaciones de Simulación. El ambiente Flexsim está completamente integrado con el compilador C++ usando Flexscript (una librería funciones C++ pre-compiladas) o C++ directamente. Toda la animación es diseñada en OpenGL, contando con una increíble animación. La animación puede ser vista en 2D, 3D. Todas las vistas pueden ser mostradas concurrentemente mientras el modelo es desarrollado o en la fase de corridas de éste. Las siguientes son algunas de las características que lo definen como una excelente alternativa para el modelado, Simulacióny visualización de procesos: Modelado10. Flexsim permite utilizar objetos altamente desarrollados y

parametrizados que representan procesos y colas. Para el uso de un objeto, basta arrastrarlo y moverlo desde la librería de objetos a la vista del modelo. Cada objeto tiene una localización en el espacio (x, y, z), una velocidad, rotación y un comportamiento específico en el tiempo; estos objetos pueden crearse, destruirse y moverse entre ellos.

Hay tres características principales en el modelamiento en Flexsim, estas son:

9 MONTOLIVO, Orietta. Simulaciónde los procesos del Te Negro. Trabajo de grado

Ingeniero Civil Industrial. Concepción: Universidad del Bío - Bío. 2010. p. 62 10

CONCHA, Pablo. Verificación de parámetros operacionales para la nueva línea de Aserrío de CMPC S.A., Planta Mulchén, mediante el uso de la Simulación. Trabajo de grado Ingeniero Civil Industrial. Concepción: Universidad del Bío - Bío., 2005. p. 33

20

1. Herencia: Permite el uso de las características de herencia de Microsoft Visual

C++, como por ejemplo en el uso de herencia al momento de construir objetos propios partiendo de los objetos bases.

2. Modificación para usos específicos: Virtualmente todo aspecto del Software está abierto para su modificación por parte del usuario. Los objetos, vistas, interfaces, menús, parámetros de los objetos, etc., son por nombrar algunas de las características que se pueden modificar cuando sea necesario. Además, todo objeto que semodifica o que se ha creado completamente nuevo, puede y será gregado a las librearías de manera que puedan ser usados las veces que se requiera. La creación o modificación de objetos se hace a través del lenguaje C++, el cual controla el comportamientode los objetos; mientras que la apariencia, interfase, botones, menús, etc., se controlan por Flexscript, una librería de C++ pre-compilada.

3. Intercambiabilidad: Los objetos se pueden cambiar entre usuarios, librerías y

modelos, lo que en conjunto con la característica del punto anterior acelera el proceso de modelado.

Simulación11. Flexsim cuenta con un motor de Simulación muy rápido, que permite ejecutar enorme cantidades de eventos en un corto periodo de tiempo. El motor de Flexsim controla la Simulación y visualización del modelo, por lo que si se necesita más rapidez, ésta se puede obtener desactivando la visualización. Flexsim está equipado con una opción de experimentación que permite simular escenarios del tipo “what if”. Los escenarios se corren automáticamente y los resultados se guardan en reportes, tablas y gráficos. Se puede analizar el desempeño de cada escenario por un número de indicadores que pre-define el usuario, como utilización, throughput, costos, etc. Los resultados pueden ser fácilmente exportados a otras aplicaciones como MS Word y Excel. Visualización. Flexsim cuenta con animación de realidad virtual en la visualización de los modelos. El Software utiliza la última tecnología en gráficos de realidad virtual de juegos de computador. Además, Flexsim permite la importación de un amplio rango de formatos de modelos 3D para uso en el modelado.

11

Ibid. p. 35-37

21

Terminología de Flexsim. Flexsim usa una terminología específica para nombrar

algunos componentes de un modelo de Simulación, estas se presentaran a continuación: Objeto. Son los componentes que se encuentran en la librería de objetos del programa. Estos representan recursos, colas y acumuladores estadísticos del modelo de Simulación. Para su uso en el modelo, sólo basta con arrastrarlo y soltarlo desde la librería de objetos hacia la vista del modelo. Flowitem. Son objetos que se mueven a través del modelo. Estos son las entidades que circulan en el modelo, pueden ser partes, piezas, productos en procesos, personas, troncos, etc. Los flowitem (entidades) las generan los objetos Source y son desechados en los objetos Sink. Los flowitems pueden ser objetos

de procesos y pueden ser transportados por recursos de transporte. Itemtype. Es una etiqueta que llevan los flowitem, que representan una

característica de él. Son atributos que diferencian entre entidades (etiquetas que diferencian entre itemtypes). Flexsim usa estos atributos como referencia al momento de diferenciar entre los procesos, rutas o comportamientos que deben ser usados en diferentes tipos de entidades. Puertos. Todo objeto de Flexsim tiene un número ilimitado de puertos a través de los que se puede comunicar con otros objetos. Hay tres tipos de puertos:

Entrada

Salida

Puertos centrales Los puertos de entrada y salida, son utilizados para el ruteo de los flowitem a través del modelo (movimiento entre objetos en el modelo). Los puertos centrales son utilizados para crear referencias o punteros entre objetos. Los puertos son creados y conectados al hacer click en un objeto y mantener sujeto y arrastrar hacia un segundo objeto mientras se mantiene apretada una letra en el teclado; manteniendo apretada la tecla “A”, se creará un puerto de salida en el primero objeto y un puerto de entrada en el segundo, manteniendo apretada la letra “S” se creará un puerto central en los dos objetos conectados. Las letras “Q” y “W” son utilizadas para borrar puertos y conexiones de puertos de entrada y salida, y centrales respectivamente.

22

Model Views. Se refiere a los tipos de vista del modelo creado, esta puede ser

ortográfica o perspectiva, planar y una especial llamada vista de árbol. El modelo se puede crear y modificar en cualquiera de las vistas. Opciones de vista en Flexsim12 En Flexsim se puede trabajar con tres tipos diferentes tipos de vistas, cada una de ellas se explicará a continuación: Vista ortográfica y perspectiva. La vista 3D puede ser alterna entre el modo

ortográfico y perspectiva haciendo click con el botón derecho del mouse y seleccionando la opción “View Setting”, seleccionando o deseleccionando la opción “Perspective Projection” (ver figura 6). Figura 6. Demostración de cómo seleccionar una de las opciones anteriores

(ortográfica o perspectiva)

La vista ortográfica se usa en el diseño y construcción de etapas. La vista en perspectiva es usada una vez se encuentra construido el modelo y se quiere mostrarlo. Vista planar13. La vista planar es usada para editar su modelo en dos dimensiones. Funciona muy parecido a la opción “orthographic and perspective

12

Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Utah. 2010. p. 153 13

Ibid. p. 158

23

views”, excepto que no se puede rotar alrededor del layout. También, en lugar de

ver objetos en 3D se observan es en 2D. En la vista 2D no hay forma específica para un objeto, estos se muestran en forma de rectángulo y de un color determinado. Para acceder a este tipo de vista realizamos lo siguiente: 1. Nos dirigimos a “View / Modelo View Planar” (ver figura 7)

Figura 7. Vista de un modelo en 2D

Vista de árbol14. La ventana de árbol permite navegar en el entorno de Flexsim

que se presenta en una estructura tipo árbol (jerarquías), permite además ver y/o establecer atributos en los objetos, escribir código y realizar muchas otras operaciones. Para moverse dentro de esta ventana, se debe hacer click con el mouse en el área blanca y manteniendo presionado con el botón derecho se puede desplazar de arriba hacia abajo, de derecha a izquierda. Flexsim está completamente diseñado alrededor del concepto de estructura de árbol. Toda la información en Flexsim está contenida en el árbol de Flexsim, incluyendo la librería, objetos, comandos y toda la información del modelo. Este árbol de jerarquías esta hecho de nodos individuales que se encuentran unidos.

14

Ibid. p. 159

24

Nodos15

Un nodo es un bloque de construcción del árbol de Flexsim. Los nodos pueden contener otros nodos, pueden ser una palabra clave para usarse y definir un atributo para un objeto o simplemente puede contener datos del ítem. Los símbolos para los diferentes nodos que se muestran son los siguientes:

Estándar

Objeto

Atributo / Variable

Función (C++)

Función (Flexscript) Los nodos pueden ser agregados o borrados del mismo árbol. Para borrar un nodo, simplemente dar click y oprimir la tecla “Delete o Supr”. Para insertar un nodo basta solo con hacer click sobre el nodo y oprimir la tecla “Enter”. Figura 8. Vista general de un árbol en Flexsim

15

Ibid. p. 682-683

25

Cuando en el árbol se hace click en un objeto se puede observar el siguiente

símbolo . Haciendo click en este, se pueden ver todos los atributos o variables del objeto (ver figura 9). Figura 9. Vista de los atributos y variables de un objeto

Los nodos también pueden ser contenedores de una sub-lista de nodos que se les denomina “contenido ramificado”. Si un nodo contiene sub-nodos, esta lista puede

ser desplegada presionando sobre el ícono (ver figura 10). Figura 10. Contenido ramificado del nodo variable

26

Organización general del árbol

El origen de la estructura de árbol está dividido en 2 partes. Estos son: el árbol del proyecto (Project Tree) y el árbol de layout (View Layout Tree). El “Project Tree” contiene el “Executive data”, “the Library” y el “Model”. El “View Layout Tree” contiene la información sobre las ventanas, editores y otras

interfaces. Project Tree

Para ver el árbol del proyecto, se hace click en el en el menú principal en View / Model Tree / Main (ver figura 11). Figura 11. Vista del árbol “Project”

Cada árbol de proyecto mantiene los proyectos al nivel más básico. Cada proyecto mantiene los siguiente sub-arboles principales (cruciales): exec, library, model, undo, media. Exec: Este árbol contiene los datos principales de la Simulación. Esto incluye el tiempo de Simulación (simulation time), la lista de eventos (the event list) o bien

otra información.

27

Library: La librería de objetos usada para el modelo.

Model: El modelo de Simulaciónque actualmente se está trabajando.

Undo: Contiene el historial de todas las acciones que se han hecho sobre el modelo Media: Almacena imágenes, modelos 3D y sonidos. View Layout Tree

Este árbol contiene datos para crear, almacenar y usar interfaz gráfica en los objetos (ver figura 12). Figura 12. Vista de árbol “Media”

3.2 Barra de herramientas de Flexsim16

La barra de herramientas permite alternar entre diferentes modos de ver el layout (ortho/perspective/planar/tree view), conectar y desconectar objetos, controlar la

16

Ibid. p. 202-203

28

corrida del modelo y acceder a muchas otras opciones que presenta el Software que se explicaran a continuación (ver figura 13): Figura 13. Barra de herramientas

New: esta opción cierra el modelo actual y permite empezar a construir uno nuevo.

Open: esta opción le permite abrir un modelo que había sido guardado (.fsm file).

Save: esta opción le permite guardar el modelo actual.

: éste botón le permite abrir la interfaz con Excel.

: presionando este botón se abre la vista de árbol del modelo actual.

: presionando este botón se abre una nueva ventana o vista del modelo en

3D.

: presionando este botón se abre la herramienta Script.

: presionando este botón se reinicia el modelo actual.

: presionando este botón se inicia la corrida del modelo actual.

: presionando este botón se detiene la corrida del modelo actual.

: presionando este botón se puede ir al momento en que ocurre un evento

en el modelo. Figura 14. Vista de la barra “Run Time / Stop Time”

29

Run Time: muestra el transcurso del tiempo durante la corrida del modelo (ver

figura 14).

Stop Time: permite fijar un valor en el tiempo para el cual se desea que el modelo se detenga modelo (ver figura 14). Figura 15. Vista de la barra “Speed”

Speed Slider: define el número de unidades de tiempo que el modelo de Flexsim correría en contraste con 1 segundo del tiempo real, es decir, mirando la figura 15 el 4 representa 4 unidades de tiempo (segundos, minutos, horas, etc.) por un segundo del tiempo real. 3.3 File Menu17 Figura 16. File menú

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

17

Ibid. p. 189

30

New Model: esta opción elimina el contenido actual del modelo, para que uno

nuevo sea creado. Open Model: esta opción le permite al usuario elegir un modelo ya creado en Flexsim (extensión .fsm) para que pueda editarlo.

Save: esta opción guarda el modelo actual o los cambios hechos en un modelo que haya sido editado (extension .fsm). Save Model As: esta opción le permite guardar un modelo que se ha creado. El archivo creado tiene la extensión .fsm. State Files: esta opción le permite al usuario guardar el estado (modelo que se corre actualmente) del modelo. Las opciones que ofrece son “load state” o “saved state”.” Saved state” es útil cuando el modelo esta en medio de la corrida (todo

los flowitems permanecen donde están y los recursos en el estado actual de operación. Cuando se cargue el modelo, este continuará corriendo desde el punto donde se selección la opción “save state”. Global Preferences: esta opción le permite llegar a la ventana de preferencias,

permitiendo cambiar o establecer algunos parámetros en Flexsim, a comodidad del usuario. También puede configurar el texto y propiedades de este. System: esta opción le permite actualizar manualmente la galería media (archivos 3D y mapa de bits), así como desconectar cualquier DLL (este es un tipo de nodo pre-compilado compatible con Flexsim, se necesita de usar un proyecto especial en Visual C++ que se encuentra disponible en el foro de Flexsim). Exit: esta opción cierra Flexsim guardando cualquier archivo en caso contrario que el usuario no lo quiera guardar simplemente selecciona NO.

Ventana Global Preferences18

La ventana de dialogo “Global Preferences” le dice al usuario cuales son las configuraciónes que por defecto establece Flexsim. Estas configuraciónes se

18

Ibid. p. 208-213

31

guardan a través de varios modelos y son recordadas cuando Flexsim es cerrado y reabierto. A continuación se presentan las diferentes pestañas que aparecen para que el usuario configure: 1. Fronts and Colors (ver figura 17). Se pueden hacer ajustes específicos como

lo es el color de la plantilla de edición (template editor), así como para los

textos sin formato (son usados en los comentarios de varias líneas) Figura 17. Ventana “Global Preferences / Fonts and Colors”

2. Environment (ver figura 18). En esta pestaña se pueden especificar varios

ajustes como por ejemplo: si se quiere que el código sea C++ o Flexscript por

defecto, varios ajustes en las opciones de visualización ortográfica o perspectiva, entre otros.

32

Figura 18. Ventana “Global Preferences / Environment”

3. User Libraries (ver figura 19). Esta pestaña permite especificar y establecer librerías de usuario para ser cargadas cuando se inicia Flexsim. Las rutas especificadas son relativas para su FlexsimX/libraries directory.

X corresponde a la versión. Figura 19. Ventana “Global Preferences / User libraries”

4. Customize Toolbar (ver figura 20). Permite tener un acceso rápido a aquellas

herramientas que son frecuentemente utilizadas, estas pueden verse en la barra de herramientas sin tener que acceder a los menús.

33

Figura 20. Ventana “Global Preferences / Customize Toolbar”

5. Graphics (ver figura 21). Esta pestaña es usada para personalizar y configurar

los gráficos de manera que Flexsim pueda correr mejor.

Figura 21. Ventana “Global Preferences / Graphics”

6. Compiler (ver figura 22). Esta pestaña es usada para la configuración de

Visual Studio ya sea para compilar o depurar (seguimiento) de código C++.

34

Figura 22. Ventana “Global Preferences / Compiler”

Ventana Model Settings

Figura 23. Ventana “Model Settings”

Decimal Precisión: esta opción permite controlar la precisión de los valores

editables que se ven en la interfaz. Por ejemplo si quiero solo dos decimales, esto se vería reflejado en el caso de que yo quiera que mi modelo se detenga a los 10.567, Flexsim con esta opción mostraría y pararía a los 10.56

35

Conveyor Drawing Angle: esta opción controla directamente las curvas de las

bandas transportadoras. Un valor cerrado de cero produce una curva, mientras que un valor cerrado de 90 produce rectas a 90 grados formando una especie de rectángulo. Los flowitems siempre seguirán una ruta curva. Spline Tension: esta opción controla la forma recta de las líneas en una red. Random Number Streams: esta opción controla el rango (entre 0 y el valor especificado) de números aleatorios que serían utilizados en Flexsim cuando el modelo se reincia. Length Units: muestra la unidad de longitud que maneja el modelo.

Time Units: muestra la unidad de tiempo que maneja el modelo. Fluid Units: muestra la unidad que manejan los fluidos en el modelo.

Hide Green Stats Collection Indicators: esta opción oculta el borde de color verde que poseen los objetos que se han seleccionado para recolectar las estadísticas. Enable Full History Collection: esta opción permite que un historial completo sea

creado. Encrypt Model: esta opción le permite establecer una clave para su modelo, solo con esta clave se puede abrir. Para establecer una clave, click en “Set Password button”.

36

3.4 Edit Menu19

Figura 24. Edit menú

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Lock Splines: esta opción bloquea los splines (punto en una red que permiten

crear curvas) para todas las redes (conjunto de NetworkNode que se ubican en el modelo creado rutas) que se encuentran actualmente en el modelo. Bloqueando los Splines se incrementaría considerablemente la velocidad de corrida de la Simulación.

Unlock Splines: esta opción desbloqueara todos los splines para las redes. Una

vez se ha desbloqueado se puede editar gráficamente con el mouse. Set Spline Tension: esta opción trae un cuadro de dialogo para establecer la

tensión de los splines en el modelo. Este valor sería entre 0 y 1. Un valor de 0 causaría que todos los splines estén totalmente rectos, un valor de 1 maximiza la curvatura de los splines. Resize and Rotate Objects: seleccionando esta opción se pueden ver los ejes de

rotación del objeto seleccionado en vista ortográfica y en perspectiva. Find / Replace in Tree: esta opción trae el “Fin and Replace dialog”.

19

Ibid. p. 190

37

Set Number Precision: esta opción trae un cuadro de diálogo para establecer la

precisión. Este es el número de puntos decimales que serán mostrados en Flexsim en el modelo actual. Set Conveyor Angle: trae un cuadro de dialogo que permite cambiar el ángulo de la banda transportadora en cada sección curva. Esto afecta la forma visual no los resultados

Find and replace dialog20 El find / replace es usado para buscar y/o reemplazar texto o números en el árbol (ver figura 25). Figura 25. Vista del cuadro “Find Replace”

20

Ibid. p. 206-207

38

Find what: se puede buscar textos o números según lo que el usuario quiera encontrar, luego hacer click en el botón “Find”. Replace with: se introduce el texto con el cual quiere reemplazar, hacer click en el botón “Replace”. Starting object: esto es un punto de referencia para un nodo y asi empezar a

buscar. Se puede escoger la opción donde se quiere empezar a buscar con los botones que se encuentran a la derecha. Search Only Toggle Nodes: esta opción restringe la búsqueda para nodos contenidos en Flexscript o código C++. 3.5 View Menu21 Figura 26. View menú

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Script Windows: esta opción nos abre la ventana de Script (Scripting Windows).

El Scripting window es una ventana interactiva para ejecutar manualmente comandos en Flexscript (ver figura 27).

21

Ibid. p. 192-193

39

Output Console: esta opción abre una ventana donde la información de salida es

mostrada. Se puede mostrar información que el usuario quiera usando los comandos: pt(), pr(), pd(), pf(), etc. System Console: esta opción abre una ventana donde la información acerca del estado del programa es mostrada. Errores y “Exceptions” serían mostrados en

esta consola. Compiler Console: esta opción abre una ventana donde la información es

mostrada mientras el modelo es compilado. Además muestra el estado en cada paso durante el proceso de compilación. Model Tree: esta opción abre la “Tree Window” que muestra las carpetas del

modelo. Esta muestra todos los objetos que están en el modelo. El árbol puede ser manipulado en esta vista. Model View (Planar): esta opción abre “Planar Model View” que muestra el modelo en dos dimensiones. Los objetos 3D no se muestran en esta opción. La vista no puede rotarse. Model View (3D): esta opción abre una nueva “Orthographic / Perspective View” en el modelo. Model View (Perspective): esta opción abre una nueva “Perspective View” en el

modelo. Current Database Table: esta opción trae una ventana que muestra el “Currently Active Database Table” (ver figura 30) que puede ser abierta o consultada mediante los comandos dbopen(), dbchangetable(), dbsqlquery(). Modeling Utilities Library Icon Grid: esta opción abre la “Library Ico Grid” con una cuadricula de

íconos que representan los objetos que pueden ser arrastrados dentro del modelo. View Settings: esta opción abre la ventana de utilidades “View Settings”.

40

Edit Highlighted Object: esta opción abre la ventana de utilidades “Edit

Highlighted Object”. Edit Selected Object: esta opción abre la ventana de utilidades “Edit Selected Object”. Find Objects: esta opción abre la ventana de utilidades “Find Objects”.

Tree Navigation: esta opción abre la ventana de utilidades “Tree Navigation”.

Tree Networks: esta opción abre la ventana de utilidades “Tree Networks”. Views: esta opción abre la ventana de utilidades “Views”.

Groups: esta opción abre la ventana de utilidades “Groups”. Model Layouts: esta opción abre la ventana de utilidades “Model Layouts”.

Script Editor22

Figura 27. Vista del cuadro “Script”

22

Ibid. p. 465

41

El “Script editor” permite ejecutar comandos en Flexscript tomando información

que se encuentra en el modelo. Una vez se tenga el código escrito en el Script hacemos click en “Execute” para ejecutar el código. Este regresa un valor del código que será mostrado en el espacio ubicado frente a este mismo botón. Ejemplo 1: creamos una tabla global que tenga un determinado valor para

acceder a este utilizando la herramienta Script. Para crear una tabla global nos dirigimos a la barra de herramientas y en Tools/Global Tables/Add creamos una

tabla global y en el campo con el valor 0.0 escribimos un valor de 5 (ve figura 28). Figura 28. Vista de la “Global Table”

Hacemos click en el ícono para abrir la herramienta y acceder al valor que escribimos en la tabla (ver figura 29). Al escribir el código en el Script vemos lo siguiente: Figura 29. Vista del Script con el código del ejemplo 1

Explicación: en el Script declaramos una variable tipo entera (integer) que llamamos “ValorTabla” que va a contener el valor que establecimos en la tabla,

42

luego decimos “return” “ValorTabla”, y presionamos el botón “Execute” y vemos

que nos muestra un valor de cinco (valor rodeado por el circulo negro). Con el ejemplo anterior podemos ver la utilidad de esta herramienta en la verificación códigos que vayamos escribiendo en el modelo y si este va a permitir que nuestro modelo se comporte como el sistema que se quiere modelar. Nota: la sintaxis y el uso de comando se explicara más adelante.

Database Table View23

Esta muestra una tabla de datos activa. Las Database Tables son abiertas usando los comandos dbopen(). Para más información referirse a los command summary. Figura 30.Vista del cuadro “Current Database Table”

Library Icon Grid24

La librería de íconos permite arrastrar objetos dentro del modelo. Haciendo click sobre el objeto y manteniendo presionado a la vez que lo arrastra al layout, este será agregado una vez el usuario lo suelte sobre el layout, esta misma operación aplica para los tres tipos de vista (planar, ortográfica o perspectiva y vista de árbol). Flexsim cuenta con dos tipos de librerías, estas son la librería de objetos discretos (ver figura 32) y librería de objetos contínuos (ver figura 31). Se pueden crear librerías con objetos personalizados y se podrá seleccionar esta librería de la misma forma como se selecciona la librería de objetos contínuos. Por defecto la librería de objetos discretos es la que aparece inicialmente.

23

Ibid. p. 215 24

Ibid. p. 164-165

43

Figura 31.Vista de Liberia de objetos contínuos

Figura 32.Vista de Librería de objetos discretos

Hay una clasificación de los objetos que componen la librería discreta y es la siguiente:

44

Figura 33. Vista de Librería de objetos discretos con su respectiva clasificación

Fixed Resorces: son objetos estacionarios en el modelo que pueden representar pasos o estaciones en su proceso o áreas de almacenamiento. Los flowitems avanzan a través del modelo ingresando en estos objetos para ser procesados y una vez finalizado pasan al siguiente FixedReSource en el modelo. TaskExecuters: son usados como recursos móviles en el modelo. Estos pueden ser operarios que son requeridos para llevar un flowitem a la siguiente etapa del proceso. Otros: son objetos especiales que contiene la librería y que se definirán más

adelante. La librería de objetos fluidos permite construir sistemas en los cuales los materiales se manejan en peso o volumen25. Ejemplos de estos sistemas pueden ser:

25

Vatic Consulting Group. Capacitación avanzada de Flexsim, tutorial de fluido [diapositivas]. Bogotá D.C, 2012. p. 4-6

Fixed ReSources

(objetos fijos)

Task Executers

(objetos móviles)

Otros

45

Arroz Proceso grano a grano: librería de objetos discretos Proceso por peso: librería de objetos fluidos Leche Proceso bolsa por bolsa: librería de objetos discretos Proceso por volumen: librería de objetos fluidos Carbón Proceso pieza por pieza: librería de objetos discretos Proceso por volumen: librería de objetos fluidos Botellas

Miles de botellas en una línea en embotellado, con objetos discretos pueden disminuir la velocidad del modelo Los objetos fluidos son equivalentes a algunos objetos discretos exceptuando algunos que son objetos especiales de esta librería. A continuación se presenta la equivalencia de estos:

OBJETOS FLUIDOS OBJETOS DISCRETOS

FluidGenerator Source FluidTerminator Sink FluidTank Queue FluidMixer Combiner FluidBlender Combiner FluidSplitter Separator FluidPipe Conveyor FluidProcessor Procesor

Los objetos que no se encuentran en la anterior equivalencia se explicaran más adelante.

46

Interactuando con los objetos de Flexsim

A continuación se explicara cómo construir un modelo básico y sencillo para recordar y aclarar algunos conceptos vistos y, además de ello este modelo servirá de guía para las demás herramientas que se verán adelante. La ventana de Flexsim se compone de las siguientes partes (ver figura 34): Figura 34. Ventana de Flexsim

Recuadro Negro: barra de herramientas y controles de la Simulación. Recuadro Naranja: librería de objetos (contínuos, discretos y personalizados).

Recuadro Verde: layout. Ejemplo 2: el siguiente ejemplo es tomado de la capacitación básica en Flexsim

ofrecida por la empresa Vatic Consulting Group26. Antes de construir el modelo, es importante que se tenga en cuenta las siguientes indicaciones:

26

Vatic Consulting group. Capacitación básica de Flexsim, introducción a Flexsim[diapositivas].Bogotá D.C, 2010. p. 11

47

Figura 35. Indicaciones para moverse en el modelo

Traslado XY Girar Zoom

Fuente. Vatic Consulting group. Capacitación básica de Flexsim En el layout vamos a ubicar los siguientes objetos: Source: representara la llegada de la materia prima. Queue: representara un lote de almacenamiento antes del primer proceso.

Processor: representan cada una de las etapas del proceso. Sink: representa la salida del flowitem del sistema modelado.

Hay que recordar que para ubicar los objetos en el layout basta con arrastrarlos desde la librería hacia el layout y luego soltar. Figura 36. Layout con los objetos

Una vez estén los objetos en el layout (figura 36) se deben realizar las conexiones correspondientes, para ello es importante recordar lo siguiente: Los puertos: hay tres tipos de puertos en Flexsim (entrada, salida y centrales).

48

Figura 37. Layout con los objetos y conexiones de entrada, salida y centrales

Fuente. Vatic Consulting group. Capacitación básica de Flexsim

Puertos de entrada (input port): se ven de color verde durante la corrida del modelo y tienen forma triangular. Puertos de salida (output port): se ven de color rojo durante la corrida del modelo y tiene forma triangular. Las conexiones de entrada y salida definen los posibles flujos de los flowitem desde un recurso fijo hacia otros. Manteniendo la tecla A y haciendo click de un

objeto fijo hacia otro se crean las conexiones de entrada y salida (ver figura 38). Manteniendo la tecla Q de un objeto fijo hacia otro se desconectan los objetos, hay

que tener en cuenta que las desconexiones se realizan en el mismo sentido en que se realizó la conexión. Figura 38. Layout con los objetos y conexiones de entrada y salida

Fuente. Vatic Consulting group. Capacitación básica de Flexsim

49

Puertos centrales (central port): se ven de color rojo durante la construcción y

corrida del modelo, tiene forma rectangular (ver figura 39). Las conexiones centrales definen una relación entre objetos, además de que permiten llamar un objeto desde otro fácilmente. Las conexiones centrales se realizan presionando la tecla S y haciendo click

desde un objeto fijo a otro. Para realizar la desconexión central se presiona la tecla W desde un objeto fijo hacia otro, aquí no importa el sentido en que se

realizó la conexión central entre objetos. Figura 39. Layout con los objetos y conexiones centrales

Fuente. Vatic Consulting group. Capacitación básica de Flexsim

Recordado todos estos conceptos, se procede a realizar las conexiones de entrada y salida de los objetos del modelo que se esta construyendo: El orden de las conexiones es el siguiente (ver figura 40):

50

Figura 40. Orden de conexión de los objetos

La fuente (Source) se conecta a la primera cola (Queue de materia), esta cola se conecta a los dos procesos (A y B) y cada proceso se conecta a la cola siguiente (cola de producto), esta cola esta antes y a su vez va conectada al proceso c y finalmente sale del sistema. Figura 41. Vista de los objetos conectados

Una vez se tengan los objetos conectados (ver figura 41), ajustar los siguientes parámetros para analizar al finalizar la corrida de la Simulación:

El lote de materia prima que esta antes del proceso A y B tiene una capacidad máxima de 40 piezas de materia (ver figura 46).

El tiempo de proceso de las máquina A sigue una distribución normal (10,5) (ver figura 43), la máquina B distribución normal (15,5) (ver figura 44) y la máquina C una distribución normal (12,5) (ver figura 45).

El lote de producto que esta antes del proceso C tiene una capacidad máxima de 6 unidades (ver figura 42).

51

Figura 42. Máximo contenido de la cola de materia prima

Se introduce el valor de 40 en el campo para máximo contenido y se presiona el botón aplicar. Figura 43. Tiempo de proceso para la máquina A

En la ventana “Processor” en el campo “Process Time” seleccionar la opción del picklist la opción “Statistical Distribution”, buscar la distribución normal y en los parámetros se establece media 10 y desviación estándar 5. Esto mismo se hace para todos los procesos. Una vez establecido esto en cada Processor presionamos el botón Apply.

52

Figura 44. Tiempo de proceso para la máquina B

Figura 45. Tiempo de proceso para la máquina C

53

Figura 46. Máximo contenido de la cola de producto

Se ajusta el reloj de Simulación para correr un turno de 8 horas, que es equivalente a 28800 segundos (ver figura 47) y observar cuantos productos salieron del sistema. Figura 47. Tiempo de corrida

Una vez establecido el tiempo de corrida, se presiona el botón set. Terminada la Simulación se puede observars lo siguiente. Figura 48. Vista del modelo a los 28800 segundos

54

Respondamos las siguientes preguntas: 1. Cuál es la operación cuello de botella Para saber cuál es la operación cuello de botella, se deben mirar los estados de las máquinas y mirar cuál de ellas fue la que mas estuvo en el estado “Processing”.

Para poder ver los estados, entrar a la ventana de propiedades de los “Processor” y dirigirse a la pestaña “Statistics”, aquí presionar el botón “Chart”

y se pueden ver las siguientes gráficas (ver figura 49). Figura 49. Vista de la pestaña “statistics”

55

Figura 50. Estados de la máquina A

Desocupado (idle): 0% Procesando (processing): 60.5% Bloqueado (blocked): 39.5%

Figura 51. Estados de la máquina B

Desocupado (idle): 0.1% Procesando (processing): 36.5%

Bloqueado (blocked): 63.4%

56

Figura 52. Estados de la máquina C

Desocupado (idle): 0.1% Procesando (processing): 99.9%

De acuerdo a los resultados anteriores, se puede decir que la operación cuello de botella es la correspondiente a la máquina c, pues el tiempo que permanece procesando es mayor a las demás (ver figura 52). 2. Cuantos productos salieron al final del día Figura 53. Vista de la pestaña “Statistics” del “Sink”

Se puede ver un total de 2414 productos que salieron del sistema después de haber transcurrido 8 horas de corrida (ver figur 53).

57

3. Cuál es el tamaño máximo alcanzado por el lote de materia prima. Figura 54. Vista de la pestaña “Statistics” de la ColaMP

Como se puede ver, el lote está diseñado para contener un número máximo de 60 unidades de materia prima, pero durante la corrida de la Simulación, este tamaño es más que suficiente ya que solo llega a un máximo de 40 unidades (ver figura 54).

58

View Settings27 Figura 55. Vista del cuadro “View Settings”

Este cuadro permite realizar ajustes en la parte visual del layout. Estos ajustes solo aplican para el modelo actual. Background Color: permite seleccionar el color del fondo del layout.

27

Flexsim Software Products Inc Op.cit., p.168-169

59

Connections: si esta casilla es seleccionada, los puertos y las líneas de conexión

de los puertos serán mostradas.

Connector Size: este número establece que tan grande se verán las

conexiones en los puertos en los objetos.

Connections Color: permite establecer el color de las líneas de conexión. Grid

Snap Grid: si esta casilla es seleccionada, los objetos automáticamente se

ubican en una de las cuadriculas del layout, esto puede observarse cuando se está construyendo un modelo y se arrastra un objeto al layout, este se ubica rápidamente en posición dentro de una cuadrilla.

Show Grid: si esta casilla es seleccionada, la cuadricula guía en el layout ya no

se verá.

Grid Fog: el valor que se ajusta aquí permite establecer que tan nítido se ve la

cuadricula guía en el layout. El valor se encuentra en un rango que va de 0 a 1, siendo cero el valor que permite ver la cuadricula en su máxima expresión y 1 en el que no se observa la cuadricula.

Grid Line Width: permite establecer el ancho de las líneas de la cuadricula del layout, los valores van de 0 – 1 o -1 – 0.

Grid Line Color: permite establecer o seleccionar el color de las líneas de las

cuadriculas en el layout. Names

Show Names: esta lista desplegable permite elegir si los objetos que están

dentro del modelo muestren: solo nombre, nombres y estadísticas o no muestren nada.

Name Style: esta lista desplegablepermite elegir en donde se quiere ver el

nombre de los objetos, puede ser arriba o abajo.

60

Other Settings

View Fog: permite establecer que tan claro o que tan oscuro se quiere ver el

objeto en el modelo, es decir se puede, desde ver el objeto muy nítido hasta no verlo en el layout (vista en perspectiva), depende del gusto del usuario y va con valores desde 0 a 1.

Show 3D Shapes: si esta casilla es seleccionada todos los objetos 3D en el

modelo serán mostrados en el layout (vista en perspectiva).

Show 2D Bases: si esta casilla es seleccionada, las bases de los objetos que se ubican en 2 dimensiones serán mostradas.

1 st Person: si esta casilla es seleccionada, automáticamente permite navegar

alrededor del modelo desde un punto más alto, es decir, se ubica a cierta distancia en el eje z positivo para poder ver mejor el modelo construido.

Sync Views: si esta casilla es seleccionada, todas las ventanas abiertas que

estén a la vista serán actualizadas al mismo tiempo. Seleccionando esto hace que el programa corra un poco más lento.

Ignore Objects: si esta casilla es seleccionada, el usuario no podrá hacer click

en ninguno de los objetos que se encuentra en el layout. Es útil cuando una vez se tenga el modelo terminado, se desee navegar alrededor de este.

Light Sources

Estos controles permiten agregar, editar y crear fuentes de luz para ver en el layout.

Light Source: esta lista desplegable contiene todas las fuentes de luz que

están actualmente en la ventana.

Edit: este botón abre el cuadro de dialogo “Light Source Editor” que permite establecer la ubicación de la fuente de luz.

Add: este botón creará una nueva fuente de luz en la ventana o layout.

Delete: este botón borrara la fuente de luz que actualmente se está mostrando

en la ventana (la que se está seleccionando de la lista desplegable).

61

Edit Highlighted Object Utility28 Los objetos seleccionados tienen un cuadro de color amarillo alrededor de ellos, permite editar los objetos que han sido seleccionados. Figura 56. Vista del cuadro “Edit Highlighted Object / Properties”

Properties: abre la ventana de propiedades de los objetos. Ranking: click en el botón para mover el objeto hacia arriba de a un rango en

el árbol o el botón para mover el objeto a la parte superior del árbol. Click en el botón para mover el objeto hacia abajo de aun rango en el árbol o el botónpara mover el objeto a la parte inferior del árbol. Introduzca un número de rango y presione “Set Rank” para establecer el rango del objeto. Presione el botón , y el

número de rango de los objetos aparecerá en el recuadro donde también se escribe la posición que queremos del objeto en el árbol. Select/Unselect: presione “Select” para agregar el objeto a la selección. Presione “Unselect” para remover a selección del objeto. Execute Node: use este botón para ejecutar algún código en el nodo del árbol.

28Flexsim Software Products Inc Op.cit., p.170

62

Context Click: los últimos tres botones sirve para observar cambios en los objetos que se encuentran en el modelo, así, al presionar X en algunos objetos se producen cambios visuales como por ejemplo en los Racks, presionando V se

puede ver el nombre de los puertos de entrada / salida del objeto sobre el cual se hace click y presionando el botón C podemos ver el nombre del objeto conectados

a otro como puerto central.

Edit 29 Figura 57. Vista del cuadro “Edit Highlighted Object / Edit”

Este cuadro ofrece varias opciones que son realizadas en el objeto actualmente seleccionado. Para seleccionar un grupo de objetos, se mantiene presionada la tecla “Shift” y arrastrar sobre el grupo de objetos que se quiere seleccionar. Una vez seleccionados los objetos, a estos les aparecerá un recuadro de color rojo alrededor de ellos. Una vez se pueda observar este recuadro, se hace click sobre uno de estos objetos que están rodeados por el recuadro de color rojo y automáticamente este objeto quedara rodeado por un recuadro adicional de color amarillo. Move into highlighted object: esta opción mueve los objetos seleccionados (los que están rodeados por el cuadro color rojo) dentro o sobre el objeto seleccionado

29

Flexsim Software Products Inc Op.cit., p.171-174

63

(el que está rodeado por el recuadro de color amarillo y rojo). Esto permite que el objeto seleccionado pueda ser usado como un objeto contenedor. Save to file: los objetos seleccionados serán guardado en un archivo con la extensión .t que puede ser reabierta después en Flexsim. Esto le permite al usuario guardar e importar partes de un modelo cuando lo necesite. Load from file: el objeto que actualmente esta seleccionado, carga un archivo con la extensión .t. el objeto seleccionado se convierte entonces en un

contenedor para los objetos importados. Duplicate: esta opción permite crear una copia idéntica en el modelo del objeto

seleccionado. Todas las conexiones en los puertos son copiados de igual manera. Delete: esta opción permite borrar todos los objetos que han sido seleccionados.

Select All: esta opción permite seleccionar todos los objetos presentes en el modelo de manera instantánea, sin necesidad de mantener pulsada la tecla “Shift”

ni arrastrar. Deselect All: esta opción elimina la selección de todos los objetos que están en el

modelo. Set Reset Position: esta opción permite establecer una posición fija en el layout

para los objetos seleccionados. En dado caso que mientras se esté construyendo el modelo y por error uno de los objetos se corra o mueva, al reiniciar el modelo estos volverán a la posición que tenían cuando se presiono el botón “Set”. Clear Reset Position: esta opción elimina la posición fija en los objetos que están seleccionados en caso que se haya presionado la opción “Set”. Rename: en el recuadro se ingresa el nombre que se quiera y al presionar “Rename” todos los objetos seleccionados tendrán el mismo nombre pero adicional a ello tendrán un número para distinguirlos.

64

Append Numbers: si esta opción es seleccionada, cuando se presiona “Rename”, los objetos tendrán un número diferente adicional al nombre, el valor de este va incrementando de a 1. Rank: esta opción se usa con la vista de árbol, así para los objetos seleccionados se pueden mover hacia arriba o hacia debajo de a un rango o moverlos directamente a la parte superior o inferior del mismo. Move Around Axis Point: esta opción le permite manipular la ubicación y rotación

de los objetos que han sido seleccionados. Todas las operaciones son hechas alrededor de un eje en el modelo. Se selecciona un objeto del layout y se presiona la tecla “<HO” y en los recuadros (X) y (Y) se mostrarán las coordenadas de la posición actual. Introduzca un ángulo de rotación en grados y presione la tecla para que el o los objetos seleccionados roten alrededor de un mismo punto en los grados que se han especificado. Click en el botón o para voltear el objeto seleccionado de manera horizontal o vertical.

Copy from Highlighted: esta opción copia la información del objeto

seleccionado (objetos con el recuadro amarillo) y la introduce en los otros objetos seleccionados (objetos con el recuadro rojo).

Figura 58. Vista del cuadro “Edit Highlighted Object / Copy from Highlighted”

65

A continuación se presentará una lista de los datos que pueden ser copiados con ayuda de esta ventana: Todas las variables (incluyendo los Triggers) Todos los labels Un solo “Label” o “Variable”

Valores de ubicación. Este botón permite que se puedan copiar valores de

ubicación se los objetos seleccionados. Se puede copiar en conjunto los valores de la ubicación, tamaño y rotación

Factores visuales (color y forma)

Switches: estas opciones le permiten activar o desactivar y realizar varios

ajustes en los objetos seleccionados. Figura 59. Vista del cuadro “Edit Highlighted Object / Switches”

Los ajustes disponles que se pueden hacer son los siguientes:

66

Mostrar/ocultar el nombre y estadísticas

Mostrar/ocultar los puertos y conexiones Mostrar/ocultar los objetos en 3D Mostrar/ocultar los objetos 2D (bases) Mostrar/ocultar el contenido en los objetos (entidades dentro de una máquina,

cola, etc.) Activar la recolección de datos estadísticos para los objetos Proteger los objetos. Esto impide que los objetos se les cambie o altere la

ubicación y tamaño.

Connections: permite tomar las conexiones entre el objeto seleccionado (con

recuadro únicamente amarillo) y el conjunto en selección (con el recuadro rojo).

Figura 60. Vista del cuadro “Edit Highlighted Object / Connections”

Para entender mejor el uso o aplicación de este cuadro, se tendrá en cuenta lo siguiente:

67

Figura 61. Ejemplo para explicar las conexiones

Se definirá lo siguiente: Objeto seleccionado 1: recuadro amarillo (ver figura 61) Objeto seleccionado 2: recuadro rojo (ver figura 61)

A to HO: conecta los puertos de salida del objeto seleccionado 2 hacia el puerto de entrada del objeto seleccionado 1. Q to HO: realiza la desconexión de los puertos de entrada y salida de los dos objetos seleccionados (1 y 2). A from HO: conecta los puertos de salida del objeto seleccionado 1 hacia el puerto de entrada del objeto seleccionado 2. Q from HO: realiza la desconexión de los puertos de entrada y salida de los dos objetos seleccionados (1 y 2).

68

S with HO: realiza una conexión central entre el objeto seleccionado 1 y el objeto

seleccionado 2. W with HO: realiza la desconexión de los puertos centrales de los dos objetos

seleccionados (1 y 2). Duplicate HO´s Inputs: elimina del objeto seleccionado 2 las conexiones de

entrada que hayan y crea una copia de la conexión del objeto seleccionado 1, es decir, adquieren la misma conexión de entrada del objeto seleccionado 1. Duplicate HO´s Center: elimina del objeto seleccionado 2 las conexiones centrales que hayan y crea una copia de la conexión del objeto seleccionado 1, es decir, adquieren la misma conexión central del objeto seleccionado 1. Duplicate Ho´s Outputs: elimina del objeto seleccionado 2 las conexiones de

salida que hayan y crea una copia de la conexión de salida del objeto seleccionado 1, es decir, adquieren la misma conexión de salida del objeto seleccionado 1. Add HO´s Inputs: si el objeto seleccionado 1 tiene una conexión de entrada, el

objeto seleccionado 2 copia esa conexión. Add HO´s Centers: si el objeto seleccionado 1 tiene una conexión central, el

objeto seleccionado 2 copia esa conexión. Add HO´s Outputs: si el objeto seleccionado 1 tiene una conexión de salida, el

objeto seleccionado 2 copia esa conexión.

69

Find Objects Utility30

Figura 62. Vista del cuadro “Find Objects”

Este cuadro (ver figura 62) es de utilidad para encontrar rápidamente objetos en el modelo basados en el nombre o tipo de objeto. Se escribe el nombre del objeto que se quiere encontrar y se presiona el botón “Find” y automáticamente el layout o la vista (ortográfica o perspectiva) se ubican sobre el objeto encontrado, este aparecerá resaltado con un recuadro amarillo. Se pueden hacer búsquedas avanzadas realizando filtros: Categoría o grupos y clase de objeto.

Tree Navigation Utility31

Figura 63. Vista del cuadro “Tree Navigation Utility”

30

Flexsim Software Products Inc Op.cit., p.176 31

Flexsim Software Products Inc Op.cit., p.175

70

View List: permite moverse rápidamente entre diferentes partes de árbol. Por defecto el usuario puede ver: el modelo (the model), main, view y user libraries.

Esta opción funciona teniendo la vista del árbol abierta, en el árbol se selecciona un objeto (recuadro amarillo) y se presiona esta opción y automáticamente el objeto seleccionado aparecerá en esta ventana (debajo de User Libraries). Esta opción me permite ver rápidamente un determinado objeto, funciona de la misma manera que la opción de arriba con la diferencia que debajo de “User Libraries” aparece el nombre “Modelo: xxxx” las x hacen

referencia al nombre del objeto que se seleccionó. Es útil cuando en un modelo muy grande se tienen varios objetos a los cuales en algún momento se les cambiarán parámetros y con esta opción se identifican rápidamente en el árbol. Cualquier objeto agregado a la lista “Tree Navigation” (opciones anteriores) y este sea seleccionado, presionando este botón se removerá de la lista. Presionando o se incrementa o disminuye la amplitud o separación que hay entre los objetos ubicado en el árbol y los valores o nombres que están a la derecha de este. Find: cuando en un modelo que se tengan muchos objetos y que a veces sea muy

confuso encontrar uno, se introduce el nombre del objeto y se presiona el botón “Find”, la vista del árbol se ubicara automáticamente sobre este identificándolo por

un recuadro amarillo.

Travel Networks Utility32

Esta herramienta le permite editar las opciones que se crean por defecto en las conexiones de los Network Node en el modelo. Figura 64. Vista del cuadro “Travel Networks”

32

Flexsim Software Products Inc Op.cit., p.177

71

Esta herramienta debe usarse antes que los Networks Node sean puestos en el

modelo y antes que se realicen las conexiones. Permite elegir si la ruta (red) que se construyo, sea en un solo sentido (one way) o en dos sentidos (two way),

también permite elegir si los recursos que se mueven a través de ellas pueden adelantarse el uno sobre otro y elegir si esta ruta es en línea recta o curva. Presionando o se puede aumentar o disminuir el tamaño de los Networks Node en el modelo.

View Utility33

Permite capturar la posición actual del layout y agregar esta posición a una lista o serie de vistas. Es muy útil cuando se quiere navegar rápidamente alrededor del modelo enfocándose en determinados puntos (ver figura 65). Figura 65.Vista del cuadro “Views”

Presione “Capture” para tomar la vista actual del layout. Cuando una posición es capturada, esta se agrega a una lista desplegable. Se puede seleccionar una vista ya guardada de la lista desplegable para navegar alrededor del modelo. Se puede cambiar el nombre de la vista que se ha agregado a la lista desplegable. Presionando “Delete” se elimina una vista de la lista.

Groups Utility34 El cuadro “Groups Utility” le permite crear y editar diferentes grupos en el

modelo.

33

Flexsim Software Products Inc Op.cit., p.178 34

Flexsim Software Products Inc Op.cit., p.179

72

Figura 66. Vista del cuadro “Object Groups”

Crea un grupo vacío.

Remueve un grupo actualmente seleccionado.

o Reordenan los grupos y también permite reordenar los miembros que componen cada grupo.

Group Dropdown Menu: todos los grupos están agregados en una lista

desplegable. El nombre del grupo que actualmente es seleccionado, es editable.

Select: resalta con un recuadro rojo en el layout a todos los miembros que componen el grupo seleccionado. Select Only: deselecciona objetos en el layout resaltando solo los miembros que componen un determinado grupo.

Abre un menú que permite agregar más miembros a un grupo siempre y cuando estos estén seleccionados (recuadro rojo).

Remueve miembros del grupo que actualmente se tiene seleccionado. Esta acción es realizada seleccionando el miembro que se quiere quitar del grupo.

73

Model Layouts Utility35 Esta aplicación permite crear y editar ciertos layouts para su modelo. Por ejemplo, el usuario puede que quiera guardar un layout que representa el impacto generado por el flujo de material que va de derecha a izquierda o viceversa. Entonces el primer layout representa el flujo que va de derecha a izquierda, pero se quiere guardar otro layout que represente el flujo actual que es de izquierda a derecha, esta herramienta le permite hacerlo teniendo en cuenta que se hace dentro del mismo modelo. Presionando “Add” o “Delete” se borra o agrega un layout. Por defecto cuando se agrega un layout, se guardaría el layout actual del modelo. Se ingresa el nombre del layout y se presiona “Set Name” para cambiar el nombre. Se presiona “Set” para guardar el layout con las ubicaciones actuales de los objetos en el modelo. Se puede seleccionar un layout de la lista desplegable y el modelo inmediatamente ira al layout seleccionado que previamente fue guardado. Figura 67. Vista del cuadro “Model Layouts”

35

Flexsim Software Products Inc Op.cit., p.180

74

3.6 Build Menu36

Figura 68. Build menú

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Build Flexscript: construye todo en código Flexscript.

Compile Model: Compila todo el código C++ en el modelo. A esta característica se puede acceder también en cualquier momento presionando la tecla F2. Compile Entire: compila todo el código C++ en el árbol principal. Usualmente el usuario no necesitaría hacer esto a menos que esté desarrollando una aplicación propia con Flexsim. Open Visual Studio: Abre Microsoft Visual Studio.

Make all Code C++/Flexscript: hay 2 opciones para crear todo el código que pueden ser C++ o Flexscript. Se ofrecen estas opciones para que el modelador pueda tener la facilidad de usar Flexscript (este código trabaja inmediatamente sin tener que compilar) como también corridas en C++ (código que debe ser compilado, este corre mucho más rápido que el código construido en Flexscript).

36Flexsim Software Products Inc Op.cit., p.191

75

3.7 Execute Menu37 Figura 69. Execute menú

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Reset: Esta opción reinicia el modelo y lo prepara para correr. Es igual que presionar el botón “Reset” en el “Simulation Run Panel”.

Run: esta opción inicia la corrida del modelo actual. Es igual que presionar el botón “Run” en el “Simulation Run Panel”.

Stop: esta opción permite que el modelo actual se detenga cuando el usuario lo necesite. Es igual que presionar el botón “Stop” en el “Simulation Run Panel”.

Step: esta opción permite que el modelo se adelante en el tiempo hasta el momento en que ocurra el siguiente evento, por ejemplo si la primera llegada de un flowitem es a los 20 segundos, al presionar este botón el tiempo que inicia desde se adelantara hasta el segundo 20 cuando se genera el primer flowitem. Es igual que presionar el botón “Step” en el “Simulation Run Panel”. Increase Run Speed: esta opción incrementa la velocidad de corrida en el modelo.

37

Flexsim Software Products Inc Op.cit., p.194

76

Decrease Run Speed: esta opción disminuye la velocidad de corrida en el

modelo. 3.8 Statistics Menu38

Figura 70. Statistics menú

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Selected Objects On: esta opción activaría las estadísticas locales para todos los objetos seleccionados (aquellos con el recuadro rojo). Selected Objects Off: esta opción desactivaría las estadísticas locales para todos los objetos seleccionados (aquellos con el recuadro rojo). Hide Green Indicator Boxes: si esta opción es seleccionada, se ocultaran los recuadros verdes que aparecen alrededor de los objetos que se seleccionaron (recuadro rojo) para recolectar las estadísticas. Full History On: si esta opción es seleccionada, aquellos objetos con sus

estadísticas locales activas empezaran a recolectar información propia acerca del contenido (Content) y tiempo de permanencia (Staytime) que se actualiza en el

modelo a medida que avanza la corrida.

38Flexsim Software Products Inc Op.cit., p.195

77

Reports and Statistics: esta opción abre la herramienta “Reports and Statistics”. Este cuadro permite crear al modelador varios reportes basados en estadísticas generadas durante la corrida del modelo. Estos reportes pueden incluir información del flowitem como: throughput, staytime, state history y otros datos que el modelador puede seleccionar o personalizar. Experimenter: esta opción trae la herramienta “Simulation Experiment Control”. El Experimenter es usado para realizar múltiples corridas en múltiples escenarios y realizar análisis en el los modelos. Repeat Random Streams: esta opción repite los números aleatorios todo el

tiempo al reiniciar y correr el modelo. Para hacer que cada corrida sea con números aleatorios diferentes, no se debe seleccionar esta opción. OptQuest: esta opción abre la herramienta “Optimizer Editor”. El Optimizer es usado para encontrar los valores óptimos a variables de decisión definidas por el usuario que pueden ser: minimizar o maximizar la función objetivo dentro de los límites definidos. ExpertFit: esta opción iniciaría la herramienta ExpertFit Software diseñado por Averill Law & Associates. Un manual de usuario completo está disponible en línea para el ExpertFit. El ExpertFit es un programa usado para determinar la mejor distribución de probabilidad. Dashboard: esta opción abrirá la herramienta Dashboard donde el usuario puede agregar gráficas y otra información acerca de los datos de salida del modelo.

78

Reports and Statistics39

Figura 71. Vista del cuadro “Full Report”

El cuadro “Full Report” permite generar reportes completos de las corridas de los modelos que serán guardadas en una base de datos y se pueden abrir con la aplicación “Flexsim Charting And Reporting”. Esta base de datos solo se puede generar con la opción “Full History On” que estaba activa mientras el modelo se

corría. Si esta opción no estaba activa, entonces se mostrará un mensaje informando que los datos no fueron colectados. Para crear una base de datos y abrirla con “Charting Application”, presione el botón “Generate Report”. Include Summary Report: si esta opción es seleccionada, el Summary Report

(reporte resumen) se incluirá en la base de datos que es creada. La aplicación “Charting” solo puede mostrar las primeras 32 columnas del reporte. Si el usuario necesita ver más que eso, genere el reporte usando el “Summary Report Tab”. Las clases que aparecen en el reporte pueden ser personalizadas usando “Options Tab”. Los atributos y otros valores que se muestran pueden ser cambiados usando el “Summary Report Tab”.

Include State Report: si esta opción es seleccionada, el “State Report” será incluido en la base de datos creada. La aplicación “Charting” solo puede mostrar las primeras 32 columnas del reporte. Si el usuario necesita ver más que eso, genere el reporte usando el “Summary Report Tab”. Generalmente si el usuario quisiera menos estados en el reporte, entonces se pueden remover o cambiar usando el “State Report Tab”.

39Flexsim Software Products Inc Op.cit., p.604-664

79

Open Flexsim Chart: presionando este botón se busca abrir una base de datos existente para “Flexsim Chart”. Si aun no ha sido creada, primero debe darse click en “Generate Report”.

Generate Report: presionando este reporte se genera y se crea una base de datos para utilizar con “Flexsim Chart”.

Summary Report

Esta pestaña le permite crear un reporte para su modelo. Flexsim reporta en una lista de atributos que el usuario define para el modelo. Una vez el usuario ha creado la lista de atributos que quiere para el reporte, click en el botón “Generate Report”. El reporte es entonces creado y exportado a excel.

Figura 72. Vista del cuadro “Summary Report”

Standard Attributes: esta opción le permite seleccionar atributos estándar como: content, staytime, etc. Presione el botón para agregar un atributo

previamente seleccionado de la lista de atributos hacia el reporte. User Defined Attributes: aquí el usuario puede escribir el nombre de una etiqueta (Label) o variable que quiere en el reporte, entonces haciendo click en el botón

80

en la parte inferior, puede agregar su propio atributo para la lista de la cual se creará el reporte. Attributes to Report: esta es una lista de atributos que serían reportados. Para

remover un atributo de la lista, lo seleccionamos y presionamos el botón . Generate Report: presione este botón para generar el reporte.

State Report Figura 73. Vista del cuadro “State Report”

El “State Report” o reporte de estados permite crear un reporte del tiempo que duro un objeto en un estado individual durante la corrida del modelo. Esto puede ser reportado de dos maneras, como un tiempo exacto o como un porcentaje del tiempo total de la corrida del modelo. Una vez el usuario haya creado la lista de estados que quiere para el reporte, se hace click en el botón “Generate Report”, este reporte es entonces creado y exportado a Excel. Display Values As Percentages: si esta casilla es seleccionada el reporte mostrará un porcentaje del tiempo total de corrida en el que el objeto permaneció en cada estado. Si no es seleccionada, el reporte mostrará el tiempo en el que el objeto permaneció en cada estado.

81

Available States: estos son los estados disponibles en Flexsim que pueden ser

incluidos en el reporte. Para poner un estado en la columna de reporte de estados (States To Report) seleccionar el estado que quiere que aparezca en el reporte y

presionar el botón . Se pueden elegir todos los estados disponibles de la columna de “States to Report” presionando el botón .

States to Report: el tiempo gastado por esos objetos en los estados seleccionados serán mostrados en el reporte. El tiempo para todos esos estados serán reportados para todos los objetos, incluso si los objetos no estuvieron en esos estados. Para remover un estado de la listan, seleccionarlo y presionar el botón . Para remover todos los estados de la lita presionar el botón . Generate Report: presione este botón para generar el reporte.

Model Documentation

Figura 74. Vista del cuadro “Model Documentation”

La pestaña “Model Documentation” le permite crear un documento con la extensión (.txt) donde se reporta la información del modelo. Seleccionar las opciones que se quieran en su documento y hacer click en el botón “Generate Report” para crear el archivo.

82

Objects: esta opción le permite al modelador seleccionar los atributos de los objetos presentes en el modelo que deberán ser incluidos en el reporte. Si “Group by Object” es seleccionado, todos los atributos seleccionados para cada objeto estarán juntos en el reporte final. Si “Group by Caategory” es seleccionado, entonces todos los valores para cada atributo estarán junto en el reporte. Si “Verbose” es seleccionado, entonces ningún tipo de código (Triggers, process time, etc) serán documentados en el archivo de texto completo.

Global: estas opciones le permiten al modelador seleccionar herramientas globales y características que le gustaría incluir en el reporte. Generate Report: presión este botón para generar el reporte.

Options

Figura 75. Vista del cuadro “Options”

La pestaña de opciones le permite al usuario seleccionar las de clases de objetos que serán mostrados en el reporte.

83

Avilable Classes: estas son todas las clases en Flexsim que pueden ser incluidas

en los reportes. Estas son las clases que aparecen en la librería de íconos de Flexsim. Se puede seleccionar clases para el reporte seleccionando la clase que el usuario le interese y presionando el botón . También se pueden seleccionar

todas las clases para el reporte presionando el botón . 3.8.1 HERRAMIENTAS 3.8.1.1 Flexsim Chart40. Cuando Flexsim corre, este automáticamente recoge

información estadística básica acerca de los objetos en el modelo. La información incluye entradas y salidas de los flowitems, tiempos en cada estado, etc. Hay una gran cantidad de datos que no se recogen. Flexsim puede ser configurado para recoger más detalles estadísticos que pueden ser vistos y analizados después de la corrida completa del modelo. Estas estadísticas pueden ser analizadas usando una aplicación llamada Flexsim Chart. Para usar Flexsim Chart, el usuario el usuario debe primero activar la opción “Full History” antes de correr el modelo. Esto se realiza seleccionado “Statistics / Full History On” del menú principal. Dependiendo del tamaño del modelo y la longitud de la corrida, “Full History” puede requerir gran cantidad de memoria. Por esta razón, siempre esta desactivado por defecto. Una vez el modelo es corrido completamente o el usuario lo detiene (Stop), la recolección de datos puede ser guardada en un archivo o base de datos y abierta con Flexsim Chart.

40

Flexsim Software Products Inc Op.cit., p. 611-638

84

Ventana principal

Cuando el usuario abre Flexsim Chart usando Reports and Statistics, se genera una base de datos que es abierta por Flexsim Chart. Si el usuario abre Flexsim Chart, este le pide seleccionar y abrir un archivo. Una vez se abre el archivo, el usuario puede ver la ventana principal de Flexsim Chart (ver figura 76).

Figura 76. Vista de la ventana principal

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

85

Summary Report

La pestaña “Summary Report” muestra la misma información que la pestaña “Summary Report” en la aplicación estándar de “Reports And Statistics”. Cada

fila en la tabla es un objeto en el modelo (ver figura 77). La primera columna contiene el nombre del objeto y la segunda la clase de objeto. Todas las demás columnas son variables, atributos y etiquetas que pueden ser seleccionadas por el usuario. La pestaña “Summary Report” puede solo mostrar 32 columnas. Si la

tabla tiene más que esto, solo se mostrarán las primeras 32 columnas. El resto se podrán ver exportando “Summary Report” a Excel.

Figura 77. Vista de la pestaña “Summary Report”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

86

State Report La pestaña “State Report” muestra la misma información que la pestaña “State Report” en la aplicación estándar de “Reports And Statistics”. Cada fila en la

tabla representa un solo objeto en el modelo (ver figura 78). La primera columna contiene la ruta en el modelo para el objeto y la segunda la clase de objeto. Cada una de las otras columnas son estados en el que el objeto ha estado durante la corrida. Los valores mostraron pueden ser o bien la cantidad de tiempo real que permaneció en cada estado o el porcentaje que representa ese tiempo en comparación con el tiempo total de la corrida. El usuario decide con la venta “Reports And Statistics” cuál de los dos valores quiere que le sea mostrado. Esta pestaña solo puede mostrar 32 columnas. Si la tabla tiene más que esto, solo se mostrarán las primeras 32 columnas. El resto se podrán ver exportando “State Report” a Excel.

Figura 78. Vista de la pestaña “State Report”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

87

Object Comparison Chart

El “Object Comparison Chart” es usado para crear gráficos de barras para comparar resultados estadísticos de múltiples objetos (ver figura 79). Cada gráfica puede mostrar varias variables para todos los objetos. Cada variable toma una gráfica de barra propia. Cada objeto en la gráfica se le asigna un color. El usuario puede cambiar el color de estas barras si quiere. Figura 79. Vista de la ventana para los datos de entrada de la pestaña “Object Comparison Chart”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Name: el nombre del gráfico. Este toma por defecto un valor cuando la pestaña es creada, pero el usuario podría cambiarlo en algún momento. Este nombre sería mostrado en la pestaña y en la lista desplegable “Select Chart”. Variables: la lista desplegable contiene categorías de variables que están

disponibles para los gráficos que se utilizan para comparar objetos. Una vez una categoría ha sido seleccionada, la variable disponible en esa categoría se muestra

88

en la parte de abajo. El usuario puede seleccionar varias variables que le gustarían que fueran mostradas presionando el botón . Esta misma acción puede ser realizada haciendo doble click sobre la variable. Chart Variables: esta lista muestra las variables que serían mostradas en el

gráfico. Para remover las variables de esta lista, se seleccionan y se presiona el botón . El usuario puede acomodar u ordenar las variables seleccionándolas y presionando el botón se ubican un rango más arriba y presionando el botón se ubican un rango más abajo. Parámetros (tal como el nombre, rango de tiempo y lista de Itemtype) para una variable individual puede ser editado seleccionando la variable que el usuario quiera editar y presionando el botón o haciendo doble click sobre esta. Si una variable ha tenido cambios en sus parámetros, el ícono similar a un foco aparecerá encendido ( ) junto al nombre de la variable, en dado caso que no se le modifique nada a estas el foco aparecerá apagado ( ). Si una variable está definida como visible en el gráfico, aparece un ícono similar a un ojo que se encuentra abierto ( ) de lo contrario este aparecerá cerrado ( ). Combine Selected: presionando este botón se creará una nueva variable que

tiene la suma de todas o de las variables seleccionadas. Cuando esta nueva variable es creada, se le pide al el usuario que ingrese o establezca el nombre. Este nombre debería ser alguna cosa que la describa. El nombre de la variable combinada puede ser cambiado haciendo doble click en la variable que se encuentra en la lista o presionando el botón . Las variables que están siendo combinadas deben estar en la lista de variables, sin embargo ellas pueden ocultarse si el usuario no quiere verlas en los resultados que se reflejan en el gráfico final. No es posible crear variables combinadas utilizando otras variables combinadas. Objects: la lista desplegable muestra todos grupos que se han definido en el modelo. Hay también un grupo llamado “All” que esta siempre disponible. Cuando el usuario selecciona un grupo de la lista desplegable, todos los objetos que están en este grupo se mostrarán en la parte de debajo de la lista desplegable. El usuario selecciona los objetos que quiere tener en el modelo y presiona el botón

para agregarlo a la lista de “Chart Objects”.

Chart Objects: esta lista contiene los objetos que tendría su reporte de datos in el gráfico. Para remover objetos de la lista, el usuario deberá seleccionar los objetos que el desee remover y presionar el botón . Estos objetos también pueden ubicarse un rango arriba o un rango presionando los botones o .

89

Use All Itemtypes: si esta casilla es seleccionada, todos los flowitems serían

usados cuando la pestaña está calculando los resultados de los flowitem basado en las variables. Las variables que están basadas en los flowitems incluyen las variables “throughput” y “Content”. Specific Itemtypes: si esta casilla es seleccionada, solo flowitem con ciertos

itemtypes serán usados en el cálculo de las variables seleccionadas. El usuario puede seleccionar de una lista de varios itemtypes, separándoles individualmente por medio de una coma. Por ejemplo, 1,3, 5. Use Time Range: si esta casilla es seleccionada los cálculos de las variables solo

incluirán el movimiento de los flowitems y los estados de los objetos en el rango de tiempo especificado. El rango de tiempo es ingresado en las casillas con etiquetas, inicio “From”, final “To”. Figura 80. Vista del gráfico de la pestaña “Object Comparison Chart”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Data Entry: presionando este botón el usuario puede regresar a la ventana donde se realizan todos los ajustes y selección de las variables que integraran el gráfico. View Chart: presionando este botón se calculan las variables de los objetos, se

crea el gráfico de barras y se hace visible (ver figura 80).

90

View SQL: presionando este botón se muestran generan las declaraciones SQL

para cada variable. Estos datos son estrictamente de lectura. Time Plot La pestaña “Time Plot” es usada para crear gráficos de líneas a través del tiempo. Cada línea es el resultado de la variable de un objeto (ver figura 81). Este gráfico incluye el tiempo gastado en cada estado, contenido, tiempo de permanencia y throughput. Cada línea en el gráfico muestra los resultados de una sola variable de un solo objeto. Esto significa que es bastante fácil generar gráficos con bastantes líneas para que sea realmente útil. Figura 81. Vista de la ventana para los datos de entrada de la pestaña “Time Plot”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Name: el nombre del gráfico. Este toma por defecto un valor cuando la pestaña es creada, pero el usuario podría cambiarlo en algún momento. Este nombre sería mostrado en la pestaña y en la lista desplegable “Select Chart”. Variables: esta es una lista de variables que están disponibles para la pestaña “Time Plots”. El usuario debe seleccionar las variables que le gustaría poner en el

gráfico y presionar el botón . Esta misma acción puede ser realizada haciendo doble click sobre la variable.

91

Chart Variables: esta lista muestra las variables que serían mostradas en el

gráfico. Para remover las variables de esta lista, se seleccionan y se presiona el botón . El usuario puede acomodar u ordenar las variables seleccionándolas y presionando el botón se ubican un rango más arriba y presionando el botón se ubican un rango más abajo. Parámetros (tal como el nombre, rango de tiempo y lista de Itemtype) para una variable individual puede ser editado seleccionando la variable que el usuario quiera editar y presionando el botón o haciendo doble click sobre esta. Si una variable ha tenido cambios en sus parámetros, el ícono similar a un foco aparecerá encendido ( ) junto al nombre de la variable, en dado caso que no se le modifique nada a estas el foco aparecerá apagado ( ). Si una variable está definida como visible en el gráfico, aparece un ícono similar a un ojo que se encuentra abierto ( ) de lo contrario este aparecerá cerrado ( ). Combine Selected: presionando este botón se creará una nueva variable que

tiene la suma de todas o de las variables seleccionadas. Cuando esta nueva variable es creada, se le pide al el usuario que ingrese o establezca el nombre. Este nombre debería ser alguna cosa que la describa. El nombre de la variable combinada puede ser cambiado haciendo doble click en la variable que se encuentra en la lista o presionando el botón . Las variables que están siendo combinadas deben estar en la lista de variables, sin embargo ellas pueden ocultarse si el usuario no quiere verlas en los resultados que se reflejan en el gráfico final. No es posible crear variables combinadas utilizando otras variables combinadas. Objects: la lista desplegable muestra todos grupos que se han definido en el modelo. Hay también un grupo llamado “All” que esta siempre disponible. Cuando

el usuario selecciona un grupo de la lista desplegable, todos los objetos que están en este grupo se mostrarán en la parte de debajo de la lista desplegable. El usuario selecciona los objetos que quiere tener en el modelo y presiona el botón

para agregarlo a la lista de “Chart Objects”.

Chart Objects: esta lista contiene los objetos que tendría su reporte de datos in el gráfico. Para remover objetos de la lista, el usuario deberá seleccionar los objetos que el desee remover y presionar el botón . Estos objetos también pueden ubicarse un rango arriba o un rango presionando los botones o . Use All Itemtypes: si esta casilla es seleccionada, todos los flowitems serían usados cuando la pestaña está calculando los resultados de los flowitem basado en las variables. Las variables que están basadas en los flowitems incluyen las variables “throughput” y “Content”.

92

Specific Itemtypes: si esta casilla es seleccionada, solo flowitem con ciertos

itemtypes serán usados en el cálculo de las variables seleccionadas. El usuario puede seleccionar de una lista de varios itemtypes, separándoles individualmente por medio de una coma. Por ejemplo, 1,3,5. Use Time Range: si esta casilla es seleccionada los cálculos de las variables solo

incluirán el movimiento de los flowitems y los estados de los objetos en el rango de tiempo especificado. El rango de tiempo es ingresado en las casillas con etiquetas, inicio “From”, final “To”. Figura 82. Vista del gráfico de la pestaña “Time Plot”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Data Entry: presionando este botón el usuario puede regresar a la ventana donde se realizan todos los ajustes y selección de las variables que integraran el gráfico. View Chart: presionando este botón se calculan las variables de los objetos, se crea el gráfico de barras y se hace visible ver figura 82). View SQL: presionando este botón se muestran generan las declaraciones SQL para cada variable. Estos datos son estrictamente de lectura.

93

Financial Reports La pestaña “Financial Reports” le permite al usuario asignar información financiera a los objetos que se encuentran en el modelo. Los valores asignados a los a los objetos pueden ser negativos para indicar costos o positivos para indicar ganancias (ver figura 83). Hay varias categorías de información financiera que puede ser asignada. El usuario no requiere usarla toda, pero esta información puede estar disponible si la necesitase. Estas categorías incluyen valores fijos o basados en el tiempo para los objetos, flowitems y estados de los objetos. Hay dos reportes disponibles para el usuario. Uno es llamado “Total Reports”. Este es el

gran total de los datos financieros asignados para todos los objetos en el modelo (ver figura 84). El otro reporte es llamado “Details Report”. Este muestra el

resultado de los datos financieros para cada objeto individual (ver figura 85). La suma de toda esa información constituye el reporte total. Figura 83. Vista de un “Financial Reports” asignado a algunos objetos

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

94

Figura 84. Vista de un “Total Reports” realizado a algunos objetos

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Figura 85. Vista de un “Total Reports” realizado a algunos objetos

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

95

Name: el nombre del gráfico. Este toma por defecto un valor cuando la pestaña es

creada, pero el usuario podría cambiarlo en algún momento. Este nombre sería mostrado en la pestaña y en la lista desplegable “Select Chart”.

Objects: la lista desplegable muestra todos los grupos que hay definidos en el modelo. Hay también un grupo llamado “All” que esta siempre disponible. Cuando

un grupo es seleccionado, todos los objetos que están en el grupo aparecen en la parte de abajo. Un objeto que tiene un ícono monetario ( ), es porque se le ha asignado valores para realizarle un análisis financiero. Para agregar datos financieros a un objeto, hay que seleccionarlo en la lista y llenar cualquiera de las dos casillas “Fixed Value” o “Time Value”. Una vez se han asignado los valores todos los archivos financieros estarán disponibles. Fixed Value: este valor es asignado a los objetos antes que sean calculados los resultados. Se puede pensar en muchos casos como el costo de instalación de un objeto. Time Value: este valor es multiplicado por el rango de tiempo y se agrega al

cálculo de los resultados. Esto puede representar el costo de mantener el objeto en marcha (electricidad, etc). Table drop-downn list: esta lista desplegable le permite al usuario seleccionar la tabla que sería mostrada en la parte de abajo. Hay dos tablas disponibles: “the Flowitem Values Table” y “the State Values Table”. Flowitem Values Table: esta tabla le permite al usuario ingresar información

financiera relativa a los flowitems que el objeto proceso. Hay tres columnas que el usuario puede llenar. En la primera columna se pone el número o los números de los itemtypes. En la segunda columna ponemos un valor fijo que corresponde únicamente a los itemtypes especificados en la misma fila. La tercera columna corresponde al “Time Value” que corresponde únicamente a los itemtypes especificados en la misma fila. State Values Table: esta tabla permite al usuario ingresar información financiera acerca de cada estado por el que el objeto pasó. Cada fila representa un solo estado. La primera columna es el nombre del estado y no puede ser cambiado por el usuario. La segunda columna es el valor asignado para cada estado. Este valor es multiplicado por la cantidad de tiempo en el que el objeto estuvo en ese estado y es agregado al total. El usuario no puede cambiar el número de fila en esta tabla.

96

Copy: presionando este botón se almacenaría todos los datos financieros en la

memoria del objeto actualmente seleccionado y que puede ser fácilmente pegado en otros objetos de la lista. Paste: presionando este botón se establecerán los datos financieros del objeto que se seleccionan y, se presiona “Copy”. Esta es una forma rápida y

conveniente para asignar los mismos datos financieros a múltiples objetos de la lista. Remove: presionando este botón, se quitarán los datos financieros del objeto actualmente seleccionado. Una vez este hecho, todos los datos que el usuario ingreso para el objeto actual, se habrán perdido. Use Time Range: si esta casilla es seleccionada los cálculos para los reportes

financieros solo se harán para el rango de tiempo que se especifique allí. Data Entry: presionando este botón el usuario puede regresar a la ventana donde

se realizan todos los ajustes y selección de las variables que integraran el gráfico. View Totals: presionando este botón se calcularía el reporte total y se mostrará.

Dependiendo del número de objetos en el modelo, el número de flowitems procesados y el rango de tiempo, estos cálculos pueden tomar un poco de tiempo. Details: presionando este botón se calcularían los detalles del reporte y se mostrarían en el campo gris. Dependiendo del número de objetos en el modelo, el número de flowitems procesados y el rango de tiempo, estos cálculos pueden tomar un poco de tiempo. Object Gantt Chart La pestaña “Object Gantt Chart” es usado para mostrar datos del objeto que

cambian con el tiempo (ver figura 86). Cada objeto en el gráfico está representado por una barra horizontal que representan los datos. Esta barra esta segmentada en pequeñas opciones cuyo significado es diferente dependiendo de la variable que está siendo mostrada. En algunos momentos las pequeñas barras representan el “staytime” de los flowitems, otros tiempos como lo es el tiempo gastado en determinado estado para un objeto.

97

Figura 86. Vista de un “Object Gantt” con variables y objetos seleccionados

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Figura 87. Vista de un “Object Gantt” con variables y objetos seleccionados

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

98

Name: el nombre del gráfico. Este toma por defecto un valor cuando la pestaña es

creada, pero el usuario podría cambiarlo en algún momento. Este nombre sería mostrado en la pestaña y en la lista desplegable “Select Chart”.

Variables: esta es una lista de variables que están disponibles para la pestaña “Object Gantt Chart”. El usuario debe seleccionar las variables que le gustaría

poner en el gráfico y presionar el botón . Esta misma acción puede ser realizada haciendo doble click sobre la variable. Chart Variables: esta lista muestra las variables que serían mostradas en el

gráfico. Para remover las variables de esta lista, se seleccionan y se presiona el botón . El usuario puede acomodar u ordenar las variables seleccionándolas y presionando el botón se ubican un rango más arriba y presionando el botón se ubican un rango más abajo. Parámetros (tal como el nombre, rango de tiempo y lista de Itemtype) para una variable individual puede ser editado seleccionando la variable que el usuario quiera editar y presionando el botón o haciendo doble click sobre esta. Si una variable ha tenido cambios en sus parámetros, el ícono similar a un foco aparecerá encendido ( ) junto al nombre de la variable, en dado caso que no se le modifique nada a estas el foco aparecerá apagado ( ). Si una variable está definida como visible en el gráfico, aparece un ícono similar a un ojo que se encuentra abierto ( ) de lo contrario este aparecerá cerrado ( ). Objects: la lista desplegable muestra todos grupos que se han definido en el modelo. Hay también un grupo llamado “All” que esta siempre disponible. Cuando el usuario selecciona un grupo de la lista desplegable, todos los objetos que están en este grupo se mostrarán en la parte de debajo de la lista desplegable. El usuario selecciona los objetos que quiere tener en el modelo y presiona el botón

para agregarlo a la lista de “Chart Objects”. Chart Objects: esta lista contiene los objetos que tendría su reporte de datos in el

gráfico. Para remover objetos de la lista, el usuario deberá seleccionar los objetos que el desee remover y presionar el botón . Estos objetos también pueden ubicarse un rango arriba o un rango presionando los botones o . Use All Itemtypes: si esta casilla es seleccionada, todos los flowitems serían

usados cuando la pestaña está calculando los resultados de los flowitem basado en las variables. Las variables que están basadas en los flowitems incluyen las variables “throughput” y “Content”.

99

Specific Itemtypes: si esta casilla es seleccionada, solo el flowitem con ciertos

itemtypes serán usados en el cálculo de las variables seleccionadas. El usuario puede seleccionar de una lista de varios itemtypes, separándoles individualmente por medio de una coma. Por ejemplo, 1, 3,5. Use Time Range: si esta casilla es seleccionada los cálculos de las variables solo

incluirán el movimiento de los flowitems y los estados de los objetos en el rango de tiempo especificado. El rango de tiempo es ingresado en las casillas con etiquetas, inicio “From”, final “To”. Data Entry: presionando este botón el usuario puede regresar a la ventana donde

se realizan todos los ajustes y selección de las variables que integraran el gráfico. View Chart: presionando este botón se calculan las variables de los objetos, se

crea el gráfico de barras y se hace visible (ver figura 87). View SQL: presionando este botón se muestran generan las declaraciones SQL

para cada variable. Estos datos son estrictamente de lectura. Single Object Chart La pestaña “Single Object Chart” es usada para mostrar un gráfico de barras o un gráfico de pastel que represente un tipo particular de datos acerca de un solo objeto (ver figura 88). Los datos puede información acerca del “staytime” de los flowitems, tiempo gastado en diferentes estados o contenido de los objetos.

100

Figura 88. Vista de un “Single Object Chart” con una variable y un objeto

seleccionado

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Figura 89. Vista del gráfico “Single Object Chart” generado con los ajustes realizados

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

101

Figura 90. Vista de un “Single Object Chart” con diferentes ajustes para un solo

objeto

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Figura 91. Vista del gráfico “Single Object Chart” generado con los ajustes

realizados

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Name: el nombre del gráfico. Este toma por defecto un valor cuando la pestaña es creada, pero el usuario podría cambiarlo en algún momento. Este nombre sería mostrado en la pestaña y en la lista desplegable “Select Chart”.

102

Variable: esto es una lista de variables que están disponibles para gráficar un solo

objeto. El usuario selecciona de la lista la variable que le gustaría poner en el gráfico. Pie Chart: si esta opción es seleccionada, los resultados serán mostrados en un gráfico de pastel. Bar Graph: si esta opción es seleccionada, los resultados serán mostrados en un gráfico de pastel. Display Null Values: si esta opción es seleccionada, el gráfico incluiría barras o sectores circulares cuyo valor es cero. Si no es seleccionada, los valores de cero no serán mostrados. Objects: la lista desplegable muestra todos grupos que se han definido en el modelo. Hay también un grupo llamado “All” que esta siempre disponible. Cuando el usuario selecciona un grupo de la lista desplegable, todos los objetos que están en este grupo se mostrarán en la segunda lista desplegable que se encuentra en la parte de abajo. Histogram Minimum: este es el valor más bajo que será mostrado en el gráfico. Histogram Maximum: este es el valor más alto que sea mostrado en el gráfico.

Histogram Divisions: este es el número máximo de divisiones (barras o cortes del pastel) que serán mostrados en el gráfico. Use All Itemtypes: si esta opción es seleccionada, todos los flowitems sería usados cuando la pestaña está calculando los resultados basado en las variables. Las variables basadas en los flowitems incluyen: throughput y content. Las que no se basan en flowitem son los state.

Specific Itemtypes: si esta opción es seleccionada, solo flowitems con ciertos itemtypes serían usados cuando se calculan las variables.

103

Use Time Range: si esta casilla es seleccionada el cálculo de las variables solo

incluiría el movimiento de los flowitems y cambios en los estados de los objetos únicamente en el rango de tiempo especificado por el usuario. Data Entry: presionando este botón el usuario puede regresar a la ventana donde se realizan todos los ajustes y selección de las variables que integraran el gráfico. View Chart: presionando este botón se calculan las variables de los objetos, se crea el gráfico de barras y se hace visible (ver figuras 89 y 91). View SQL: presionando este botón se muestran generan las declaraciones SQL para cada variable. Estos datos son estrictamente de lectura. Flowitem Gantt Chart La pestaña “Flowitem Gantt Chart” es usada para mostrar datos de los flowitems

que cambian con el tiempo. Cada flowitem en el gráfico toma la forma de una barra que representa los datos (ver figura 92). Esta barra se divide en partes más pequeñas, coloreadas. Estas barras representan el tiempo que estuvo el flowitem en los objetos. Cada objeto del modelo toma un color diferente en la barra. Esto le permite al usuario ver donde un flowitem específico estuvo durante la corrida del modelo.

104

Figura 92. Vista de la ventana “Flowitem Gantt” con variables y flowitems

seleccionados

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Figura 93. Vista del gráfico “Flowitem Gantt” generado con los ajustes realizados

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

105

Name: el nombre del gráfico. Este toma por defecto un valor cuando la pestaña es

creada, pero el usuario podría cambiarlo en algún momento. Este nombre sería mostrado en la pestaña y en la lista desplegable “Select Chart”.

Variables: esta es una lista de variables que están disponibles para la pestaña “Flowitem Gantt Chart”. El usuario debe seleccionar las variables que le gustaría

poner en el gráfico y presionar el botón . Esta misma acción puede ser realizada haciendo doble click sobre la variable. Chart Variables: esta lista muestra las variables que serían mostradas en el

gráfico. Para remover las variables de esta lista, la seleccionamos y presionamos el botón . El usuario puede acomodar u ordenar las variables seleccionándolas y presionando el botón se ubican un rango más arriba y presionando el botón se ubican un rango más abajo. Parámetros (tal como el nombre, rango de tiempo y lista de Itemtype) para una variable individual puede ser editado seleccionando la variable que el usuario quiera editar y presionando el botón o haciendo doble click sobre esta. Si una variable ha tenido cambios en sus parámetros, el ícono similar a un foco aparecerá encendido ( ) junto al nombre de la variable, en dado caso que no se le modifique nada a estas el foco aparecerá apagado ( ). Si una variable está definida como visible en el gráfico, aparece un ícono similar a un ojo que se encuentra abierto ( ) de lo contrario este aparecerá cerrado ( ). Flowitem: en esta lista están todos los flowitems que son creados en el modelo.

El usuario selecciona los flowitems y presiona el botón para que este flowitem se agregue al gráfico. Chart Flowitems: esta lista contiene los flowitems que serán mostrados en el gráfico. Para remover flowitems de la lista, el usuario deberá seleccionarlos y presionar el botón . Estos objetos también pueden ubicarse un rango arriba o un rango presionando los botones o . Use Time Range: si esta casilla es seleccionada los cálculos de las variables solo incluirán el movimiento de los flowitems y los estados de los objetos en el rango de tiempo especificado. El rango de tiempo es ingresado en las casillas con etiquetas, inicio “From”, final “To”.

Data Entry: presionando este botón el usuario puede regresar a la ventana donde se realizan todos los ajustes y selección de las variables que integraran el gráfico.

106

View Chart: presionando este botón se calculan las variables de los objetos, se

crea el gráfico de barras y se hace visible (ver figura 93). View SQL: presionando este botón se muestran generan las declaraciones SQL

para cada variable. Estos datos son estrictamente de lectura. Database Tables La pestaña “Database Tables” es usada para ver la tabla actual que esta almacenando la base de datos creada por Flexsim. Estos datos no pueden ser cambiados. No es necesaria para analizar los resultados de la corrida del modelo. Es simplemente algo provisional que se le muestra al usuario para que vea los datos en filas que fueron recolectados. Figura 94. Vista de la ventana “Tables” mostrando el “Movement Table”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Select table to view: esta es lista desplegable de todas las tablas que están en la base de datos. Siempre que el usuario selecciona una, esta sería mostrada. Ejemplo 3: Para el ejemplo de cómo utilizar el Flexsim Chart, se usará el mismo modelo construido para explicar los conceptos vistos al inicio del manual y solo se trabajarán algunas pestañas.

107

Figura 95. Vista del modelo para el ejemplo de Flexsim Chart

Para poder utilizar la herramienta Flexsim Chart se debe primero seleccionar los objetos y activar la recolección de datos. Para seleccionar los objetos se mantiene presionada la tecla “Shift” y se arrastra sobre el grupo de objetos que se quiere seleccionar (ver figura 96). Para activar la opción de recolección de datos dirigirse a la barra de herramientas: Menu Statistics/Full History On. La vista del modelo debe ser la siguiente: Figura 96. Objetos seleccionados

Habiéndose activado la opción “Full History On”, Flexsim iniciara la recolección

de datos y se guardará en un archivo que después abriremos al finalizar la corrida. Posteriormente a la activación de la recolección de datos, procedemos a realizar la corrida del modelo. Hay que tener en cuenta que el tiempo que se había establecido de 28.800 segundos se sigue conservando.

108

Figura 97. Vista del modelo al finalizar la corrida

Al finalizar la corrida, hay que dirigirse a la barra de herramientas y en: Menu Statistics/Report and Statistics se crea el reporte que se guardará y abrirá con Flexsim Chart. Se presiona el botón “Generate Report” y aparecerá la opción de donde se quiere guardar el reporte (ver figura 98). Nota: en la carpeta de documentos se creará una carpeta adicional llamada “Flexsim 6 projects”, aquí se guardará el reporte del modelo con el nombre. Una vez guardado el reporte en esta carpeta, en la misma ventana se presiona el botón “Open Flexsim Chart”. Este pedirá buscar el archivo que contendrá los valores que Flexsim Chart analizará. Entonces en la carpeta “Flexsim 6 projects” donde se guardó el archivo con el nombre que establecido, se selecciona y se presiona el botón abrir para que automáticamente se carguen los datos y se abra la ventana Flexsim Chart (ver figura 99). Figura 98. Abrir el reporte con Flexsim Chart

109

Figura 99. Ventana Flexsim Chart abierta

Una vez se tenga la ventana Flexsim Chart abierta, se procede a realizar los siguientes análisis. Hay que recordar que el Flexsim Chart analiza datos de salida de la corrida del modelo, es decir, datos generados al final. Para responder las preguntas es necesario que se presione el botón “Summary Report” (ver figura 100). 1. Máximo contenido de la ColaP: 6

Figura 100. Ventana Flexsim “Summary Report/Respuesta 1”

110

2. Máximo tiempo de permanencia de un flowitem en la MáquinaC: 29.37 Figura 101. Ventana Flexsim “Summary Report / Respuesta 2”

3. Cantidad de flowitems que entraron en la MáquinaC:2415 Figura 102. Ventana Flexsim “Summary Report / Respuesta 3”

111

4. Cantidad de flowitems que salieron en la MáquinaC: 2414 Figura 103. Ventana Flexsim “Summary Report / Respuesta 4”

Las respuestas 3 y 4 indican que al finalizar la corrida del modelo un flowitem aun estaba en proceso. Para las preguntas 5, 6 y 7 hay que presionar el botón “State Report” (ver figura 104).

5. Porcentaje del tiempo total de corrida en el que la MáquinaC estuvo procesando: 99.92

Figura 104. Ventana Flexsim “State Report / Respuesta 5”

112

6. Porcentaje del tiempo total de corrida en el que la MáquinaB estuvo bloqueada: 63.4

Figura 105. Ventana Flexsim “State Report / Respuesta 6”

7. Porcentaje del tiempo total de corrida en el que la fuente o LlegadaMP estuvo

generando flowitems: 83.11

Figura 106. Ventana Flexsim “State Report / Respuesta 7”

113

8. Realice una gráfica comparativa entre el total de flowitems que salen de la máquina a y máquina b. para este punto hay que hacer click en el botón “Object Comparison” seleccionar de la lista desplegable de variables la opción “Throughput” (ver figura 107).

Figura 107. Ventana “Object Comparison/Datos de entrada”

Al seleccionar de la lista desplegable de variables la variable “Throughput”, hay que seleccionar “Total Out” para agregarla a la lista de variables que mostrará el Chart, luego seleccionamos de la lista de objetos la máquina a y b para que se agreguen a la lista de objetos que mostrará el Chart. Presionar el botón “View Chart” y se obtiene el siguiente gráfico: Figura 108. Ventana “Object Comparison / Gráfico”

114

La anterior gráfica permite ver fácilmente que el número de flowitems que salieron de la máquina A es muy superior a los que salieron de la máquina B. 9. Realice una gráfica que permita ver el contenido de la ColaMP a través del

tiempo y compare de la misma forma para la ColaP Para poder construir esta gráfica es necesario hacer click en el botón “Time Plot”,

que nos permite ver un listado de variables que se pueden agregar al Chart (ver figura 109). Después de esto se escoge de la lista de objetos la ColaMP y la ColaP para que sean agregados al Chart. En todas las ventanas para poder ver los gráficos se presiona el botón “View Chart”

Figura 109. Ventana “Time Plot / Datos de entrada”

115

Figura 110. Ventana “Time Plot / Gráfico”

De la gráfica anterior se puede concluir que mientras el comportamiento del contenido a través del tiempo de la ColaMP es muy variable, el comportamiento de la ColaP es estable. 10. Elabore un reporte financiero para el funcionamiento de la MáquinaC. Tenga en cuenta los siguientes datos: la máquina tiene un costo de 200.000 pesos, consume energía a razón de 0.35 pesos por segundo y por cada flowitem que procesa es una ganancia de 3000 pesos teniendo en cuenta que el costo de fabricación de un flowitem es de 10000. Para realizar este reporte financiero es necesario presionar el botón “Financial Report” (ver figura 111). Figura 111. Ventana “Financial Report / Datos de entrada”

116

Cuando se van a ingresar estos valores a la ventana, se seleccionan de la lista de objetos la MáquinaC, en el campo “Object Values” en “Fixed Value” se ingresa el costo de la máquina como un valor negativo pues que es una inversión. En “Time Value” se ingresa el costo de consumo de energía por segundo como valor negativo porque son salidas de dinero y en la lista desplegable de la parte de abajo se selecciona la opción “Flowitem Values”. Esta opción nos abrirá una taba donde se puede especificar información financiera referente a los flowitems. Se especifica que solo son flowitems tipo 1 y se ingresa el valor de ganancia por flowitem. Nota: todo lo referente a costos de inversión van negativos, todo lo que represente

una ganancia lo ponemos positivos. Una vez se especifican los datos de entrada, se presiona el botón “View Details” para generar un reporte detallado (ver figura

112). Figura 112. Ventana “Financial Report / Gráfico”

El anterior gráfico indica que al procesar 2415 flowitems se obtiene una ganancia de $7.245.000, a esta ganancia se le resta el valor de consumo de energía y el costo de inversión en la máquina para obtener una ganancia neta de $6.037.000. Los valores de inversión o valores negativos se muestran de color rojo. 3.8.1.2 Experimenter41. El Experimenter es un cuadro de dialogo que le permite correr experimentos mientras el modelo corre por múltiples escenarios (ver figura 113), cambiando ciertas variables entre las corridas y recogiendo los datos de salida de cada escenario. Cada escenario representa cierta configuración del modelo. El modelo puede correr varias réplicas por cada escenario.

41

Flexsim Software Products Inc Op.cit., p. 466-471

117

Figura 113. Vista de la herramienta “Experimenter”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Pestaña “Scenarios”

Este campo permite especificar cuantos escenarios diferentes se van a correr y cuantas variables se van a utilizar (ver figura 114). Figura 114. Vista de la tabla “Experiment Variables”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Esta tabla permite definir la configuración para cada escenario en el Experimenter. Una variable de experimentación es lo mismo que un nodo en el modelo. Un ejemplo puede ser el contenido máximo de una cola (Queue) y esta variable es representada en la tabla como una ruta (/). El usuario puede definir varias

variables de experimentación. Scenarios: este número define cuantos escenarios serán corridos. Cada

escenario puede tener múltiples réplicas en el. Un evento especial puede ser llamado al comienzo y al final de cada escenario.

118

Experiment Variables: este número especifica el número de filas en la tabla “Experiment Variables”. Figura 115. Vista cuando se especifica una variable de experimentación

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Para asociar una de experimentación con el nodo apropiado, hacer click en la columna Variable de la tabla (ver figuras 115 - 117). Figura 116. Vista cuando se hace click en “Choose”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Cuando se hace click en el botón “Choose”, este despliega un menú con diferentes maneras de encontrar la variable de experimentación para el modelo.

119

Figura 117. Vista cuando se especifica una variable de experimentación, en este caso es el contenido máximo de una cola (maxcontent)

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Una vez se haya especificado la variable, llenar los espacios con los valores que el usuario quiera establecerle a la variable en cada escenario. Cada escenario está asociado con una columna en la tabla. Pestaña “Performance Measures”

La pestaña “Performance Measures” permite especificar las medidas a evaluar para cada escenario (ver figura 118). Para agregar una nueva “Performance Measures”, se debe hacer click en el botón “Add”. Para editar una “Performance Measures” se debe seleccionar de la

lista desplegable. Figura 118. Vista de la pestaña “Performance Measures”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

120

Una vez el conjunto de experimentos ha acabado, se puede hacer click en el botón “View Results” para traer la ventana que muestra los resultados de cada medida de desempeño. Una ventara se abriría con la que se pueden ver gráficos de las medidas de desempeño que interactuaron (ver figura 119). Presionando “Generate Experiment Report” un documento en html es creado en especie de reporte para que se puedan ver todas las medidas de desempeño (PFM) en este experimento. Presionando el botón “Report Preferences” se pueden seleccionar que opciones son generadas en el reporte. Figura 119. Vista de la ventana de resultados del Experimenter con el ejemplo del contenido máximo una cola

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Pestaña “Experiment Run”

Figura 120. Vista de la pestaña “Experiment Run”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

121

La pestaña “Experiment Run” es usada, como el nombre lo indica, para correr los

experimentos. Los campos en esta pestaña determinan información acerca del experimento que se correrá (ver figura 120). Run to Time: se establece el valor total del tiempo que correrán los experimentos. Después de haberse corrido este tiempo, el modelo pasa al siguiente escenario o replica. Warmup Time: después que el modelo ha corrido la cantidad de tiempo

establecida en este campo, las estadísticas son reiniciadas, pero el modelo no. Replications per Scenario: este número define cuantas réplicas serían corridas

durante cada escenario. Save dashboard data for each replication: si esta casilla es seleccionada, el

modelo guardará los datos del dashboard al final de cada replica. Estos datos pueden verse en la pestaña “Dashboard Statistics” de la ventana de resultados. Save state after each replication: si esta casilla es seleccionada, el modelo guardaría los estados al final de cada replica. Los estados son guardados como un archivo con la extensión (.fsp) en el folder del Experimenter. Esos archivos pueden ser abiertos para ver los resultados de cada replica usando el “Load State” en la siguiente ruta: Menu Principal/File/State Files/Load State. Run Experiment / Reset Experiment: este botón inicia o reinicia las réplicas del

experimento.

122

Pestaña “Advance” Figura 121. Vista de la pestaña “Advance”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Los campos en la pestaña “Advance”, se define el comportamiento de cada replica (ver figura 121). Start of experiment: este picklist es llamado cuando el experimento empieza a correr. Esta función solo es llamada una vez antes que el primer escenario corra. Star of Sceneario: este picklist es llamado antes de la primera réplica en un escenario. Se llama una vez por escenario. Star of replication: este picklist es llamado cuando se inicia una réplica. Se corre una vez para cada replica. End of warmup period: este picklist es llamado cuando el tiempo de calentamiento de la réplica ha terminado. End of replication: este picklist es llamado cuando la réplica termina. Este

trigger corre una vez para replica.

123

End of scenario este picklist es llamado al final de cada escenario. Es llamado

una vez para cada escenario. End of experiment: este picklist es llamado cuando el experiment ha acabado.

Este trigger es usado para escribir datos en el modelo al terminar la corrida. Este trigger solo puede ser llamado una vez, después del último escenario corra. Ejemplo 4: Para el ejemplo que se desarrollara acera del uso del Experimenter, se utilizará el mismo ejemplo que se ha venido trabajando desde un principio. Aquí se tenían las siguientes características (ver figura 122): Capacidad máxima de las máquinas: 1 flowitem Tiempo total de corrida: 28.800 segundos Figura 122. Vista del modelo

El modelo que va a realizar con el Experimenter, se tendra el mismo tiempo de corrida, pero la capacidad de las máquinas va a ser de 2 flowitems a la vez. Tabla 1. Información de capacidad / escenarios

Máquina Escenario 1 Escenario 2

A 1 2 B 1 2 C 1 2

124

Lo anterior lo se configurarará directamente en la herramienta Experimenter y vamos a analizar los resultados. Para abrir el Experimenter se deben seguir los siguientes pasos: Barra de herramientas/Statistics/Experimenter y se configura de la siguiente forma:

1. Especificar con que se quieremos experimentar, en este caso es con una

variable de un objeto (ver figura 123).

Figura 123. Vista de la pestaña escenarios en el Experimenter / elección de la

variable

2. Seleccionar el objeto y la variable (ver figura 124) Figura 124. Vista de la pestaña escenarios en el Experimenter / elección del

objeto y variable local

125

Esta configuración se realiza para cada una de las máquinas y la ventana se debe ver de la siguiente manera: Figura 125. Vista de la pestaña escenarios en el Experimenter

Se escogen 2 escenarios y se experimenta con 3 variables. Esto quiere decir que cada variable corresponderá a una máquina y esta variable es el contenido máximo del Processor. Como se indicó anteriormente en el escenario 1 todas las

máquinas van a tener una capacidad máxima de 1 flowitem y en el escenario 2 todas las máquinas van a tener una capacidad de 2. En la siguiente pestaña “Performance Measures”, configurar lo que se quiere

medir con el cambio en el valor de la capacidad máxima de las máquinas. Para ello se hace lo siguiente: Figura 126. Vista de la pestaña “Performance Measures 1”

Se agrega una medida de desempeño y se le cambia el nombre. El nombre corresponderá a cada máquina (ver figura 126). Seguidamente en la lista

126

desplegable “Performance Measures” seleccionar la opción “Statistics by individual object”, esto quiere decir que se va a medir un dato por objeto individual puesto que también está la opción de hacerlo por grupo (ver figura 127). Figura 127. Vista de la pestaña “Performance Measures 2”

Una vez seleccionada la opción por objeto, se debe seleccionar cada máquina haciendo doble click sobre el teto azul para que nos aparezcan las opciones. De la misma forma con la parte que dice Statistic, esto se refiere a que se va a medir

de ese objeto y para este caso son las salidas. Este mismo proceso se hace para cada máquina (ver figura 128). Figura 128. Vista de la pestaña “Performance Measures 3”

En la pestaña “Experiment Run” se configura el tiempo de corrida “Run to Time” a 28.800 y el número de réplicas “Replications per Scenario” a 10, se presiona el botón “Run Experiment” y esperar los resultados (ver figura 129).

127

Figura 129. Vista de la pestaña “Experiment Run”

Se presiona el botón “View Results” para ver los resultados. En la parte superior

de la nueva ventana aparecen 2 listas desplegables. La primera es para ver individualmente las medidas de desempeño (Performance Measures), la

segunda es para ver la forma en que se quiere ver los resultados (ver figura 130). Figura 130. Vista de la ventana “View Results”

128

En la segunda lista desplegable se escoge la opción “Data Summary”, esta

permite apreciar con mayor detalle los datos. Figura 131. Vista de la ventana “View Results/Data Summary / Máquina A”

Comparando los dos escenarios se puede ver que: al aumentar la capacidad de la máquina A en el mismo tiempo se pueden sacar aproximadamente 600 unidades más (ver figura 131). Figura 132. Vista de la ventana “View Results/Data Summary / Máquina B”

Comparando los dos escenarios se puede ver que: al aumentar la capacidad de la máquina B en el mismo tiempo se disminuye el número de flowitems que salen (ver figura 132) Figura 133. Vista de la ventana “View Results/Data Summary / Máquina C”

129

Comparando los dos escenarios se puede ver que: al aumentar la capacidad de la máquina C en el mismo tiempo, se aumentan las unidades que salen del sistema (ver figura 133). 3.8.1.3 OptQuest Optimizer42 El OptQuest Optimizer le permite optimizar variables en su modelo para maximizar ciertas variables de salida. Figura 134. Vista de la herramienta “OptQuest Optimizer”

Variables de Decisión

La primera parte del diseño de una optimización es definir las variables de decisión del modelo. La principal variable de decisión para una optimización por lo general se puede elegir mediante la reformulación del problema que se quiere resolver. Por ejemplo, un problema puede ser: cuántas máquinas se necesitarán en una determinada área para obtener el mejor throughput? Esta declaración define las variables de decisión para el modelo: el “máximum content” de los

42Flexsim Software Products Inc Op.cit., p. 459-462

130

procesadores, y el throughput del modelo. Note que esas dos variables tienen papeles diferentes. El “máximum content” es un valor que se pretende cambiar con el experimento, mientras el throughput es quien refleja el resultado de

nuestros cambios. Para agregar una variable de decisión, hacer click en el botón “Add” en el panel de “Variables”. Este agrega una nueva variable a la tabla de variables. Seleccione una la variable haciendo click sobre esta y presione el botón “Modify”. Esto trae

una ventana para editar esta nueva variable (ver figura 135). Figura 135. Vista de la ventana “Modify OptQuest Variable”

Cada variable de decisión tiene un nombre asociado, los cuales serían usados por OptQuest. Cada variable tiene también un “type” asociado, puede ser continuous, integer o user-controlled. Las variables user-controlled son el “feddback” (variables de respuesta). Una vez se ha especificado el nombre y tipo de variable, se hace click en el botón “Browse” para asociar esta variable con un nodo en el árbol (ver figura 136). Esto abrirá el “Tree Browse Window” para seleccionar el nodo que contendrá este “máximum content”. Se debe seleccionar un nodo que contenga datos numéricos

o la optimización no funcionara correctamente.

131

Figura 136. Vista de la ventana “Select a node”

Constraints

Una vez se han definido las variables de decisión, el usuario define las restricciones para la optimización. Durante la optimización, el optimizador intentará varios escenarios para las variables de decisión. Las restricciones son usadas para anular ciertos escenarios, si estas restricciones no se cumplen adecuadamente, entonces el optimizador no elegirá un escenario valido u óptimo. Cada restricción tiene una expresión, tal como “MaxNrofProcessors < NrofProcessorsUsed + 5”. Para agregar una restricción, presione el botón “Add” y llene la columna de ecuaciones. Figura 137. Vista de la sección de función objetivo y escenarios

132

Objective Function

La función objetivo es una expresión que el usuario quiere maximizar o minimizar. Esto sería una simple expresión como el “Throughput” si el usuario tiene una variable de decisión llamada “Throughput” (ver figura 137). Stop Conditions Maximum Time for Optimization: este es el tiempo máximo que el optimizador gastaría en la optimización. AutoStop: si esta casilla es seleccionada, la optimización se detiene cuando el valor de la función objetivo encuentra el mejor valor. Scenarios Maximum Scenarios: este es el máximo número de escenarios que el

optimizador intentará. Current Scenario: este es el número del escenario actual que está siendo

probado. Current Solution: este es el valor de la función objetivo para el escenario actual. Best Solution: este es el valor de la función objetivo para el mejor escenario. Simulation Time per Scenario / Real Time per Scenario: este es el tiempo

máximo de Simulaciónque el optimizador gastaría para cada escenario. Replications

Si el usuario desea ejecutar la Simulación varias veces para un escenario dado con el fin de incrementar el nivel de confianza de la función objetivo, use el panel de “Replications” para especificar cuantas réplicas se correrán (ver figura 138).

133

Figura 138. Vista de la sección de réplicas

Perform Multiple Replications per Scenario: si esta casilla es seleccionada, el

optimizador realizaría más de una réplica por escenario. Minimum number of replications: este es el mínimo número de réplicas a correr

para cada escenario. Maximum number of replications: este es el máximo número de réplicas a

correr para cada escenario. Para el desarrollo del ejemplo del OptQuest Optimizer, se utilizará el mismo modelo planteado desde un inicio, pero con la diferencia que el planteamiento del problema será el siguiente: Nota: este ejercicio es tomado de la Capacitación Básica en Flexsim dada por la

empresa Vatic Consulting Group en el 2010. Ejemplo 5: Un sistema de producción comprende 2 procesos: El proceso inicial puede ser realizado por 2 diferentes tipos de máquinas, cada una con una velocidad de producción diferente y también un costo de operación diferente. El tipo de máquina más rápido es también más caro de operar. En el proceso final se evalúa un solo tipo de máquina. Los productos se venden una vez estén listos y tienen un precio de $45 por unidad. Debido a restricciones de espacio se ha establecido que el inventario intermedio entre cada proceso es de máximo 30 unidades y además de ello se tendría lo siguiente:

134

Tabla 2. Información referente a cada máquina

Máquina Tiempo de Proceso

Costo / Hora

Cantidad Máquinas

Proceso

A 10 seg $4.000 0 – 7 1

B 18 seg $2.600 0 - 5 1

C 13 seg $3.200 1 - 8 2

Problema: cuantas máquinas tipo A, B y C se necesitan para aumentar la

producción. Variables de decisión Cantidad de máquinas A Cantidad de máquinas B Cantidad de máquinas C Variables de respuesta Aumentar la producción, estas variables son las que se les denomina feedback, estas variables no las cambia el optimizador. Restricciones

Cantidad posible de máquinas: entre 0 – 7 Cantidad posible de máquinas: entre 0 – 5 Cantidad posible de máquinas: entre 1 – 8 Función objetivo

Maximizar la producción (costo – ingreso)

135

Figura 139. Vista del modelo

Una vez se tenga el modelo abierto, se editan los tiempos de proceso y las capacidades en cada máquina y cola de acuerdo con los parámetros dados. Se abre la ventana de OptQuest en la barra de herramientas Statistics/OptQuest e iniciamos la introducción de las variables (ver figura 140). Figura 140. Vista de la ventana OptQuest

Declaración de Variables

(decisión y respuesta)

Definición de Restricciones

Definición de

Función Objetivo

Configuración de

Escenarios

Configuración de

Réplicas

136

Se agrega y se modifica cada una de las variables que van a intervenir en la optimización. La primera variable que se va a declarar, es la variable de respuesta (feedback). Está se declara como una variable tipo user – controlled, las demás variables se declaran como integer, puesto que son máquinas y estas unidades están en números enteros. Se presiona el botón “Browse” y se busca la variable

que va a contener el valor a utilizar por el optimizador. La variable user – conttrolled se va a llamar producción. Es una variable que

pertenece a la máquina c, luego la ruta en el árbol debe ser la siguiente: MAIN:/project/model/MáquinaC>stats/throughput/stats_output. Las variables integer que la vamos a llamar máquina A, B y C, son variables que

pertenece a cada una de las máquinas, luego la ruta en el árbol para cada variable integer debe ser la siguiente: MAIN:/project/model/MáquinaA>variables/maxcontent MAIN:/project/model/MáquinaB>variables/maxcontent MAIN:/project/model/MáquinaC>variables/maxcontent Figura 141. Declaración de la variable producción

137

Figura 142. Modificación de la variable que representa la máquina A

Figura 143. Modificación de la variable que representa la máquina B

Figura 144. Modificación de la variable que representa la máquina C

138

Figura 145. Vista del OptQuest

Ahora se declara la restricción y la función objetivo. La ecuación de restricción debe tener en cuenta que el máximo de máquinas para el primer proceso son 7. Se presionamos el botón “Add” y se escribe la ecuación, hay que tener cuidado al escribir la expresión y utilizar el mismo nombre de las variables declaradas en la parte de arriba (ver figura 146). Figura 146. Declaración de la restricción

Para la función objetivo se debe saber si se va a maximizar o minimizar, en este caso, se debe maximizar el throughput y, este está reflejado en la variable producción, entonces la función objetivo debe tener en cuenta las siguientes operaciones (ver figura 147): (Positivo) Las salidas del sistema * precio de venta (Negativo) Costo operativo máquina A * cantidad máquinas A

139

(Negativo) Costo operativo máquina B * cantidad máquinas B (Negativo) Costo operativo máquina C * cantidad máquinas C Figura 147. Declaración de la función objetivo

Y por ultimo se configuran los escenarios para que el optimizador realice las pruebas. Reconfigurar el tiempo de corrida a 3600 con un máximo de 100 escenarios de prueba y un tiempo máximo de optimización de 60 (ver figura 148). Una vez este hecho esto, se presiona el botón “Optimize” y se observan los

resultados (ver figura 149). Figura 148. Configuración de los escenarios

140

Figura 149. Resultados

De los 63 escenarios que se evaluaron, la mejor solución es: 5 máquinas tipo A 2 máquinas tipo B 8 máquinas tipo C Para obtener una producción de 2.184 unidades con un beneficio de $47.480 pesos. 3.8.1.4 Experfit43

Es una aplicación integrada a Flexsim que sirve para ajustar distribuciones de probabilidad a datos en forma automática, además ayuda a elegir distribuciones en ausencia de datos. Esta aplicación permite hacer un análisis completo de datos en aproximadamente 5 minutos. Al abrir el Expertfit una ventana como la siguiente aparecerá (ver figura 150):

43

MASINI. Op.cit., p. 1-40

141

Figura 150. Vista de la ventana emergente

Al presionar el botón “New”, otra ventana como la siguiente aparecerá (ver figura 151): Figura 151. Vista de la nueva ventana emergente

En ExpertFit existen diferentes tipos de análisis, es necesario seleccionar el más adecuado para una situación específica. Data Analysis (Fit distributions to data): se usa para determinar que distribución

de probabilidad representa mejor los datos.

142

Task Time Models: usado para especificar una distribución de probabilidad para

tareas que no tienen datos disponibles. Machine – Breakdown Models: se usa para modelar un aproximado número de

paros o fallas de una máquina cuando no hay datos disponibles. Se requieren datos como: eficiencia de la máquina, media del tiempo de distribución, entre otros. Se debe elegir la opción dependiendo del caso que se tenga, para efectos del manual se utilizada “Data Analysis” que es la más empleada para hallar distribuciones de probabilidad que utilizaremos en Flexsim. Figura 152. Vista de la nueva ventana emergente

New: permite realizar un nuevo análisis de datos.

Edit: permite regresarse a la ventana donde se escoge el tipo de análisis que se quiere realizar. Analyze: inicia el análisis de los datos trayendo una nueva ventana.

Delete: permite borrar un archivo en el cual se ha creado un análisis de datos.

143

Help: botón de ayuda que permite acceder a la guía de usuario.

Pestaña Disponibles Data: se puede leer de un archivo, leer los datos mandados por el teclado o para

pegar archivos que se encuentran en el portapapeles. Models: se usa para ajustar distribuciones de probabilidad de una serie de datos. Comparisons: se usa para comparar la distribución utilizada con una serie de

datos. Applications: se usa para determinar o mostrar características de una distribución

o para representarla en Flexsim. Pestaña Data Figura 153. Vista de la pestaña “Data”

Enter Data: lee datos de los archivos, edita o borra valores.

144

View / Modify Data: Permite ver los datos, crear un subconjunto o realizar una

transformación. Data Summary: muestra resúmenes estadísticos de los datos establecidos.

Histogram: calcula el histograma y permite crear la tabla de frecuencia. Assess Independence: calcula la dispersión, muestra la tabla de retraso de

correlación, calcula el retraso de correlación. Pestaña Models

Figura 154. Vista de la pestaña “Models”

Automated Fitting: Ajuste automático, clasificación y evaluación de los modelos de los datos basados en las características de un rango de una variable al azar. Fit Individual Models: Ajuste manual de distribuciones especificas, se pueden estimar valores de parámetro para unos datos.

145

View / Delete Models: mostrar los parámetros del modelo, borrar modelos.

Pestaña Comparisons Figura 155. Vista de la pestaña “Comparisons”

Graphical Comparisons: calcula un histograma de densidad, calcula la

frecuencia de comparación, calcula la diferencia de las funciones, calcula P-P. Goodness Of Fit Tests: Test de Anderson – Darling (datos reales solamente),

kolmogorov – smirnov test, test de Chi cuadrada. Evaluate A Model: Evaluación del reporte, calcular las diferencias de una

distribución de funciones.

146

Pestaña Applications Figura 156. Vista de la pestaña “Applications”

Use A Secified Distribution (Model): características de a densidad de la función, representación de una distribución en Flexsim. Use An Empirical Distribution: Características (datos reales) de una distribución empírica, representar una distribución empírica en Flexsim. Ejemplo 6: realizar un ajuste de probabilidad a una serie de datos generados en Excel aleatoriamente. Para esto abrir Excel y generar 50 datos aleatorios con decimales (ver figura 157).

147

Figura 157. Números aleatorios en Excel

Una vez hecho esto, se abre el blog de notas y se copian estos valores decimales en el blog. Es importante tener cuidado con los valores decimales puesto que Flexsim reconoce son valores decimales con punto. En este caso se presiona la tecla “Ctrl+R” y se pone buscar “,” y reemplazar por “.” (Ver figura 158). Figura 158. Reemplazo de comas por puntos

148

Se procede a guardar el documento y se le pone cualquier nombre, en este caso “Prueba Experfit”, este se guardará con la extensión “.txt”. Se abre el Experfit en: Barra de herramientas/Statistics/Experfit. Una vez abierta la ventana, se presiona el botón “New”, se deja seleccionada la opción “Data” y en el campo “Project Element Name” se pone el nombre “Prueba Experfit” y se presiona el botón “Ok” (ver figura 159). Al presionar “Ok” aparecerá una ventana con el nombre del nuevo proyecto, esto mostrará un cuadro de color negro. Para iniciar el análisis se presiona el botón “Analyse” para acceder a la ventana para el análisis de los datos (ver figura 160). Figura 159. Ventana Experfit para escoger el tipo de análisis

Figura 160. Ventana Experfit con el nuevo proyecto creado

149

Una vez aparesca la nueva ventana, se presiona el botón “Enter Data” en la pestaña “Data”, se selecciona la opción “Read Data from File” (leer datos desde un archivo), presionar “Apply”, se busca el archivo en la carpeta donde se guardó (recordar que se guardo con la extensión “.txt” y esto hay que ponerlo en la lista desplegable que aparece en esta ventana), seleccionar y presionar el botón “Abrir” (ver figura 161). Realizado esto aparecerá una ventana con el resumen de los datos que se introdujo (ver figura 162). Figura 161. Ventana para ingresar datos

Figura 162. Ventana resumen

150

Seguidamente ir a la pestaña “Models”, presionar el botón “Automated Fitting”,

automáticamente aparecerá una ventana con la evaluación relativa de los datos mostrándo las mejores distribuciones de probabilidad (ver figura 163). Después presionar el botón “Done” en esta nueva ventana y se pasa a la pestaña “Comparisons”.

Figura 163. Ventana con resumen de la mejor distribución

En la pestaña “Comparisons” se va a comparar la distribución elegida por Experfit con respecto a un histograma de los datos. Para esto se presiona el botón “Graphical Comparisons” y aparecerá una nueva ventana, se dejan las opciones determinadas y se presionam el botón “Apply”, esto traerá el histograma con la

curva de ajuste ofrecida por la distribución (ver figura 164 – 165). Figura 164. Ventana de comparación entre la serie de datos y la distribución de

probabilidad que mejor se ajusta

151

Figura 165. Histograma de comparación de datos

Por último ir a la pestaña “Applications” que permitirá acceder a los datos de tal forma que se puedan introducir fácilmente a Flexsim. Para ello hacer click en el botón “Simulation Representation”, aparecerá una ventana con dos listas desplegables, una con un listado de las distribuciones que mejor se ajustan a los datos (aparecen en orden dependiendo de la que mejor se ajuste) y la otra lista desplegable permite escoger el Software para el cual se va a utilizar el ajuste de los datos en este caso “Flexsim” y por ultimo presione “Apply” y aparecerá la ventana con los parámetros de la distribución como se debería usar en Flexsim cuando se esta en el código o en un picklist (ver figura 166). Figura 166. Ventana con los parámetros de la distribución para usar en Flexsim

152

3.8.1.5 Dashboard44

La herramienta Dashboard le permite ver gráficas y estadísticas para el modelo que se corre. Esta herramienta es útil especialmente cuando se están comparando objetos lado a lado. Figura 166. Vista de la herramienta “Dashboard”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Agregando Gráficas

1. Seleccionar el tipo de gráfica

Panel de texto

Gráfico de barras

Gráfico de pastel

Gráfico de líneas 2. Una vez elegido el tipo de gráfico, aparecerá un menú que le ofrece varias

opciones de los datos estadísticos que serían mostrados para los objetos en el Dashboard.

3. Se agrega una de las estadísticas para abrir el “Universal Select Dialog” el

cual le permitirá agregar cualquier objeto a la gráfica.

44Flexsim Software Products Inc Op.cit., p. 587-600

153

4. Reiniciar y correr el modelo, la gráfica permanecerá de color blanco hasta que se inicie la corrida del modelo.

Trabajando Con Gráficas

Una vez se agrega el tipo de gráfico que se quiere, se pueden realizar las siguientes acciones: Editar: se hace doble click en la gráfica para abrir la ventana de propiedades. El tipo de ventana de propiedades dependería del tipo de gráfica que está siendo seleccionada. Mover: click en la gráfica y arrastrar el panel por los bordes negros.

Ajustar tamaño: hacer click en la gráfica ubicándose en uno de los puntos negro que la rodean y arrastrar. Menu de context: ubicándose sobre la gráfica y hacienda click con el botón derecho aparecerán las siguientes opciones (ver figura 167): Figura 167. Vista de las opciones en el Dashboard

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Edit Graph Settings: esta opción abre la ventana de ajustes de la gráfica.

Delete Graph: esta opción borra la gráfica del Dashboard.

Send To Back: esta opción enviara el gráfico seleccionado al fondo.

154

Bring To Front: esta opción envía el gráfico seleccionado al frente. Agregando Pestañas Para agregar distintas pestañas en el Dashboard hacer click en el botón que se encuentra ubicado en la parte superior derecha del Dashboard. Al hacer click con el botón derecho nos aparece un menú con las siguientes opciones (ver figura 168): Figura 168. Vista de las opciones

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Add Tab: esta opción agrega una nueva pestaña al Dashboard. Edit Tab Name: esta opción le permite cambiar el nombre de la pestaña. Delete Tab: esta opción le permite borrar la pestaña seleccionada. Tipos de gráficos 1. Paneles de texto Figura 169. Vista de “Text Panels”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

155

Time Display: Muestra el tiempo actual del modelo corriendo para un día. Le

permite seleccionar en qué momento del día inicia el modelo. State Analysis: muestra el porcentaje del tiempo total en que un objeto

permaneció en determinado estado. Cada estado es mostrado en una columna por separado. Average Content: Muestra el contenido promedio del objeto seleccionado. Average Staytime: muestra el tiempo de permanencia de los objetos

seleccionados. Output per Hour: muestra las salidas por hora de los objetos seleccionados.

Distance Traveled per Day: muestra la distancia recorrida por día para los objetos seleccionados. Model Documentation: muestra un documento en formato HTML toda la documentación del modelo. 2. Gráficas de barras Figura 170. Vista de “Bar Graphs”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

156

State Bar: muestra los estados del objeto seleccionado en términos de

porcentajes. Average Content: muestra el contenido promedio de los objetos seleccionados.

Average Staytime: muestra el tiempo de permanencia promedio de los objetos seleccionados. Output per Hour: muestra las salidas por hora de los objetos seleccionados. Distance Traveled per Day: muestra la distancia recorrida por día de los objetos

seleccionados. Work In Progress Histogram: muestra un histograma de la variable WIP.

Time In System Histogram: muestra un histograma de la variable TIS. TRacked Variable Histogram: muestra un histograma de una “Tracked Variable”

definida por el usuario. TRacked Variables WIP (Work In Progress) y TIS (Time In System) son ambos ejemplos de “TRacked Variables”.

Work In Progress: por defecto esto es un conteo de todos los flowitems en el

modelo en cualquier momento dado.

Time In System: este archiva el tiempo en el cual un objeto sale del modelo y

el tiempo total que permaneció en el modelo.

157

3. Gráfico de pastel Figura 171. Vista de “Pie Charts”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. State Pie: muestra un gráfico de pastel para los objetos seleccionados. Cuando

hay más de un objeto seleccionado, el gráfico de pastel muestra el porcentaje promedio para cada uno de los estados. 4. Gráficos de línea

Figura 172. Vista de “Line Graphs”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Content vs Time: muestra el contenido del objeto seleccionado con respecto al tiempo. Work In Progress vs Time: muestra un gráfico de línea de la variable WIP con respecto al tiempo. Time In System vs Time: traza una línea del flowitem mas recientemente destruido (su tiempo) con respecto al tiempo. Tracked Variable vs Time: traza una variable definida por el usuario en el modelo con respecto al tiempo.

158

Cuando seleccionamos una gráfica que nos muestre determinada característica estadística de los objetos, para seleccionarlos hacemos doble click sobre la gráfica y nos aparece una ventana como la siguiente: Figura 173. Vista de “State Analysis Statistics”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Pestaña de objetos Figura 174. Vista de “State Analysis Statistics / Objects”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Agrega un objeto a la lista actual de objetos que serán mostrados en el Dashboard.

159

Remueve un objeto de la lista actual de objetos que serán mostrados en el Dashboard.

Mueve el objeto seleccionado un rango hacia arriba en la lista.

Mueve el objeto seleccionado un rango hacia abajo en la lista.

Combina varios objetos dentro de uno solo.

Separa objetos combinados en cada uno de sus componentes. Agregando Objetos

Estas son cuatro maneras para agregar objetos a la gráfica. 1. Este método permite agregar objetos dependiendo de su clase. Para

seleccionar una clase entera, hacer click en el ícono por tipo de objeto. Figura 175. Vista de “Seleccion de objetos / Browse by Class”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. 2. Este método permite agregar objetos dependiendo del grupo al que pertenecen.

160

Figura 176. Vista de “Seleccion de objetos / Browse by Group”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

3. Este método agrega objetos a la lista de objetos que serán mostrados en el

gráfico partiendo del nombre de los objetos que se encuentran en el modelo. Figura 177. Vista de “Seleccion de objetos / Browse by Name”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

4. Este método agrega objetos del modelo usando la vista 3D.

161

Figura 178. Vista de “Seleccion de objetos / Browse by View”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Pestaña general Figura 179. Vista de “Selección de objetos / General / Bar Char”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

162

Figura 180. Vista de “Selección de objetos / General / Pie Chart”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Figura 181. Vista de “Selección de objetos / General / Table of Values”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Display Type: esta opción cambia el estilo de gráfica que se muestra.

163

Stacked Bar Chart: esta opción agrupa cada segmento de los datos en una sola

barra. Combine All into One Pie: esta opción combina todos los gráficos de pastel en

un solo gráfico. Este promedia los valores de todos los objetos. Show Totals Instead of Percentages: esta opcion cambia los valores mostrados

de porcentajes a valores totales. Show Legend: esta opciónagrega una leyenda al gráfico (encabezado de los

estados). Only Collect Data for a Defined Time Interval: esta opción crea un periodo de

tiempo durante el cual las estadísticas para la gráfica serían registradas. From Time: aquí se define cuando las estadísticas se empezaría a registrar.

To Time: aquí se define cuando las estadísticas se dejarían de registrar. Si la opción “Collect Entire State History for Post-Process Filtering” es

seleccionada Flexsim registraría cuando se produjo cada cambio de estado para cada objeto en el gráfico.

164

Pestaña “Análisis de la utilización”

Figura 182. Vista de “State Analysis Statistics/Utilization Analysis”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Show All Checked States: esta opción muestra todos los estados como colores

sólidos. No se muestran los porcentajes calculados para cada objeto. Show Only Green Checked States: esta opción muestra el porcentaje de tiempo

en que los objetos están en un determinado estado (las opciones que tienen el color verde). Show Yellow Checked States as Translucent: esta opción muestra los estados seleccionados de color verde. Los otros estados seleccionados serán mostrados en un color traslucido (amarillos).

165

Pestaña de TRacked Variables

Figura 183. Vista de “State Analysis Statistics/TRacked Variables”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Agrega una TRacked Variable a la lista actual de variables.

Remueve una TRacked Variable de la lista actual de variables.

Mueve la TRacked Variable seleccionada un rango hacia arriba en la lista.

Mueve la TRacked Variable seleccionada un rango hacia abajo en la lista.

166

Ventana para mostrar tiempo

Figura 184. Vista de “State Analysis Statistics / Time Display”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Name Field: Permite cambiar el nombre del tiempo que se visualiza. Model Start Time: permite cambiar el tiempo de inicio del modelo a una hora del

día específica. 3.9 Tools Menu45

Figura 185. Statistics menú

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

45Flexsim Software Products Inc Op.cit., p. 196-197

167

Global Tables: este sub-menú secundario permite agregar, borrar y editar “Global Tables” en el modelo. Time Tables: este sub-menú secundario permite agregar, borrar y editar “Time Tables” en el modelo. User Events: este sub-menú secundario permite agregar, borrar y editar “User Events” en el modelo. MTBF MTTR: este sub-menú secundario permite agregar, borrar y editar “MTBF MTTR” en el modelo. Graphical User Interfaces: este sub-menú secundario permite agregar, borrar y editar “Graphical User Interfaces” en el modelo. Global Task Sequences: este sub-menú secundario permite agregar, borrar y editar “Task Sequences” en el modelo. Flowitem Bin: esta opción abre la ventana “Flowitem Bin” que le permite al

usuario personalizar toda la lista de flowitems en el modelo. Global Variables: esta opción trae la ventana “Global Variables” permitiéndole

agregar variables al modelo y que se pueden acceder a ellas desde cualquier objeto en el modelo. TRacked Variabes: esta opción abre la ventana de “TRacked Variables”. Las TRacked Variables son usadas para registrar datos de salida en el modelo.

Model Background: esta opción abre la ventana “Background Drawing” que permite agregar una imagen de fondo (*.bmp, jpg) o un plano en AutoCAD (.dxf, *.dwg). Presentation: esta opción proporciona un menú para crear presentaciones en

Flexsim.

168

AVI Maker: esta opción abre el AVI Maker.

Presentation Builder: esta opción abre una ventana especial llamada “Presentation Builder” que permite navegar en el modelo 3D para construir la presentación.

Media Files: esta opción abre la ventana “Media Files” que permite agregar imágenes y formas 3D para ser pre – cargados al modelo. Model Triggers: este sub – menú proporciona opciones para abrir la ventana de los “Model Trigger”.

User Commands: esta opción abre la ventana “User Commands” que le permite al usuario agregar, borrar, editar y personalizar comandos y funciones en el modelo. Excel: esta opción abre la ventana “Excel Interface” que le permite al usuario

definir parámetros para importar y exportar a Excel. Esta opción funciona de la misma manera al presionar el botón Excel de la barra de herramientas.

Visio: esta opción abre la ventana “Visio Import”.

3.9.1 Global Tables46 Estos objetos no se arrastran dentro del modelo. Estos son creados a través de cuadros especiales que están disponibles en la barra de herramientas. Las tablas globales pueden ser accedidas en el modelo usando los comandos the gettablenum(), gettablestr(), settablenum(), settablestr(), reftable().

46Flexsim Software Products Inc Op.cit., p. 429

169

Figura 186. Vista de una “Global Table”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Name: este es el nombre de la tabla. Se recomienda que se nombre describa fácilmente la función de la tabla. Los comandos en el modelo tienen acceso a las tabas globales leyendo el nombre.

Agregar Tabla: este botón agrega otra “Global Table” en el modelo.

Borrar Tabla Actual: este botón borra a tabla global actualmente seleccionada

en el modelo. Rows: esta casilla indica el número de filas en la tabla. Se puede cambiar y presionando “Apply” actualiza automáticamente el número de filas en la tabla. Colums: esta casilla indica el número de columnas en la tabla. Se puede cambiar y presionando “Apply” actualiza automáticamente el número de columnas en la tabla. Clear on Reset: si esta opción es seleccionada, todas las celdas en la tabla cambiarían con valores de cero (0) cuando el modelo se reinicie.

Agregar a Librería: el botón y permite agregar la tabla actual a una nueva

librería (librería de objetos).

170

Add Table to MTEI: este botón agrega la tabla como una fila en la opción “Multiple Table Excel Import”. 3.9.2 Global Time Table47

Estas tablas son usadas para programar cambios de estado en los objetos, como por ejemplo el “scheduled down” (paro programado), para objetos específicos en

el modelo. Cada tabla de tiempo puede controlar uno o varios objetos y cada objeto puede ser controlado por una o varias tablas de tiempo. Figura 187. Vista de una “Global Time Table”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Name: este es el nombre de la tabla. Se recomienda que se nombre describa fácilmente la función de la tabla. Por ejemplo “Fin de Semana” o “Cambio de Turno”.

Agregando y Removiendo Miembros: el botón y pueden ser usados para agregar o remover miembros de las tablas de tiempo. Los botones y son usados para re – ordenar los miembros de la lista.

47Flexsim Software Products Inc Op.cit., p. 430-431

171

Rows: Este es el número de filas en la tabla. Se puede cambiar y presionando

“Apply” actualiza automáticamente el número de filas en la tabla. Cada fila registra el tiempo para el cambio de estado, que estado va a tener y cuanto tiempo va a permanecer en ese estado. Repeat Time: este número especifica el intervalo de tiempo en el que se vuelve a

repetir el primer cambio de estado, es decir, si la primera fila tiene un tiempo de 60 y la casilla “Repeat Time” tiene un tiempo de 300, la primera falla ocurriría al

tiempo 60 y la tabla repetiría esta misma falla al tiempo 360, 660, 960, etc. Time: este es el momento en el que debe ocurrir el cambio de estado.

State: estado al cual cambiaran los objetos que están siendo controlados por la tabla. Si el usuario hace click en estado columna, una lista desplegable aparecería para permitirle elegir un estado. Duration: aquí se especifica cuanto tiempo estarán los objetos en el nuevo

estado. Graphical Editor: ese botón abriría una ventana donde el usuario puede

especificar los tiempos de falla usando una tabla semanal o diaria. Add Table to MTEI: esta opción agregaría la tabla a la opción “Multiple Table Import”. Down Function: este trigger es ejecutado cuando los objetos controlados por esta

tabla están en falla. Aquí es donde se especifica que hacen los objetos cuando entran en falla. Resume Function: este Triggers es ejecutado cuando los objetos controlados por esta tabla regresan a sus operaciones. Aquí se especifica que hacen los objetos cuando se acaba el tiempo de falla. OnDown: este trigger es activado al mismo tiempo que el Down Function, pero es

ejecutado solo una vez en lugar de una vez por cada objeto controlado por la tabla.

172

OnResume: este trigger es activado al mismo tiempo que el Resume Function,

pero es ejecutado solo una vez en lugar de una vez por cada objeto controlado por la tabla. Agregar a Librería: el botón y permite agregar la tabla actual a una nueva

librería (librería de objetos). 3.9.3 User Events48

El “User Events” permite crear funciones en Flexscript que se pueden ejecutar en cualquier momento durante la corrida del modelo. No están conectados a ningún objeto. Figura 188. Vista del “User Events”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Add and Remove: este botón agrega o remueve un evento global. Name: este es el nombre del evento. El nombre debería describir que hace el

evento global. Execute Even on reset only: si esta opción es seleccionada el evento solo sería ejecutado cuando el botón “Reset” sea presionado. First Event Time: este es el momento en el que el evento global ocurre.

48Flexsim Software Products Inc Op.cit., p. 432

173

Repeat Event: si esta opción es seleccionada, tan pronto como el evento global

finalice, este empieza el conteo para volverse a ejecutar. Se ejecuta en intervalos de tiempo que el usuario define y establece en este campo. Event Code: aquí es donde se establece el código Flexscript que se ejecutara. 3.9.4 MTBF / MTTR49

Los objetos o tablas MTBF y MTTR son usados para establecer aleatoriamente los tiempos de falla y de reparación para los objetos que componen la lista de miembros de esta tabla. Cada MTBF y MTTR pueden ser conectados a varios objetos en el modelo. Pestaña “Members” Figura 189. Vista de la ventana “MTBF-MTTR / Members”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

49Flexsim Software Products Inc Op.cit., p. 453-455

174

En esta página se pueden especificar los objetos que harán parte de la lista de miembros para la tabla MTBF MTTR. Click en el botón para agregar un objeto y en para remover uno de la lista. Name: este es el nombre del objeto MTBF MTTR. El nombre debería describir que hace este objeto. Por ejemplo “Control de Montacargas”.

Agregar a Librería: el botón y permite agregar la tabla actual a una nueva librería (librería de objetos). Pestaña “Functions” En esta pestaña se puede al igual que una tabla de tiempos, especificar el tiempo que dura en falla y el tiempo que dura la reparación. Figura 190. Vista de la ventana “MTBF-MTTR / Functions”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. First Failure Time: esta picklist permite seleccionar la fuente que contiene el

tiempo en que ocurrirá la primera falla.

175

MTBF: este picklist permite seleccionar el Tiempo Medio Entre Fallas (Time Between Failure) para los objetos controlados por esta tabla. Esta función determina cuanto tiempo correrían los objetos antes que estos entren al estado de falla. MTTR: este picklist permite seleccionar el Tiempo Medio De Reparación (Mean Time To Repair) para los objetos controlados por esta tabla. Esta función determina cuanto tiempo estarían en “reparación” antes de regresar a sus actividades normales. Down Function: este trigger es ejecutado cuando los objetos controlados por esta

tabla están en falla. Aquí es donde se especifica que hacen los objetos cuando entran en falla. Resume Function: este Triggers es ejecutado cuando los objetos controlados por esta tabla regresan a sus operaciones. Aquí se especifica que hacen los objetos cuando se acaba el tiempo de falla. OnBreakDown: este trigger es activado al mismo tiempo que el Down Function,

pero es ejecutado solo una vez en lugar de una vez por cada objeto controlado por la tabla. OnRepair: este trigger es activado al mismo tiempo que el Resume Function, pero es ejecutado solo una vez en lugar de una vez por cada objeto controlado por la tabla. 3.9.5 Graphical User Interfaces50

Las Interfaces Gráficas de Usuario (GUI) son ventanas que permiten el control de uno o más objetos del modelo de manera asistida.

50Vatic Consulting group. Capacitación básica de Flexsim, personalizaciones básicas [diapositivas]. Bogotá D.C, 2006. p. 5-7

176

Figura 191. Vista de la ventana “Graphical User Interfaces”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Static: sirve como texto explicativo en la interface.

Edit: espacio para capturar información digitada por el usuario.

Checkbox: tiene dos estados “chequeado” o “chequear”. Dentro de un grupo de Checkbox se permite tener uno o más chequeados.

Radiobutton: se parce al Checkbox, con la diferencia que en un grupo solo se permite chequear uno solo.

Button: es un botón de aceptación, autoriza los cambios realizados.

Combobox: caja donde se puede seleccionar una opción entre muchas.

Listbox: similar al Combobox, solo que aquí se muestran las diferentes opciones en una ventana desplegable.

177

Groupbox: espacio donde se pueden agrupar varias herramientas, con un nombre específico. Esto dará orden a una interfaz.

Panel: funciona igual al anterior, solo que no se puede tener un nombre

específico para el grupo.

TRacker: permite establecer valores numéricos para una tarea específica, mientras arrastra la barra deslizante.

TabControl: el TabControl es una herramienta que puede contener subherramientas, solo se arrastran y se colocan sobre esta.

Tree: muestra todo el árbol del modelo dentro de la interfaz.

Ortho/Perspective/Planar: permiten visualizar todo el modelo desde la interfaz, además desde este sitio podemos realizar todos los cambios posibles a los objetos. 3.9.6 Global TaskSequence

Antes de explicar la funcionalidad de esta ventana, es importante entender que es una “TaskSequence”.

Task Sequences51 Las TaskSequence, son una sería de acciones elementales que deben

desempeñarse en secuencia para cumplir una actividad o una operación. Estas actividades son realizadas por un TaskExecuter.

51

Vatic Consulting group. Capacitación avanzada de Flexsim, tutorial ejecutores de tareas [diapositivas]. Bogotá D.C, 2010. p. 12

178

Cuando se construyen secuencias de tareas, estas tienen la opción de establecer valores de52:

Priority: Valor de prioridad, que define la importancia de esta tarea con respecto a otras.

Preempt: Valor de adelantarse, que indica si una secuencia de tarea

causará que otras secuencias de tareas se detengan de forma que la primera pueda terminarse. Todos los recursos fijos (Fixed ReSources) tienen un mecanismo predeterminado para crear Task Sequences que mueven los flowitems desde ellos mismos hacia la siguiente estación. Por ejemplo cuando seleccionamos “Use Transport” en la pestaña “Flow” de cualquier objeto fijo. Existen funciones o comandos que permiten crear secuencias de tareas personalizadas, los siguientes comandos se utilizan al momento de crear una secuencia de tareas simple: Createemptytasksequence(): Crea una TaskSequence en cola para el objeto

que se encargara de realizarla. Un ejecutor de tareas puede estar conectado a una o más TaskSequence directamente si esta solo él o puede recibir las tareas por medio de una Dispatcher cuando hay más de un operario. Una vez creada la TaskSequence, deben agregarse todas las tareas que el usuario quiera usando el comando Inserttask ().

createemptytasksequence(obj dispatcher, num priority, num preempting)

52

MASINI, Javier. Secuencia de tareas (Task Sequences). (en línea). (citado 31 de mayo., 2012). Disponible en Internet en: http://www.slideshare.net/jmasini/task-sequences

179

Obj Dispatcher: es el objeto que ejecutara la secuencia de tareas. Puede ser

directamente un TaskExecuter o un Dispatcher, este último recibe las tareas y asigna un TaskExecuter dependiente de la disponibilidad. Priority: Valor asignado por el usuario a la prioridad de esta secuencia de tareas. Preempt: valor asignado a la capacidad de esta secuencia de tareas para

adelantarse a otras. Cada TaskSequence tiene un valor de adelanto (PREEMPT), este se usa para retirar un TaskExecuter de su tarea actual para utilizarlo en una tarea más importante. Ejemplo: la responsabilidad más importante del operador 1 es reparar máquinas, cuando no hay maquias por reparar, debe transportar flowitems dentro del modelo. Si una máquina se descompone, el operario 1 dejara de hacer cualquier cosa para ir a reparar la máquina en lugar de realizar la operación de transporte, para esto es necesario crear una TaskSequence de adelanto (Preempt). Para crear una TaskSequence capaz de adelantarse, se debe especificar un valor distinto de cero en el último parámetro del comando createemptytasksequence(), por ejemplo:

createemptytasksequence(operario1, 0, PREEMPT_ONLY) Para lo anterior existen cuatro posibles valores para adelantarse: 0-PREEMPT_NOT: la tarea no se adelanta. 1-PREEMPT_ONLY: el TaskExecuter deja de hacer la operación actual y procede

a ejecutar la que tiene este valor de PREEMPT. Al terminar, regresa a terminar la tarea que dejo inconclusa. 2-PREEMPT_AND_ABORT_ACTIVE: el TaskExecuter detiene la operación que estaba hacienda y la “destruye” de forma que jamás regresa a terminarla.

180

3-PREEMPT_AND_ABORT_ALL: el TaskExecuter deja de hacer la operación

actual y destruye todas las secuencias de esta TaskSequence de forma definitiva. Si un TaskExecuter está realizando una TS1 (TaskSequence 1) con PREEMPT y recibe el llamado de otra TS2 que también tiene PREEMPT, entonces el TaskExecuter usará el valor de “Priority” de la TS para decidir cual adelantar. Pueden existir dos casos: Si Priority de TS1 <Priority TS2, el TaskExecuter deja de hacer la TS1 y pasa a

hacer la TS2 Si Priority de TS1 ≥ Priority TS2, el TaskExecuter continuará haciendo la TS1 y la

TS2 se irá a la cola de tareas igual que cualquier secuencia de tareas.

Inserttask(): inserta una tarea de algún TaskType especificando a una

TaskSequence determinada. Dependiendo del tipo de TaskType, los parámetros restantes tendrán significados distintos.

Inserttask(obj tasksequence, num type [, obj involved1, obj involved2 , num var1, num var2, num var3, num var4] ) Obj TaskSequence: nombre de la TaskSequence a la que se añadirá esta nueva tarea. TaskType: tipo de tarea que estamos agregando a la TaskSequence. obj

involved1, obj involved2 , num var1, num var2, num var3, num var4: sus valores dependen del tipo de TaskType. Dispatchtasksequence (): le dice al Dispatcher o al TaskExecuter en que

TaskSequence debe basarse para hacer sus tareas. Se supone que ya la TaskSequence fue creada previamente con el comando createemptytasksequence () y se le han agregado las tareas con el comando Inserttask().

Dispatchtasksequence (obj tasksequence)

181

TaskSequence: es el nombre de la TaskSequence actual que queremos que sea

realizada. Las “Global Task Sequences” le permiten construir secuencias de tareas a través

de una GUI en lugar de hacerlo directamente con el código. Pestaña “References”

Figura 192. Vista de la ventana “Global Task Sequences / References”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Las “Global Task Sequences”53 funcionan creando objetos de referencia, estos

objetos de referencia pueden ser estáticos (objetos fijos) o dinámicos (flowitems). Name: permite establecer el nombre con el cual se va a identificar la “Global Task Sequences”. Add: permite añadir un objeto de referencia a la lista de la parte inferior. Remove: remueve un objeto de referencia de la lista inferior. Priority: permite establecer la prioridad de la secuencia de tarea.

53Flexsim Software Products Inc Op.cit., p. 433-434

182

Preempt: permite establecer el valor para adelantarse de una tarea a otra.

Name: permite establecer el nombre del objeto de referencia.

Type: esta lista desplegable permite seleccionar el tipo de objeto de referencia

(dinámico o estático). Reference: esta lista desplegable permite escoger entre 5 parámetros para un objeto dinámico y para los objetos estáticos abre una ventana del árbol para que el usuario pueda escoger el objeto de referencia. Pestaña “Task Sequence”

En esta venta se puede escoger las tareas que van a involucrar los objetos de referencia. La cuadricula con las tareas se encuentran en la parte izquierda, esta pueden agregarse a la lista de tareas de la parte central (en blanco) arrastrándose y oprimiendo el botón “Add”

Figura 193. Vista de la ventana “Global Task Sequences / References”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

183

3.9.7 Flowitem Bin54

Los flowitems son objetos simples que se crean para moverse a través del modelo. Diferentes clases de flowitems son creados en esta ventana y almacenados en el Flowitem Bin. Figura 194. Vista de la ventana “Flowitem Bin”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Flowitem List: esta lista contiene todos os tipos de flowitem disponibles. Cuando uno es seleccionado, este se muestra en la ventana principal. El usuario puede editar las propiedades del flowitem tales como: nombre, forma, tamaño, etc. New Item: este botón agrega un nuevo flowitem. Este nuevo flowitem es creado a

partir de la selección de algún otro de la lista y crea una copia para que el usuario lo personalice. Delete Item: este botón borra el flowitem actualmente seleccionado. Properties: este botón abre la ventana de propiedades del flowitem actualmente

seleccionado.

54Flexsim Software Products Inc Op.cit., p. 428

184

3.9.8 Global Variables55

La ventana “Global Variables” le permite crear variables globales que son accesibles en el código Flexscript y C++ así como las macro definiciones.

Pestaña “Global Variables” Figura 195. Vista de la ventana “Global Variables / Global Variables”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Presionando el botón “Add” o “Remove” se agregan o eliminan variables globales.

Seleccionando una variable global, el usuario podría: editar y especificar el nombre, tipo de variable y valor inicial. Hay 8 tipos de variables que se pueden usar: integer (entera), doublé (decimal), treenode (nodo), string (texto), integer array (entera de arreglos), doublé array (decimal de arreglos) y string array

55Flexsim Software Products Inc Op.cit., p. 436-437

185

(arreglo de textos). Para las que son de tipo array, el usuario puede especificar el tamaño del array y el valor inicial para cada elemento del array. Pestaña “Global Macros”

Figura 196. Vista de la ventana “Global Variables/Global Macros”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

La pestaña “Global Macros” le permite al usuario hacer macro definiciones. Estas macro definiciones se hacen usando la espresion #define. Ejemplos: #define MACRO_VAL 5 #define BLAHBLAHBLAH 6 #define SOME_DESCRIPTIVE_NAME gettablenum(“GlobalTable1”,1,1) Estas macro definiciones son bastante útiles cuando en un modelo grande tenemos varios procesos que poseen el mismo tiempo de operación, mediante la definición de una Macro, simplemente se puede escribir solo la expresión que se definió en esta ventana.

186

3.9.9 AVI Maker56

El AVIMaker es un objeto especial en el modelo que llama los comandos a hacer un archivo AVI del modelo corriendo. Figura 197. Vista de la ventana “AVI Maker Parameters”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. AVI Name: este es el nombre del archivo que el AVI Maker escribiría. Esto se haría mediante una extensión .avi. Starting Time: este es el tiempo en el que el AVIMaker comenzaría a grabar el

archivo AVI. Ending Time: este es el tiempo en el que el AVIMaker pararía de grabar el

archivo AVI. Es recomendable que el modelo no sea detenido antes de este tiempo.

56

Flexsim Software Products Inc Op.cit., p. 420

187

Time between frames: este es el intervalo de tiempo que pasa en el modelo para grabar un “frames” (fotograma). Frames per second: este número define cuantos “frames” por segundo

reproducirá el archivo AVI. Run Fly Path: si el usuario crea un “fly path” en el modelo, este puede

seleccionar el path de la lista desplegable. Delete AVIMaker: cuando se presiona este botón, el AVIMaker se borrara del

modelo. 3.9.10 Presentation Builder57

El “Presentation Builder” es una herramienta que usa la vista en perspectiva cuando se está construyendo una presentación del modelo. Se recomienda usarlo en conjunto con el AVIMaker. Figura 198. Vista de la ventana “Presentation Edit Panel”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Fly Paths Panel: este panel le permite editar todas las rutas de vuelo en el

modelo.

New Path: crea una nueva ruta de vuelo.

Delete Path: remueve unaruta de vuelo.

57Flexsim Software Products Inc Op.cit., p. 463-464

188

Fly Points Panel: este panel le permite al usuario establecer puntos específicos

en layout que compondrán la ruta de vuelo para recorrer el modelo.

New Point: establece un nuevo punto de navegación en el layout del modelo.

Delete Point: remueve un punto de navegación ya establecido.

Update Point: reinicia el punto de vuelo seleccionado basado en la posición

actual de la cámara.

Run Control Panel: este panel le permite probar las rutas de vuelo que han sido

creadas.

Run: presionando este botón se inicia la navegación a través del modelo

utilizando la ruta de vuelo actualmente seleccionada.

Step: presionando este botón se salta automáticamente al siguiente punto de

vuelo.

Test: presionando este botón se puede navegar una vez más a través del

modelo. También funciona como un botón para reiniciar la navegación a través del layout.

Stop: presionando este botón se detiene la navegación a través del modelo.

Sounds Panel: aquí el usuario puede seleccionar sonidos para que sean

interpretados en el inicio y final de la navegación a través del modelo. Fly Path Data Table: le permite explícitamente ingresar datos para los puntos de

vuelo. Usualmente el usuario solo necesitaría editar la columna de tiempo, pero también se pueden editar los otros campos.

189

3.9.11 Import Media Files58

Este editor le permite agregar formas 3D e imágenes para ser precargadas en el modelo, así como tomar una ruta de texto para formas que ya están cargadas. Usualmente solo necesitaría usar este editor si el usuario está cambiando de manera dinámica la forma de los objetos durante la Simulación. Figura 199. Vista de la ventana “Preloaded Shapes and Images”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Shapes o Images: en esta lista desplegable el usuario puede seleccionar formas

(shapes) o imágenes (images). Lista desplegable 2: dependiendo de la selección hecha en la primera lista

desplegable, el usuario podrá escoger entre una serie de formas e imágenes disponibles en Flexsim.

58

Flexsim Software Products Inc Op.cit., p. 451

190

Delete: presionando este botón el usuario puede eliminar una imagen o forma que

haya agregado por equivocación o que simplemente no necesite tener en esta lista desplegable de objetos disponibles. Add: agrega a la lista de formas o imágenes un archivo especificado por el usuario. Browse: este botón sirve para que el usuario navegue a través de las carpetas y encuentre la forma o imagen que quiere agregar. 3.9.12 Model Triggers59 Figura 200. Vista de la ventana “On Model Open”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Los “Model Triggers” le permiten al usuario ejecutar código en diferentes puntos durante la corrida del modelo. Los Triggers que estas disponibles son: On Model Open: este Trigger es activado cuando el modelo es abierto.

59Flexsim Software Products Inc Op.cit., p. 452

191

On Reset: este Trigger es activado cuando el modelo se reinicia.

On Run Start: este Trigger es activado cuando el modelo cambia de el estado “Stop” o “Pause” al estado “Run”.

On Run Stop: este Trigger es activado cuando el modelo cambia del estado “Run” al estado “Stop” o “Pause”.

On Post Compile: este Trigger es activado después de una compilación completa. 3.9.13 User Commands La herramienta “User Commands” le permite al usuario agregar, borrar, editar y

personalizar comandos y funciones en el modelo. Figura 201. Vista de la ventana “User Commands”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Add: agrega un nuevo comando a la lista para ser personalizados.

192

Remove: remueve un comando de la lista.

Name: permite darle un nombre al nuevo comando ya creado. Es recomendable que este nombre este asimilado con la función que desempeña. Parameters: son los parámetros que se deberán tener en cuenta para que el comando pueda funcionar correctamente. Return Type: es lo que se obtiene cuando se utiliza el nuevo comando. Por ejemplo: si se crea una función cuya utilidad sea decir un número, el “Return Type” será un valor (Value). Description: se puede agregar una descripción del comando creado con el fin de

saber la utilidad. Example: se puede poner un ejemplo de cómo utilizar el nuevo comando creado,

esto con el fin de ver el uso de los parámetros. Code: presionando el botón accedemos a la ventana para introducir el código

que utilizará el nuevo comando, presionando el botón se elimina todo el código del comando creado.

193

3.9.14 Excel Interface60 Figura 202. Vista de la ventana “User Commands”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Single Table Import: presione este botón para importar los datos dentro de una

tabla de Flexsim. Single Table Export: presione este botón para exportar datos de una tabla de

Flexsim a un archivo de Excel. Multiple Table Import: presione este botón para importar varias tablas de Excel

hacia Flexsim. Custom Import: hacer click en este botón para importar de Excel usando su

propio código personalizado. Custom Export: hacer click en este botón para exportar a Excel usando su propio

código personalizado.

60Flexsim Software Products Inc Op.cit., p. 427

194

Global Settings: hacer click en este botón para configurar la

importación/exportación de parametos incluyendo la ubicación en Excel. 3.10 Debug Menu61

Figura 203. Debug menú

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Breakpoints: esta opción abre la ventana de “Breakpoints”.

Code Profile: esta opción abre la ventana “Flexscript Code Profile”, es cual es una lista de todas las funciones definidas en Flexscript en el modelo.

Event List: esta opción abre la ventana “Event List”. El “Event List” es una lista ordenada de todos los eventos pendientes. Event Log: esta opción abre la ventana “Event Log”. El “Event Log” es una lista ordenada de todos los eventos que ya tuvieron lugar. 3.10.1 Breakpoints La ventana “Breakpoints” es una vista en forma de árbol que muestra todos los “Breakpoints” que han sido agregados al código en el modelo. Esto es útil cuando

61Flexsim Software Products Inc Op.cit., p. 198

195

se quiere hacer seguimiento a errores generados por mala escritura o declaración de variables en el modelo. Figura 204. Vista de la ventana “Breakpoints”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

3.10.2 Event List62

Esta ventana muestra todos los eventos pendientes en el modelo. Esto es útil para ver todos los eventos que se producirán y para hacer seguimiento a los problemas durante la modelización. Si se tienen problemas que están pasando durante un evento particular, el “Event List” es útil para ver información acerca del evento y ayudar a resolver el problema. Figura 205. Vista de la ventana “Event List”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

62

Flexsim Software Products Inc Op.cit., p. 422-423

196

Time: este es el tiempo en que el evento ocurrirá.

Object: esta es la ruta del objeto que disparara el evento. Event Type: este es el tipo de evento que ocurrirá.

Involved: esta es la ruta de acceso al objeto implicado en el evento. Event Data: son valores que se usan dependiendo del evento y no pueden ser

usados para otros tipos de eventos. 3.10.3 Event Log63

Cuando es habilitado, este creará un registro de todos los eventos que ya ocurrieron en el modelo. Esto es útil para ver en orden ciertos eventos que han tenido lugar en el modelo. Figura 206. Vista de la ventana “Event Log”

Fuente. Manual de Usuario Flexsim

63Flexsim Software Products Inc Op.cit., p. 424-426

197

Enable Logging: permite activar o desactivar el “Event log”. Cuando es activado

el modelo correrá más lento. Start Time: si se solo quiere anotar un periodo de tiempo de específico, se puede

ingresar un tiempo de inicio para cuando se debería iniciar la anotación de eventos. End Time: opcionalmente el usuario puede especificar un tiempo para cuando el usuario quiera dejar de anotar eventos. Settings: dentro de la ventana de configuración, el usuario puede cuales eventos quisiera que fueran registrados en el “Event Log”. Export: se exportaran los eventos como un archivo, tendrán la extendió csv. 3.11 Window Menu64

Figura 207. Window menu

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

64Flexsim Software Products Inc Op.cit., p. 199

198

Cascade: esta opción permitirá ver en cascada todas las ventanas para una fácil

selección. Close All: esta opción cierra todas las ventanas activas de Flexsim. Esto puede

ser útil cuando el usuario ha abierto más ventanas que no permiten que el trabajo se realice de forma efectiva. Open Default Workspace: esta opción cierra todas las ventanas activas en Flexsim y solo deja la ventana de trabajo en vista perspectiva. 3.12 Help Menu65 Figura 208. Help menú

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Getting Started: Esta opción abre la sección del manual donde le explican cómo

empezar a usar Flexsim. User Manual: esta opción abre el manual de usuario de Flexsim (en Ingles).

Commands: esta opción abre la lista de comandos disponibles para usarlos en el codigo de Flexsim.

65Flexsim Software Products Inc Op.cit., p. 200

199

Attribute Hints: esta opción abre la ventana “Attribute Hints”. Esta lista muestra

todos los atributos de Flexsim y su significado. Flexsim Web Site: esta opción abre el sitio web de Flexsim donde se puede

navegar. Flexsim Community Forum: esta opción abre el sitio web de Flexsim en la seccion de “Comunidad de Usuarios” donde se puede navegar. Flexsim Downloads: esta opción abre el sitio web de Flexsim donde se puede

navegar y descargar. Sample Models: esta opción abre la sección de “Modelos de ejemplo” del sitio

web de Flexsim. License Activation: esta opción abre el cuadro de dialogo para la activación de la

licencia. About Flexsim: esta opción abre una vista de bienvenida dándole información

acerca de Flexsim. Figura 209. Vista al presionar la opción Getting Started

200

Figura 210. Vista al presionar la opción User Manual

Figura 211. Vista al presionar la opción Commands

201

Figura 212. Vista al presionar la opción Attribute Hints

Figura 213. Vista al presionar la opción Flexsim Web Site

202

Figura 214. Vista al presionar la opción Flexsim Community Forum

Figura 215. Vista al presionar la opción Flexsim Downloads

203

Figura 216. Vista al presionar la opción Sample Models

Figura 217. Vista al presionar la opción License Activation

204

Figura 218. Vista al presionar la opción About Flexsim

3.13 Programación en Flexscript66 Antes de iniciar con la programación es importante repasar algunos conceptos claves para el manejo y dominio de la programación en Flexscript. 3.13.1 ItemTypes. Todos los flowitems tienen esta característica. Es un

identificador numérico utilizado para distinguir cierto “tipo” de flowitem de otros y que además permiten tomar decisiones de tiempos de proceso y ruteo entre otras cosas que se pueden hacer en el modelo.

66

Vatic Consulting Group. Capacitacion avanzada en Flexsim, tutorial: Programacion en Flexscript [diapositivas]. Bogotá D.C, 2012. p. 2-37.

205

Figura 219. Vista de las propiedades de un flowitem

3.13.2 Labels (Etiquetas). La información en los objetos (incluyendo flowitems)

puede ser almacenada en un label (etiqueta). Los flowitems y otros objetos de Flexsim pueden tener una cantidad ilimitada de labels y estos deben tener nombre y dato. Los datos pueden ser números, textos o tablas. Figura 220. Vista de los labels en un flowitem

206

3.13.3 Triggers. Cuando ocurren eventos clave en un objeto, se dispara un

trigger al que se puede asociar una serie de acciones. Existen triggers que se activan cuando un flowitem entra o sale de un objeto. Otros se disparan cuando se termina el tiempo de proceso o se completa una reparación. Figura 221. Vista de la pestaña “Triggers”

3.13.4 Mensajes. Hay información puede ser enviada de un objeto a otro objeto a través de mensajes. Cuando un objeto recibe un mensaje, un trigger se dispara desencadenando una serie de acciones. Los mensajes pueden pueden ser enviados inmediatamente o tras un tiempo definido. Figura 222. Vista del “Trigger / OnMessage”

207

3.13.5 Funciones. Una función tiene la siguiente estructura:

Nombre de la función (argumento1, argumento2, etc…)

Los argumentos pueden ser: valores numéricos, textos (“string“), apuntador Pointer (*) a un objeto o nodo.

Ejemplo de una función: colorrandom(item)

Muchas de las funciones de Flexsim son usadas para leer datos desde el árbol y salvar datos en el árbol. 3.13.6 Reglas generales para la sintaxis 1 Las letras son sensibles (A no es lo mismo que a). 2 No se necesita un formato específico (el uso de espacios, tabuladores y

renglones en blanco es libre, pero se sugiere se usen para hacer más “leíble” el código).

3 Los valores de texto (string) deben introducirse entre comillas y no pueden empezar con un número. (máquina9 está bien, pero 9máquina no).

4 Los paréntesis le siguen a un llamado de una función y las comas separan los

argumentos de dicha función. 5 Un comando siempre termina con PUNTO Y COMA (;) 6 Los paréntesis pueden usarse libremente para crear asociaciones entre las

declaraciones matemáticas y lógicas. 7 Las llaves { } se usan para definir bloques de declaraciones.

208

8 Para poner como comentario el resto de una línea usa // y escribe aquí, y los comentarios multilínea empiezan con /* y terminan con */

9 No uses espacios o caracteres especiales (ñ,á, %, etc.) en los nombres. 3.13.7 Tipos de variables

Int = Integer “entero”

Doublé= Precisión con decimales

string Text string “texto”

fsnode* Apunta a un nodo del árbol de Flexsim

3.13.8 Operadores matemáticos

x + y x más y

x – y x menos y

x * y x por y

x / y x entre y

sqrt(x) raíz cuadrada de x

pow(x,y) x elevada a la potencia de y (xy)

round(x) x redondeado al entero más cercano

frac(x) regresa la parte decimal de x

fmod(x,y) regresa el residuo de x/y

min(x,y) regresa el mínimo de x y y

max(x,y) regresa el máximo de x y y

209

3.13.9 Operadores matemáticos de comparación

x > y x mayor que y

x < y x menor que y

x >= y x mayor o igual que y

x <= y x men or o igual que y

x == y x igual que y

x != y x no igual que y

comparetext(texto1,texto2) texto1 igual a texto2

&& Y lógico

|| O lógico

! NO lógico 3.13.10 Operadores matemáticos de actualización

x = y x vale igual que y

x += y mismo que poner x = x + y

x -= y mismo que poner x = x - y

x *= y mismo que poner x = x * y

x /= y mismo que poner x = x / y

x ++ mismo que poner x = x + 1

x -- mismo que poner x = x - 1

210

3.13.11 Referencias básicas de objetos current el objeto actual, el dueño del código item el flowitem involucrado que dispara el evento model() hace referencia al árbol del modelo rank(node, ranknum) rank(current,3) node(“relativepath”, object) node(“/Operator1”, model()) inobject(object, portnum) inobject(current,1) outobject(object, portnum) outobject(current,1) centerobject(object, portnum) centerobject(current,1) 3.13.12 Estadísticas básicas de objetos

content(object) contenido o inventario

getinput(object) entradas al objeto

getoutput(object) salidas del objeto

Int inventario = content(current); Int entradas = getinput(current);

Int produccion = getoutput(current);

3.13.13 Características básicas de objetos

xloc(object) yloc(object) zloc(object)

setloc(object, xnum, ynum, znum)

xsize(object) ysize(object) zsize(object)

setsize(object, xnum, ynum, znum)

211

xrot(object) yrot(object) zrot(object)

setrot(object, xdeg, ydeg, zdeg) 3.13.14 Atributos básicos de los objetos

getname(object)

setname(object, “name”)

getitemtype(object)

setitemtype(object, num)

setcolor(object, red, green, blue)

colorred(object ) – blue,green,random... 3.13.15 Uso del “If”, “While” y “For” IF

if (expresión de prueba)

{

bloque de código

}

else

{

bloque de código

}

212

WHILE while(test expression)

{

bloque de código

}

FOR

for (start expression; test expression; count expression) { code block }

{

bloque de código

} 3.13.16 Labels

getlabelnum(object, “labelname”);

setlabelnum(object, “labelname”, value);

getlabelstr(object, “labelname”);

setlabelstr(object, “labelname”, “string”);

label(object, “labelname”);

3.13.17 Tablas

gettablenum(“tablename”, rownum, colnum)

settablenum(“tablename”, rownum, colnum, value)

gettablestr(“tablename”, rownum, colnum)

settablestr(“tablename”, rownum, colnum, string)

213

3.13.18 Control básico de los objetos

closeinput( object );

openinput( object );

stopinput( object );

resumeinput( object );

closeoutput( object );

openoutput( object );

stopoutput( object );

resumeoutput( object );

sendmessage( toobject, fromobject, parameter1, parameter2, parameter3 );

senddelayedmessage( toobject, delaytime, fromobject, parameter1, parameter2, parameter3 );

stopobject( object );

resumeobject( object );

moveobject( object, containerobject ); NOTA: para mas información acerca de las funciones anteriormente nombradas, referirse al manual de usuario en ingles, ya que la descripción de cada comando es muy extensa, se optó por solo darles una clasificación que muchas veces suele ser mas útil.

214

2

OBJETOS DE LA LIBRERÍA DE FLEXSIM

215

1. Fixed Resources67

BasicConveyor. El BasicConveyor es un conveyor que le permite a los flowitems moverse dentro y fuera del conveyor en cualquier momento, en cualquier ubicación y además les permite moverse a lo largo del conveyor de acuerdo a una lógica definida por el usuario. BasicFR. El objeto BasicFR es un FixedReSource que está diseñado para ser personalizado y guardado en una librería personal creada por el usuario. Se pasa casi toda la lógica heredada de los FixedReSource a las funciones de la lista de selección para que los

usuarios puedan especificar prácticamente cualquier cosa. Combiner. El Combiner es usado para agrupar múltiples flowitems

que viajan a través del modelo. Este los puede combinar los flowitems de distintas maneras: join, los combina en uno solo de forma permanente. Pack, los combina y los puede separar en cualquier momento. El Combiner solo acepta un flowitem a través del puerto de entrada 1

antes de aceptar los demás flowitems a través de los demás puertos de entrada. El usuario especifica la cantidad de sub-componentes a través de los demás puertos de entrada (diferentes al puerto 1). Conveyor. El conveyor es usado para mover flowitems a través del

modelo a lo largo de una ruta establecida. La ruta es definida creando diferentes secciones en el conveyor. Cada sección puede ser o recta

o curva. Las curvas son definidas por ángulos y las rectas por su longitud. FlowNode. El FlowNode es usado para mover flowitems de un lugar a otro teniendo en cuenta el tiempo que se consume. El FlowNode

simplemente es conectado en el flujo usando la tecla “A” y arrastrando la conexión. MargetSort. El MargeSortes un conveyor de no-acumulación que le permite al usuario tener múltiples puntos de entrada así como múltiples puntos de salidas a lo largo del conveyor. Cada puerto de entrada/salida del conveyor es definido por el usuario.

67

Flexsim Software Products Inc Op.cit., p. 332-352

216

MultiProcessor. El MultiProcessor es usado para simular

operaciones en secuencia de manera ordenada para flowitems. El usuario define y establece los procesos para cada MultiProcessor.

Cada flowitem que entre iría a través de cada proceso en secuencia. El MultiProcessor puede llamar operarios durante cada etapa. Processor. El Processor es usado para simular el procesamiento de flowitems en un modelo. El proceso simplemente modela un retraso forzado en el flowitem. El tiempo total es dividido en un tiempo de alistamiento y tiempo de proceso. El Processor puede procesar más

de un flowitem al tiempo. Puede llamar operarios durante el tiempo de alistamiento o el tiempo de proceso. Queue. El Queue (cola) es usado para almacenar flowitems cuando los flowitems se están moviendo a través del modelo. Por defecto las colas trabajan con la configuración FIFO, lo que significa que el primer flowitems que entra es el primer flowitem en salir. Rack. El Rack es usado para almacenar flowitems como si se estuvieran almacenando en una bodega. El número y tamaño de las bahías y niveles pueden ser definidas por el usuario. El usuario puede definir la bahía y el nivel donde quiere que se almacene un determinado flowitem. Reservoir. El Reservoir es usado para almacenar flowitems como si

estos fueran una especie de fluido. La tasa de entrada y salida del Reservoir puede ser definida por el usuario. Eventos pueden ocurrir

cuando el nivel de depósito sube o baja con respecto a ciertos valores que pueden ser definido por el usuario. Separator. El Separator es usado para separar un flowitem en múltiples partes. Esto puede ocurrir de dos formas “unpacking” que divide el flowitem que ha sido unido a otro en un Combiner de forma “pack” o “Split” que divide el flowitem en varias copias exactamente iguales. La opción “Split/Unpacking” se realiza después del tiempo de proceso. El Separator puede requerir operarios durante el tiempo de alistamiento o tiempo de proceso.

217

Sink. El Sink es usado para destruir flowitems que han finalizado su curso en el modelo. Una vez el flowitem ha ingresado en el Sink, no se puede recuperar. Source. El Source es usado para crear los flowitems que viajaran a través del modelo. Cada Source crea una clase de flowitems y puede

entonces asignar propiedades a cada uno como: color, Itemtype, etc. 2. Task Executers68

ARSvehicle. El ARSvehicle es un tipo especial de transporte diseñado para trabajar con Racks. El ARSvehicle se deslizara hacia atrás o hacia adelante entre dos Racks recogiendo y arrastrando flowitems. Alcanzar, levantar y realizar los movimientos se muestran en animación. BasicTE. El BasicTE es un TaskExecuter que está diseñado para aquellos usuarios avanzados que crean objetos personalizados en bibliotecas personalizadas. Se pasa casi toda la lógica heredada de los TaskExecuters a las funciones de la lista de selección para que los usuarios puedan especificar prácticamente cualquier cosa.

Crane. El Crane tiene una funcionalidad similar a la del transportador, pero con una animación gráfica modificada. El Crane trabaja en un espacio fijo siguiente movimientos rectangulares x, y, z. Elevator. El Elevator es un tipo especial de transportador que mueve flowitems hacia arriba y hacia abajo. Automáticamente se desplazara al nivel donde los flowitems deben ser recogidos o dejados. Se muestran cuando los flowitems entran o salen del elevador. Operator. Los Operator pueden ser llamados por objetos fijos para ser utilizados durante el alistamiento, proceso o reparación. Estos estarán con los objetos que los llaman y luego son liberados. Una vez sean liberados, estos pueden trabajar con otros objetos fijos cuando son llamados. También pueden ser usados para llevar flowitems entre distintos objetos.

68

Flexsim Software Products Inc Op.cit., p. 354-370

218

Robot. El Robot es un transportador especia que levanta flowitems

desde su posición inicial y los lleva hasta su posición final. Generalmente, la base del Robotno se mueve. En lugar de ello, posee 6

articulaciones que rotan y mueven los floitems.

Transporter. El Transporter es usado principalmetne para llevar

flowitems de un objeto a otro. Cuenta con un elevador en forma de cuchillas que elevara los flowitems a una posición determinada. Puede llevar varios flowitems al tiempo de ser necesario. 3. Other Discrete Objects69 Dispatcher. El Dispatcher es usado para controlar un grupo de operarios o transportadores. Las Task Sequences son enviadas al Dispatcher y este delega last areas a los transportadores u operarios que estan conectados a los puertos de salida. NetworkNode. El NetworkNode es usado para definer rutas y redes que los montacargas u operarios pueden seguir. Las rutas pueden ser modificadas usando “splines” que son puntos para agregar curvas a la ruta. Recorder. El Recorder es usado para registrar y/o mostrar información gráfica en el modelo. Para ser mas especifico, el Recorder

es usado para capturar “datos de tablas”, “datos estándar” y “datos definidos por el usuario”. Todos los tipos de datos pueden ser mostrados gráficamente en su modelo y exportar a Excel, Access o cualquier base de datos ODBC. TrafficControl. El TrafficControl es usado para controlar tráfico en una determinada zona de la red. Se construye una zona de tráfico controlada median la conexión entre NetworkNodes y el TrafficControl. VisualTool. El VisualTool es usado para decorar el modelo con utilería, escenografía, texto para darle una apariencia más real.

69

Flexsim Software Products Inc Op.cit., p. 372-393

219

4. Fluid Objects70 Ticker. El Ticker es el responsable de fragmentar el tiempo en pequeñas partes uniformemente llamadas “ticks”. El modelador puede definir la longitud del tick. El Ticker es el objeto que controla todos los objetos fluidos en el modelo. Por esta razón, en cualquier modelo que usa objetos fluidos, siempre habrá un Ticker. El modelador también puede usar el Ticker para definir una lista global de sub-componentes que se

tomaran en el modelo. FluidBlender. El FluidBlender es usado para mezclar materiales de

múltiples puertos de entrada basado en porcentajes que el usuario define. Es mas comúnmente utilizado en una línea de mezcla donde la mezcla no se realiza en lotes.

FluidGenerator. El FluidGenerator proporciona un suministro infinito de material fluido para el modelo. El FluidGenerator se puede ajustar para volver a llenar a una tasa fija o se puede rellenar en si durante cierta cantidad de tiempo después de ser vaciado. FluidMixer.El FluidMixer es usado para combinar productos dentro

de uno solo, un nuevo producto. Los diferentes materiales pueden jalados en secuencia o en paralelo.el FluidMixer siempre trabaja en

lotes. FluidPipe. El FluidPipe es usado para simular el tiempo requerido para mover material de un objeto a otro. Esto puede precer una tubería cilíndrica o un simple conveyor. FluidProcessor. El FluidProcessor es usado para simular una etapa

en el procesamiento de material fluido que se recibe continuamente. FluidSplitter. El FluidSplitter es usado para enviar material a múltiples

puertos de salida en porcentajes que el modelador especifiaca. Estos pocentajes son especificados en una tabla llamada “Splitter Percents

70

Flexsim Software Products Inc Op.cit., p. 397-409

220

Table”. Cada fila en la tabla corresponde a un puerto de salida. Hay columnas que

permiten al modelador ingresar una descripion de cada puerto y porcentajes del material saliente que sería enviado a cada puerto. FluidTank. El FluidTank es un objeto que simplemente puede enviar y recibir material al tiempo. El modelador decide la máxima capacidad del tanque y hay 3 puntos que causarían la activación de Triggers cuando el contenido en el tanque alcanza los límites especificados por el usuario. FluidTerminator. El FluidTerminator es el objeto que el modelador usa cuando quiere remover el material fluido del modelo sin convertirlo en flowitem. El FluidTerminator realiza un rastreo de cada tipo de material que recibe. FluidToItem. El FluidToItem es un objeto que esta diseñado como intermediario entre los objetos fluidos y los objetos discretos. Este objeto recibe material fluido y lo convierte en flowitems. ItemToFluid. El ItemToFluid es un objeto que se usa como intermedio

entre los objetos fluidos y objetos discretos. Este recibe flowitems y los convierte en material fluido. Cuando se hace doble click a cada uno de estos objetos, se abre la ventana de propiedades en la cual podemos ver una serie de pestañas, algunas son compartidas (varios objetos las tienen) y otras son propias de cada uno. A continuación definiremos las principales y mas encontradas.

221

5. Pestañas de propiedades compartidas71

5.1 Breakdowns Tab Page Figura 223. Vista de la pestaña “Breakdowns”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. MTBF MTTR Member List: Esta es una lista de todos los objetos MTBF MTTR

que tienen éste objeto como uno de sus miembros. Cada objeto MTBF MTTR puede ser conectado a más de un objeto en el modelo. Y cada objeto puede ser controlado por más de un objeto MTBF MTTR. Remove: Éste botón remueve el objeto desde la lista miembro del objeto MTBF

MTTR. Add: Éste botón abre una lista de todos los objetos MTBF MTTR en el modelo. El

usuario puede seleccionar un objeto MTBF MTTR desde la lista para agregarlo a

71Flexsim Software Products Inc Op.cit., p. 222-249

Member List

222

ese objeto MTBF MTTR. También puede seleccionar “Add New MTBF MTTR” para crear un objeto MTBF MTTR nuevo en su modelo y agregarlo a ese objeto MTBF MTTR. Edit: Éste botón le permite editar las propiedades del objeto MTBF MTTR, incluyendo el ritmo de averías y reparaciones. Time Tables Member List: Ésta es una lista de todos los objetos Time Table que tienen éste objeto como uno de sus miembros. Cada objeto Time Table puede ser conectado a más de un objeto en el modelo. Y cada objeto puede ser controlado por más de un objeto Time Table. Remove: Éste botón remueve el objeto desde la lista miembro del objeto Time Table. Add: Éste botón abre una lista de todos los objetos Time Table en el modelo. Se puede seleccionar un objeto Time Table desde la lista para agregarlo a ese objeto Time Table. También se pueden seleccionar “Add New Time Table” para crear un objeto Time Table nuevo en su modelo y agregarlo a ese objeto Time Table. Edit: Éste botón le permite que editar las propiedades del objeto Time Table, incluyendo el ritmo y la duración de averías programadas. NOTA: Las “Time Table” y las “Global Table” en Flexsim se cuentan como objetos independientes, es por ello que aquí se les nombra como objetos.

223

5.2 Breaks Tab Page Figura 224. Vista de la pestaña “Breaks”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. MTBF MTTR Member List: Ésta es una lista de todos los objetos MTBF MTTR

que tienen éste objeto como uno de sus miembros. Cada objeto MTBF MTTR puede ser conectado a más de un objeto en el modelo. Y cada objeto puede ser controlado por más de un objeto MTBF MTTR. Remove: Éste botón remueve el objeto desde la lista miembro del objeto MTBF

MTTR seleccionado. Add: Éste botón abre una lista de todos los objetos MTBF MTTR en el modelo. Se

puede seleccionar un objeto MTBF MTTR desde la lista para agregarlo a ese objeto MTBF MTTR. También se puede seleccionar “Add New MTBF MTTR” para crear un objeto MTBF MTTR nuevo en su modelo y agregarlo a ese objeto MTBF MTTR. Edit: Éste botón permite que editar las propiedades del objeto MTBF MTTR,

incluyendo el ritmo de averías y reparaciones.

Member List

224

Time Tables Member List: Ésta es una lista de todos los objetos Time Table que

tienen este objeto como uno de sus miembros. Cada objeto Time Table puede ser conectado a más de un objeto en el modelo. Y cada objeto puede ser controlado por más de un objeto Time Table. Remove: Éste botón remueve el objeto desde la lista miembro del objeto Time

Table seleccionado. Add: Éste botón abre una lista de todos los objetos Time Table en el modelo. Se

puede seleccionar un objeto Time Table desde la lista para agregarlo a ese objeto Time Table. Edit: Éste botón le permite editar las propiedades del objeto Time Table, incluyendo el ritmo y la duración de las averías programadas. NOTA: como se puede oberservar la pestaña “BreakDown” y “Breaks” tienen las mismas opciones, la diferencia es que “BreakDown” es para objetos fijos y “Breaks” para los TaskExecuters. 5.3 Collision Tab Page Figura 225. Vista de la pestaña “Collision”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Member

List

225

Checking Collisions: Marque ésta sección para activar la detección de colisiones

y el tiempo entre sus chequeos. Time between Collision Checks: Tiempo de Simulación que pasa entre los

chequeos de colisión de objetos. Collision Spheres: Ésta tabla es usada para definir una o más esferas de colisión

sobre el objeto. Draw Spheres: Marque ésta lista si se quiere que la colisión de esferas sea visible

alrededor del CollisionObject. Add Sphere: Presione éste botón para agregar una esfera nueva al objeto. Defina

el tamaño y la posición de la esfera en la tabla. Delete Sphere: Seleccione éste botón para eliminar la última esfera en la tabla.

Advanced: Éste botón le permite optimizar y revisar la velocidad de colisión mediante la configuración del TaskExecuter para excluir ciertos ejes cuando se verifican sus esferas para colisiones. Esto permite cubrir mayor área de revisión con menos esferas. Presionando el botón se abre la ventana de abajo. Deseleccione las dimensiones X, Y, y/o Z para excluir ciertos ejes en la revisión. El resultado para su configuración es mostrado en la imagen. Un cilindro o un aeroplano transparente cubren áreas que causarán una colisión dada en la configuración que se ha escogido. También se puede introducir una Offset Rotation, como 45 grados, si se quiere revisar las colisiones sobre eje que no es paralelo con el eje normal. Observe que las dimensiones X, Y y Z son conforme al sistema global de coordenadas, y no conforme al sistema coordenado individual del objeto.

226

Figura 226. Vista de la ventana “Advance”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Collision Members: A la derecha está la lista de los objetos modelo que pueden ser añadidos a los miembros de colisión del TaskExecuter. A la derecha está la lista de los miembros de colisión para el objeto. HandleCollisions: La lista de selección permite al usuario definir que sucede

cuando una colisión se lleva a cabo. 5.4 Conveyor Tab Page Figura 227. Vista de la pestaña “Conveyor”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

227

Operación

Estas propiedades definen cómo funciona el transporte. Accumulating: Si ésta casilla no es revisada, el transportador no es acumulativo.

En un transportador no acumulativo, el transportador entero se detiene si un elemento de flujo (flowitem) alcanza el final y no puede salir. Si se acumula, los elementos de flujo continuarán viajando a lo largo del transportador hasta que ellos se ejecuten dentro de un elemento de flujo parado o hasta que llegue al final. La distancia entre los elementos de flujo acumulados es determinada por la regla del espacio. Speed: Éste número define la velocidad a la que los elementos de flujo viajan a medidad que éstos se mueven en el transportador. Maximum Content: Éste número establece un límite sobre cuántos elementos de flujo pueden ir en el transportador en un momento dado. El máximo número de elementos de flujo en un transportador es usualmente determinado por el largo del transportador y por el tamaño de los elementos de flujo, pero esto le permite proyectarlo mucho mejor. Spacing Value: Un elemento de flujo se detendrá cuando su borde frontal esté

separado cierta distancia del borde frontal del elemento de flujo frente a él. Esta distancia es definida por el valor de espaciamiento. Este número es usado en diferentes formas, tal cual se define en la regla del espaciamiento. Spacing Rule: Esto define cuánto espacio deja el transportador entre los

elementos de flujo que hay en él.

Item Size: Un elemento de flujo dejará de moverse cuando llegue el elemento

de flujo en frente de él.

Item Size + Spacing Value: Un elemento de flujo dejará de moverse cuando

esté a cierta distancia de la parte de atrás del elemento de flujo en frente de él. Esa distancia está definida por el valor del espaciamiento.

228

Spacing Value: Un elemento de flujo dejará de moverse cuanto esté a cierta

distancia del frente del elemento de flujo en frente de él.

Item Size * Spacing Value: Un elemento de flujo dejará de moverse cuando

esté a cierta distancia de la parte de atrás del elemento de flujo frente a él. Esa distancia está definida mediante la anteposición del tamaño de los tiempos del valor de espaciamiento del elemento.

Spacing Orientation: Si la regla de espaciamiento incluye el tamaño del

elemento, éste campo determina cual es la dimensión del elemento que define su tamaño en el transportador. Las opciones son tamaño x, y o z. Orient Z, Orient Y: Estos campos se hallan para propósitos visuales y no afectan la operación del transportador. Ellos son usados conjuntamente con el campo Spacing Orientation para orientar correctamente el flujo de elementos. Ellos definen una rotación en grados alrededor de los ejes y y z del transportador para que los elementos de flujo sean rotados. Por ejemplo, si en el campo del Spacing Orientation, es escogido el elemento de tamaño Y, y en lugar del elemento predeterminado de tamaño X, se quisiera especificar el campo con dirección Z ya sea como 90 o 270, así que la dimensión y del elemento de flujo se alínea a lo lardo del transportador, en vez del tamaño x. Virtual Length: Este campo le permite definir un largo específico para el

transportador, diferente del largo actual de su diseño. Si 0 es introducido (por defecto), el diseño del largo normal del transportador será usado. De lo contrario, el valor en este campo será usado como el largo del transportador. Este campo es usado si se quiere simular un transportador muy largo sin dejarlo recorrer una gran distancia en su modelo, o si el usuario quiere especificar una distancia exacta. Scale Product with Virtual Length: Esto es para propósitos visuales y no afecta

la operación del transportador. Si el usuario ha definido una VirtualLenght muy grande, este campo le permite nivelar el tamaño de los productos de flujo en el transportador de tal manera que estos no se superponen. Por ejemplo, si el diseño del largo del transportador es 10, pero el usuario ha especificado un VirtualLenght de 100, entonces los elementos con un tamaño de 1 sólo tomarían hasta 1/100 del largo virtual del transportador. Lo que en realidad significa 0.1 unidades en el diseño real, pero ya que un elemento de flujo es de 1 unidad, el se superpone con otros elementos de flujo. Si esta casilla es revisada, entonces el tamaño del elemento de flujo será encogido a 0.1 unidades.

229

Notify Upstream of Blocked Length: Esto le indica al transportador que debe

notificar a los transportadores de arriba cuando productos del transportador se extienden más allá de los bordes delanteros del transportador. Visual Estas propiedades definen cómo se ve el transportador en el modelo. Ellos no afectan la funcionalidad operacional del transportador. Estas propiedades en combinación dan una flexibilidad ilimitada en la apariencia de su transportador. Estas configuraciónes son ajustadas con frecuencia por prueba y error, pero el usuario deberá ser capaz de aprender rápidamente cómo cada parámetro afecta la apariencia del transportador. Texture: Este campo será dibujado sobre el transportador para cambiar su

apariencia básica. La textura está dividida en tres partes. El tercio izquierdo de la textura está dibujado sobre la falda derecha, el tercio del medio esta dibujado sobre la parte superior, y el tercio derecho esta dibujado sobre la falda derecha. Texture Length: Este número define el largo a lo largo del plano del transportador

para ensanchar una copia de la textura antes de repetir la textura. Product Z Offset: Cambiando este número, cambiará hasta qué punto por encima

o por debajo el transportador y los elementos de flujo son dibujados. Un valor de 0 pone a los elementos directamente sobre el transportador. Un valor negativo pondrá a los elementos por debajo del plano del transportador. Move While Paused: Por defecto, la animación de la textura del transportador es

solamente actualizada mientras la Simulacióncorre. Si esta casilla es verificada, el transportador se animará con cada actualización de la ventana 3D además de actualizarse mientras que el modelo está corriendo. Infinite Increment: Al entrar en esta casilla, se hace que la textura del

transportador sea animada sin problemas en lugar de incrementos fijos. El usaría esta opción con una textura que se mueve a lo largo del transportador, tal como la textura de un cinturón.

230

Texture Increment: La animación de la textura del transportador esta actualizada

por incrementos particulares. Por ejemplo, la textura del rodillo tiene 32 rollos en su textura. La textura es animada solamente mediante el cambio de la textura por un valor especificado. Esto hace que la animación se vea como ruedas giratorias individuales en lugar de una textura plana giratoria. Se puede ajustar la Textura Incrementando a 1 para prevenir la textura de la animación. Side skirt follows contour of conveyor (not floor): Si esta casilla es verificada,

el lado del transportador será dibujado empezando a cierta distancia lejos del transportador. Si no es revisada, este es dibujado a cierta distancia lejos del piso (la locación z del transportador). De cualquier modo, los lados se conectan al contorno del transportador. Side Skirt Dimension: Este valor es usado para determinar qué tan alta es la falda. Side Skirt Offset: Este valor es usado para compensar donde la falda lateral es dibujada. Leg base relative to conveyor: Si esta casilla es revisada, las patas del transportador serán dibujadas a cierta distancia lejos del transportador. Si no es revisada, ellas son dibujadas empezando a cierta distancia lejos del piso (la locación z del transportador). De cualquier modo, los lados se conectan al contorno del trasnportador. Leg base dimensión: Este valor es usado para determinar donde empiezan las

patas del transportador.

231

5.5 Flow Tab Page Figura 228. Vista de la pestaña “Flow”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Output

Estas propiedades determinan cómo el objeto envía elementos de flujo hacia abajo. Send To Port: Esta lista de selección devuelve el número de puerto de salida conectado a el objeto al cual el elemento de flujo que debe ser movido. Si 0 es devuelto, todas las salidas son abiertas y el elemento de flujo es movido a el primer objeto de abajo que sea capaz de recibirlo. Use Transport: Si esta caja es verificada, el objeto solicitará un transporte para mover el elemento de flujo hacia abajo. Si no es revisada, el elemento de flujo será movido automáticamente. Priority: Este parámetro es solamente visible si “use transport” es verificado. Este

valor ajusta la prioridad de la secuencia de tarea que será enviada al transportador o despachador. Los transportadores y despachadores por general clasifican tareas de tal manera que las secuencias con altas prioridades serán realizadas primero.

232

Las tareas secuencia con la misma prioridad serán realizadas en el orden que ellas fueron recibidas. Preempt: Este parámetro solamente es visible si “use transport” es verificado. Si

esta castilla es verificada, las tareas secuencia enviadas al transportador automáticamente adelantará lo que sea que el transportador esté haciendo en ese momento. Esto podría causar que el transportador realice tareas que normalmente no serían permitidas, tal como cargar mayor elementos de flujo a su capacidad. Request Transport From: Esta lista de selección es únicamente visible si “use transport” es revisado. Esta función devuelve una referencia al despachador o al transportador que serán usadas para mover el elemento de flujo.

Reevaluate Sendto on Downstream Availability: Si es verificada, el Send To

Port será reevaluado cada vez que un objeto descendente está disponible. Es importante observar que esto sólo es ejecutado cuando el objeto descendente está disponible. No se evalúa continuamente solo por el hecho de que un objeto descendente ya esté disponible. Si se quiere hacer manualmente una reevaluación en algún otro tiempo cuando un objeto descendente esté disponible, entonces puede hacerlo mediante la citación de un comando openoutput() en este objeto. Input

Estas propiedades definen como un objeto hala elementos de flujo desde objetos ascendentes. Pull: Si esta casilla es verificada, el objeto halará elementos de flujo desde objetos ascendentes. Los objetos ascendentes deben abrir todos sus puertos de salida para permitir que el objeto hale los elementos de flujo que el necesita. Pull Strategy: Este parámetro es sólo visible si “Pull” es revisado. Esta lista de

selección devuelve el número de puerto de entrada conectado al objeto desde el cual el siguiente elemento de flujo es halado. Este campo está evaluado sólo en el reajuste del modelo y cuando el objeto atrayente está listo para recibir su siguiente elemento de flujo. Para un procesador de capacidad 1, esto significa que el campo de Pull Strategy será solamente evaluado una vez después de que cada elemento

233

de flujo entre al transportador y lleve su longitud de producto. Abriendo y cerrando puertos no desencadena este campo para reevaluar.

Pull requirement: Este parámetro es solamente visible si “Pull” es verificado. Esta

lista de selección necesita devolver ya sea un verdadero o un falso (1 o 0). Este campo es evaluado cuando se considera halar o no un elemento de flujo particular desde un objeto ascendente que fue definido por el campo “Pull from port”. Este campo solamente será evaluado por elementos de flujo que estén en el estado “ready” (i.e FRSTATE_READY) lo que quiere decir que los elementos de flujo están listos para dejar el objeto ascendente. Básicamente, el campo “Pull Requirement” es evaluado por cada elemento de flujo “ready” inmediatamente después de que el campo “Pull from port”es evaluado. El campo es de nuevo evaluado por cada elemento de flujo nuevo que más tarde está listo en el objeto ascendente. 5.6 FluidLevelDisplay Tab Page Figura 229. Vista de la pestaña “FluidLevelDisplay”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Draw Level Indicator: Si esto es seleccionado, la barra indicadora de nivel será dibujada en el objeto. Rectangular: Si esto es seleccionado, la barra indicadora de nivel será dibujada

como una caja coloreada Cylindrical: Si esto es seleccionado, la barra indicadora de nivel será dibujada

como un cilindro coloreado.

234

X: La locación X de la barra. Y: La locación Y de la barra. Z: La locación Z de la barra. RX: La rotación de la barra alrededor del eje X. RY: La rotación de la barra alrededor del eje Y. RZ: La rotación de la barra alrededor del eje Z. SX: El tamaño de la barra en la dirección X. SY: El tamaño de la barra en la dirección Y. SZ: El tamaño de la barra en la dirección Z.

Note: Los valores de locación y tamaño son expresados como un porcentaje (1.0 siendo 100%) del tamaño del objeto. 5.7 General Tab Page Figura 230. Vista de la pestaña “General”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

235

Appearance 3D Shape: Esta opción específica la forma 3D para el objeto un camino para archivos de tipo .3ds, .wrl, .dxf, o .stl. Edit 3D Shape Factors – Haga clic en este botón abrir una ventana que edite los factores de forma tridimensionales del objeto. Los factores 3D del objeto especifican cómo la forma 3D del objeto es orientada con respecto al objeto. 2D Shape: Esta opción especifica el aspecto 2D para el objeto, o una textura para

ser dibujada en su base. Usualmente la textura 2D no es mostrada en la vista ortográfica, pero es mostrada en la vista planar. 3D Texture: Este campo especifica la textura 3D del objeto. Si la forma 3D no tiene definida una textura entre su archivo 3D, entonces esta textura será dibujada sobre la cara de la forma 3D. Note que, si la forma 3D del objeto ya tiene una textura definida, entonces esta textura no será usada. Color: Este campo especifica el color del objeto. Note que si el objeto ya tiene materiales definidos en su archivo de forma 3D, entonces el color no se mostrará. Este color se muestra a través solamente si no hay materiales definidos en el archivo 3D. Flags Aquí se pueden seleccionar diferentes casillas para mostrar/ocultar diferentes partes del objeto, tales como los contenidos del objeto, el nombre, los puertos, etc. Scale Contents: Si esta opción es seleccionada, cualquiera de los objetos dentro

del contenido de este objeto será nivelado de acuerdo al tamaño de su objeto. Protected: Si esta opción es seleccionada, este objeto no estará permitido para

que el usuario lo mueva, cambie de tamaño, rote o elimine el objeto.

236

Visuals/Animations

Estos botones le permiten guardar/cargar información visual para objetos. Load/Save: Estos botones cargar/guardar todas las configuraciónes Appearance

de un objeto, permitiendo que se guarde la forma, la textura, el color y las animaciones en un archivo .t para cargar otros objetos que el usuario que se vean igual. Edit: Este botón abre el Animation Creator, el cual le permite crear animaciones

para Flexsim Objects. Position, Rotation, and Size

Aquí se pueden ajustar la posición, rotación y tamaño del objeto basado en los valores X, Y y Z Ports Esta área le deja editar las conexiones del objeto. Seleccione ya sea Input Ports, Central Ports u Output Ports desde el cuadro combinado de la derecha. La lista de la derecha muestra las conexiones apropiadas. Una vez se haya finalizado la editacion de las conexiones de un objeto, se necesitará reajustar el modelo antes de que lo corra de nuevo. Rank ^: Este botón moverá hacia arriba la conexión seleccionada en la lista. Rank v: Este botón moverá hacia abajo la conexión seleccionada hacia abajo en

la lista. Delete: Este botón eliminará la conexión seleccionada.

Properties: Este botón una ventana de propiedades nueva para el objeto seleccionado.

237

5.8 Ventana Initial Product Figura 231. Vista de la ventana “Initial Product”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Esta ventana es usada para definir el Product ID inicial y la lista de subcomponentes para un material fluido que es creado por el objeto. Object Name: Es el objeto que está creando este material. Product ID: Es el Product ID que será asignado al material que es creado. Sub-Component List: Cada fila en la lista es un subcomponente diferente que

está disponible para este material. La lista está definida en el FluidTicker Porperties tab. Los valores son porcentajes desde 0 hasta 1. Ellos deben sumar 1. Todos los subcomponentes disponibles están listados, pero el material no tiene que usarlos todos. Si hay alguno que este no usa, los valores en esas filas deben ajustarse a 0.

238

5.9 Labels Tab Page Figura 232. Vista de la pestaña “Labels”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Las etiquetas son variables personalizadas que se pueden especificar en el objeto. Por ejemplo, si se quiere mantener la trayectoria del número de elementos de flujo del Itemtype 3 que ha entrado a un objeto, se puede usar una etiqueta para mantener un registro de este valor. Use los comando de setlabelnum(), getlabelnum(), y label() para interactuar con etiquetas que se hayan creado. El panel principal muestra una lista de las etiquetas en este objeto. Automatically Reset Labels: Si esta opción es seleccionada, entonces el objeto

automáticamente reajustará sus etiquetas de vuelta a sus valores iniciales en el reajuste. Cuando se presiona Apply en la ventana, los valores mostrados, serán

guardados como los valores de reajuste. Los valores de reajuste también serán automáticamente ajustados cuando se editen directamente las etiquetas en esta lengüeta mientras el modelo es reajustado. Add Number Label: Esta opción agrega una etiqueta nueva con datos numericos

a la lista de las etiquetas.

239

Add Text Label: Esta opción agrega a una etiqueta nueva con datos

encadenados al final de la lista de las etiquetas. Delete: Esta opción elimina las etiquetas seleccionadas.

Duplicate: Esta opción duplica las etiquetas seleccionadas. 5.9.1 Tree View

Si se hace clic en el botón “Tree View”, se pueden ver y editar la lista de las etiquetas en el árbol. La ventana tiene una barra de separación en el medio para cambiar el tamaño de cada panel. Se puede hacer clic nuevamente en el botón Tree View para ocultar el panel de tree view. Figura 233. Vista de la pestaña “Labels / Tree View”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. 5.9.2 Label Table View

Si se hace clic en el botón Label Table, se puede ver y editar tablas de etiquetas de la misma vista. La ventana tiene una barra de separación en el medio para cambiar el tamaño de cada panel. El panel Label Table es una vista de tabla

240

adicional de la etiqueta seleccionada. Se puede hacer clic de nuevo en el botón Label Table para ocultar el panel Label Table. Los comandos usados para editar tablas pueden ser usados para editar etiquetas de tablas. El siguiente ejemplo ajustará el valor de la primera célula en la label table “mylabeltable” a 8080 si actualmente es una referencia para este objeto. Settablenum (label(current,”mylabeltable”),1,1,8080); Figura 234. Vista de la pestaña “Labels / Label Tabe”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. 5.10 Layout Tab Page Figura 235. Vista de la pestaña “Layout”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

241

Initial Z Rotation: Este número ajusta la rotación del transportador, o la dirección

de la primera sección del transportador. Esto es lo mismo que editar la rotación Z en la ventana Properties. Add: Este botón agrega una sección recta al transportador después de la fila actualmente seleccionada. Este añade la sección al final del transportador si nada es seleccionado en la tabla. Remove: Este botón elimina la fila seleccionada actualmente en la sección de la

tabla. Elimina la última fila si nada es seleccionado en la tabla. Type: Esta lista deja que el usuario escoja si la sección seleccionada actualmente

sea curva o recta. Length: Este número define la longitud de la sección si es recta. El valor es

ignorado si es una sección curva. Angle: Este número define el ángulo en grados al cual el segmento girará si este

es curvo. Puede ser positivo o negativo y puede ser mayor a 360. Este valor es ignorado si la sección es recta. Radius: Este número define el radio de giro de la sección curva. El radio es medido desde el centro de giro hasta el centro del transportador. Este valor es ignorado si la sección es recta. Rise: Este valor establece la diferencia en altura entre el inicio del segmento y el

final del mismo.

242

5.11 ProcessTime Tab Page Figura 236. Vista de la pestaña “ProcessTime”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Setup Setup Time: Esta lista de selección define la cantidad de tiempo que el procesador espera después de recibir un elemento de flujo para empezar con el proceso de ese elemento de flujo. Use Operator(s) for setup: Si esta casilla es seleccionada el objeto requerirá a

uno o más operadores durante el tiempo de preparación. El operador(es) será retirado después de que el tiempo de preparación haya terminado. Number of Operators: Este parámetro es solamente visible cuando la casilla “use Operator(s) for setup” es seleccionada. Este número determina cuántos

operadores necesita durante el tiempo de preparación. Use the Setup Operator(s) for both Setup and Process: Este parámetro solamente es visible si ambas casillas del “use Operator(s)” son seleccionadas. Si esta casilla es seleccionada, los operadores que fueron requeridos para el tiempo de preparación serán utilizados para el tiempo de proceso. Si de lo contrario no es

243

seleccionada, los operadores usados para el tiempo de preparación serán liberados y operadores nuevos serán requeridos por el tiempo de proceso. Diferentes operadores pueden ser solicitados usando la opción especial de selección en el parámetro “Pick Operator” Process Process Time: Esta lista de selección determina cuánto tiempo se gasta un proceso en con un solo elemento de flujo. Use Operator(s) for process: Si esta casilla es seleccionada el objeto solicitará uno o más operadores durante su tiempo de procesamiento. El operador(es) será retirado después de que el tiempo de proceso haya terminado. Number of Operators: Este parámetro sólo es visible cuando la casilla “use Operator(s) for Process” es seleccionada, y la casilla “use setup Operators for both setup and Process” no es seleccionada. Este número determina la cantidad de operadores que el objeto usará durante su tiempo de proceso. Pick Operator Pick Operator: Este campo sólo es visible cuando cualquiera de las casillas “Use Operator(s)” son seleccionas. Esta lista de selección lleva una referencia al

operador o el despachador que el objeto está usando durante el tiempo de preparación o el tiempo de proceso. Priority: Este parámetro es sólo visible cuando cualquiera de las casillas “Use Operator(s)” son seleccionadas. Este valor ajusta la prioridad de la tarea

secuencia que será enviada al operador. Los operadores generalmente clasifican secuencias de tarea para que las secuencias con mayor prioridad sean realizadas primero. Las secuencias de tareas con la misma prioridad serán realizadas por orden de llegada. Preemption: Este parámetro es sólo visible cuando cualquiera de las casillas “Use Operator(s)” son seleccionadas. Si esta casilla es seleccionada, las tareas

secuenciales enviadas por el operario se adelantarán automáticamente a cualquier

244

función que el operario este haciendo en el momento. Esto podría causar que el operador realice tareas normalmente no permitidas. 5.12 Statistics Tab Page Figura 237. Vista de la pestaña “Statistics”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Throughput Input: Esta casilla muestra el número de elementos que han entrado a este objeto. Output: Esta casilla muestra el número de elementos que han salido de este objeto. Total Travel Distance (Task Executers only): Esta casilla muestra la distancia total viajada por este objeto.

245

State Current: Esta casilla muestra el valor actual del estado del objeto. Cada estado significa que es dependiente en el tipo de objeto implicado. Content Current, Minimum, Maximum, Average: Estas casillas muestran los valores

actuales mínimos, máximos y promedios del objeto. Content History Size*: Este valor limita el número de puntos almacenados en el

historial de contenido. Chart*: Este botón abre una ventana que muestra el gráfico en tiempo vs el

contenido del objeto. Staytime

Minimum, Maximum, Average: Estas casillas muestran los valores de permanencia mínimo, máximo y promedio del objeto. Lower Bound: Este valor es el límite inferior en el eje Y del histograma para el tiempo de permanencia. Cualquiera de los valores inferiores a este valor será mostrado en el gráfico como Underflow. Upper Bound: Este valor es el límite superior en el eje Y del histograma para el

tiempo de permanencia. Cualquiera de los valores mayores a este valor será mostrado en el gráfico como Overflow. Divisions: Este valor es el número de divsiones o “buckets” en el eje X del histograma para el tiempo de permanencia. Display Confidence: Esta casilla permite que se muestre el intervalo de confianza para el tiempo de permanencia promedio.

246

Interval %: Esta casilla permite que editar el intervalo de confianza para el tiempo

de permanencia promedio. Las opciones de confianza en valores de porcentaje son 90, 95 o 99 por ciento de confianza. Chart: Esta botón abre una ventana que muestra el histograma del tiempo de permanencia del objeto.

5.13 TaskExecuter Tab Page Figura 238. Vista de la pestaña “TaskExecuter”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Capacity: Este es el número máximo de los elementos de flujo que puede cargar

el Task Executer en determinado momento. Max speed: Es la máxima velocidad a la cual el Task Executer puede viajar. Acceleration: Este número muestra qué tan rápido el Task Executer gana velocidad hasta que alcanza su máxima velocidad o la velocidad que necesita para detenerse y alcanzar su nodo destino.

247

Deceleration: Este número muestra qué tan rápido el Task Executer pierde

velocidad mientras llega a su destino. Flip Threshold: Cuando el ángulo entre el transportador/operador y el nodo

destino encuentra o excede este valor, el transportador/ operador se voltearán (imagen espejo) de tal manera que queden en frente de la dirección correcta. Esta opción no afectará las estadísticas del modelo si se selecciona o no. Es simplemente para visualización. Rotate while traveling: Si esta casilla es seleccionada, el transportador/operador girará mientras es necesitado de tal manera que se oriente por sí mismo en la dirección de viaje. Si no es seleccionada, este tomará la misma dirección. Esta opción no afectará las estadísticas del modelo si es seleccionada o no. Es simplemente para visualización. Travel offsets for load/unload tasks: Si se selecciona “Travel offsets for

load/unload tasks”, el transportador/operador será trasladado al punto exacto donde el elemento de flujo está siendo recogido o entregado. Si se selecciona “Do not travel offsets for load/unload tasks”, este viajara al origen de la destinación del objeto y recogerá o entregará allí al elemento de flujo. Load time: Esta lista muestra qué tanto tiempo toma un Operator o un Transport para cargar un elemento de flujo. Unload time: Esta lista muestra qué tanto tiempo toma un Operator o un Transport para descargar un elemento de flujo. Break to Requirement: Este campo es ejecutado cuando el TaskExecuter va a un break task o a un callsubtask task. El valor de retorno es una referencia para una secuencia de tareas. La lógica en este campo debe buscar la cola de la tarea secuencia del TaskExecuter, y encontrar la secuencia de tarea a la cual es preciso interrumpir. Dispatcher Pass To: Esta lista de selección devuelve el número de puerto de

salida de la secuencia de tarea a la que debe ser despachada. Si este es 0, entonces la tarea secuencia estará en cola usando la estrategia de cola mencionada en la parte de abajo, y entonces será despachado al primer recurso móvil disponible. Si es su valor es -1, este es devuelto, entonces el Dispatcher no

248

hará absolutamente nada. En caso tal, se usarían los comandos movetasksequence() y dispatchtasksequence() para ejecutar el envío lógico. Dispatcher Queue Strategy: Esta lista de selección devuelve un valor “pirority”

para la secuencia de tarea que es usada para clasificarla en la cola. Por defecto, este simplemente devolverá el valor prioritario dada la secuencia de tarea cuando este fue creado, pero el usuario también puede personalizar las prioridades de la tareas en este campo. 5.14 Triggers Tab Page Figura 239. Vista de la pestaña “Triggers”

Fuente. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0.

Cada objeto puede tener diferente ajuste de Triggers. OnArrival: Esta función es solicitada en un NetworkNode cuando un viajero llega

al nodo. OnBreakDown: Esta función es utilizada en un objeto cuando su MTBF inicia.

249

OnContinue: Esta función es empleada en un NetworkNode cuando un viajero va

hasta el siguiente tramo. OnConveyEnd: Esta función es utilizada en un transportador cuando un elemento

de flujo alcanza su fin. OnCreation: Esta función es utilizada en un Source cuando este crea un nuevo

elemento de flujo. OnEndCollecting: Esta función es utilizada en una Queue cuando esta ha

alcanzado su lote máximo. OnEndDwellTime: Esta función es empleada en un Rack cuando el tiempo de

permanencia de un elemento de flujo ha terminado y este está listo para salir. OnEmpty: Esta función es utilizada en un objeto fluido cuando todo el material

que este estaba en el llegan a 0. OnEntry: Esta función es utilizada en un objeto cuando un elemento de flujo es

instalado dentro del mismo. OnExit: Esta función es empleada en un objeto cuando un elemento de flujo es

retirado del mismo. OnFallThroughHighMark: Esta función es empleada en un depósito cuando el

contenido cae por debajo del valor de altura designado. OnFallThroughLowMark: Esta función es utilizada en un depósito cuando el

contenido cae por debajo del nivel bajo designado. OnFallThroughMiddleMark: Esta función es empleada en un depósito cuando el

contenido cae por debajo de la media designada.

250

OnFull: Esta función es utilizada en un objeto fluido cuando alcanza su contenido

máximo. OnLoad: Esta función es utilizada en un operador o un transportador cuando este

completa la carga de un elemento de flujo. OnMessage: Esta función es utilizada en un objeto cuando otro objeto envía un

mensaje a este usando los comandos sendmessage() o senddelayedmessage(). OnProcessFinish: Esta función es utilizada en un objeto cuando su tiempo de

proceso ha expirado. OnRepair: Esta función es utilizada en un objeto cuando su MTTR expira OnReSourceAvailable: Esta función es utilizada cuando un recurso descendente de un despachador está disponible. OnRiseThroughHighMark: Esta función es utilizada en un depósito cuando el contenido asciende por encima del valor de altura designado. OnRiseThroughLowMark: Esta función es utilizada en un depósito cuando su contenido asciende por encima del valor bajo designado. OnRiseThroughMiddleMark: Esta función es utilizada en un depósito cuando el contenido asciende por encima la marca media designada. OnSetupFinish: Esta función es utilizada en un objeto cuando su tiempo de preparación ha expirado. OnUnload: Esta función es utilizada en un operador o un transportador cuando este completa ladescarga de un elemento de flujo. Custom Draw Code: Esta lista de selección permite que el usuario defina su propio código de dibujo para el objeto.

251

3

EJERCICIOS APLICATIVOS

252

3.1. RECEPCIÓN DE MATERIAS PRIMAS Y DESPACHO DE PRODUCTO TERMINADO

Manufacturas Cocodrilo es una empresa dedicada a la elaboración de todo tipo de productos a base de cuero: billeteras, zapatos, chequeras, chaquetas, pantalones, etc. Esta empresa cuenta con un gama de clientes muy amplia que le permite obtener grandes ganancias debido al gran volumen de ventas que maneja actualmente. Esta empresa tiene 2 tipos de muelles, uno de uso exclusivo para la recepción de las materias primas y el otro para alistar y despachar el producto que se va a enviar a los clientes. El proceso logístico llevado a cabo en cada etapa se describe a continuación: Recepción de vehículos: todos los vehículos (tanto recepción como despacho)

deben pasar por la portería donde se realiza una inspección física por normas de seguridad de la empresa, este proceso tiene una duración cuyo comportamiento puede describirse mediante una distribución normal (5,1) mientras que el tiempo para los vehículos que ya han sido servidos, tiene una duración máxima de 1 minuto. Pesaje de vehículos: todos los vehículos que ingresan a la planta deben ser pesados tanto para cargue como para descargue. El tiempo de pesaje depende del tipo de vehículo, para ello se tiene a continuación la siguiente información: Tabla 3. Tiempos de proceso

TIPO DE VEHÍCULO PESO DEL VEHÍCULO TIEMPO DE PESAJE

1 5 Ton 5 min

2 10 Ton 7 min

Cargue de producto terminado: el proceso de cargue de producto terminado

comprende dos proceso: un alistamiento previo antes del cargue y el cargue como tal. El alistamiento es realizado por 1 persona y aquí un montacargas baja las estibas con producto terminado hacia una zona frente al muelle donde se realiza el alistamiento. El alistamiento por estiba tiene una duración de 5 min y no se inicia

el cargue hasta que no se hayan alistado todas. Terminado el alistamiento, el montacargas comienza a cargar de a 1 estiba debido a que estas tienen un peso de 1 tonelada. Una vez se han cargado todas se entregan los documentos para la salida y se sella la puerta de los vehículos, este proceso tiene una duración de 10 minutos.

253

Descargue de materia prima: cuando los vehículos salen de la báscula se dirigen

al muelle y aquí un operario se encarga de verificar los documentos de recibo (duración 3 min) antes de iniciar el descargue. El descargue como tal tiene una duración de 30 minutos por vehículo y el montacargas toma las estibas y las almacena. Aquí las estibas también tienen un peso aproximado de 1 tonelada. Los horarios de llegada para los vehículos tienen un comportamiento normal (70,30). Si el muelle no está disponible, hay un espacio destinado para que los vehículos se parqueen mientras este se desocupa. Para cada proceso se tiene un montacargas 1 un operario. En base a lo anterior, la empresa quiere saber lo siguiente:

Porcentaje de utilización de cada muelle en un turno de 8 horas (suponga que no hay descansos)

Cantidad máxima de vehículos en el sitio de paqueo (antes de los muelles)

Cantidad de vehículos que entraron al sistema

Cantidad de vehículos que salieron del sistema Construcción del modelo

Abrir Flexsim en la versión 6.0.2 y en las unidades escoger: unidad de tiempo en minutos y unidad de longitud en metros. Figura 240. Unidades para el modelo 1

254

Para el modelo se van a utilizar los siguientes objetos y seguir las conexiones como se indica: 4 Source para los vehículos:So_Cargue1, So_Cargue2, So_Descargue1 y

So_Descargue2, los puertos de salida de estos van conectados a los puertos de entrada de la cola de porteria. 1 Queue de porteria: Que_entrada, el puerto de salida de esta cola va conectada al puerto de entrada de la porteria. 1 Processor para porteria: Pro_porteria, los puertos de salida del Processor van conectados al puerto de entrada de la cola de báscula y el Sink.

1 Queue de báscula: Que_Báscula, el puerto de salida de esta cola, está conectado al puerto de entrada de la báscula. 1 Processor para báscula: el puerto de salida de este Processor, está conectado al puerto de entrada de la cola que representa el estacionamiento. 1 Queue para estacionamiento: los puertos de salida están conectados a los puertos de entrada del combinador y separador. 1 Combiner para el muelle de cargue: el puerto de salida está conectado al

puerto de entrada de la portería, además de que debe tener dos conexiones de entrada la primera es del estacionamiento y la segunda de la cola de alistamiento. Tiene una conexión central y es la correspondiente al Dispatcher de los operadores. 1 Queue para el alistamiento: el puerto de salida de esta cola está conectado al puerto de entrada del combinado. Tiene dos conexiones centrales la primera con el Dispatcher de los montacargas y la segunda con el Dispatcher de los operarios. 1 Rack de producto terminado: los puertos de salida están conectados a los

puertos de entrada de la cola de alistamiento. Tiene una conexión central con el Dispatcher de los montacargas.

255

1 Source para las estibas de producto terminado: los puertos de salida están conectados a los puertos de entrada del Rack de producto terminado. 1 Separator para el muelle de descargue: los puertos de salida están

conectados a los puertos de entrada de la cola de descargue y la cola de vehículo. Tiene conexiones centrales, primero con el Dispatcher de los montacargas y segundo con el de los operarios. 1 Queue para las estibas descargadas: los puertos de salida están conectados a los puertos de entrada del Rack de materia prima. 1 Queue para los vehículos: los puertos de salida están conectados a los

puertos de entrada de la portería. Tiene una conexión central con la cola de las estibas descargadas para crear una referencia. 1 Rack para materia prima: tiene una conexión de entrada con la cola de las estibas descargadas. A continuación se muestra una vista general de cómo debe quedar el modelo una vez sea construido y se creen las conexiones de entrada, salida y centrales (ver figura 241). Figura 241. Modelo construido

256

Hay 4 fuentes, cada una corresponde a un tipo diferente de vehículo, dos para cargue y dos para descargue. Para diferenciarlos en el modelo se debe asignar un Itemtype diferente a cada uno y a su vez establecer el comportamiento de llegada (ver figura 242 – 245).

Figura 242. Ajuste de las propiedades del Source para vehículos tipo 1 que van a

cargar

Figura 243. Ajuste de las propiedades del Source para vehículos tipo 2 que van a

cargar

257

Figura 244. Ajuste de las propiedades del Source para vehículos tipo 1 que van a

descargar

Figura 245. Ajuste de las propiedades del Source para vehículos tipo 2 que van a

descargar

Adicionalmente a cada Source se le adicionará un código que permita agregar un label al flowitem con el fin de saber si este vehículo ya fue o no atendido. Para ello nos dirigirse a la pestaña Triggers en la ventana de propiedades de cada Source y en el Trigger “On Creation” presionar el ícono y asignar el código que hará

esta acción (ver figura 246 – 249). El código en este Trigger debe quedar de la siguiente manera:

258

Figura 246. Ajuste de código en el Triggers On Creation para vehículos tipo 1

que van a cargar

Figura 247. Ajuste de código en el Triggers On Creation para vehículos tipo 2 que van a cargar

Figura 248. Ajuste de código en el Triggers On Creation para vehículos tipo 1

que van a descargar

259

Figura 249. Ajuste de código en el Triggers On Creation para vehículos tipo 2

que van a descargar

Los tres primeros parámetros son automáticos del Trigger, la función que permite agregar el label es “addlabel”. Cuando se escribe una función, Flexsim

automáticamente muestra los parámetros que necesita dicha función. Aquí la función quiere decir que se agrega un label al flowitem llamado “atendido” y se le

asigna un valor de cero, la palabra atendido va en comillas porque en los parámetros de la función el “string” debe ir en comillas. Esto lo se hace en cada uno de los Source. Al igual que el segundo label llamado “capacidad”, se distingue por tipo de vehículo como lo plantea el problema. Los vehículos tipo1 tienen una capacidad de 5 toneladas y los tipo 2 una capacidad de 10 toneladas. La cola que se encuentra antes de la portería no se le realiza ningún cambio pues funciona como un buffer para evitar que los objetos se bloqueen. En el primer “Processor” que representa la portería indicar el tiempo que demoran

los vehículos para entrar y para salir. Primero que todo se hace doble click en el objeto para acceder a la ventana de propiedades y se presiona el ícono en el campo de “process time”, esto con fin de acceder al código para establecer los tiempos en cada caso (ver figura 250). Figura 250. Vista del Process Time para la portería (sin editar)

260

En este punto se observan tres líneas, las dos primeras son automáticas de Flexsim mientras que la tercera me indica el tiempo de proceso (return). Esta línea es la que se va a modificar de tal forma que quede de la siguiente manera (ver figura 251). Figura 251. Vista del Process Time editado

Como son 2 opciones (si no han sido atendidos y si ya fueron atendidos), hay que valerse del label que se le creó a los flowitems en el Source. Para ello se utiliza el condicional “if” que permite establecer múltiples opciones. Línea 5: comentario en una línea para explicar el bloque de código Línea 6: condicional donde “getlabelnum” significa tomar el número de un label y los parámetros son del “ítem” (objeto que tiene el label) y el nombre del label es “atendido”, esto corresponde a la primera condición Línea 7: valor a utilizar si la condición se cumple “return” Línea 8: si la primera condición (línea 6) no se cumple Línea 9: valor a utilizar si la condición 2 se cumple “return” Ahora se deben mirar los puertos de salida y para ello se debe ir a la pestaña “general” y en la sección de “Ports” ver “output ports” (ver figura 252). Figura 252. Vista de los puertos en la pestaña General para la porteria

261

Se puede ver que el puerto de salida 1 es a la cola antes de báscula que representa un buffer y el puerto de salida 2 es al objeto Sink. Terminado esto dirigirse a la pestaña “flow” del mismo “Processor” y establecer los puertos a los

cuales deberían ir los flowitems dependiendo si ya han sido o no atendidos. Se presiona el ícono en el picklist “send to port” para acceder al código (ver

figura 253). Figura 253. Vista del Send to port de la portería (sin editar)

Las dos primeras líneas son automáticas de Flexsim, la línea 5 es la que se va a modificar para enviar a los respectivos puertos (ver figura 254). Figura 254. Vista del Send to port editado

Línea 5: comentario en una línea para explicar el bloque de código Línea 6: condicional donde “getlabelnum” significa tomar el número de un label y los parámetros son del “ítem” (objeto que tiene el label) y el nombre del label es “atendido”, esto corresponde a la primera condición Línea 7: número del puerto al que se enviara el flowitem si la condición se cumple “return” Línea 8: si la primera condición (línea 6) no se cumple Línea 9: número del puerto al que se enviara el flowitem si la condición 2 se cumple “return”

262

En la cola que esta antes de báscula no se realiza ninguna acción, pues esta funciona como un buffer. En el siguiente “Processor” (báscula) en el campo “process time” se presiona el ícono para acceder al código y modificarlo(ver

figura 255) . Figura 255. Vista del Process Time de la báscula (sin editar)

Hay que recordar que el itemtypes 1 y 3 corresponden a los vehículos tipo 1 y los itemtypes 2 y 4 corresponden a los vehículos tipo 2. Para los tiempos de pesaje también se debe utilizar el condiciona if (ver figura 256). Figura 256. Vista del Process Time de la báscula editado

Línea 5 y 8: comentarios de 1 línea para explicar el código Línea 6: condicional if, si “getitemtype” (función que toma el número del Itemtype) del flowitem 1 o 3, esto corresponde a la primera condición Línea 7 y 10: valores que utilizará para el tiempo del pesaje para cada condición respectivamente Línea 9: “else” significa todas las demás opciones de Itemtype que no han sido especificadas A la cola después de la báscula que representa la zona de estacionamiento para esperar la disponibilidad de muelles, se le debe hacer doble click para acceder a la ventana de propiedades y en la pestaña “flow” en el campo “send to port” hacer click sobre el ícono para acceder a la ventana de código (ver figura 257).

263

Figura 257. Vista del Send to port para la cola de estacionamiento (sin editar)

Aquí se especifica a donde deben ir los vehículos dependiendo si vienen a cargar o descargar (ver figura 259). Primero mirar los puertos de salida para poder especificar correctamente a donde se deben dirigir (ver figura 258). Figura 258. Vista de los puertos de salida para la cola de estacionamiento

Como se puede ver el puerto de salida 1 es hacia el muelle de cargue y el puerto de salida 2 es hacia el muelle de descargue. Figura 259. Vista del Send to port de la cola de estacionamiento editado

Línea 5 y 8: comentarios en una línea para explicar partes del código Línea 6 y 9: primera y segunda condición Línea 7 y 10: número de los puertos a los que se van a enviar los vehículos

dependiendo de las condiciones (línea 6 y 9)

264

NOTA: Los || significan “o” lógico en el lenguaje C++, para más información acerca

de las funciones, hacer click sobre la función (color azul) y presionar la tecla F1, esto hará que aparezca una ventana que explica la función. Muelle de Cargue Los vehículos que vienen a cargar producto terminado irán al “Combiner” donde

una vez que ingresen, se deben cerrar los puertos de entrada para evitar que cualquier otro flowitem ingrese a este, pues solo se tiene un muelle de cargue. Cuando el vehículo ingresa al “Combiner” debe identificar cuantas estibas va a cargar y cuantas estibas deben ser alistadas. Para ello hacer lo siguiente:

1. Actualizar la tabla “components list” del “Combiner” ubicada en la pestaña

“Combiner” de la ventana de propiedades de este. 2. Cambiar la variable “máximo contenido” de la cola que pertenece al

muelle de cargue.

Antes de realizar esto en la ventana de propiedades en el campo de “process time” escribir un valor de 10 minutos que corresponde al cierre del vehículo,

puesto que el tiempo de cargue esa determinado por el tiempo gastado por el montacargas en levar las estibas de la cola al “Combiner”. Y se debe seleccionar la opción “User Operator for process” para indicar que se necesita un operario para realizar el cierre del vehículo (ver figura 260).

Figura 260. Vista del Process Time para el muelle de cargue

265

Una vez se haya especificado el tiempo de proceso, dirigirse a la pestaña “Combiner” en la ventana de propiedades y en la lista desplegable del campo “Combine Mode”, seleccionar la opción “Join” (esto indica que se combinaran

todos los flowitems en el objeto contenedor (vehículo) y la información contenido en las estibas que representaran el producto terminado, se perderá (ver figura 261).

Figura 261. Vista de la pestaña “Combiner” para el muelle de cargue

Antes de actualizar la tabla del “Combiner”, se deben mirar y verificar los puertos

de entrada de este para establecer correctamente el objeto contenedor (ver figura 262). Figura 262. Vista de los puertos de entrada para el muelle de cargue

Se puede ver que el puerto de entrada 1 corresponde al estacionamiento y este sería el objeto contenedor (vehículo) y el puerto de entrada 2 es la cola de alistamiento que entregara las estibas de producto terminado. Seguidamente dirigirse a la pestaña “label” en la ventana de propiedades, presionar el botón

266

“Add Number Label” y agregar dos label con el fin de ir guardando el acumulado del tiempo de ciclo de los vehículos en el “Combiner” (ver figura 263). Figura 263. Vista de las etiquetas creadas para el muelle de cargue

Como se puede ver en la figura anterior, se agregaron dos labels, uno llamado “tiempo_entrada” que registrará el momento en el que el vehículo entre al muelle y el otro label “tiempo_ciclo” que acumulará la duración de cada vehículo en el

muelle, esto con el fin de usarlo para el análisis de la utilización. Una vez terminado esto, ir a la pestaña “Triggers” y en el “Trigger” “On Entry” y presionar

el ícono para acceder a la ventana de código. Al modificar el código debería quedar lo siguiente (ver figura 264): Figura 264. Actualización de la tabla The List para el muelle de cargue

267

Línea 1 y 2: comentario en varias líneas Línea 3, 4 y 5: parámetros establecidos por Flexsim Línea 7: establecer un condicional donde se diga si el flowitem ingresa por el

puerto de entrada 1 se realicen todas las funciones contenidas en bloque de código { }, esto debido a que todo debe ejecutarse una vez que ingrese el vehículo

y este ingresa por el puerto de entrada 1 Línea 9, 13, 15, 16, 19, 21, 23, 24, 26 y 27: comentarios en una o varias líneas

para explicar el código Línea 10 – 12: son variables que se encuentran en el árbol del objeto y corresponde al nombre de la tabla “components list” que queremos actualizar,

para ello hacemos click en el ícono para acceder al árbol del objeto. Este ícono se encuentra en la parte inferior de la ventana de propiedades (ver figura 265). Figura 265. Vista del árbol para el muelle de cargue

Como se puede ver en la figura anterior, se accede al árbol del objeto y con ello se pueden ver las variables. La tabla es una variable del árbol llamada “componentlist” y esta me pide especificar la cantidad que debe recibir del

puerto de entrada 2 (estibas en alistamiento), para ello debo tomar la variable “targetcomponentsum” que permite actualizar el campo donde se especifica la

cantidad de estibas a recibir. Ahora como se necesita que una vez este el vehículo en el muelle se especifique cuantas estibas deben alistarse, se debe actualizar el contenido máximo de la cola de alistamiento. Como es un objeto externo y está conectado al “Combiner” por el puerto de entrada 2, se especifica como una variable “Treenode”. Línea 14: esta es una variable declarada entera, porque dicer cuántas estibas debe recibir el “Combiner” y debe alistarse en la cola Línea 17: cuando se especifican cuantas estibas debe recibir, este valor queda

registrado en la tabla. Pero cuando un nuevo vehículo ingresa, este valor debe

268

reiniciarse para permitir que se establezca la nueva cantidad a recibir dependiendo de la capacidad del vehículo. Por ellose utiliza la función “setnodenum” que permite establecer un número en un nodo del árbol (este nodo de la variable targetcomponentsum) que ya se ha declarado anteriormente y con un valor de cero para reiniciarse. Línea 18: la función “settablenum” me permite establecer valores en una tabla, en este caso es la tabla “componentlist” que se declaro anteriormente (variable treenode) y establecer que en la fila 1 y columna 1 (ubicación de la celda donde vamos a establecer el valor a recibir) se va a recibir la cantidad de estibas dependiendo de la capacidad del vehículo. Línea 19: se incrementa el valor de la variable “targetcomponentsum” con la

cantidad de estibas que se van a recibir. Línea 21: se establece el número máximo de estibas que deben haber en la cola de alistamiento y para ellose utiliza la función “setvarnum”, que permite establecer un número en una variable. El primer parámetro corresponde al objeto y este es la cola de alistamiento. Esta cola de alistamiento ya ha sido declarada como una variable “treenode” anteriormente. El segundo parámetro corresponde al nombre

de la variable y para ello se hace doble click en la cola y se presiona el ícono

ubicado en la parte inferior para acceder al árbol del objeto. De igual manera al “Combiner”, dirigirse a las variables y buscar el nombre de la que corresponda

al máximo contenido (ver figura 266). Figura 266. Vista de las propiedades de la cola de alistamiento

Se puede observar que por defecto el máximo contenido de la cola es 1000, esto permitirá ver en el árbol como se llama la variable (ver figura 267).

269

Figura 267. Vista del árbol de la cola de alistamiento

La variable en el árbol se llama “maxcontent”. En esta variable se va a establecer que el contenido máximo sea el de la variable “cantidad_de_estibas_a_recibir” y

esta a su vez depende de la capacidad de los vehículos. Línea 24: usar la función “closeoutput” de la cola de alistamiento con el fin de que cuando entre el vehículo no se pasen las estibas al Combiner sin haberse alistado primero. Línea 27: abrir los puertos de entrada de la cola de alistamiento una vez entre el vehículo (esta debe estar cerrada para que no se aliste a menos que sea necesario y esto ocurre cuando ingresa uno) para que se inicie el alistamiento. Línea 29: aquí se utiliza la función “setlabelnum” que permite establecer valores en un label, en este caso es el label del objeto actual (Combiner) y este label registrará el momento en el que el vehículo ingresa al muelle. El ultimo parámetro es la función “time” que toma el momento actual del reloj de Simulación. Una vez se tenga esto, en la misma pestaña “Triggers” pero en el picklist “On Exit” presionar el ícono para acceder al código. Se modifica este con el fin de

guardar e incrementar el tiempo de ciclo de cada vehículo en el muelle (ver figura 268).

270

Figura 268. Ajuste de etiquetas y color de los flowitems cuando salen del muelle

de cargue

Línea 1 – 3: parámetros y variables establecidas por Flexsim. Línea 5, 7 y 9: comentario en 1 línea. Línea 6: se usa la función “Inc” con el fin de que a medida que se despacha un vehículo el tiempo de permanencia en el muelle sea registrado y acumulado en el label del muelle (Combiner). Entonces los parámetros son: el nodo que se va a incrementar (se apunta directamente al label con la función “label” que especifica un nodo, este nodo pertenece al “Combiner” o “current”, y el label se llama “tiempo_ciclo”), el segundo parámetro corresponde al valor con el que e va a incrementar el label y este es igual a la función “time” que me toma momento en el que el vehículo sale del muelle y a este valor se le resta el tiempo establecido en el label llamado “tiempo_entrada” que también pertenece al “Combiner” (se puede acceder al valor utilizando la función “getlabelnum” que toma el valor

contenido en una label). Línea 8: una vez el vehículo sale del “Combiner” se reporta que fue atendido, para ello se usa la función “setlabelnum” que permite establecer valores en un label. Los parámetros son: el primero corresponde al objeto que tiene el label que en este caso son los vehículos (flowitems), el segundo corresponde al valor que se va a establecer en ese label y se le asigna un valor de 1. Línea 10: para distinguir de forma visual si fueron atendidos, usar la función “colorblack” que permite asignar un color negro a los flowitem.

Una vez se haya configurado todo el Combiner, hacer doble click en la cola de

alistamiento con el fin de crear la secuencia de tareas que permita alistar las estibas cuando ingrese el camión al muelle. Para ello dirigirse a la pestaña “Triggers”, pero al iniciar el modelo se deben tener los puertos de entrada y salida de la cola cerrado, pues quien inicia el proceso es el vehículo que ingresa al muelle (Combiner). Hacer click en el ícono del picklist “On Reset” y establecer

el código que permitirá estas acciones (ver figura 269).

271

Figura 269. Vista del Triggers On Reset para el muelle de cargue

Línea 1: parámetro establecido por Flexsim Línea 3 y 5: comentarios en 1 línea Línea 4: se usa la función “closeinput” para indicar que se deben cerrar las entradas de la cola (currente) Línea 6: se usa la función “closeoutput” para indicar que se cerraran las salidas de la cola (current)

Una vez se tenga esto, hacer click en el ícono del picklist “On Entry” para establecer la secuencia de tareas. Para crear una secuencia de tareas es necesario entender que es una TASK SEQUENCE (dirigirse a la sección correspondiente). A medida que vamos construyendo la secuencia de tareas, es necesario mirar los parámetros que se necesitan para cada tarea y con ello acceder a la ayuda del manual. Pasos: en la barra de herramientas seleccionar en Help / User Manual / Pestaña Contenido / Sección Task Sequence / Opción Task Type Quick Reference, esto permitirá ver los parámetros que se necesitan

para cada tarea (ver figura 270). Figura 270. Vista del manual de usuario en la sección de TaskSequence

272

Al abrir la ventana de código, lo modificar de tal manera que quede lo siguiente (ver figura 271): Figura 271. Vista del trigger On Entry para el muelle de cargue

Línea 1 - 3: parámetros establecidos por Flexsim Línea 5, 6, 11, 12, 14, 16, 18, 20 y 22: comentario en 1 o varias líneas Línea 7: condicional donde se establece que si el contenido de la cola es igual al valor establecido en la variable “maxcontent” se realice la orden de la línea 7 Línea 9: función que cierra los puertos de entrada de la cola Línea 13: creación de la secuencia de tareas donde el objeto que realiza las tareas o las envía a un TaskExecuter es el “Dispatcher” conectado al puerto central 1 que corresponde al “Dispatcher” de los operarios. Línea 15: se inserta una tarea donde el TaskExecuter viaja a la cola de

alistamiento Línea 17: se inserta una tarea donde el TaskExecuter realiza el alistamiento con duración de 5 minutos y estará ocupado (STATE_BUSY) Línea 19: se inserta una tarea donde el TaskExecuter reporte que la estiba ya

esta lista, para ello se escribe en el label de la estiba un valor de 1. La creación del label de las estibas se realiza en un Source adicional que tiene la siguiente

configuración (figura 272):

273

1. Hacer doble click en el nuevo Source para acceder a la ventana de

propiedades. 2. En el picklist del campo “Arrival Style” seleccionar la opción “Arrival

Sequence” 3. Seleccionar la opción “Repeat Schedule / Sequence” 4. En la tabla especificar en el campo “Quantity” 1 Todo lo anterior se hace con el fin de que el modelo no se vuelva pesado al generar estas estibas. Figura 272. Vista de las propiedades del Source para el producto terminado

Terminado esto, dirigirse a la pestaña “Triggers” y en el picklist “On Creation” presionar el ícono para acceder a la ventana del código. Al modificar el código se tiene lo siguiente (ver figura 273): Figura 273. Vista del trigger On Creation del Source para el producto terminado

274

NOTA: los códigos y las funciones que ya se han explicado a lo largo del ejercicio,

no se explicaran dos veces. Línea 21: se inserta donde se envié un mensaje de la cola de alistamiento hacia la misma cola Línea 23: función para despachar la secuencia de tareas Una vez se hace esto, dirigirse al picklist “On Message” de la cola de alistamiento

y hacer click en el ícono para acceder a la ventana de propiedades. Aquí se accede a la ventana para modificar el código y este debe quedar de la siguiente manera (ver figura 274): Figura 274. Vista del trigger On Message para el muelle de cargue

Línea 1: parámetro establecido por Flexsim Línea 3, 4, 7, 8, 14 y 15: comentarios en varias líneas Línea 5: variable entera con la cual se van a verificar las estibas que ya han sido

alistadas Línea 9 - 13: creación de un ciclo “for” donde se va a verificar cada una de las

estibas que se encuentran en la cola. Primer parámetro indica desde que valor va a iniciar el ciclo, el segundo parámetro indica hasta donde va a realizarse ese ciclo y el tercer parámetro indica cómo se incrementara. Declarar que las estibas que se encuentran en la cola de alistamiento son las que se van a revisar, para ello se utiliza la función “Rank” que indica que son los objetos encima de la cola de alistamiento.

275

Línea 16 – 20: bloque de código donde utilizo el condicional “if” para hacer una comparación entre el máximo contenido de la cola de alistamiento (getvarnum) y el valor asignado a la variable “número_de_estibas_listas”. Si la condición se

cumple cerramos los puertos de entrada y abrimos los de salida. NOTA: hay que asegurarse que las estibas que se llevan del “Rack” hacia la cola y de la cola al “Combiner” las lleve el montacargas. Para ello se debe ir a la pestaña “flow” de la ventana de propiedades del objeto de donde van a salir y en la opción “use transport” escoger la opción “center object”. Se debe tener cuidado con las conexiones centrales y para revisar que el índice que lleva el código sea el correcto, revisar en la pestaña “general” del objeto que va a salir el flowitem y revisar los puertos centrales. Muelle de Descargue Como nombra el ejercicio, en el muelle de cargue hay una revisión de los documentos de los vehículos cuya duración es de 3 minutos, mientras el tiempo de descargue tiene una duración aproximada de 30. Para ello se hace doble click en el “Separator” para acceder a la ventana de propiedades del objeto. Allí en el campo de “setup time” seleccionar la “use transport for setup” para que un

operario sea el que haga la revisión del documento y ponemos 3 minutos. En el campo “process time” seleccionar la opción “use Operator for process” para

que sea un operario quien ayude en el descargue junto con el montacargas y poner un tiempo constante de 30 minutos (ver figura 275). Figura 275. Vista de las propiedades para el muelle de descargue (ProcessTimes)

276

En el mismo objeto dirigirse a la pestaña “Separator” y seleccionar la opción “Split” y en el campo “Split / Unpack Quantity” presionar el ícono para acceder

a la ventana de código (ver figura 276). Figura 276. Vista de las propiedades para el muelle de descargue (Separator)

Al modificar el código debe quedar de esta manera (ver figura 277): Figura 277. Vista del código para modificar la cantidad de copias en el muelle de descargue

Línea 1 y 2: parámetros establecidos por Flexsim Línea 4: “return” es el valor en el cual se va a dividir el flowitem, para ello se establece que tome el valor que está en el label capacidad, puesto que se especificó para unos 5 y para otros 10 , el “+1” quiere decir: el “Separator” divide en el número de unidades que especificadas, en este caso el escrito en el label, pero cuenta el flowitem que ingresa, es decir, entra un flowitem y el label dice “10”, entonces salen 10 unidades y entre estas está incluido el que entro, por ello se pone el “+1”, ya que 10 serían las estibas y el +1 sería el vehículo.

Se verifica que los puertos de salida ypuertos centrales queden de la siguiente manera (ver figuras 278 y 279):

277

Figura 278. Vista de los puertos de salida para el muelle de descargue

Figura 279. Vista de los puertos de centrales para el muelle de descargue

En caso que no sea así, hacer click sobre uno de ellos y presionar las teclas “Rank” para acomodarlo de esa manera. En la pestaña “flow” hacer click en la opción “Use transport” y seleccionar del picklist la opción “Conditional transport” (ver figura 280), seguidamente aparece una ventana, hacer click por fuera y presionar el ícono . Figura 280. Vista de la pestaña Flow en el muelle de descargue

278

Se puede observar el código original y se modifica de la siguiente manera (ver figura 281): Figura 281. Vista del código modificado para definir el tipo de transporte en el

muelle de descargue

Funciona de la misma manera, pero se ve más ordenado para explicar. Lo anterior quiere decir: Línea 6 – 12: si el puerto de salida es 1, las líneas 8, 9 y 10 son un bloque de

código estándar para que el objeto se mueva, es decir, como se esta utilizando un TaskExecuter (montacargas) no se quiere que el flowitem que sale por el puerto

1 (cola para vehículo) se mueva con el montacargas sino solo. Línea 13- 16: para todos los demás puertos diferentes a 1 se van a mover por

medio del montacargas (revisar los puertos centrales) Dirigirse a “On Entry”, presionar el ícono para acceder a la ventana de código y se deja de la siguiente manera (ver fura 282): Figura 282. Vista del trigger On Entry en el muelle de descargue

279

Línea 6 y 8: comentarios en una línea Línea 7: se cierran los puertos de entrada, esto se hace para simular que la capacidad del muelle es de 1 solo vehículo y esta no permitirá que ingrese uno nuevo hasta que se dé la orden. Línea 9: establecer el momento en el que entro el vehículo al muelle para el

tiempo de ciclo. NOTA: crear los mismos labels del “Combiner”, los códigos para el tiempo de ciclo son los mismos “Triggers” (ver figura 283).

Figura 283. Vista de las etiquetas en el muelle de descargue

Con lo anterior, dirigirse a la cola de descargue, hacer doble click sobre esta e ir a la pestaña “Triggers”, presionar el ícono en “On Entry” y modificar el código de tal manera que se tenga lo siguiente (ver figura 284): Figura 284. Vista del trigger On Entry en la cola de descargue

Línea 8: cuando una estiba entre a la cola, esta cerrara el puerto de salida con el

fin de que no se almacenen hasta que se haya descargado todo.

280

Línea 10 - 11: se verifica si el contenido de la cola (content(current)) es igual al valor escrito en el label “capacidad” del flowitem (getlabelnum(ítem,”capacidad”) entonces se abren los puertos de salida de la

cola de descargue y la cola del vehículo. Aquí el vehículo si puede ser liberado puesto que ya todo ha sido descargado, pero no puede ingresar ningún vehículo a descargar hasta que se hayan desocupado todo.

NOTA: siempre es importante revisar y los puertos de entrada, salida y centrales con el fin de verificar que el índice que pongamos en las funciones sea el correcto. En el “Trigger” “On Exit” de la misma cola presionar el ícono y modificar el

código de la siguiente manera (ver figura 285): Figura 285. Vista del trigger On Exit en la cola de descargue

Aquí se hace una revisión del contenido de la cola cada vez que un flowitem sale con el fin de verificar que el contenido sea menor o igual a 1 para que se abra el puerto de entrada del “Separator” (inobject(current,1)). Terminado esto dirigirse a la pestaña “Flow” con el fin de poner la opción que permita que las estibas que han sido descargadas sean llevadas al “Rack” con los montacargas (presionar la opción “Use Transport”).

Ahora dirigirse a la cola donde está el vehículo y hacer doble click paea asignarle una capacidad máxima de 1 flowitem (ver figura 286). Seguidamente dirigirse a la pestaña “Triggers” y en “On Entry” se modifica el código para que se pueda

hacer lo siguiente (ver figura 287): Cerrar los puertos de salida Asignarle un color al vehículo para distinguirlo visualmente (rojo)

281

Figura 286. Vista de la ventana de propiedades de la cola para vehículos de

descargue

La capacidad máxima de una unidad se hace con el fin de simular que el vehículo estará en el muelle mientras se descarga todo. Figura 287. Vista del trigger On Entry en la cola para vehículos

Ahora dirigirse al trigger “On Exit” y modificar el código de tal manera que se

obtenga (ver figura 288): Tiempo de ciclo (en el separador) Reportar que el vehículo fue atendido (ítem) Figura 288. Vista del trigger On Exit en la cola para vehículos

282

Lo anterior es el mismo código que se puso en el “Combiner” con la diferencia

que aquí se está poniendo después del objeto en el cual se tiene el label. Para poder hacer este reporte se debe referenciar y para ello se declara como una variable “treenode” llamada “separador” y se utiliza la función inobject pues que esta cola está conectada al puerto de salida del “Separator”.

NOTA: recordar que las estibas se deben mover al Rack por medio del

montacargas. RESPUESTAS Para responder las preguntas presionamos el botón “Reset” de la barra de herramientas, ajustamos el tiempo de Simulacióna 480 minutos (correspondiente a un turno de 8 horas suponiendo que no hay descansos ni fallas) y presionamos el botón “Run” y analizamos los resultados (ver figura 289).

Figura 289. Ajuste del reloj de Simulación

Porcentaje de utilización de cada muelle en un turno de 8 horas (suponga que no hay descansos). Al detenerse la corrida a los 480 minutos el modelo queda de la siguiente manera (ver figura 290):

Figura 290. Vista del modelo después de la corrida

283

Para responder la prime pregunta se debe abrir la ventana de propiedades del Combiner y del Separator para mirar los valores que hay en los labels “tiempo_ciclo” (ver figura 291 y 292).

Figura 291. Tiempo de ciclo en el muelle de cargue

Figura 292. Tiempo de ciclo en el muelle de descargue

Al ver estos valores y tomando como base los 480 minutos del tiempo total corrida se puede concluir que el porcentaje de utilización para cada proceso es: Muelle de cargue: de los 480 minutos del tiempo de corrida, un 78.33% de ese

tiempo el muelle de cargue estuvo en uso. Muelle de descargue: de los 480 minutos del tiempo de corrida, un 51.25% de

ese tiempo el muelle de descargue estuvo en uso.

284

Cantidad máxima de vehículos en el sitio de paqueo (antes de los muelles) Para ello abrir la ventana de propiedades de la cola que representa el parqueadero y en la pestaña “statistics” mirar el valor máximo alcanzado ver figura 293).

Figura 293. Capacidad máxima de la cola para parqueo de vehículos

Cantidad de vehículos que entraron al sistema Para ello mirar las estadísticas de entrada de la portería para ver cuántos flowitems (sin distinguir si vienen a cargue o a descargue) entraron al sistema (ver figura 294). Figura 294. Cantidad de vehículos que entraron al sistema

285

Cantidad de vehículos que salieron del sistema Se cuentan como vehículos que salieron del sistema, aquellos que fueron atendidos, es decir, los que llegaron al Sink (ver figura 295).

Figura 295. Cantidad de vehículos que salieron al sistema

286

3. 2. Evaluación de una línea de producción de velas

Aromas y Ambientes S.A es una empresa dedicada a la producción de todo tipo de velas tanto decorativas como tradicionales. La empresa maneja varias líneas para cada tipo de vela siendo la decorativa el proceso más automatizado. Debido a la alta demanda que presentan las velas tradicionales, esta empresa requiere que se evalué una propuesta de automatización para el proceso de elaboración de un tipo de vela tradicional, la cual se compone de una serie de pasos que se describen a continuación: La vela es en forma cilíndrica y se estima que para elaborar la vela requieren aproximadamente 0.16 litros de parafina. Fundición de a parafina: se propone comprar 1 horno para fundir la parafina, cuya capacidad máxima es de 40 litros. Cada bloque genera aproximadamente 20 litros y estos bloques son llevados desde la zona de almacenamiento hasta el horno por medio de un operario. El horno está conectado a una tubería recta cuya longitud aproximada es de 3 metros y transporta la parafina líquida a una velocidad aproximada de 1.5 litros por segundo. Este horno libera la parafina a una velocidad aproximada de 0.5 litros por segundo. Las tuberías que transportan la parafina líquida pueden contener un máximo de 2 litros moviéndose a través de ellas. Moldeo y secado: hay un tanque conectado en el otro extremo de la tubería, este tanque funciona como un buffer y su capacidad es de 100 litros y mantiene la parafina caliente. Este tanque está conectado a una tubería de las mismas características que la tubería que sale del horno, pero el tanque libera la parafina a una velocidad de 1 litro por segundo acelerando el transporte de la parafina hacia la máquina de moldeo. La parafina ingresa a la máquina de moldeo y secado por la tubería conectada a un extremo. Aquí se llenan los moldes y se produce un secado rápido a base de agua cuya duración aproximada es de 60 minutos, esta máquina de moldeo tiene capacidad para 70 litros de parafina. Después de este tiempo una máquina se encarga de sacar de los moldes las velas de a una unidad para escanearlas y evaluar la calidad del producto. Se estima que se produce un 10% de desperdicio de parafina en los moldes que puede ser reprocesada. En base a esto la empresa quiere saber cuántas velas se pueden producir con la automatización de la línea en un turno de 8 horas si actualmente en la forma como la producen generan 1200 velas. Suponga que siempre hay bloques de parafina disponibles para fundir.

287

Construcción del modelo Abrir Flexsim 6.0.2 y escoger las unidades correspondientes (unidades fluidas en litros, unidades de longitud en metros y unidad de tiempo en segundos, ver figura 296): Figura 296. Unidades del modelo 2

Ahora se dispone a ubicar los siguientes objetos en el layout (ver figura 297): Figura 297. Objetos del modelo

Se realizan las conexiones de tal manera que el modelo en el layout quede de la siguiente manera (ver figura 298):

288

Figura 298. Conexión de los objetos

Una vez se hayan hecho las conexiones, personalizar los objetos con las características que plantea el problema. Primero que todos configurar el Source de manera que represente un

almacenamiento en el cual siempre hay bloques de parafina disponibles, para ello hacer doble click para acceder a la ventana de propiedades, cambiar el nombre y en la lista desplegable “Arrival Style” escoger la opción “Arrival Sequence”. Esto se hace con el fin de que el modelo no se ponga pesado. Seleccionar la opción “Repeat Schedule/ Sequence” (ver figura 299). Figura 299. Selección de la forma de llegada de la parafina

En la pestaña “Flow”, seleccionar la opción para que las cajas se muevan por medio del operario, comose puede ver en las conexiones, está conectado al Source por medio de una conexión central (ver figura 300).

289

Figura 300. Selección del uso de transporte para llevar la parafina

Primeramente hacer doble click en el objeto “The Ticker” para definir los subcomponentes del modelo (ver figura 301). Figura 301. Configuración de los sub-componentes del modelo

Aquí en el campo “Product Component” se establece un valor de 1, puesto que

solo se generara 1 tipo de materia fluido y es la parafina líquida. Siempre que se va a definir los subcomponentes, se debe hacer en este objeto. Estos estarán disponibles en todos los demás objetos que crean material fluido.

290

Ahora se debe personalizar el horno, hacer doble click en el objeto “ItemToFluid”

para acceder a la ventana de propiedades. Aquí se debe modificar la capacidad máxima del horno, cuanta parafina se puede obtener de un bloque y la tasa o velocidad a la cual sale el material fundido. Primeramente presionar el botón “Initial Product” para definir el subcomponente que se va a producir y en qué

porcentaje (ver figura 302). Figura 302. Configuración del Product ID en el horno

Aquí se establece en el campo “Product ID” el valor de 1, puesto que esta máquina se encarga de producir el subcomponente tipo 1, en la lista de los subcomponentes donde dice parafina_líquida, se estableció el valor de 1, ya que es el único subcomponente que se va a manejar en el proceso por lo cual el 1 equivale a 100% (esta es una lista para valores que se establecen en porcentajes). Una vez se establezca esto, modificar los valores nombrados anteriormente (ver figura 303): Figura 303. Configuración de las propiedades en el horno

291

Seguidamente personalizar la tubería que conduce la parafina líquida desde el horno hasta el tanque. Para ello hacer doble click en el objeto para acceder a la ventana de propiedades y modificar la longitud de la tubería, el contenido máximo que puede transportar y la velocidad a la cual transporta el fluido (ver figura 304). Figura 304. Configuración de las propiedades en la tubería 1

Ahora en la pestaña “layot” definir la longitud de la tubería que como se nombra

es en línea recta, suponemos una sola sección (ver figura 305). Figura 305. Longitud de la tubería 1

Se pasa a personalizar el tanque que funciona como buffer y mantiene la parafina caliente (ver figura 306).

292

Figura 306. Configuración del tanque para la parafina líquida

Aquí se definen las tasas o velocidades a la cual entra y sale el material. Seguidamente personalizar la otra tubería que va del tanque de almacenamiento a la máquina de moldeo con las mismas características de la tubería anterior (ver figura 307 y 308). Figura 307. Configuración de las propiedades de la tubería 2

293

Figura 308. Longitud de la tubería 2

Ahora personalizar la máquina de secado y moldeo, para ello hacer doble click en el “FluidProcessor” para acceder a la ventana de propiedades. Este objeto tiene

una característica especial y es que no tiene un campo donde se define el tiempo de proceso, pues este depende de la tasa a la cual va a salir el material. Para ello se debe calcular la tasa en base al contenido máximo y el tiempo de proceso. El valor de la tasa es de 0.02 litros por segundo. Agregar el 10% de desperdicio (ver figura 309). Figura 309. Configuracion de la máquina de secado y moldeo

Después de esto personalizar la máquina que se encarga de retirar las velas y realizar el proceso de verificación de calidad. Para ello hacer doble click en el objeto “FluidToItem” para acceder a la ventana de propiedades y modificar el

contenido máximo, forma de la vela y cuantos litros contiene una vela (ver figura 310). NOTA: el proceso que representa el secado y moldeo en realidad para efectos del

ejercicio representa es el secado, puesto que la forma y cantidad por vela la define el objeto “FluidToItem”.

294

Figura 310. Configuración de la máquina que extrae las velas

Los demás parámetros los dejamos así, puesto que no se especifican más datos. Presionar el botón “Reset y Run” en la barra de herramientas y observar la corrida

del modelo. El reloj de Simulación se ajusta para 28.800 segundos que equivalen a 8 horas del turno. NOTA: modificar la capacidad de la cola a 10.000 velas para evitar que el modelo

se bloquee. A continuación se observa el layout después de la corrida: Figura 311. Vista del modelo al finalizar la corrida

295

Respuesta: Hacemos doble click en la cola para ver cuántas velas hay allí y comparamos con respecto a la cantidad que se produce actualmente: Figura 312. Cantidad de velas al final de la corrida

Como vemos se pueden producir 3.160 velas en el transcurso del turno. En comparación con la forma como se produce actualmente, es viable que la automatización se realice.

296

BIBLIOGRAFÍA

CABRERA, Constanza. Propuesta de un manual de prácticas de Simulaciónde sistemas discretos con PROMODEL, para el desarrollo de ejercicios aplicados en diferentes asignaturas de la carrera Ingeniería Industrial en la Pontificia Universidad Javeriana. Trabajo de grado de Ingeniería Industrial. Bogotá D.C.: Pontificia Universidad Javeriana. Facultad de Ingeniería. Departamento de Procesos Productivos, 2009. 142 p. CONCHA, Pablo. Verificación de parámetros operacionales para la nueva línea de Aserrío de CMPC S.A., Planta Mulchén, mediante el uso de la Simulación. Trabajo de grado Ingeniero Civil Industrial. Concepción: Universidad del Bío - Bío. Facultad de Ingeniería. Departamento de Ingeniería Industrial, 2005. 112 p. Flexsim Software Products Inc. Flexsim Users Guide.Versión 6.0.0. Utah. 2010. p. 725. MASINI, Javier. Como Usar Expertfit en Flexsim. (en línea). (citado 31 de mayo., 2012). Disponible en Internet en: http://www.slideshare.net/jmasini/cmo-usar-expertfit-en-Flexsim-presentation MASINI, Javier. Secuencia de tareas (Task Sequences). (en línea). (citado 31 de mayo., 2012). Disponible en Internet en: http://www.slideshare.net/jmasini/task-sequences MONTOLIVO, Orietta. Simulaciónde los procesos del Te Negro. Trabajo de grado Ingeniero Civil Industrial. Concepción: Universidad del Bío - Bío. Facultad de Ingeniería. Departamento de Ingeniería Industrial, 2010. 141 p. Vatic Consulting Group. Workshop Simulación [diapositivas]. Bogotá D.C, 2012. 103 p. Vatic Consulting Group. Taller educadores día 1 [diapositivas]. Bogotá D.C, 2012. 109 p.

297

Vatic Consulting Group. Capacitación avanzada de Flexsim, tutorial de fluido [diapositivas]. Bogotá D.C, 2012. 40 p. Vatic Consulting group. Capacitación básica de Flexsim, introducción a Flexsim[diapositivas].Bogotá D.C, 2010. 22 p. Vatic Consulting group. Capacitación básica de Flexsim, personalizaciones básicas [diapositivas]. Bogotá D.C, 2006. 25 p. Vatic Consulting group. Capacitación avanzada de Flexsim, tutorial ejecutores de tareas [diapositivas]. Bogotá D.C, 2010. 48 p. Vatic Consulting Group. Capacitación avanzada en Flexsim, tutorial: Programación en Flexscript [diapositivas]. Bogotá D.C, 2012. 37 p.

298