El software WITNESS

Anuncio
ANEXO
A
El software WITNESS
A.1 INTRODUCCIÓN
La aplicación WITNESS permite modelar y simular un sistema dinámico con eventos discretos.
Los eventos aleatorios se pueden modelar mediante distribuciones probabilísticas estándar. También
incorpora herramientas para el análisis de los resultados generados en las simulaciones.
Otra de sus mejores propiedades es la representación de la información y del estado del proceso
de una manera muy visual, de forma que se facilita la comprensión del funcionamiento del sistema
modelado así como la extracción de conclusiones a partir de las simulaciones realizadas.
A continuación se detallan los elementos de WITNESS empleados para este proyecto. Primero se
detallan las características generales del entorno y a continuación los aspectos relacionados con la
implementación de modelos de sistemas.
A.2 WITNESS Y SU ENTORNO
A.2.1 Menús
El menú de WITNESS está dividido en siete grupos: File, Edit, View, Model, Reports, Run, Help
(Ver figura A.1).
A.2.2 Cajas de diálogo y propiedades de las hojas
WITNESS hace uso de las cajas de diálogo de Microsoft Windows para visualizar la información y
recoger la información del usuario. Estas pueden tener una serie de tabuladores superpuestos y
además tenemos cuadros que podemos rellenar (Ver figura A.2).
Las hojas de WITNESS contienen entradas o campos del siguiente tipo:
•
Campos Display: Sólo dan información y no se pueden editar.
•
Campos Input: En estos es donde se puede editar o introducir información como cambiar el
nombre del elemento por ejemplo.
•
List-boxes: Son cajas que dan un listado de items. Para visualizar la listas de opciones basta con
hacer click en la flecha que tienen a la derecha.
•
Botones: Se seleccionan haciendo click sobre ellos y algunos pueden abrir nuevas hojas donde
introducir datos.
149
Figura A.1 Menú Witness
Campos Display
List-Boxes
Campos Input
Botones
Figura A.2 Cajas de diálogos de Witness
150
A.2.3 Visión gráfica y pantallas
WITNESS permite durante la ejecución de la simulación la visualización activa de los cambios que
se suceden; las máquinas cambian de color para indicar cuando están ocupadas, rotas, etc., y las
Parts (en nuestro caso piezas) se mueven de estación conforme se están procesando.
Ya que se pueden hacer modelos largos y complejos, WITNESS permite tener diferentes pantallas
de animación donde se puede visualizar parte o todo el modelo implementado.
A.3 MODELOS
A.3.1 Elementos básicos
Los modelos son construidos con una serie de elementos o bloques. Ésta sección describe los
tres elementos básicos que forman parte de un modelo.
•
PARTS O ENTIDADES (Ver figura A.3): Son usadas para representar los ítems discretos que se
mueven alrededor de la planta. Pueden ser usadas para representar pequeños componentes
electrónicos, grandes tanques de aceite, o cualquier cosa entre ambos. Parts también pueden ser
usadas para representar llamadas de teléfonos y otro tipo de información que fluya. WITNESS
“crea” Parts e introduce dentro de la simulación en el lugar y tiempo que le indique el modelo.
Parts se pueden mover; e incluso pueden combinarse en varias mientras se van moviendo por el
modelo. Son extremadamente versátiles.
Cuando se hace el detalle de las Parts es necesario decidir si son Activas (una cantidad concreta
de Parts se ponen en el modelo un momento concreto ) o algún elemento en la simulación tira de
ellas desde un suministro infinito. Pueden ser destinadas a tener Active Arrivals seleccionando en
la caja de Arrivals de la caja de diálogo de las Parts. Inicialmente no asumen las llegadas activas.
En el Detail se indica cuándo y cómo las Parts deben aparecer en la simulación; cuándo las
acciones deben hacerse a las Parts que lleguen o cuando dejen la simulación; y cuándo los
estadísticos deben ser controlados. Para todo ello deben tener Reglas definidas.
•
BUFFERS O COLAS (Ver figura A.4): En ellos se almacenan las Parts. Las Parts no son activos,
deben ser lanzados hacia otros elementos desde los Buffers o empujados desde estos hacia otros
elementos mediante las reglas de salida.
La opción delay del Buffer puede alterar el comportamiento del Buffer. Seguidamente están las
opciones que se pueden ejecutar:
El Buffer None significa que el Buffer se comporta como pasivo, es decir, las Parts pueden ser
llevadas en cualquier momento a otros elementos.
El Buffer Min significa que el Buffer se comporta como de retraso, es decir, las Parts pueden
estar un tiempo en el Buffer hasta que otro elemento llegue a él.
El Buffer Max significa que el Buffer se comporta como de detención, es decir, que un
elemento puede llevar Parts en cualquier momento, pero si una Part permanece en el Buffer
por un período mayor al período máximo especificado, será movido del Buffer usando una
regla de salida. Así si la regla de salida falla la Part permanecerá en el Buffer indefinidamente,
o hasta que otro elemento se la lleve.
El Buffer Both significa que el Buffer retrasa las Parts que están en él por el mínimo tiempo
establecido en detail, entonces se comporta como un Buffer de detención para las Parts que
están en el Buffer por el máximo tiempo (Buffer Max).
151
Figura A.3 Ventana de definición de una Part (Detail)
Figura A.4 Ventana de definición de un Buffer (Detail)
152
•
El Buffer Max Repeat significa que el Buffer se comporta como un Buffer de detención doble,
es decir, como un Buffer normal de detención, excepto que si falla la regla de salida, retrasa el
suceso hasta que el tiempo de salida de Part es igual al máximo del tiempo de retraso. El
proceso se repite indefinidamente hasta que la regla se cumpla u otro elemento tire de la Part.
MACHINES O ACTIVIDADES (Ver figura A.5): Son uno de los elemento más usados y
representan cualquier trabajo que se ha de realizar a las Parts en cualquier momento, procesarlos
y enviarlos al próximo destino. En las Machines es donde las Parts pueden ser moldeadas y
cambiadas, gastando tiempo procesándolas, cambiando de un estado a otro al tiempo que las
hace avanzar.
Una Manchine puede procesar una Part o más de una a la vez. Puede ensamblar diferentes Parts
juntas dentro de una o disgregar una en varias.
Seguidamente se describen diferentes tipos de maquinas que pueden implementar:
Figura A.5 Ventana de definición de una Machine (Detail)
Single Machina (Figura A.6): Procesa Parts de una en una.
IN
OUT
MACHINE
Figura A.6 Esquema de una máquina simple
Batch Machina (figura A.7): Procesa un lote o grupo de Parts cada vez. Es necesaria
especificar el número mínimo y máximo de Parts que constituyen el lote o grupo.
153
IN
OUT
MACHINE
Figura A.7 Esquema de una máquina por lotes
Assembly Machina (figura A.8): Toma más de una Part y de salida proporciona únicamente
una Part. Es necesario especificar el número de Parts que serán ensambladas en una única
Part.
IN
Assembly Quantily=2
OUT
MACHINE
Figura A.8 Esquema de una máquina ensamblaje
Production Machina (figura A.9): Toma varias Parts y como salida produce varias Parts. Es
necesario especificar el número de Parts que se producirán de manera que el número de
Parts que saldrán será la cantidad que se produce más una. También es necesario indicar el
tipo de Part que se crea.
IN
OUT
MACHINE
Figura A.9 Esquema de una máquina de producción
General Machina (Figura A.10): Saca diferentes cantidades de diferentes Parts. Es necesario
especificar el número de entradas y de salidas.
ANY NUMBER IN
ANY NUMBER OUT
MACHINE
Figura A.10 Esquema de una máquina general
154
Multi Machina (Figura A.11): Una multi-station Machine, procesa una o más Parts a través de
un número de estaciones. Es necesario especificar el número de estaciones y de Parts por
estación. Si el número de Parts es mayor que 1, la Machine es una multi-station batch
Machine.
MACHINE
Stations = 6
Parts = 2
Figura A.11 Esquema de una máquina multiestación
A.3.2 Elementos no básicos
•
LABOUR (Ver figura A.12): Pueden ser operarios, inspectores, herramientas u accesorios. Se
pueden usar en los procesos, reparaciones o mantenimientos de las Machines o para las averías
de los Conveyors.
Figura A.12 Ventana de definición de un operario
155
Es necesario definir el tipo y la cantidad que son necesarios y especificarlos en la caja de diálogo
del elemento que necesite el Labour.
En el momento en que un elemento necesite un Labour, su estado cambiará a “Labour en espera”
y esperará hasta que un Labour pase a disponible. Si hay más de un elemento esperando a
Labour, acudirá al que tenga la prioridad más alta; si más de uno tiene la misma prioridad
entonces irá a la tarea más antigua. La prioridad se indica en el Detail del elemento.
Normalmente un Labour permanecerá en un elemento hasta que el proceso sea completado. No
obstante se puede sustituir un Labour de su tarea para que efectúe operaciones más críticas.
•
CONVEYORS (Ver figura A.13): Se utilizan para satisfacer los requerimientos de movilidad de las
entidades por el modelo.
En Witness existen dos tipos de Conveyors:
o Conveyor Fixe: Mantienen la distancia constante entre las Parts. Si el Conveyor para, la
distancia entre las Parts en él se mantiene.
o Conveyor Queueing: Permite acumular Parts hasta que el Conveyor esté lleno.
Figura A.13 Ventana de definición de una manutención o conveyor
En ambos casos es necesario indicar los siguientes parámetros en la pantalla Detail (Ver
Figura A.13):
o Length in Parts: Se refiere a la longitud del Conveyor en unidades de posiciones de Parts en el
Conveyor (por ejemplo, si el Conveyor mide 30 metros de largo, y una Part mide 0.5 metros de
largo, hay como máximo 60 posiciones de Parts).
o Max. Capacity: Puede suceder que existan restricciones de no poner más de un cierto número
de Parts aunque quepan, por ejemplo por motivos de peso.
156
o Index Time: Es el tiempo requerido para indexar una posición, o lo que se conoce como
tiempo ciclo, que es el tiempo que se tarda en recorrer desde el principio hasta el fin, partido
por la longitud de las Parts.
El ejecutar muchos Conveyors en el modelo puede afectar a la velocidad de ejecución. Los
Conveyors sólo atentan a los inputs y outputs de los ciclos, mientras que en las Machines los
inputs se realizan tan pronto como haya Parts disponibles y los outputs cuando hay espacio libre.
A.3.3 Reglas de entrada y salida
Las reglas de entrada y salida se usan para describir como fluyen las Parts a través de los elementos
del modelo. Las reglas de entrada se utilizan para llevar una Part al elemento y las reglas de salida
para echarlas fuera. Si un elemento no tiene activas las órdenes de “tirar de” entonces está en
“espera”, con lo cual nunca recibirá una Part a no ser que le sean empujadas. De igual forma, un
elemento que no tenga activadas las órdenes de salida “empujar a” estará en “espera” y las Parts no
saldrán de él hasta que otro elemento tire de ellas. El estado “esperando” es el que tienen todos los
elementos por defecto al ser creados.
•
REGLAS BÁSICAS DE ENTRADA Y SALIDA: Son PULL y PUSH respectivamente. La
construcción de las órdenes es la siguiente:
PUSH to ELEMENTO1
Las Parts salen de un elemento que las empuja hasta otro
llamado ELEMENTO1.
PULL from ELEMENTO2
Las Parts entran en un elemento que tira de ellas desde otro
llamado ELEMENTO2.
Estas órdenes deben estar describas en el Detail del elemento.
•
RESUMEN DE REGLAS DE ENTRADA: A continuación se explica la estructura de las reglas
de entrada más usadas.
WAIT: El elemento está “esperando” hasta que las Parts son empujadas hacia él. Es la regla
por defecto de todos los elementos.
PULL: Tira de una lista de estaciones por orden preferente.
MOST: Tira de la Part que esté en el elemento con más entidades (se especifica la entidad)
de una lista.
LEAST: De una lista coge el elemento que tenga menos entidades (se especifica la entidad).
PERCENT: De una lista coge un porcentaje de cada elemento que aparezca en ella,
previamente especificado.
SEQUENCE: Toma las Parts de una lista siguiendo una secuencia y unas reglas en caso de
no disposición.
IF: Si una expresión es cierta entonces realiza una serie de acciones.
SELECT: Selecciona de donde toma Parts en función de una expresión.
BUFFER: Sólo para Machines; crea una buffer de entrada.
MATCH: Permite a una machine tener distintas entradas.
•
RESUMEN DE REGLAS DE SALIDA: A continuación se explica la estructura de las reglas de
salida más usadas.
WAIT: El elemento está “esperando” hasta que las Parts son estiradas desde él. Es la regla
por defecto de todos los elementos.
PUSH: Empuja a una lista de estaciones por orden preferente.
157
MOST: Empuja la Part hacia el elemento con más entidades (se especifica la entidad) de una
lista.
LEAST: De una lista empuja hacia el elemento que tenga menos entidades (se especifica la
entidad).
PERCENT: De una lista empuja un porcentaje a cada elemento que aparezca en ella,
previamente especificado.
SEQUENCE: Empuja las Parts de una lista siguiendo una secuencia y unas reglas en caso
de no disposición.
IF: Si una expresión es cierta entonces realiza una serie de acciones.
SELECT: Selecciona hacia donde empuja Parts en función de una expresión.
BUFFER: Sólo para Machines; crea una buffer de salida.
Las Parts pueden ser estiradas del WORLD (entran en el modelo) o empujadas a SHIP, SCRAP o
ASSEMBLE (dejan el modelo).
Figura A.14 Ventana de Detail de una Machine
A.3.4 Acciones y elementos lógicos
Usando Acciones se pueden especificar instrucciones lógicas al modelo, permitiendo modelar los
cálculos y fórmulas que se deciden en la vida real. Estas acciones pueden llevarse a cabo en la
ejecución de la simulación.
Las acciones pueden usarse para las siguientes operaciones:
• Manipular variables y atributos
158
•
•
•
•
•
•
•
Controlar Parts
Leer y escribir datos en un fichero
Producir informes estadísticos
Crear diálogos entre el modelo y el usuario
Cambiar el tipo de las Parts
Grabar valores en un histograma
Etc....
Las acciones ocurren cuando se produce un cambio de estado en un elemento, y en cada caso se
editan en una ventana distinta:
•
Machines:
ACTIONS ON START..................... Cuando la máquina comienza el ciclo.
ACTIONS ON FINISH..................... Cuando la máquina termina el ciclo, cuando la Part
abandona la máquina.
ACTIONS ON DOWN..................... Cuando la máquina entra en avería.
ACTIONS ON REPAIR................... Cuando finaliza la avería.
ACTIONS ON START SETUP........ Cuando la máquina entra en mantenimiento.
ACTIONS ON FINISH SETUP….... Cuando la máquina acaba el mantenimiento.
•
Part:
ACTIONS ON CREATE................. Cuando la Part es creada, cuando entra en la simulación.
ACTIONS ON LEAVE.................... Cuando la Part deja la simulación.
•
Conveyors:
ACTIONS ON JOIN....................... Cuando la Part se une al Conveyor por la parte de atrás.
ACTIONS ON REACH FRONT….. Cuando la Part deja el Conveyor por la parte de delante.
•
Buffer:
ACTIONS ON IN............................ Cuando la Part se encuentra en el Buffer.
ACTIONS ON OUT........................ Cuando la Part sale del Buffer.
A.3.5 Atributos
Los atributos son características de las Parts, por ejemplo, color, tamaño, tiempo de ciclo, etc.
Cada atributo puede ser un número real, entero, una referencia a otro elemento del modelo, etc.
Cada Part puede tener un número de Atributos asociados a él y cada uno puede tener distintos
valores en diferentes tiempos de la simulación. Cada Atributo y el valor del mismo siguen a la Part
durante la ejecución del modelo.
•
ATRIBUTOS UNIVERSALES: Hay 5 atributos que todas las Parts tienen automáticamente
(predefinidos o Atributos de sistema). Estos son:
DESC: Una descripción de 4 caracteres para la Part.
PEN: El color con el que la Part está representada en la pantalla.
ICON: El icono con el que la Part está representada en la pantalla. Se necesita además el uso
de DESC y para el color del icono el uso de PEN.
STAGE: Se usa en la ruta de una Part y es la etapa actual en la ruta.
TYPE: El nombre de la Part.
159
Cuando se usan Part Routin (en una ruta) hay otros dos atributos universales:
R_CYCLE: El tiempo ciclo del STAGE (etapa) actual en la ruta.
R_SETUP: El tiempo de setup del STAGE (etapa) actual en la ruta.
•
GRUPOS NUMERADOS DE ATRIBUTOS: Ciertas características son relevantes sólo para ciertas
Parts; por esta razón Atributos y Parts son asignados a grupos, hay 10 grupos numerados de 1 a
10. Una Part podrá tener los Atributos definidos en un mismo grupo.
•
ATRIBUTOS FIJOS O VARIABLES: Las Parts pueden ser definidas con Atributos fijos o
variables; las Parts con Atributos fijos toman menos memoria que las Parts con Atributos
variables.Las Parts con Atributos variables pueden tener diferentes valores para cada individuo, y
estos valores pueden cambiar en cualquier momento. Las Parts con Atributos fijos no pueden
tener diferentes valores para cada individuo, es decir, los Atributos sólo pueden tener un valor.
•
ATRIBUTOS MODIFICADOS: Normalmente los atributos sólo pueden ser usados cuando la Part
está en curso, y sólo el Atributo de la Part en curso puede ser referenciado. Por ejemplo, si en
acción al final del ciclo existe una acción de cambiar un atributo, sólo se cambiará en de la Part
que en la máquina. Añadiendo una modificación Modificar el atributo podemos inspeccionar o
cambiar el valor de los Atributos de las Parts en cualquier parte del modelo. La expresión para
modificar un atributo es la siguiente:
Element {AT position} : Attribute
A.3.6 Variables
Las variables son muy usuales cuando los datos van a almacenarse o los usos no son relativos a
Parts individuales o no se pueden usar directamente en el Detail del elemento.
Las variables son valores a los que se puede acceder desde cualquier parte del modelo.
Las variables usualmente tienen sus valores asignados en un grupo de Acciones. Las más
importantes pueden tener una cantidad de más de uno, autorizando la creación de listas. Estas
variables pueden ser agrupadas en forma de matriz de dos dimensiones, poniendo la cantidad x, y.
A.3.7 Funciones del sistema
Una función puede retornar un número real, entero, nombre o string, y puede ser usado en
cualquier plazo en que la Variable o constante del mismo tipo se use. WITNESS tiene una lista de
funciones “intrínsecas”:
•
INFORME Y ESTADO DE LAS FUNCIONES: Estas funciones tienen los valores en los informes e
informan del estado en curso de los elementos especificados.
ISTATE: Número que indica el estado del elemento especificado.
NCREATE: Número de Parts del tipo especificado que han sido creadas.
NFREE: Cantidad del espacio libre del elemento especificado.
NPARTS: Número de Parts en el elemento especificado.
PUTIL: Porcentaje de tiempo del elemento especificado que se ha gastado en el estado
especificado.
LIFE: El tiempo de vida de permanencia de tiempo de mantenimiento de la Machine en
términos de número de operaciones.
160
•
FUNCIONES ARITMÉTICAS: Estas Funciones llevan incorporadas operaciones aritméticas.
FLOAT: Especifica un entero como número real.
IFIX: Parts enteras de un número real.
MAX: Máximo de la lista de número enteros.
MIN: Mínimo de la lista de números enteros.
MOD: Devuelve el resto de dividir un entero por otro entero.
Una lista llena de funciones disponibles y Details sobre su uso está en el User Manual o en el
Quick Reference Booklet.
A.3.8 Histogramas
El histograma es un gráfico de barras, y es útil para determinar el rango de los valores observados
para algunos parámetros de la simulación.
Los histogramas de WITNESS permiten representar gráficamente los resultados de la simulación
en pantalla.
WITNESS permite crear todos los gráficos que se desee y grabar valores en ellos según
convenga. Las barras deben ser dibujadas vertical u horizontalmente, permitiendo producir “Gantt type
charts”. Los valores deben ser grabados en un histograma usando el comando RECORD en un grupo
de acciones en cualquier lugar del modelo:
RECORD Valor en un Histograma
Una barra de una altura específica se puede dibujar usando el comando de acción DRAWBAR:
DRAWBAR Valor de Histograma, altura, color
La altura de una barra en el histograma puede ser incrementada usando el comando de acción
ADDBAR:
ADDBAR Valor de Histograma, altura, color
Ejemplos de uso de histogramas pueden ser tiempos de reparación, el tiempo que tardan las
piezas en desplazarse a través del sistema.
Las siguientes características deben ser preparadas y representadas como convenga en el
histograma:
Nombre del Histograma
Histograma
Los valores Máximo y Mínimo que graba
Color de las barras
Icono
A.3.9 Ficheros
WITNESS proporciona la facilidad de utilizar ficheros de datos en el modelo. Se pueden meter
valores en un fichero (fichero de lectura), y se pueden sacar valores (fichero de escritura).
Los ficheros de entrada y los de salida tienen diferentes usos, por ejemplo:
161
• Valores específicos para ser usados en el Detail de los elementos, como el tiempo de ciclo de
una máquina.
• Producir informes en función de los requisitos, con el layout y contenidos propios.
Estos ficheros son de texto, y pueden ser editados utilizando un procesador de texto o editor e
imprimir en la impresora. Los valores que se leen deben ser valores constantes de uno de los cuatro
tipos de datos de WITNESS; entero , real, nombre o cadena de caracteres.
•
FICHEROS DE LECTURA: El comando de la acción de leer “READ” se usa para leer datos de
un fichero. Esto se usa en cualquier declaración de acciones: Acciones de inicialización o
Acciones de principio de ciclo de una máquina.
Cada vez que WITNESS encuentra una declaración “READ” leerá una nueva línea del fichero.
No obstante, si un punto y coma (;) se encuentra al final de la declaración “READ” la siguiente
lectura la hará donde acabo la última lectura. Si la declaración “READ” intenta leer más valores
de los que existen en el fichero tendremos un error. Los datos de un fichero deben ser leídos en
variables o atributos.
El formato de la declaración “READ” es:
READ nombre del fichero lista de variables o atributos.
•
FICHEROS DE ESCRITURA: El comando de la acción escribir “WRITE” se usa para escribir en
un fichero de datos. Los valores que se escriben deben ser también enteros, reales, nombres o
cadena de caracteres. Cualquier declaración “WRITE” cera una nueva línea en el fichero.
Cuando se usa el comando “WRITE” un número de caracteres especiales se utilizan para
realizar el formato del fichero:
\f: Introduce la alimentación de formatos.
\n: Introduce una nueva línea.
\t: Introduce un espacio tabulado.
El nombre del fichero de WITNESS se usa para referenciar el fichero en WITNESS, en
declaraciones “READ” y “WRITE”. El nombre actual del fichero se refiere al fichero se refiere al
fichero del disco duro o disquete. Esto no tiene por que ser el mismo nombre que el fichero de
WITNESS. También es posible especificar el directorio en el cual se encuentra el fichero.
Esta facilidad es útil cuando se comparan distintas posibilidades de datos. Los datos se pueden
guardar en un número de ficheros y el nombre del fichero actual cambiar para cada experimento
para referenciar el fichero correcto.
El formato de la declaración “WRITE” es:
WRITE nombre del fichero lista de variables o atributos.
Los datos obtenidos en los ficheros de texto que se obtienen de WITNESS pueden importarse
desde una hoja de Excel, convertirlos en tablas y obtener gráficas que nos expresan claramente
la evolución del modelo a lo largo del tiempo.
162
Descargar