MANUAL BÁSICO DE WITNESS

Anuncio
MANUAL BÁSICO DE
WITNESS
EL PAQUETE DE SIMULACIÓN WITNESS.
1. INTRODUCCIÓN.
En la actualidad hay en el mercado gran cantidad de software
de simulación debido a la creciente demanda que está teniendo esta
técnica de ayuda a la toma de decisiones.
Entre los paquetes disponibles se encuentran Arena, Automod,
Instrata, Mentor, Pro-Model, Simple ++, Taylor II y Witness, cada
uno con características distintas en cuanto a su capacidad de
modelización, su rapidez, su rigurosidad estadística, su capacidad
gráfica, su facilidad en el análisis y su coste. Decidirse por uno u otro
dependerá de la experiencia que tenga el analista con los diversos
programas, del tipo de sistema a simular, así como del coste que
supone para la empresa la adquisición del paquete, el hardware
necesario para su utilización y el aprendizaje del personal.
2. EL PAQUETE DE SIMULACIÓN WITNESS (V. 8.0).
Algunas de las ventajas más importantes que presenta Witness
y que le hacen apropiado para su elección como herramienta de
trabajo son las siguientes:
1. Las personas pueden conseguir un compromiso trabajando juntos
como equipo en la creación y uso de los modelos Witness.
2. Los modelos pueden ser creados y probados con pequeñas
variaciones en los distintos estados, esto simplifica de gran
manera la construcción del modelo y ofrece la posibilidad de
identificar errores en la lógica y hace el modelo más fiable.
3. El modelo puede ser cambiado durante el tiempo de ejecución, los
cambios son incorporados inmediatamente, ajustando lo más
rápidamente posible el modelo construido.
Además Witness puede ser utilizado en una gran variedad de
sectores y entornos:
• Industria del automóvil.
• Industria química.
• Electrónica.
• Industria aeroespacial.
• Ingeniería.
• Alimentación.
• Papel y cartón.
• Banca y finanzas.
• Transporte.
• Gobierno.
El paquete Witness es suministrado por la empresa británica
AT&T Istel. En 1979 la compañía Istel fue adquirida por la
multinacional ATT, constituyendo así una organización dedicada a
proporcionar
conocimientos
técnicos
sobre
ordenadores
y
comunicaciones.
AT&T Istel lanzó en 1979 el paquete de simulación interactivo
SEE WHY (que ya incluía gráficos animados), el cual derivó en la
aparición del paquete Witness en el año 1986.
2.1. CARACTERÍSTICAS GENERALES DEL PAQUETE.
Witness es un paquete de simulación interactiva atractivo
fundamentalmente para el mundo industrial por los siguientes
motivos:
• permite crear modelos de sistemas en los que fluye algún elemento
(admite hasta 32000 parts) a través de distintos puestos de
trabajo (machines), pudiendo modelizarse además almacenes
(buffers), transportadores (conveyors), trabajadores (labours),
transportes (tracks & vehicles), turnos de trabajo (shifts), etc...,
que ayudarán a definir el sistema a modelizar.
• permite el empleo de gran cantidad de variables y atributos para, a
través de su lenguaje de programación propio, poder modelizar
correctamente el funcionamiento de nuestro sistema.
• permite crear modelos gráficos con movimiento, dotando a la
simulación de gran claridad, entendimiento, rigurosidad e impacto
visual.
• ofrece gran cantidad de datos como salida de un experimento de
simulación para su posterior estudio, bien directamente, a través
de los informes generados, o bien volcando los ficheros de datos
generados
a
alguna
aplicación
informática
que
permita
su
tratamiento.
• es
fácil de comprender para una persona sin conocimientos
previos, aunque el dominio de todos sus elementos y su lenguaje
propio de programación es algo más complejo.
• es fácil de utilizar gracias al entorno Windows con el que trabaja:
ventanas, cajas de diálogo y menús desplegables manejables con
el ratón.
• dispone de un sistema de ayuda on-line, pulsando F1 en cualquier
momento.
• permite la utilización en un experimento de datos incluidos en
ficheros realizados por otro programa (una hoja de cálculo como
Excel, por ejemplo) y generar los resultados de la simulación en
forma de un fichero manipulable desde otro programa informático.
• puede
“editarse”
(construirse,
modificarse)
un
modelo
sin
necesidad de correr Witness mediante un programa de edición de
texto como Write (Windows), manipulando un archivo librería *.lst.
• permite crear ficheros de arranque en formato ASCII (con Write,
por ejemplo) para poder concatenar varios experimentos uno tras
otro, de modo que se pueda dejar corriendo el ordenador hasta
que finalice todas las simulaciones programadas. Después será
posible examinar el modelo en aquel punto de la simulación al que
ha llegado.
• pueden crearse submodelos que puedan ser copiables, borrables,
desplazables e interconectables, lo que permite un diseño modular.
• permite realizar gráficas (timeseries) e histogramas (histograms)
de determinados parámetros del modelo que interese estudiar,
para facilitar su comprensión y ver su variación temporal.
• pueden emplearse gran cantidad de distribuciones de probabilidad,
tanto teóricas como empíricas, para proporcionar aleatoriedad al
modelo (dispone de 1000 series de números aleatorias distintas).
Así mismo, es posible establecer varios tipos de “roturas” a la vez
en cada uno de los centros de trabajo del modelo.
2.2. MODELIZANDO CON WITNESS.
Una realidad industrial puede estar formada por un conjunto de
piezas que fluyen a través de un conjunto de máquinas en las que
son mecanizadas, montadas, divididas, etc...
Además de esto, el sistema puede estar compuesto por
diversos transportadores (que llevan las piezas de un lugar a otro),
almacenes, operarios (necesarios para que una máquina funcione,
para hacer reparaciones, para hacer cambios de herramienta, etc...),
vehículos (para transportar las piezas), etc...
Por otra parte, las piezas deben fluir en un determinado orden y
sentido, pueden fluir solas o en grupo, las máquinas y operarios
harán una cosa u otra en función de ciertos parámetros, etc...
Esta realidad industrial puede ser plasmada en un modelo
Witness empleando los elementos de los que dispone el programa así
como programando el modelo mediante una lógica de control
adecuada.
En Witness, los modelos se construyen de acuerdo a unos
procedimientos concretos y utilizando unos elementos determinados.
Cada
elemento modelizará a alguna parte del sistema real que se
desea simular, pero no es necesario tratar de plasmar todos y cada
uno de los elementos del sistema real, sino sólo los indispensables.
Cada elemento de Witness puede simular gran variedad de
cosas, y una misma cosa se puede simular por lo general con varios
elementos indistintamente. La elección de un elemento u otro debe
hacerse en función de la sencillez y facilidad de interpretación del
modelo resultante.
2.3. CONSTRUCCIÓN DE UN MODELO CON WITNESS.
Primero se va a describir los pasos a seguir para la creación de
un modelo Witness, después ya se estaría en condiciones de utilizar
el modelo y finalmente se podrán
extraer conclusiones con los
resultados de los experimentos realizados y con los
informes
obtenidos, para profundizar en el estudio del sistema modelizado.
Figura 1 Pantalla inicial
Tras un estudio del sistema que se pretende modelizar se
deberán conocer los elementos que constituyen nuestro sistema real
y su funcionamiento, para empezar a pensar en elegir los elementos
de Witness adecuados para modelizar cada elemento real, teniendo
en cuenta hacerlo de un modo sencillo y eficaz. Determinado esto,
podemos comenzar a construir el modelo y así entraremos en el
programa apareciendo inicialmente la pantalla de la figura 1.
Para empezar a trabajar se creará un nuevo modelo, para esto
se pinchará sobre Model y del desplegable que aparece sobre
Elements y entonces se rellenará los campos que aparecen en la
siguiente pantalla, relativos al título del modelo, autor y comentarios.
Figura 2 Definición de modelo
A partir de ahora se pasará por tres etapas diferentes que
son las siguientes:
• Define: se crean o definen los elementos de los que consta el
modelo (tanto físicos como lógicos), dándoles un nombre y una
información básica acerca de los mismos. Sin el desarrollo de esta
fase no pueden desarrollarse las otras dos.
• Display: se crea la representación gráfica del elemento en el
modelo con el objeto de hacer la simulación más intuitiva y fácil de
comprender. Esta fase no es imprescindible, pero sí recomendable
para obtener la visualización del sistema y detectar errores.
• Detail: se detallan todas las características del elemento, las
reglas
lógicas
que
permiten
su
interacción
con
los
demás
elementos (reglas de entrada y salida) y las acciones que deben de
simularse cuando se produce un hecho determinado en el elemento
(actions).
Las fases no suelen desarrollarse secuencialmente, sino que se
va pasando de una a otra según se va avanzando en la construcción
del modelo. A veces habrá que modificar elementos, ya que el
proceso de modelización tiene una constante retroalimentación.
Figura 3 Opción Model - Elements
Para empezar la construcción del modelo seleccionando una vez
más las opciones Model y Elements consecutivamente, y así
aparecerá la siguiente pantalla de la figura 3., que ofrece múltiples
opciones.
Para crear los elementos del modelo, se utilizará la opción de
selección de elementos, para cada uno de los cuales se puede elegir
entre las siguientes opciones, para introducir sus características, las
tres primeras corresponden a las anteriormente explicadas:
• DEFINE
• DISPLAY
• DETAIL
• CLONE: Es posible clonar elementos, de los que habrá que indicar
su nombre y se podrá elegir para estos la opción DISPLAY.
• COPY DISPLAY, COPY DETAIL, PASTE DISPLAY, PASTE DETAIL: Se
pueden
usar
estos
botones
para
copiar
las
características
introducidas en DISPLAY o DETAIL de un elemento a otro
• FILTER: Permite reducir la lista de todos los elementos definidos en
el modelo. Se puede reducir el tamaño de esta lista filtrando los
elementos que no se necesitan ver en ese momento, las opciones
son:
-
ALL: Selecciona los elementos (por defecto).
-
TIPO: Permite elegir algún tipo en concreto.
-
SELECTION: Antes de pinchar en filtrar se seleccionan los
elementos requeridos.
Figura 4 Opción para filtrar los elementos del modelo.
• SORT: Si el modelo tiene muchos elementos, se pueden reordenar
y reducir el tamaño de la lista para hacerla más manejable.
Se puede ordenar la lista de las siguientes formas:
-
DEFAULT: Ordena la lista en el orden en el que los
elementos fueron introducidos en el modelo.
-
ALPHABETICALLY: Ordena los elementos alfabéticamente.
-
BY TYPE: Los elementos son ordenados por el tipo, o tipos,
seleccionados.
-
BY CUSTOM: Eligiendo esta opción se permite desde otra
ventana de diálogo reordenar los elementos moviéndolos
arriba o abajo.
Figura 5 Opción para ordenar los elementos del modelo
•
PICK FROM DISPLAY: Permite seleccionar los elementos desde la
ventana de simulación.
•
DELETE: Elimina el elemento o elementos especificados del
modelo. Si un modelo es referenciado por otros elementos de ese
modelo, no se permitirá que sea eliminado.
2.3.1. ELEMENTOS DE MODELIZACIÓN DE WITNESS.
Un modelo de Witness está compuesto por diversos elementos
físicos conectados entre sí mediante una serie de reglas lógicas
denominadas reglas de entrada y salida. Cada componente del
sistema real tendrá una representación mediante uno o más
elementos de Witness.
El propósito de la simulación será construir un modelo de un
escenario particular, ponerlo en marcha y recoger resultados,
después hacer cambios en el modelo y ponerlo en funcionamiento
otra vez y comparar los resultados con el modelo original. En la vida
real
esto
sería
muy
caro
y
requeriría
mucho
tiempo
de
experimentación.
Para simular un proceso, Witness utiliza la misma combinación
de gentes, piezas y máquinas que en la vida real. Cada factor de
producción será uno de los llamados ELEMENTOS del modelo.
Hay cuatro categorías de elementos: discretos, continuos,
lógicos y gráficos, a continuación se describen brevemente para ser
tratados con detalle más adelante.
1. ELEMENTOS PROCESOS DISCRETOS
PARTS: Se mueven individualmente en el modelo, por ejemplo,
componentes físicos, personas moviéndose en un supermercado...
BUFFERS: Son lugares donde se almacenan PARTS, por ejemplo,
gente
en
una
cola,
medicinas
en
una
estantería,
tornillos
esperando a ser procesados...
MACHINES: Son elementos muy potentes que son usados para
representar como las piezas se cogen de algún lugar, se procesan
y se envían a otro destino. Pueden manejar una o más partes al
mismo tiempo. También pueden desarrollar varios ciclos en una
estación de trabajo o un ciclo (single cycle) en muchas estaciones.
CONVEYORS: Mueven PARTS desde un punto fijo en el modelo a
otro en un periodo de tiempo
VEHICLES: Transportan PARTS
TRACKS: Son las rutas/caminos por donde circulan los VEHICLES
LABOUR: Recurso que necesitan otros elementos para desarrollar
ciertas operaciones (limpiar, reparar...).
MODULES: Contienen grupos de elementos
2. ELEMENTOS PROCESOS CONTINUOS
FLUIDS: Fluyen de forma continua a través de los elementos que
a continuación se indican. También se pueden utilizar estos
elementos en modelos que no emplean líquidos para representar
por ejemplo, tráfico denso, el correo,...
TANKS: Son los elementos en los que se almacenan los FLUIDS
PROCESSORS: Son equivalentes a las MACHINES pero para los
FLUIDS.
PIPES: Se encargan de conectar PROCESSORS y TANKS.
3. ELEMENTOS LÓGICOS
ATTRIBUTES: Son valores vinculados a un elemento PART. Por
ejemplo, número de cilindros de un motor.
VARIABLES:
Son
valores
que
pueden
ser
accedidos
desde
cualquier lugar del modelo.
DISTRIBUTIONS: Permiten construir la variabilidad del modelo
incluyendo datos que habrán sido recogidos del sistema que se
está recogiendo en el modelo.
FILES: Se pueden emplear para importar valores a la simulación o
para exportar datos que pueden ser usados en otros programas o
informes.
FUNCTIONS:
Son
información
acerca
funciones
del
ya
estado
preparadas
del
modelo,
para
o
devolver
construir
la
ruta/comportamiento del modelo.
SHIFTS: Son modelos de trabajo que pueden ser referenciados por
otros elementos, permitiendo construir el modelo sobre tipos de
secuenciación ya definidos.
PART FILES: Contiene una lista de partes; para cada parte en el
fichero se puede especificar en que momento llega al modelo. Esto
es muy útil para los problemas de programación de horarios,
producción...
4. ELEMENTOS GRÁFICOS
TIMESERIES: Permiten representar sobre la pantalla los resultados
de la simulación de forma gráfica (valores de una variable frente al
tiempo). Resultan muy útiles para determinar tendencias y ciclos
en los modelos representados.
HISTOGRAMS: Permiten representa los resultados de la simulación
en la pantalla en forma de diagrama de barras. Son útiles para
determinar el rango de valores observados de algún parámetro de
la simulación.
PIE CHARTS: Permiten presentar los resultados de la simulación
en la pantalla en forma de gráfico de sectores.
Una vez definidos los elementos del modelo, hay que indicar
cuáles son las relaciones entre ellos y entre que puntos se mueven,
esto se hará utilizando las reglas de salida y entrada que deberán ser
especificadas para cada uno de los elementos.
Definidas ya las relaciones entre elementos es el momento de
poner en funcionamiento el modelo, y se podrán realizar las
modificaciones convenientes en cada caso, como puede ser añadir,
cambiar o borrar elementos y comparar los efectos que producen
estos cambios.
La posibilidad de construir un modelo en el que se pueden
realizar pequeños incrementos y ver que consecuencias producen, va
a resultar ser muy útil para la etapa de validación del modelo.
3. ELEMENTOS: OPCIONES DETAIL Y DISPLAY
En este apartado se describen las características que Witness
permite que se definan de los elementos definidos, tratando con
mayor
detalle
los
elementos
utilizados
para
simular
sistemas
discretos.
3.1. ELEMENTOS PROCESOS DISCRETOS.
3.1.1. PIEZAS (PARTS)
Son los elementos que fluirán a través del modelo, pasando de
unos elementos a otros en función de las reglas de entrada y salida
de los mismos. La entrada en el modelo se realiza desde un elemento
predefinido llamado world o a través de un fichero de piezas -part
file- que indica cuándo entra cada pieza en el modelo y en qué
número,
y la salida del modelo se hace hacia otro elemento
predefinido llamado ship o hacia un fichero de piezas -part file- que
recoge cuándo sale cada pieza del modelo.
Las
piezas
pueden
representar
cualquier
cosa:
paletas,
motores, personas, cartas, bebidas, etc.., qué constituyan aquellos
elementos que fluyen por el modelo.
Las piezas pueden visualizarse en el modelo (display) de una de
las siguientes formas: como iconos, como las 4 iniciales de su
nombre o como un simple contador que señala el número de parts
que hay dentro de un elemento. Para determinar la forma en la que
se visualizará este tipo de elementos se elegirá la opción Display
ofreciendo la siguiente barra de herramientas.
Figura 6 Opción Display Part
Cada pieza puede llevar asociada uno o varios atributos que
pueden tomar distintos valores en
distintos momentos de la
simulación, activando o no diferentes eventos lógicos.
Las piezas pueden moverse individualmente, en grupo, pueden
juntarse o dividirse, pueden transformarse en otro tipo de piezas en
el transcurso de la simulación, etc...
Las características de las Parts que hay que definir en Witness
desde la opción Detail son las siguientes:
Figura 7 Opción Detail Part
NAME: nombre de la pieza (hasta 8 caracteres).
TYPE: indica si los atributos de la part serán fijos (no puede cambiar
su valor durante la simulación) o variables (puede variar su valor
durante la simulación).
VALUES: da valor a los atributos fijos, caso que sean de este tipo. A
los variables se les da valor en el campo Actions.
GROUP NUMBER: indica en número del grupo de atributos variables al
que pertenece el part.
ARRIVAL MODE: indica si la llegada activa de piezas al modelo desde
el world está activada o no. Se debe emplear el modo PASIVE cuando
las piezas entren a través de un Part file).
MAXIMUN ARRIVALS: máximo número de piezas que pueden entrar al
modelo.
INTER ARRIVAL TIME: tiempo entre llegadas de las distintas piezas al
modelo.
FIRST ARRIVAL AT: momento temporal en que la primera pieza llega
al modelo.
LOT SIZE: tamaño del lote de piezas que llegan a la vez al modelo.
SHIFT: turno de trabajo en el que llegan las piezas.
OUTPUT RULE: regla de salida que indica a qué elemento y bajo qué
condiciones será enviada la pieza a dicho elemento.
PART ROUTE: permite definir la ruta que seguirá la pieza a través del
modelo, identificando los distintos puntos o stages por los que deberá
pasar. Para utilizar un part route hay que emplear como reglas de
entrada/salida de los distintos elementos push/pull to Route.
CONTAINS FLUIDS: indica si ese part es un fluido, su tipo y su
volumen.
ACTIONS: indican las órdenes lógicas programadas a ejecutar cuando
una pieza es creada (create) o abandona el modelo (leave). Estas
acciones permiten “programar” el modelo de modo que actúe como
es deseado que lo haga.
REPORTING:
sirve
para
indicar,
si
se
desea,
que
se
tomen
estadísticas sobre esa pieza.
3.1.2. MAQUINAS (MACHINES):
Son los elementos que operan con las piezas: que reciben de
otro elemento, realizan alguna acción con las mismas en un cierto
tiempo (cycle time), y las envían a otro elemento.
Son el elemento principal de simulación y tienen gran utilidad
por poder representar
gran variedad de operaciones realizadas por
máquinas o personas: una máquina que mecaniza o monta piezas, un
trabajador, un elevador, una mesa de giro, etc...
Gráficamente pueden representarse por un icono (propio del
programa o diseñado por nosotros) que puede cambiar de color en
función
del
estado
de
la
máquina
durante
la
simulación,
seleccionando status en el menú display machine como se observa en
la figura.
Figura 8 Opción Display Icon
El significado de cada uno de los colores es:
Verde - ocupada (busy)
Amarillo - esperando piezas (idle)
Magenta - bloqueada (blocked)
Roja - averiada (down)
Azul - esperando operario para funcionar
Cyan - esperando operario para ser configurada
Blanco - fuera de turno
Sólo los elementos monocromáticos pueden cambiar de color
cuando el elemento cambia de estado.
Existen varios tipos de máquinas, dependiendo del nº de piezas
que procesen a la vez:
SINGLE: sólo procesan una pieza cada vez.
BATCH: procesa un lote de piezas a la vez. En éste tipo de máquinas,
las piezas van entrando hasta completar el tamaño del lote, para el
cycle time y el lote sale de la máquina hacia el siguiente elemento
detallado en la output rule. El cycle time no empieza a contar hasta
no disponer de todas las piezas del lote en la máquina.
ASSEMBLY: entran varias piezas, son ensambladas y sale sólo una
pieza. El cycle time no empieza a contar hasta no disponer de todas
las piezas en la máquina.
PRODUCTION: entra una pieza y sale esa pieza más una cantidad
fijada de otra pieza que se desea producir.
GENERAL: entra una cantidad fijada de piezas y sale otra cantidad
fijada de esas piezas. Si entran dos piezas de tipo distinto y sale sólo
una pieza, su tipo será el mismo que el de la primera pieza que entró.
MULTI-STATION: máquina con varias posiciones a las que van
entrando secuencialmente las piezas una tras otra.
Las características de las Machines que hay que definir en
Witness son las que aparecen en la siguiente pantalla y en cada una
de sus pestañas:
Figura 9 Opción Detail machine
NAME: nombre de la máquina (hasta 8 caracteres)
QUANTITY: número de máquinas exactamente iguales (hasta 99) que
deseamos modelizar.
TYPE: tipo de la máquina (single, batch, general,..).
PRIORITY: prioridad de esa máquina frente a las demás cuando una
pieza o un labour puede ir a varias máquinas. Un “1” indica máxima
prioridad y un “0” indica sin prioridad.
LABOUR: indica si la máquina precisa de algún labour (operario,
herramienta) para su puesta en marcha (set-up), su funcionamiento
normal (cycle) o su reparación (repair). Se indica además la cantidad
(quantity) de labour requerida y su tipo.
RULES: sirven para indicar a las máquinas los criterios bajo los cuales
las piezas entran (Input rules) o salen (Output rules) de las
máquinas.
CYCLE TIME: indica el tiempo de operación de la máquina.
BREAKDOWNS: sirven para establecer cómo la máquina se estropea,
fijando la ley o distribución estadística bajo la que lo hace, el tiempo
medio de reparación (m.t.t.r. -mean time to repair) y el tiempo
medio entre fallos (mtbf- mean time between failures).
Las máquinas sólo pueden romperse si tienen dentro pieza/s.
Las roturas pueden establecerse en función de:
• el tiempo que la máquina esté libre (availible time). En este caso el
m.t.b.f. se calculará como el tiempo medio entre el comienzo de
una rotura y el comienzo de la siguiente
• el tiempo que la máquina esté ocupada (busy time)
• el número de operaciones realizadas por la máquina.
La versión 8.0 de Witness tiene capacidad para establecer
varios tipos de rotura para cada una de las máquinas, de modo que
una máquina pueda romperse por distintos motivos, cada uno función
de una distribución estadística distinta.
ACTIONS: indica las acciones lógicas programadas a ejecutar cuando
la máquina comienza a trabajar, cuando finaliza, cuando se rompe o
cuando es reparada.
SETUP: establece si es requerida una puesta en marcha de la
máquina, si se hace siempre o cada cierto tiempo, y su duración.
Witness permite hasta 99 configuraciones (setup) distintas para cada
elemento. Pueden establecerse tiempos de configuración en función
del número de operaciones realizadas (n. of operations), en función
del tipo de pieza que llegue a la máquina (part change) o en función
del cambio en el valor de alguna variable (value change). Es un
campo muy potente que permite muchas opciones.
REPORTING:
sirve
para
indicar
si
deseamos
que
se
tomen
estadísticas sobre esa máquina.
FLUID RULES: definen las reglas para el manejo de fluidos (llenado y
vaciado).
SHIFT DETAIL: permite especificar el turno de trabajo en el que opera
la máquina.
3.1.3. ALMACENES (BUFFERS)
Son
elementos
que
almacenan
piezas,
sirviendo
para
representar un almacén, una cola, un conjunto de pedidos a procesar,
etc... Los buffers son elementos pasivos que no pueden tomar ni
soltar
piezas
almacenarlas.
desde/hacia
otros
elementos,
sino
simplemente
Puede especificarse la forma en que las piezas entran y salen
del buffer, de diferentes formas: definiéndose reglas fifo (por
defecto), lifo, por el valor de algún atributo, por una posición
concreta, etc...
Figura 10 Opción Detail Buffer
El número máximo de piezas que cabe en un buffer viene
definido por el valor incluido en el campo CAPACITY.
Puede desearse que las piezas tengan que estar un tiempo
mínimo dentro del buffer antes de poder salir del mismo. Esto puede
implementarse por medio del campo DELAY TIME.
Otras características de los Buffers que hay que definir en
Witness y que se observan en la figura 10., son:
NAME: nombre del buffer (hasta 8 caracteres).
QUANTITY: número de buffers exactamente iguales (hasta99)
INPUT POSITION: indica cómo son colocadas las piezas cuando
entran al buffer (rear-última posición-, front -primera posición-, at colocadas en una posición específica-, by attribute -ordenadas según
el valor de algún atributo).
OUTPUT POSITION: indica cómo abandonan las piezas el buffer (first
-la que ocupa la primera posición, max/min- aquella cuyo valor de
una expresión es máximo/mínimo, any -aquella que ocupa una
determinada posición, condition -aquella que satisfaga una condición).
SEARCH FROM: indica como Witness escanea el buffer en busca de la
primera pieza que debe salir del mismo (rear -desde atrás hacia
delante-, front -desde delante hacia atrás-).
ACTIONS: indica las acciones lógicas programadas a ejecutar cuando
una pieza entra en el buffer (in), cuando una pieza sale del buffer
(out) o cuando una pieza cumple su delay time (end delay).
REPORTING:
sirve
para
indicar
si
deseamos
que
se
tomen
estadísticas sobre ese buffer
3.1.4. TRANSPORTADORES (CONVEYORS)
Son elementos que sirven para transportar las piezas de un
elemento a otro del modelo. Las piezas van en fila a una velocidad
dada, atravesando el conveyor.
Un conveyor tiene un determinado número de posiciones. Las
piezas entran en el conveyor según la regla de entrada programada,
van atravesando sucesivamente las distintas posiciones del conveyor
(tardando un cycle time en pasar de una posición a otra), hasta llegar
a su final o a un punto prefijado, abandonando el conveyor según la
regla de salida programada.
La entrada y salida de piezas puede realizarse por cualquier
punto (posición) del conveyor.
Hay dos tipos de conveyors:
FIXED: las piezas mantienen siempre la misma distancia entre ellas.
Si la primera pieza se bloquea, las demás se detienen, manteniendo
las distancias. (Ej: escalera mecánica).
QUEUING: las piezas pueden estar a cualquier distancia unas de
otras. Si la primera se bloquea, las demás hacen cola detrás de la
misma. (Ej: cinta transportadora, rodillos..).
Las características de los Conveyors que hay que definir en
Witness a través de la pantalla que muestra la siguiente figura 11.
son las que se indican a continuación:
Figura 11 Opción Detail Conveyor
NAME: nombre del conveyor (máximo 8 caracteres)
QUANTITY: número de conveyors exactamente iguales.
TYPE: tipo de conveyor (fixed o queuing)
PART LENGTH: número de posiciones del conveyor.
MAX CAPACITY: máximo número de piezas que puede haber a la vez
en el conveyor
RULE INPUT: regla de entrada que indica cómo las piezas entran en el
conveyor.
RULE OUTPUT: regla de salida que indica cómo las piezas salen del
conveyor.
CYCLE TIME: tiempo que tarda una pieza en pasar de una posición a
otra del conveyor.
BREAKDOWNS: indica cómo son las averías que puede tener el
conveyor. Se implementa de modo análogo a los breakdowns de las
máquinas descritos anteriormente.
PRIORITY: prioridad de ese conveyor frente a otros elementos cuando
una pieza o labour puede ir a varios elementos. Un “1” indica máxima
prioridad y un “0” indica sin prioridad.
LABOUR: indica si es necesaria la presencia de uno o más labours
(operario, herramienta) cuando el conveyor sufre una avería para su
reparación.
SHIFT: permite especificar el turno de trabajo en el que opera el
conveyor.
ACTIONS: indican las acciones lógicas programadas a ejecutar
cuando una pieza entra en el conveyor (join) o cuando una pieza
abandona el conveyor (reach front).
REPORTING:
sirve
para
indicar
si
deseamos
que
se
tomen
estadísticas sobre ese conveyor.
3.1.5. TRABAJO (LABOUR)
En Witness, un labour es un requisito para que otro elemento
funcione. Puede representar a un operario, una herramienta, etc...
que son indispensables para configurar, hacer funcionar, reparar,
realizar un cambio de herramienta, etc..., en algún elemento activo
del modelo.
Puede priorizarse su uso, de modo que cuando un mismo labour
sea requerido a la vez por varios elementos, el labour irá a aquel
elemento con mayor priority (número más pequeño).
Muchas veces no es necesario modelizar los labours. Por
ejemplo, si cada máquina tiene su operario para hacerla trabajar, no
hace falta implementar los operarios como labours.
Unas características de los labours se definen en el Detail del
labour, mientras que otras se definen en el campo labour de los
elementos que los emplean. Las características de los labours que
hay que definir en Witness en el Detail del labour son como se
observa en la siguiente figura:
NAME: nombre del labour (máximo 8 caracteres)
QUANTITY: número de labours exactamente iguales.
SHIFT: indica los turnos de trabajo en los que el labour puede actuar.
PRE-EMPT LEVEL: si un labour está realizando una tarea y en ese
momento es requerido por un elemento de prioridad superior al que
está atendiendo, el labour abandonará la tarea actual sin terminarla
en caso de que la diferencia de niveles de prioridad sea mayor o igual
que el pre-emp level
Figura 12 Opción Detail Labour
ALLOWANCE: si al introducir el pre-emp level se ha definido un
allowance to finish, entonces la operación actual no se interrumpirá si
el tiempo que falta para que termine es menor que el allowance to
finish.
TIME PENALTY: es el tiempo que tarde de más un labour en terminar
la
operación
por
haberla
abandonado
prematuramente
(puede
representar el tiempo que tarde el labour en desplazarse de un
elemento a otro).
LABOUR RULE: indica la regla de elección del labour por ese elemento
cuando se cumple alguna condición.
REPORTING:
sirve
para
indicar
estadísticas sobre ese labour.
si
deseamos
que
se
tomen
3.1.6. PISTAS (TRACKS) Y VEHÍCULOS (VEHICLES).
Son los elementos más complejos de Witness, y sólo deben
utilizarse cuando no sea posible modelizar algún elemento de otra
forma pues añaden complejidad al modelo y hacen que la simulación
corra más lenta.
Un vehicle es un elemento que transporta piezas de un track a
otro, por lo que ambos son elementos estrechamente vinculados. Los
tracks son como las rutas que los vehículos siguen.
Los vehicles y tracks son útiles cuando son varios los puntos de
carga y descarga, existen diversos trayectos posibles y los vehicles
deben atender su demanda de acuerdo a ciertas reglas y prioridades.
La forma de funcionamiento es como sigue: un vehicle entra en
un track por su parte trasera (rear) y se mueve hacia su parte
delantera (front) a una velocidad determinada. Al llegar al final,
puede realizar operaciones de carga y descarga si éstas están
programadas. Al terminar, pasará al siguiente track de su recorrido o
bien al track indicado por su regla Destination.
Cada track sólo puede contener un vehículo cada vez, y éstos
siempre circulan de rear a front en el interior del track. Puede
hacerse que un vehículo quede aparcado en el interior de un track
mientras no sea demandado por algún elemento del modelo.
Las características que se pueden definir a través de la opción Detail
de los tracks son:
Figura 13 Opción Detail Track
NAME: nombre del track definido.
QUANTITY: número de tracks con el mismo nombre.
ZONE: forma de agrupar los tracks.
CAPACITY: máximo número de vehículo permitidos sobre el track al
mismo tiempo.
ACTIONS ON: permite definir la acciones que se ejecutarán cuando
un vehículo accede a un track. Se pueden utilizar para calcular la
velocidad del vehículo.
DURATION: permite controlar el tiempo que estará el vehicle en el
track. Se puede restringir la velocidad máxima del vehículo con
Maximum Speed of Vehicle.
ACTIONS ON FRONT: permite definir acciones para ser ejecutadas.
STOP: campo que detalla cuando el vehicle debería parar y esperar
antes de continuar al siguiente track, se puede hacer que este valor
dependa de una variable o una expresión.
OUTPUT RULE: especifica la lógica utilizada en la ruta del vehicle al
siguiente track.
BUSY TIME: indica el tiempo que el track permanece ocupado
después de que un vehicle lo haya abandonado.
Las características a definir en la opción Detail de los vehicles
son las que aparecen en la pantalla de la figura 14.:
Figura 14 Opción Detail Vehicle
NAME: nombre del vehicle.
QUANTITY: es el número de vehicles definidos bajo el mismo nombre.
CAPACITY: es el número de parts que puede llevar.
SPEED LADED y SPEED UNLOADED: velocidad de cargar y descargar
el vehicle.
START DELAY y STOP DELAY: se puede añadir estos parámetros a las
anteriores velocidades para simular la aceleración y desaceleración
del vehículo.
ENTRY TO RULE: determina donde empieza en el modelo.
ACTIONS ON ENTRY: define las acciones a desarrollar con la entrada
del vehículo al modelo.
3.1.7. MODULOS (MODULES)
Son agrupaciones de elementos físicos que se realizan para su
mejor comprensión y manipulación a la hora de efectuar la
modelización de un sistema. Un módulo puede estar compuesto por
diversos elementos individuales, de modo que una alteración en uno
de estos elementos será automáticamente actualizada en ese
elemento del módulo.
Los módulos son útiles para modelizar sistemas en los que hay
zonas que se repiten, ahorrándonos trabajo. Para ello, el módulo
debe ser salvado como submodelo (*.sub).
3.2. ELEMENTOS SISTEMAS CONTÍNUOS.
3.2.1. FLUIDOS (FLUIDS)
Pueden representar a líquidos u otro fluido que recorre el
modelo, fluyendo a través de tuberías hacia tanques o procesadores.
Se emplean para modelizar procesos continuos de producción (por
ejemplo en la industria química) o incluso el manejo del correo o
tráfico de vehículos.
Los fluids pueden mezclarse unos con otros y cambiar de color
durante la simulación.
3.2.2. PROCESADORES (PROCESSORS)
Son como “máquinas” que operan con fluidos, manipulándolos
durante un determinado tiempo de proceso. Al igual que las
machines, pueden ser visualizados como iconos que cambian de color
en función de su estado, pueden tener breakdowns, pueden precisar
de labours en algún momento, pueden tener prioridad, pueden
especificarse actions, etc...
3.2.3. TANKS (TANQUES O DEPÓSITOS)
Son elementos donde pueden almacenarse los fluids. Equivalen
a los buffers para los parts.
Su capacidad se mide por volumen de fluid que son capaces de
almacenar. Pueden visualizarse como iconos que cambian de color
según su estado.
Son elementos pasivos en el sentido que no realizan ninguna
acción con los fluids, sólo los almacenan. Sin embargo, sí disponen de
reglas de entrada/salida para manipular la entrada y salida de los
fluids. Así mismo, disponen de posibilidad de prioridad, breakdowns,
labours, actions, etc...
3.2.4. TUBERÍAS (PIPES)
Son elementos para transportar fluids entre processors y tanks,
siendo en cierto modo equivalentes a los conveyors para los parts.
Pueden visualizarse de modo que cambien de color según su estado.
Disponen de reglas de entrada/salida y posibilidad de breakdowns,
labours, actions, etc...
3.3. ELEMENTOS LÓGICOS.
Sirven para simular las características y parámetros del sistema
necesarios
para
una
correcta
modelización,
así
como
para
proporcionar información respecto de la simulación.
3.3.1. ATRIBUTOS (ATTRIBUTES)
Son nombres o valores numéricos (enteros o reales) asociados
a algún part. Su valor se introduce o modifica a través de los actions
de los diversos elementos. Un atributo es algo propio e intransferible
de un part, que se mueve junto con ella, pudiendo variar su valor en
el transcurso de la simulación (si se trata de atributos tipo variables).
Un atributo, puede representar el peso de una pieza, su clase,
su volumen, etc... de modo, que en función de su valor, una máquina
pueda tener un tiempo de ciclo u otro.
Hay dos tipos de atributos:
FIXED: aquellos cuyo valor ha de ser el mismo para todos los parts
del mismo nombre.
VARIABLE: aquellos cuyo valor puede ser distinto para cada part
individual.
A cada tipo de part puede dársele su propio conjunto de
atributos, merced a que estos se agrupan en grupos numerados que
son seleccionados en el campo Group de las parts.
Los atributos pueden aparecer en órdenes lógicas que dan gran
flexibilidad y capacidad a la modelización.
Las características de los atributos que hay que definir en
Witness son:
NAME: nombre del atributo (máximo 8 caracteres).
QUANTITY: número de atributos con el mismo nombre.
TYPE: tipo del atributo (caracteres, real, entero).
GROUP: número del grupo al que pertenece el atributo (seleccionar
éste número en el campo Group de la part que vaya a utilizar éste
tipo de atributo).
Estas características se introducen en la pantalla general que
aparece al seleccionar Model – Elements, una vez elegido el tipo de
elemento Attribute, como se puede ver en la figura 15.:
Figura 15 Opción Define Attribute
Hay una serie de atributos que ya vienen definidos por el
programa para cada pieza, y que pueden manipularse en los actions
de cualquier elemento, bien empleándolos en reglas lógicas o bien
alterando su valor:
TYPE: nombre de la pieza.
DESC: 4 primeros caracteres del nombre de una pieza que pueden
visualizarse.
PEN: color de la pieza.
ICON: número del icono que representa a la pieza (1-100). Puede ser
un icono creado por el usuario mediante el Icon Editor.
3.3.2. VARIABLES (VARIABLES)
Las variables contienen nombres de elementos o valores
numéricos
(enteros
o
reales)
que
pueden
emplearse
para
implementar las reglas lógicas de funcionamiento del modelo.
No van asociadas a ningún part, siendo su valor el mismo en
cualquier punto de la simulación en un mismo instante, aunque
pueden variar su valor en el tiempo a través de los actions. Por
ejemplo, puede representarse el tiempo de ciclo de una máquina
mediante una variable de modo que, en función del tipo de pieza que
le llegue a la máquina, ésta tenga n tiempo de ciclo u otro.
En cualquier momento podemos conocer el valor de una
variable visualizándola por medio de la fase display.
Las características de las variables que hay que definir en
Witness son:
NAME: nombre de la variable.
TYPE: tipo de la variable (caracteres, enteros, real).
QUANTITY: número de variables con el mismo nombre (dimensión de
la variable).
REPORTING: indica si deseamos que se recojan estadísticas sobre esa
variable.
Al igual que en el caso de los atributos estas características se
introducen en la pantalla general de Model – Elements una vez
elegido el tipo de elemento como Variable, apareciendo los campos
correspondientes:
Figura 16 Opción Define Variables
Una variable puede representar un sólo valor o bien puede
constituir un “array”
(cadena) de valores:
• si Quantity=1, la variable representa un sólo valor.
• si Quantity=x, la variable representa un array unidimensional de x
valores. Para referirnos a un valor concreto lo haremos como:
Nombre Variable ( posición de 1 a x).
• si Quantity=x, y, la variable representa un array bidimensional de x
columnas por y filas de valores. Para referirnos a un valor concreto
lo haremos como: Nombre Variable (posición columna de 1 a x,
posición fila de 1 a y).
Existen varias variables definidas por omisión por el programa.
Entre ellas la más importante es la variable Time, cuyo valor
(número real) corresponde al número de unidades temporales que en
ese momento contabiliza el reloj (clock) de la simulación.
3.3.3. DISTRIBUCIONES (DISTRIBUTIONS)
Las distribuciones permiten introducir aleatoriedad dentro del
modelo.
Mediante
una
distribución
podemos
representar
la
aleatoriedad con que las piezas llegan al modelo, la aleatoriedad del
tiempo de ciclo de una máquina, la aleatoriedad del tiempo entre
fallos (m.t.b.f.) y del tiempo de reparación (m.t.t.r.) de una máquina,
etc...
Witness viene ya dotado con varios modelos de distribuciones
probabilísticas estándar que podemos emplear:
Distribuciones enteras: binomial, uniforme, poisson.
Distribuciones reales: beta, erlang, gamma, logarítmica normal,
negativa exponencial, normal, normal truncada, triangular, uniforme,
weibull.
Además,
podemos
crear
nuestras
propias
distribuciones
empíricas si lo deseamos, introduciendo los valores numéricos así
como sus frecuencias de aparición en la pantalla de la figura 17.:
Figura 17 Opción Detail Distribution
Para que una distribución pueda funcionar en Witness, será
necesario indicar el número de la cadena de números aleatorios que
vamos a utilizar. Es importante emplear una cadena distinta para
cada evento estocástico que se desee simular, a fin de que un evento
no le “robe” aleatoriedad a otro (al ir empleando números de su
cadena), desfigurando los resultados de la simulación.
Por otra parte, los eventos aleatorios son reproducibles con
Witness. Si se dispone
de un modelo con diversos eventos
estocásticos y se corre varias veces, se observa que el resultado
siempre es el mismo, ya que la semilla generadora de las cadenas de
números aleatorios no ha variado. Esto es muy útil, ya que si ahora
se hace una modificación en el modelo y se ejecuta, se sabe que la
diferencia en el resultado está motivada por el cambio efectuado, y
no por una variación en la aleatoriedad del modelo.
También es posible cambiar la semilla generadora de las
cadenas de números aleatorios en un momento dado (opción Model,
Random Numbers). Se pueden hacer varias corridas de un mismo
modelo variando la semilla generadora. Si se observa que los
resultados en todos los casos son semejantes, se habrá probado la
robustez y validez del modelo, cuyos resultados no dependerán de la
aleatoriedad sino de su funcionamiento.
3.3.4. FICHEROS (FILES) Y FICHEROS DE PIEZAS (PART FILES).
Los files son archivos ASCII (*.DAT) que contienen datos.
Pueden emplearse para introducir datos en el modelo (fichero de
entrado de datos) necesarios para que éste puede correr, o como
salida de datos del modelo (fichero de salida de datos) con resultados
de la simulación.
La lectura y la escritura de valores en un file se lleva a cabo
mediante la inclusión de las órdenes READ/WRITE en algún actions
del modelo.
Los files son elementos muy útiles para crear un modelo
estructurado
y
que
tenga
en
cuenta
posibles
modificaciones
posteriores. Por ejemplo, si se tiene un modelo compuesto por una
serie de máquinas cuyos tiempos de ciclo son evaluados cada mes
por los ingenieros, se puede construir el modelo de modo que los
tiempos de ciclo de las máquinas sean variables que puedan leerse
desde un file. De este modo cada mes, para evaluar el sistema por
medio del modelo, tan sólo hay que modificar los datos del file y no
todo el modelo.
Figura 18 Opción Detail File
Un Part File es un fichero ASCII (*.PAR) que almacena una
serie de parts. Pueden emplearse como ficheros de entrada o salida
de
parts
a/desde
la
simulación,
indicando
el
instante
de
entrada/salida de las parts en el modelo, la cantidad del lote y sus
atributos. Sirve para crear una secuenciación de piezas en el modelo,
pudiendo representar un plan de fabricación.
Un Part File de salida de un modelo puede emplearse como
entrada para otro modelo.
Su ejecución no requiere ninguna orden desde un action. Para
ser utilizado como entrada de algún tipo de part, requiere que el
campo Arrival Mode de la part esté en modo Passive.
Figura 19 Opción Detail File
3.3.5. FUNCIONES (FUNCTIONS)
Las funciones son elementos predefinidos por Witness que
pueden emplearse en expresiones lógicas en cualquier parte del
modelo. También se pueden crear funciones propias que puedan
emplearse (se escriben fuera del programa, en Fortran).
Existen funciones matemáticas, estadísticas y funciones de
estado.
• Funciones matemáticas: para realizar cálculos matemáticos en
las expresiones.
• Funciones estadísticas: para conocer datos estadísticos sobre la
simulación.
• Funciones de estado: para dar información sobre el estado actual
de los elementos durante la simulación que se está efectuando. Las
hay de uso general y otras específicas para cada tipo de elemento.
Para observar su potencia y como muestra se destaca:
ISTATE (elemento): devuelve el nº que corresponde al estado
actual de ese elemento.
NPARTS (elemento): nº de parts que hay actualmente en ese
elemento.
APARTS (elemento): nº medio de parts en un buffer o conveyor.
NWIP (part): nº de parts actualmente en el modelo.
Si se necesita crear una función los campos a definir son los
que aparecen en la siguiente pantalla de la figura 20., ofreciendo la
posibilidad de escribir el código necesario seleccionando el botón
Actions.
Figura 20 Opción Detail Function
3.4. ELEMENTOS GRÁFICOS
3.4.1.
SERIES
TEMPORALES
(TIMESERIES)
E
HISTOGRAMAS
(HISTOGRAMS)
Son elementos que almacenan una serie de valores y crean un
informe estadístico sobre los mismos que contiene la media, la
desviación típica, el máximo, el mínimo, etc...
Un timeserie recoge la variación de algún parámetro o variable
a lo largo del tiempo de simulación, tomando muestras cada cierto
tiempo (intervalos de muestreo).
Se pueden registrar hasta 7 series temporales distintas en un
mismo timeserie, pudiendo visualizarse cada una de ellas sobre una
misma gráfica.
Las características de los timeseries que hay que definir en la
opción Detail de Witness son las correspondientes a los campos de la
figura 21:
Figura 21 Opción Detail Function
NAME: nombre del timeserie.
QUANTITY: número de timeseries exactamente iguales.
REC INTERVAL: intervalo de muestreo.
PLOT EXPRESIONS: expresiones cuyos valores en el tiempo se
desean registrar (hasta 7)
STATISTICS RESET: indica si se desea borrar la estadística cada vez
que se corre el modelo. CTIONS: acciones lógicas a ejecutar
antes/después de evaluada cada una de las expresiones cuyos
valores se han de registrar.
Un histograma es otro elemento que registra y proporciona
información sobre el modelo. En éste caso no existe ningún intervalo
de muestreo. Las expresiones se registran cuando así lo ordena algún
action (mediante mandatos tipo RECHST, DRAWBAR, ADDBAR),
tomando nota del valor y frecuencia de aparición de algún parámetro
u expresión.
3.5 ELEMENTOS ESPECIALES.
Son aquellos que ya vienen definidos por Witness y que pueden
emplearse en diversas partes del modelo.
3.5.1. ELEMENTOS DE ENTRADA
El único elemento de entrada predefinido es el World (mundo).
Este elemento dispone de infinitas piezas, de las que pueden enviarse
al modelo el número deseado si se activa la llegada de piezas (Active)
desde el Detail de la part.
3.5.2. ELEMENTOS DE SALIDA
Hay tres elementos a los cuales se les pueden enviar las piezas
que ya han atravesado el modelo y se desea que salgan del mismo:
• Ship (embarque): a éste elemento se suelen enviar las parts que
deben abandonar el modelo.
• Scrap (desperdicios): a éste elemento se suelen enviar las parts
que deben abandonar el modelo pero sin haber acabado la
simulación satisfactoriamente (por ser el desecho de una máquina
tipo production, por ser un desperdicio al haberse roto una
máquina, etc...)
• Assemble (ensambladas): a éste elemento van a parar los parts
que han sido combinados con otros en una máquina tipo assembly.
4. LAS REGLAS DE ENTRADA Y SALIDA.
Sirven para direccionar los parts a través de los elementos del
modelo, es decir, regulan los mecanismos por los cuales una part
entra en un elemento procedente de otro, o sale del mismo hacia otro
elemento.
Estas reglas se especifican en los campos Input Rule y Output
Rule de la fase Detail de los diversos elementos. No todas las reglas
son aplicables a todos los elementos.
Witness permite introducir reglas de gran complejidad (hasta de
32 Kb cada una).
El significado de cada regla depende de si ésta se utiliza como
regla de entrada o como regla de salida. Las principales Reglas de
Entrada y Salida son:
• Wait (esperar): no realiza acción alguna sobre la part. Es la regla
por defecto.
• Pull (coger): el elemento “coge” la part desde algún otro elemento
que esté en su lista de demanda. Sólo puede emplearse como regla
de entrada. Ejemplos:
PULL from M1, M2. Coge una pieza desde el elemento M1 y si
no puede, desde M2.
PULL A from M1, B from M2. Coge la pieza A desde M1 y si no
puede, pieza B desde M2
• Push (empujar): el elemento “empuja” la part hacia algún otro
elemento que esté en su lista. Sólo puede emplearse como regla de
salida. Ejemplos:
PUSH to M1, M2. Empuja pieza hacia elemento M1 y si no
puede, hacia M2.
PUSH A to M1, B to M2. Empuja la pieza A hacia M1 y si no
puede, pieza B hacia M2.
• Sequence
(secuencia):
estirados/empujados
los
desde/hacia
parts
una
tratan
lista
de
de
ser
elementos
secuencialmente. Si en un momento dado un part (si se utiliza
como regla de entrada) o un elemento ( si se utiliza como regla de
salida) no está disponible, hay tres opciones, cuyos significados
dependen del tipo de elemento en que sean empleadas:
WAIT: Se espera a que esté disponible (la part -Rule input- o el
elemento -Rule output-).
Ej. SEQUENCE/WAIT B1#(1), B2#(3). En ciclos de trabajo
consecutivos, esperará a coger/empujar una part del/al
elemento
B1.
Luego,
esperará
a
coger/empujar
sucesivamente tres parts del/al elemento B2. Luego se
repite la secuencia, volviendo a esperar a coger/empujar
NEXT: Si no está disponible, pasar al siguiente (part -Rule
input- o el elemento -Rule output-).
Ej: SEQUENCE/NEXT C1#(2), C2#(3). Primero trata de
coger/empujar sucesivamente tres parts del/al elemento
C1, y si no están disponibles en ese momento (las parts o
el elemento), trata de coger/empujar tres parts del/al
elemento C2. Luego se repite la secuencia.
RESET: Si un part o elemento de la lista no está disponible, se
resetea la secuencia y se vuelve a intentar desde el principio.
Ej.
SEQUENCE/RESET
J1#(1),
J2#(2),
J3#(1).
Trata
de
coger/empujar esas parts de esos elementos en ese orden.
Primero,
coge/empuja
un
part
desde/hacia
J1.
Luego,
coge/empuja un dos parts sucesivamente desde/hacia J2.
Luego, si cuando va a coger/empujar un part desde/hacia J3 no
está disponible (la part -Rule input- o el elemento -Rule output), borra la secuencia y trata de nuevo de coger/empujar una
part desde/hacia J1.
• Select (seleccionar): el part se coge/empuja desde/hacia aquel
elemento de la lista que ocupa la posición dada por el valor de
alguna variable. Ej. SELECT on V1 B1, B2, B3, B4. Si la variable V1
tiene en ese instante el valor 3, la part se tomará/empujará del/al
elemento B3.
• Percent (porcentaje): el part se coge/empuja aleatoriamente
desde/hacia alguno de los elementos de la lista en función de unos
determinados porcentajes de probabilidad. Ej. PERCENT/(semilla
aleatoria 1-1000) B1 70.00, B2 30.00. La part se estirará/empujará
desde/hacia el elemento B1 con una probabilidad del 70% o hacia
B2 con un 30%.
• Most (mayor): el elemento coge/empuja el part desde/hacia aquel
elemento de su lista que posea el mayor nº de parts (opción parts)
o el mayor nº de espacios desocupados (opción free).
• Least (menor): el elemento coge/empuja el part desde/hacia aquel
elemento de su lista que posea el menor nº de parts (opción parts)
o el menor nº de espacios desocupados (opción free).
• If (si...): coge/empuja las parts en función de que una expresión
condicional
del
tipo
If/Else/Elseif/End
sea
verdadera.
Puede
combinarse con otras reglas, excepto con Sequence y Percent por
dar un resultado ambiguo y confuso.
Ejemplo:
IF V1>10
Pull from B1
Elseif V1>5
Pull from B2
Elseif V1>1
Pull from B3
ELSE
Wait
ENDIF
Esta regla empleada como una Input Rule significa que, si (if) la
variable V1 es mayor que 10, se estirará part desde el elemento B1,
en caso contrario, si (elseif) V1 es mayor que 5 se estirará part desde
B2, en caso contrario, si (elseif) V1 es mayor que 1 se estirará part
desde B3. En última instancia (else) se esperará (wait).
La regla será evaluada por Witness desde arriba hacia abajo. En
el momento en que resulte verdadera, se saldrá de la regla sin
evaluar el contenido de su parte inferior.
• Random (aleatorio): permite introducir una componente aleatoria
en el modelo, indicando una serie de elementos y la probabilidad
de que una part vaya o venga hacia cada uno de ellos. Por
ejemplo, puede crearse un elemento con una Rule input que sea
Random de modo que tome distintas parts del world en unas
proporciones determinadas de un modo aleatorio.
• Part (pieza): permite enviar parts a un elemento a otro,
dependiendo del part de que se trate. Sólo puede emplearse como
regla de salida.
• Buffer (almacén): el part se coge/empuja desde/hacia el buffer
interno de una máquina que se ha definido de forma que tenga
este buffer interno.
5. LAS ACCIONES (ACTIONS)
Permiten dotar al modelo de la lógica necesaria para que
funcione correctamente y del modo más parecido a la realidad.
Mediante ellas es posible manipular variables y atributos, leer o
escribir datos desde/hacia ficheros de disco, controlar las parts, etc...
Tanto para los actions como para las reglas de entrada y salida,
Witness ofrece una serie de facilidades para su implementación:
• pueden hacerse actions/reglas muy complejas (hasta de 32 Kb
cada una, sin superar los 256 caracteres por línea ), si bien éstas
hacen la simulación más lenta,
• puede
moverse o copiarse el texto de los actions/reglas de un
lugar a otro del modelo,
• puede recibirse ayuda del programa para escribir una action/regla
cuyo empleo desconocemos seleccionando el botón Prompt en las
cajas de diálogo.
Instrucciones a emplear
Mediante un action pueden realizarse a la vez cálculos
matemáticos y lógicos:
CÁLCULOS MATEMÁTICOS. Pueden realizarse cálculos con números o
variables,
empleando
operadores
aritméticos
que,
ordenados
conforme Witness los evalúa son: paréntesis ( ), potenciación **,
multiplicar *, dividir /, sumar +, y restar -.
CÁLCULOS LÓGICOS.
Pueden implementarse reglas lógicas en las
que se incluyan los operadores lógicos y aritméticos que, ordenados
por orden de evaluación son: paréntesis ( ), NOT (expresión),
potenciación **, multiplicar *, dividir /, sumar +, restar -, igual=,
desigual < >, menor que <, mayor que >, menor o igual que <=,
mayor o igual que >=, AND (dos subexpresiones), OR (dos subexpresiones).
Por ejemplo:
IF V1=5 AND NPARTS(B1)>5
CYCLE=10
ELSE
CYCLE=20
ENDIF
La variable CYCLE tomará el valor 10 si la variable V1 vale en
ese momento 5 y además el nº de parts en B1 es mayor que 5. En
caso contrario, CYCLE tomará el valor 20.
Las expresiones con AND y OR son evaluadas de izquierda a
derecha.
Lenguaje de programación de acciones.
Es posible combinar los
cálculos
funciones
matemáticos
y
lógicos
con
matemáticas,
estadísticas y de estado para formar action de gran potencia y
complejidad (aquí no podrán emplearse ninguna de las reglas de
entrada/salida).
Además de los ya vistos, pueden emplearse muchos comandos
entre los que destacamos:
CHANGE: permite modificar el tipo de una part. Por ejemplo:
CHANGE P1, P2 modificará el tipo de pieza P1 a P2.
CHANGE ALL, P2 modificará cualquier tipo de pieza a tipo P2.
READ y WRITE: para leer o grabar datos desde/hacia un fichero. Por
ejemplo:
READ file1 V1, V2. Lee desde el fichero llamado file1 el valor de
las variables V1 y V2.
WRITE file2 V3(5) Escribe el valor del array V3 que ocupa la
posición 5 en el fichero file2.
GOTO y LABEL: se usan conjuntamente para saltar (GOTO) a una
línea marcada por la etiqueta (LABEL).
IF, ELSEIF, ELSE y ENDIF: se emplean juntas para crear sentencias
condicionales. Su modo de empleo ya ha sido tratado anteriormente.
FOR y NEXT: se utilizan conjuntamente para realizar algo un nº
dado de veces. Ejemplo:
FOR X=1 TO 10 STEP 2
PRINT “ El valor de la variable X es de”; X
NEXT
WHILE y ENDWHILE: se usan conjuntamente para realizar algo
mientras se cumpla una condición. Por ejemplo:
WHILE X<10
PRINT “El valor de la variable X es de “; X
X= X+1
ENDWHILE
STOP: se emplea para parar la simulación en un momento dado.
6. ACCIONES ESPECIALES.
El paquete Witness permite implementar una serie de acciones
en unos momentos determinados que pueden ser muy útiles a la hora
de hacer que un modelo funcione correctamente. Si se estima
oportuno, pueden emplearse tres tipos de acciones, cada una de las
cuales se implementa en una caja de diálogo tras seleccionar la
opción oportuna en los menús desplegables de Witness:
• Acciones de inicialización (INITIALIZE ACTIONS) son aquellas que
se realizarán siempre justo antes de que la simulación comience a
correr. Suelen emplearse para dar valores a algunas variables,
para leer datos de un fichero necesarios para la simulación, etc...
Se ha de tener en cuenta que estas acciones se ejecutarán
siempre en cada corrida y que se sobreescriben a los datos leídos
desde ficheros de arranque (P.e. si en un fichero de arranque hemos
puesto a una variable el valor X=15 y en el Initialize Actions tenemos
una orden que dice X=20, la simulación acabará corriendo con el
valor X=20).
• Acciones de usuario (USUARY ACTIONS) son aquellas que se
realizarán sólo cuando el usuario seleccione la opción Run Usuary
Actions del menú de Witness, mostrando la pantalla de la figura
22.:
Figura 22 User Actions
• Acciones inmediatas (INMEDIATE ACTIONS) son aquellas que se
ejecutan justo en el momento en el que el usuario escribe la orden,
a través del cuadro de diálogo de la figura 23:
Figura 23 Actions
7. TIPOS DE FICHEROS MANEJADOS POR WITNESS.
Según su utilización, Witness trabaja con diversos tipos de
ficheros. Los más importantes según su tipo son:
*.mod
(modelos):
modelizados.
guardan
los
modelos
de
los
sistemas
*.sim (simulaciones): guardan el modelo en el instante de
simulación que se alcanzó.
*.lst (librería): guardan las características del modelo en un
formato tal que puede ser editado desde otro programa. Por ejemplo,
podemos editar un modelo a través de su fichero *.lst mediante el
Write de Windows, y una vez realizadas las modificaciones y salvado
con formato No-Write como *.lst, este fichero puede ser leído por
Witness, reconstruyendo el modelo con los cambios.
*.icn (iconos): contienen los iconos que son empleados por los
modelos. Pueden mezclarse juegos de iconos de varios modelos
distintos (opción Merged:Yes).
*.dat (datos): contienen los datos que son de entrada o salida de la
simulación. Por ejemplo, para hacer un fichero de entrada de datos
para la simulación, puede emplearse el programa Excel de Windows,
escribiendo los valores de las variables o arrays en columnas (cada
variable o array en una columna distinta). Se grabará el fichero con
formato Tab-delimited y con nombre *.dat. Este fichero, que deberá
guardar para su uso posterior.
*.rpt (reports): contienen los resultados de una simulación con
todos los datos referentes a cada uno de los elementos del modelo.
*.dif: contienen los resultados de una simulación en un formato
legible por hojas de cálculo tipo Excel o 123. De este modo podremos
ver y manipular los resultados de una simulación.
*.sub (submodelos): contienen los submodelos creados y que
pueden ser empleados en cualquier parte de cualquier modelo de
Witness.
*.wcl
(arranque):
permiten
programar
una
secuencia
de
simulaciones seguidas (con sus características) de modo que, una vez
hecho el fichero de arranque y tras su activación mediante el
comando File Read Command se puede dejar al ordenador corriendo
durante largo tiempo mientras realiza cada una de las simulaciones
programadas.
Para realizar un fichero de arranque se emplean una serie de
instrucciones propias (escritas en ASCII con un editor de texto como
Write de Windows) entre las que destacan:
LOAD file: cargar un modelo (*.mod)
RESTORE file: cargar una simulación (*.sim)
NEW file: nuevo fichero, borrar el modelo actual.
BATCH TIME, time: corre la simulación hasta que el reloj marca el
tiempo indicado.
SAVE file: salvar como modelo (*.mod)
STORE file: salvar como simulación (*.sim)
REPORTS DIFFILE file: salvar los resultados de la simulación como
fichero *.dif
RUN ACTION variable=? : dar valor a alguna variable.
DETAIL, SELECT, Nombre Elemento, Campo a modificar =? Para
modificar algún campo de algún elemento del modelo.
QUIT: salir del programa Witness.
8. OPCIONES DE VISUALIZACIÓN.
Witness ofrece facilidades para realizar el efecto visual del
modelo. A todas ellas se accede desde el menú desplegable Edit.
Entre ellas destacamos:
• Editor de pantalla (Screen Editor): permite dibujar líneas,
figuras, tramas, texto, etc..., en la pantalla donde reside el modelo
para mejorar su comprensión y hacerlo más visual. Para ello se
utiliza la barra de herramientas siguiente:
Figura 24 Display Backdrop
• Editor de iconos (Icon Editor): permite modificar los iconos por
defecto que utiliza el programa así como crear nuestros propios
iconos para nuestro modelo particular con las opciones disponibles
que se observan en la pantalla:
Figura 25 Icon Editor
• Ventanas (Windows): se disponen de hasta 4 ventanas distintas
donde pueden guardarse vistas de puntos distintos del modelo,
para mejorar la rapidez en el acceso a alguna zona.
9. RELOJ DE SIMULACIÓN.
Witness dispone de un reloj (Clock) interno para llevar la
cuenta del tiempo de simulación. A través de la opción Clock del
menú Edit puede especificarse la unidad mínima temporal y sus
múltiplos, que se emplearán para confeccionar el modelo y realizar la
simulación. Esto es muy importante, ya que si, por ejemplo,
seleccionamos como unidad temporal mínima el minuto, deberemos
introducir todos los datos referidos a nuestro modelo en minutos.
Podemos visualizar el tiempo que se lleva de simulación
activando la opción Clock del menú desplegable Windows.
Figura 26 Define Clock
10. EJECUCIÓN DE UNA SIMULACIÓN.
Una vez se tiene construido el modelo, hay que proceder a
comenzar a realizar experimentos con el mismo, es decir, hay que
realizar
“corridas”
del
modelo.
Witness
ofrece
desplegable Run diversas opciones para ello:
Begin: pone a cero el reloj interno de la simulación.
Stop: para una simulación en el acto.
Run: activa una simulación en el acto.
en
su
menú
Batch: activa una simulación hasta el instante temporal indicado en
unidades temporales mínimas. Por ejemplo, si nuestra unidad
temporal es el minuto, poniendo:
Time+60: correrá la simulación desde el punto actual hasta una
hora posterior.
60: correrá la simulación hasta el instante en que el reloj
marque 60 minutos.
Advance: activa la simulación llevando el reloj hacia delante tantas
unidades temporales como el valor introducido.
Walk: disminuye la velocidad de la simulación para poder observar
mejor los sucesos que ocurren durante la simulación en pantalla.
Step: ejecuta la simulación en modo paso a paso, es decir, de modo
que cada vez que se haga
click con el ratón sólo se ejecute una
acción de la simulación. Esta opción es muy útil para depurar la
programación lógica del modelo y observar si está bien definida.
Por medio de la opción Step y mediante la visualización de la
ventana Interactive Box del menú desplegable Windows, podremos
observar como se van ejecutando secuencialmente cada una de las
acciones de la simulación y así, detectar posibles errores.
Una vez la simulación se ha puesto en marcha (directamente a
través del menú Run o por medio de un fichero de arranque *.wcl),
Witness ejecuta primero las posibles acciones definidas en el Initialize
Actions. Hecho esto, el tiempo de la simulación comienza a correr.
Witness va testeando todos y cada uno de los elementos que fueron
definidos en el modelo siguiendo el orden en que fueron creados.
Observará si ese elemento tiene o va a tener part y realizará las
acciones oportunas en ese instante. Hecho esto, pasará al siguiente
elemento de la lista.
Se ha de tener en cuenta que si en un momento dado se borra
un elemento del modelo y luego se crea otro, éste último ocupará la
posición dejada por el elemento borrado. Hay que tener presente
todo esto ya que a veces, en modelos complejos, el orden en el que
Witness testea las acciones de los elementos puede resultar un factor
determinante.
El orden de los elementos puede observarse y modificarse
editando el fichero de librería *.lst del modelo (en ASCII) mediante el
programa Write de Windows (por ejemplo).
11. GENERACIÓN DE INFORMES
Esta es una de las posibilidades más potentes que facilita
Witness, así una vez construido el modelo y puesto en marcha, se
pueden utilizar los informes que se pueden generar y que ayudarán n
a medir los cambios producidos por la influencia de los distintos
escenarios en los que se quiere comprobar el comportamiento del
citado sistema modelizado.
Para visualizar los informes generados durante la ejecución de
los experimentos se seleccionará la opción Reports del menú y de
nuevo Reports del menú desplegable, proporcionando las siguientes
alternativas:
Figura 27 Opciones Reports
Used: indica donde es utilizado y referenciado cada elemento del
modelo.
Explode: permite observar si en un determinado elemento hay part,
cuántas, de qué tipo, cuáles son sus atributos, etc...
Summary: ofrece las características generales de cada elemento del
modelo (nombre, tipo, cantidad, regla de entrada/salida, si tiene
programado algún action, etc...)
Reports: para cada uno de los elementos del modelo, lista muy
completa de datos estadísticos recogidos durante el tiempo de
simulación. Por ejemplo:
A continuación se van a explicar más detalladamente cada uno
de
los
4
tipos
de
informes
explicando
proporcionan a través de sus campos.
la
información
que
11.1. SUMMURY
Este informe da una descripción resumida de la información
introducida en la opción Detail del elemento, es una forma rápida y
cómoda de resumir un grupo de elementos.
Cada elemento tiene un tipo diferente de resumen, pues los
campos a rellenar en la opción Detail dependen precisamente del tipo
de elemento, por este motivo el informe se prepara por grupos de
elementos, teniendo en cuenta de que tipo son.
Veamos a continuación cuáles son los campos del informe
según el tipo de elemento que se esté resumiendo con el fin de
facilitar la comprensión del anexo 2 en el que se incluye un informe
de ejemplo de cada tipo.
Resumen de elementos tipo PART:
Nombre de los elementos de este tipo.
Tipo de atributos asociados.
Regla de salida.
Acciones a llevar a cabo en la creación de este tipo de piezas.
Resumen de elementos tipo BUFFER:
Nombre del buffer.
Número de buffers con las mismas características.
Retrasos.
Si se ha definido ruta a seguir.
Capacidad.
Regla de entrada al buffer de los elementos tipo part.
Regla de salida para buscar el siguiente elemento a extraer.
Resumen de elementos tipo MACHINE:
Nombre de la machine.
Número de elementos con idénticas características.
Tipo
Reglas de entrada
Regla de salida
Labour, si son necesarios
Acciones: pueden ser de 4 tipos las ejecutadas al llegar un elemento,
las llevadas a cabo al procesar las piezas, los posibles paros y la
reparación de averías.
Resumen de elementos tipo CONVEYOR:
Nombre definido para los elementos de este tipo.
Cantidad de elementos con las mismas características.
Longitud.
Elementos Labour asociados a su reparación.
Reglas de entrada.
Reglas de salida.
Acciones a llevar a cabo al llegar un elemento al conveyor.
Acciones a ejecutar antes de la salida de un elemento del conveyor.
Resumen de elementos tipo ATRIBUTO, VARIABLE:
Nombre del atributo o variable.
Número definido bajo el mismo nombre y con las mismas
características.
Tipo de atributo
Resumen de elementos tipo FUNCIÓN:
Nombre de la función.
Número de parámetros.
Tipo de función teniendo en cuenta lo que devuelve.
11.2. EXPLODE
Este informe permite obtener información acerca del estado
actual de los elementos especificados, para cada elemento indica
cuáles son los elementos de tipo part que contiene y su posición
exacta.
Como es lógico no se puede generar este tipo de informe para
los elementos de tipo file, distribution, histogram, timeserie, function,
attribute, variable o pie chart.
En caso de necesitar el valor de alguna variable en el instante
en el que se genera el informe se deberá usar el informe
“statisticscs”.
Los campos del informe generado dependerán del tipo de
elemento y teniendo en cuenta esto se agruparán los elementos
definidos en el modelo según su tipo, veamos a continuación cuales
son estos campos.
Status of parts.
Nombre del elemento part.
Nombre del elemento o elementos en el que se encuentra situado en
el momento en el que se genera el informe.
Tipo de ese elemento o elementos.
Número de parts en el elemento referido.
Status of parts in buffers.
Nombre del buffer.
Tipo de situación en la que se encuentra.
Nombre del elemento part que contiene.
Posición dentro del buffer en la que se encuentra el elemento
referido.
Atributos y su valor de cada uno de los elementos part que contiene
en el momento en el que se genera el informe.
Status of parts in machines.
Nombre del elemento machine.
Estado en el que se encuentra en el momento en el que se genera el
informe (ocupada, esperando piezas,....)
Número de una de sus posibles posiciones.
Nombre del elemento situado en esa posición.
Valor de los atributos de ese elemento en el instante en el que se
genera el informe.
Status of parts on conveyors.
Nombre del elemento tipo conveyor
Estado en el que se encuentra (vacío, bloqueado,...)
Posición del conveyor a la que se hace referencia.
Elemento part situada en esa posición.
Valor de los atributos del elemento part en el instante en el que se
genera el informe.
11.3. STATISTICS
Este tipo de informe es posible generarlo para elementos
continuos y discretos, de estos últimos está disponible para los
elementos tipo part, machine, buffer, conveyor, labour, track y
vehicle.
Los campos que proporciona dependen del tipo de elemento del
que se haya solicitado el informe, en cualquier caso la información
proporcionada es relativa a lo ocurrido a lo largo de la ejecución del
experimento, desde el instante en el que se inició hasta el momento
en el que se genera el informe. Los parámetros calculados son de
gran interés, por ejemplo, número máximo, mínimo de piezas en un
almacén, estados en los que ha permanecido una máquina y en que
proporción de tiempo, número de piezas en el sistema...
A continuación se exponen los campos del informe según el tipo
de elemento, haciendo siempre referencia sus valores al total del
tiempo que se ha realizado la simulación.
Part statistics.
Nombre del elemento part.
Número de piezas que han entrado al sistema.
Número de piezas que han salido del sistema.
Número de piezas de rechazo.
Número de piezas ensambladas.
Media de número de piezas como trabajo en curso.
Buffer statistics.
Número de elementos que han entrado a lo largo de la simulación.
Número de elementos que han salido.
Número de elementos en el momento de la generación del informe.
Número máximo de elementos que ha llegado a almacenar.
Número mínimo de elementos que ha almacenado.
Media de elementos almacenados.
Tiempo durante el que se ha almacenado la media indicada.
Machine statistics.
Nombre del elemento tipo machine.
Número de operaciones realizadas.
Porcentaje del tiempo esperando piezas
Porcentaje del tiempo procesando.
Porcentaje del tiempo parada.
Porcentaje del tiempo en espera (trabajador, set up).
Conveyor statistics.
Nombre del conveyor.
Número de elementos que contiene en el momento de generar el
informe.
Número total de piezas que ha contenido.
Media en unidades de piezas que ha transportado.
Media en unidades de tiempo.
Porcentaje de tiempo vacío.
Porcentaje de tiempo en movimiento.
Porcentaje de tiempo bloqueado.
Porcentaje de tiempo formando cola con los elementos que contiene.
Variable statistics.
Nombre de la variable.
Índices de la variable.
Valores de cada variable en el instante en el que s genera el informe.
11.4. USED
Seleccionando este tipo de informe se podrá saber cómo y
donde están referenciados cada uno de los elementos del modelo.
Los campos disponibles en este informe son:
•
Nombre: el nombre del elemento.
•
Tipo: el tipo del elemento.
Además para cada otro elemento que usa del que se genera el
informe se dice:
•
Cómo se usa: cómo el elemento es referenciado, por ejemplo, en
una input rule, un cycle time,...
•
Donde se usa: el elemento desde el que se le hace referencia.
Como ya se ha dicho anteriormente, los reports ofrecen gran
utilidad pudiéndose grabar en un fichero de modo que sean
manipulables por hojas de cálculo para analizar los resultados
obtenidos.
Descargar