Beruflich Dokumente
Kultur Dokumente
165
Introduccin
Tanque Definicin -- Un recipiente para contener material a granel, lquidos o gases.
166
166
flujo de substancias continuas dentro y fuera de los tanques o recipientes similares. Facilitar el intercambio entre materiales continuos y entidades discretas. Modelar flujo de partes discretas a alta velocidad. Grficas dinmicas de barras de estadsticas en la pantalla.
www.promodel.com.mx 167
167
Proveer de bombas, vlvulas y sensores para emular la operacin detallada del tanque. Proveer los comandos para producir los resultados deseados.
www.promodel.com.mx
168
168
Tanksub.mod
Se mezcla con cada modelo de tanques. Contiene una biblioteca de subrutinas predefinidas, etc. para modelar los tanques. Se carga automticamente al definir el primer tanque. Puede ser modificado si se hace cuidadosamente. Todas las subrutinas, arreglos, etc. inician con Tank_ para fcil identificacin (v.gr. Tank_Fill).
www.promodel.com.mx 169
169
Definicin Tanques
Lmite de Capacidad es 999,999 (libras, toneladas, galones, 10 galones, etc.). Diferentes tanques pueden tener diferentes unidades.
2 1
www.promodel.com.mx
170
170
Clock solamente
www.promodel.com.mx
171
171
Dilogo de Tanques/Calibrador
www.promodel.com.mx
172
172
173
174
Conceptos Bsicos
l l l l l l
Niveles de Tanques. Incremento del Tiempo al Controlar el Flujo. Velocidad del Flujo. Estados del Tanque. Llenado y Vaciado de los Tanques. Limpieza y tiempos muertos de los tanques.
175
www.promodel.com.mx
175
176
177
Efecto del valor del incremento del tiempo en un estatuto Wait Until
Si se est llenando el tanque A a una velocidad de 60 gpm y el incremento del tiempo es de 0.5 min, cundo ser el siguiente estatuto verdadero? WAIT UNTIL Tank_Level[TanqueA] >=31
60 nivel 30
0
www.promodel.com.mx
.5
1.0 tiempo
178
178
Velocidades de Flujos
Se asume que se basa en unidades de capacidad de tanque por minuto 50 gpm 10 litros por minuto Las tasas DESDE y HACIA pueden ser diferentes en una transferencia de tanques. Una variable de TASA puede ser definida utilizando la subrutina Tank_Rate.
www.promodel.com.mx 179
179
www.promodel.com.mx
180
180
181
182
www.promodel.com.mx
183
Tank_Fill
Sintaxis: TANK_FILL (<Tank ID>, <Cantidad>, <Tasa>, <Nivel>) TANK_FILL (TanqueA, 2000, 75, 1500) Utilizar cuando la fuente del material no es otro tanque, sino una entidad u otra fuente externa. Estado: Fijar a Tank_Filling, entonces a Tank_Blocked si el tanque se llena.
www.promodel.com.mx
184
184
Tank_Empty
Sintaxis: TANK_EMPTY (<Tank ID>, <Cantidad>, <Tasa>, <Nivel>) TANK_EMPTY (TanqueB, 2000, 40, 0) Utilizar cuando el destino no es otro tanque, sino otra entidad u otro lugar externo al modelo. Estado: Fijar a Tank_Emptying, entonces a Tank_Idle si el tanque se vaca.
www.promodel.com.mx
185
185
Tankfill.mod
www.promodel.com.mx
186
186
Tank_Transfer
Sintaxis: TANK_TRANSFER (<DESDE>, <HACIA>, <Cantidad>, <Tasa DESDE>, <Tasa HACIA>, <Nivel>) TANK_TRANSFER (A, B, 2000, 100, 50, Tank_Stop) Utilizar para transferir una cantidad especfica desde el tanque A hacia el B. Estado: El Tanque DESDE se fija a Tank_Emptying, entonces a Tank_Idle si se vaca. El tanque HACIA se fija a Tank_Filling, entonces a Tank_Blocked si se 187 www.promodel.com.mx llena.
187
Tank_TransferUpTo
Sintaxis: TANK_TRANSFERUPTO (<DESDE>, <HACIA>, <Nivel>, <Tasa DESDE>, <Tasa HACIA>) TANK_TRANSFERUPTO (A, B, 8500, 0, 0) Utilizar para transferir (aumentar) hasta cierto nivel especfico, pero no se conoce la cantidad especfica a transferir (v.gr. Un tanque que se est drenando mientras est siendo llenando). Estado: El mismo que para Tank_Transfer.
www.promodel.com.mx 188
188
Tank_TransferDownTo
Sintaxis: TANK_TRANSFERDOWNTO (<DESDE>, <HACIA>, <Nivel>, <Tasa DESDE>, <Tasa HACIA>) TANK_TRANSFERDOWNTO (A, B, 200, 100, 0) Utilizar para transferir (disminuir) hasta cierto nivel especfico, pero no se conoce la cantidad especfica a transferir (v.gr. Un tanque que se est llenando mientras est siendo drenado). Estado: El mismo que para Tank_Transfer.
www.promodel.com.mx 189
189
Tankxfer.mod
www.promodel.com.mx
190
190
Tank_SetLevel
Sintaxis: TANK_SETLEVEL (<TankID>, <Nivel>) TANK_SETLEVEL (TanqueA, 1500) Utilizar para iniciar el nivel de un tanque a un valor especfico. Estado: Fijar a Tank_Blocked si est completamente lleno, Tank_Idle si est completamente vaco, de otra manera sin cambio.
www.promodel.com.mx
191
191
Tank_Inc
Sintaxis: TANK_INC (<TankID>, <Nivel>) TANK_INC (TanqueA, 500) Utilizado usualmente despus de un estatuto WAIT para incrementar instantneamente el nivel de un tanque a una cantidad especfica. Estado: Fijar a Tank_Blocked si est completamente lleno, de otra manera no cambia.
www.promodel.com.mx
192
192
Tank_Dec
Sintaxis: TANK_DEC (<TankID>, <Nivel>) TANK_DEC (TanqueA, 10) Utilizado usualmente despus de un estatuto WAIT para disminuir instantneamente el nivel de un tanque a una cantidad especfica. Estado: Fijar a Tank_Blocked si est completamente lleno, de otra manera no cambia.
www.promodel.com.mx
193
193
Tank_RiseTrigger
Sintaxis: TANK_RISETRIGGER (<TankID>, <Nivel>) TANK_RISETRIGGER (TanqueA, 2000) Utilizar para iniciar alguna accin o lgica cuando el nivel de un tanque alcanza un cierto valor.
www.promodel.com.mx
194
194
Tank_FallTrigger
Sintaxis: TANK_FALLTRIGGER (<TankID>, <Nivel>) TANK_FALLTRIGGER (TanqueA, 100) Utilizar para iniciar alguna accin o lgica cuando el nivel de un tanque cae hasta cierto valor.
www.promodel.com.mx
195
195
Tanktrig.mod
www.promodel.com.mx
196
196
Tank_Cap, Tank_FreeCap
Sintaxis: TANK_CAP (<TankID>) TANK_FREECAP (<TankID>)
TANK_CAP (TanqueA) TANK_FREECAP (TanqueA) Utilizar para encontrar la capacidad definida o capacidad disponible de un tanque.
www.promodel.com.mx 197
197
Tank_DoOperation
Sintaxis: TANK_DOOPERATION (<TankID>, <tiempo>) TANK_DOOPERATION (TanqueA, N(15, 1.2)) Utilizar para realizar una operacin basada en tiempo de los contenidos de un tanque (el tiempo est en las unidades de tiempo default). Estado: Fijar a Tank_Operation y entonces a Tank_Blocked cuando se completa.
www.promodel.com.mx 198
198
Tank_GoDown
Sintaxis: TANK_GODOWN (<TankID>, <tiempo>) TANK_GODOWN (TanqueA, 5) Utilizar para modelar tiempos muertos (v.gr. Fallas de la bomba). Utilizar en lugar de un estatuto WAIT en la lgica de Tiempos Muertos de Reloj (Clock), o utilizar en cualquier otra lgica (el tiempo est en las unidades de tiempo default). Estado: Fijar a Tank_Down y entonces al estado previo cuando se completa.
www.promodel.com.mx 199
199
Tank_DoPrep
Sintaxis: TANK_DOPREP (<TankID>, <tiempo>) TANK_DOPREP (TanqueA, 15) Utilizar para modelar limpieza u otro tiempo de preparacin. Utilizar en cualquier lgica (el tiempo est en las unidades de tiempo default). Estado: Fijar a Tank_Setup y entonces a Tank_Idle cuando se completa.
www.promodel.com.mx 200
200
Tank_SetState
Sintaxis: TANK_SETSTATE (<TankID>, <Estado>) TANK_SETSTATE (TanqueA, Tank_Down) Utilizar para fijar explcitamente el estado de un tanque. Utilizar slo si el estado de cambio automtico no se ajusta a los propsitos. Parmetros sern cambiados automticamente si ocurre cualquier cambio en el nivel del tanque.
www.promodel.com.mx 201
201
Tank_SelectOutput
Sintaxis: TANK_SELECTOUTPUT (<Primer Tanque>, <No. de Tanques>, <Regla>, <Nivel Mx.>, <Tipo de Producto>) TANK_SELECTOUTPUT (TanqueA, 3, Tank_InOrder, 5000, Tank_Product [TanqueMezcla]) Utilizar para seleccionar entre varios tanques para salida o llenado. Se asume que todos los tanques de salida se enlistan juntos en el mdulo de Locaciones (lmite es 10).
www.promodel.com.mx 202
202
No
Hay un tanque con nivel > 0 pero menor que el nivel Mx. ?
No
No
No
Se especifica el nivel Mx . > 0?
No
S S
S
Esperar por el primer tanque que caiga por debajo del lmite Mx .
S Regresar Tank ID
www.promodel.com.mx
203
203
Tank_SelectInput
Sintaxis: TANK_SELECTINPUT (<Primer Tanque>, <No. de Tanques>, <Regla>, <Nivel Mn.>, <Tipo de Producto>) TANK_SELECTINPUT (A, 3, Tank_LongestBlocked, 100, 0) Utilizar para seleccionar entre varios tanques para entrada. Se asume que todos los tanques de entrada se enlistan juntos en el mdulo de Locaciones (lmite es 10).
www.promodel.com.mx 204
204
Modelo TankPick.mod
www.promodel.com.mx
205
205
Tank_Rate
Sintaxis: TANK_RATE (<DESDE>, <HACIA>) TANK_RATE (TanqueA, TanqueB) Se invoca automticamente si la tasa es 0 en cualquier subrutina de flujo. El usuario modifica Tank_Rate para regresar la tasa apropiada (parmetros de nota). Regresar a 0 para terminar el flujo (la cantidad no llena/vaca se almacena automticamente en Tank_QtyLeft).
www.promodel.com.mx 206
206
Cdigo Tank_Rate
// Remplazar el siguiente cdigo con tu cdigo. if Tank_FromID = 0 then Stop Pasar 0 como la tasa de llenado para " $ loc(Tank_ToID) $ " requiere que regreses un valor de tasa utilizando la subrutina llamada Tank_Rate. else Stop Pasar 0 como la tasa de vaciado para " $ loc(Tank_FromID) $ " requiere que regreses un valor de tasa utilizando la subrutina llamada Tank_Rate."
www.promodel.com.mx 207
207
Ejemplo de Tank_Rate
La tasa de flujo del TanqueA al TanqueB se decrementa desde 150 gpm hasta 100 gpm cuando TanqueB alcanza ms de 4000.
If (Tank_FromID = TanqueA) and (Tank_ToID = TanqueB) then if Tank_Level[Tank_FromID] > 4000 then return 100 else return 150
www.promodel.com.mx
208
208
Arreglos Predefinidos
l l l l l
www.promodel.com.mx
209
209
Arreglo Tank_Statistics
Columna 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ltimo nivel Tiempo de ltima oportunidad Nivel de ponderacin de tiempo acumulado Entradas Contenidos mximos ltimo cambio de estado Tiempo ocioso acumulado Tiempo de operacin acumulado Tiempo de preparacin Tiempo de llenado acumulado Tiempo de vaco acumulado Tiempo de bloqueo acumulado Tiempo muerto acumulado Conteo de tiempo muerto actual Descripcin Reiniciar despus del Perodo de Estabilizacin NC Tiempo actual en minutos 0 Valor de columna 1 Valor de columna 1 Tiempo actual en minutos 0 0 0 0 0 0 0 NC
www.promodel.com.mx
210
210
www.promodel.com.mx
211
211
Arreglo Tank_Fills
Un til arreglo para dar seguimiento a mltiples llenados simultneos al mismo tanque. Ej: Aadir dos ingredientes al TanqueMezcla
Tank Loop // Contina el ciclo hasta que la simulacin termina BEGIN Tank_Fills[TanqueMezcla]=0 ACTIVATE Tank_Transfer(Tanque1,TanqueMezcla,2000,50,0,0) ACTIVATE Tank_Transfer(Tanque1,TanqueMezcla,300,20,4,0) WAIT UNTIL Tank_Fills[TanqueMezcla]=2 Tank_DoOperation (TanqueMezcla),15) // Tiempo de Mezclado WAIT UNTIL Tank_State[TanqueAlmacen] = Tank_Idle Tank_Transfer(TanqueMezcla,TanqueAlmacen,Tank_Level[TanqueMezcla],40,0,0) Tank_Prep(TanqueMezcla,50) // Limpizar TanqueMezcla pr 50 minutos END www.promodel.com.mx 212
212
Ejercicios
213
213
Recordatorios de Modelacin
Los Modelos de tanques deben de detenerse explcitamente (ya que no se requieren entidades). No definir variables locales dentro de Tank_Loop (ciclos de tanques). Asegurarse que los estatutos WAIT UNTIL en el Tank_Level utilicen >= o <=; no =.
www.promodel.com.mx
214
214
Tcnicas de Llenado
Una entidad, Tanq, llega a una locacin, Entrega, cargando una cantidad de galones almacenado en un atributo de entidad llamado Tanker_Qty. El Tanque descarga su contenido en un tanque, TanqueRecibo, a una tasa de 200 galones por minuto. Una vez que el TanqueRecibo se llena, el nivel debe de llegar a 1000 galones antes de continuar el llenado. Definir lo siguiente en la lgica de proceso para la entidad Tanq: Tank_Fill (TanqueRecibo, Tanker_Qty, 200, 1000)
www.promodel.com.mx 215
215
Tcnicas de Inicio
Se desea comenzar la simulacin con el tanque proveedor, TanqueAgua, llenado con 800 galones de agua.
www.promodel.com.mx
216
216
Se desea volver a llenar un tanque proveedor con 20000 galones a 200 gpm cada vez que alcance 500 galones.
Activar una subrutina con el siguiente estatuto: Tank_Fill (TanqueProv, 100000000, 200, 500)
www.promodel.com.mx
217
217
218
218
219
Tcnicas de Transferencia
El TanqueB requiere 1000 galones del TanqueA cada vez que el TanqueB se vaca. El TanqueB tomar material del TanqueA slo cuando el TanqueA tenga un nivel mnimo de 1000 galones. Activar la siguiente subrutina en la lgica de inicializacin: Tank_Loop { Wait Until Tank_Level[TanqueA] >= 1000 Tank_Transfer (TanqueA, TanqueB, 1000, 200,0,0) [Indicar el proceso y la lgica de vaciado del TanqueB aqu] } 220
www.promodel.com.mx
220
Tcnicas de Seleccin
El TanqueX selecciona de entre tres tanques proveedores (Tanque1, Tanque2 y Tanque3) basandose en cul de los tanques proveedores ha estado esperando ms tiempo para descargar su contenido.
Definir lo siguiente en la subrutina para TanqueX: Int SelectedTank SelectedTank = Tank_SelectInput(TanqueX, Tanque1, 3, Tank_LongestBlocked, 0)
www.promodel.com.mx 221
221
222
223
224
225
Problema Multi-Producto
Un productor de bebidas procesa 5 tipos de bebidas (naranja, cereza, limn, uva y raz), cada uno en 2 tamaos de contenedor (12 oz. y 32 oz.). La bebida se mezcla en un tanque de mezclado y despus es bombeado en un tanque almacn de donde se alimenta a un tanque de llenado para envasar. ste tanque llena envases, los cuales se envan a un almacn para embarcarlos ms adelante. El propsito de la simulacin es ver qu tanto tiempo toma procesar una lista de rdenes. Las rdenes se definen por tipo de producto y tamao de contenedor. Todas las rdenes del mismo sabor se procesan juntas para minimizar el tiempo de preparacin por cambio de producto .
www.promodel.com.mx 226
226
Problema Multi-Producto
Tanque de Mezclado Hay un tanque de mezclado con una capacidad de 500 galones. Cada sabor es una mezcla de concentrado y agua con una proporcin de 9:1 entre agua y concentrado. Ambos ingredientes se bombean al mismo tiempo con el agua alimentndose a una tasa de 30 galones por minuto (gpm) y el concentrado a 10 gpm. Siempre hay concentrado y agua disponible, por lo que no es necesario modelar esta fuente. Despus de que los ingredientes han sido aadidos, se requiere un tiempo de mezclado de 10 minutos y entonces la bebida est lista para bombearse a un tanque almacn.
l Para
hacer el cambio a un nuevo sabor, se requiere un tiempo de preparacin y limpieza de 15 minutos. Si para completar una orden de un sabor se necesita mezclar ms de lo que cabe en el tanque, en seguida se procesa el faltante sin requerir ninguna limpieza.
www.promodel.com.mx
227
227
Problema Multi-Producto
Seleccionar un Tanque Almacn Un tanque almacn se selecciona basndose en cul tanque contiene el mismo tipo de producto y tiene capacidad para ms. Si todos los tanques almacn estn llenos o contienen diferentes tipos de producto, el tanque de mezclado espera hasta que el primer tanque est disponible. La seleccin entre dos o ms tanques ociosos se basa en cul tanque ha estado ocioso ms tiempo. El tanque de mezclado puede enviar slo a un tanque almacn a la vez. La tasa de flujo hacia el tanque almacn es 30 gpm. 228
www.promodel.com.mx
228
Problema Multi-Producto
Cambio de Producto Para cambiar a un nuevo sabor, se requiere un tiempo de preparacin y limpieza de 25 minutos. Si para completar una orden de un sabor se necesita mezclar ms de lo que cabe en el tanque, en seguida se procesa el faltante sin requerir ninguna limpieza.
www.promodel.com.mx
229
229
Problema Multi-Producto
Tanques Almacn Hay tres tanques almacn, cada uno con capacidad de 2000 galones. Cada tanque almacn recibe sus insumos del tanque de mezclado. Tan pronto como un tanque almacn recibe cualquier insumo, est disponible para utilizarse en un llenador. Un llenador puede tener slo un tanque almacn alimentndolo, pero un tanque almacn puede alimentar a ms de un llenador al mismo tiempo. Cuando se vaca un tanque almacn, ste se enjuaga por 10 minutos.
www.promodel.com.mx 230
230
Problema Multi-Producto
Tanques de Llenado Hay seis tanques de llenado, cada uno con capacidad de 50 galones. Un tanque de llenado requiere bebida de uno de los tanques almacn basndose en la programacin de producto para esa estacin de llenado. Los tanques de llenado se limpian cuando se termina el producto. El tiempo de limpieza es de 10 minutos.
www.promodel.com.mx 231
231
Problema Multi-Producto
Estacin de Llenado Cada tanque de llenado llena contenedores en la estacin de llenado. Las botellas se llenan a una tasa de 200 botellas por minuto en las de 12 oz. y 80 por minuto en las botellas de 32 oz.
www.promodel.com.mx
232
232
Problema Multi-Producto
Sabor Naranja Limn Raz Cereza Uva Lista de rdenes Tamao de Cantidad la Botella 8 oz. 3800 32 oz. 8 oz. 32 oz. 8 oz. 32 oz. 8 oz. 32 oz. 8 oz. 32 oz. 2300 3300 2000 3700 2200 3000 1800 3400 2200
www.promodel.com.mx
233
233
Muchas Gracias!
Tanks Alot!
234
234