DECLARACIONES DEL PROMODEL Declaración JOIN Este modelo demuestra la declaración JOIN. La EntA llega a la instalación Loc1 La entidad EntB a la instalación Loc2. La entidad EntB se une a 2 entidades EntA's como se especifica por el atributo Attr1. En PROCESSING Entity Location EntA Inst1 EntB Inst2 EntC Inst3 Operation Wait 1 min Attr1=2 Join Attr1 EntA Wait 1 min Output EntA EntC Destination Inst2 Inst3 EntC Exit Rule Join 1 First 1 La regla de envio JOIN Las Instalaciones Inst2, Inst3 y Inst4 esperan la llegada de de dos entidades una de Inst1 y la otra de Inst2 para poder ser enviado su producto procesado a Last_Location para después ir a EXIT Se utilizan 3 entidades EntA, EntB y EntC En PROCESSING Entity Location EntA Almacen EntA Inst1 Operation wait 5.2 Output EntA EntA Destination Inst1 Inst2 Rule First 1 Join 1 EntB EntB EntB EntB EntAB Inst5 Inst2 JOIN 1 EntA Graphic 2 WAIT 12 min Inst33 JOIN 1 EntA Graphic 2 WAIT 12 min Inst4 Join 1 EntA Graphic 2 WAIT 12 min Ultima_instal WAIT 2.0 min EntA EntAB Loc3 Join Last_Location First EntAB Last_Location First EntAB Last_Location First EntAB Exit First v=v+1 Declaración ACUMM Las entidades arriban a la instalación Loc1 y son enviadas a la instalación Loc2. Dos entidades son acumuladas en la instalación Loc2 antes de iniciar el proceso. Las entidades son entonces enviadas a una área de almacenamiento temporal (Buffer) donde esperan a ser procesadas en la instalación Loc3. Las entidades después de esto abandonan el sistema. En PROCESSING Entity Location EntA Inst1 EntA Inst2 Operation ACCUM 2 WAIT N(2.5,.2) Output EntA EntA Destination Rule Inst2 First Almacen_tem First EntA EntA Almacen_tem Inst3 Wait5 EntA EntA Inst3 Exit First First Declaración COMBINE Llegan Entidades EntA y EntB a la instalación Inst1 y se agrupan 5 de cada una para formar Grupos A y C y pasa a la instalación Inst2 para combinarse y formar el grupo GrupoC y este pasa a la instalación Inst3a a esperar su turno de proceso, donde las entidades EntA y EntB son procesadas de forma individual con igual duración en la instalación Inst3, donde después sale terminado. Usa las entidades EntA y EntB, y las agrupaciones GrupoA, GrupoB y GrupoC En PROCESSING Entity Location EntA Inst1 EntA Inst1 ALL Inst2 BatchC BatchC Inst2 Inst3a ALL Inst3 Operation Combine 5 Combine 5 Combine 2 As GrupoC WAIT U(3,1) WAIT 5 Output GrupoA GrupoB Destination Inst2 Inst2 Rule First First GrupoC EntA EntB ALL Inst3a Inst3 Inst3 EXIT First First First Declaración GROUP Agrupa entidades para ser procesadas. Las Entidades EntA, EntB y EntC arriban a las instalaciones Inst1A, Inst1B y Inst1C respectivamente, donde después pasan a la instalación Loc2 para ser agrupadas en un grupo de 20 entidades llamadas BATCH y lleva un tiempo de proceso de 5 minutos. Después pasan a la instalación Loc3 para ser procesados por 3 min y después salir. En PROCESSING Entity Location EntA InstA EntB InstB EntC Inst1C ALL Inst2 Batch Batch Inst2 Inst3 Operation Wait E(2,0) Wait U(3,1) Wait N(2.1,.2) Accum 20 Group 20 As Batch Wait 5 min Wait 3 Output EntA EntB EntC Destination Inst2 Inst2 Inst2 Rule First First First Batch Batch Inst3 EXIT First First Regla de envío del mayor tiempo ocioso (LNGUNOCC) Después de que la entidad EntA completa 2.5 minutos de operación en la instalación Inst1, en enviada a cualquiera de las tres instalaciones Inst2, Inst3 o Inst4 dependiendo, de cual instalación ha estado mas tiempo ociosa. En PROCESSING Entity Location Operation Output Destination Rule EntA Inst1 Wait 2.5 EntA LU 1 First EntA LU First EntA LU First EntA Inst2 Wait 10 EntA EXIT First EntA Inst3 Wait 5 EntA EXIT First EntA Inst4 Wait 20 EntA EXIT First Regla del Primero Disponible (FIRSTAVL) 1.- Los engranes arriban y son enviadas a preparación 2.- Cada Engrane es entonces enviado al primer Robot 1, 2 o 3 disponible 3.- Un contador en cada Robot contabiliza el total de partes procesadas. En PROCESSING Entity Location Engrane Arriba Engrane Prepara Operation Wait 0 Wait N(5.1,.15) EntA Wait U(5.5,.3) Robot1 Output Destination Rule EntA EntA EntA EntA Robot1 Robot2 Robot3 EXIT First 1 First First First EntA EntA Robot2 Robot3 Wait U(5.5,.3) Wait U(5.0,.3) EntA EntA EXIT EXIT First First En Move Logia de los últimos 3 renglones INC(R1_TOT) MOVE FOR 0 INC(R2_TOT) MOVE FOR 0 INC(R3_TOT) MOVE FOR 0 Y se solicitan en Arrivals, Variables R1_TOT, R2_TOT y R3_TOT para los contadores en esas estaciones de trabajo Robot1, Robot” y Robot3. Declaración INCREMENT Este modelo usa la declaración INCREMENT. Dos Atributos Attr1 y Attr2, son fijados a 1 y 2 respectivamente. Existen también 2 variables, Count y Num_complete. Estas variables son incrementadas cada vez que una parte salga. Num-complete se incrementa 1 unidad, mientras que Count se incrementa en Attr1*Attr2. En PROCESSING Entity Location EntA Inst1 EntA Torno1 Operation Attr1=1 Attr2=2 Wait 1.0 Output EntA Destination Torno Rule First Enta EXIT First En Move Logic del último renglón, debe contener: Inc(Num_complete,1) puede omitirse ,1 Inc(Count,Attr1*Attr2) MOVE FOR 0 Declaración EMPTY Las entidades EntA llegan a la estación Inst1, de donde son enviadas 4 unidades a las mesas Mesa1, Mesa2 y Mesa3, sólo sí la mesa esta vacía, donde pasan un tiempo de proceso. En PROCESSING Entity Location EntA Almacen EntA Inst1 EntA EntA EntA Mesa1 Mesa2 Mesa3 Operation Output Destination Rule Wait 4 EntA EntA EntA EntA EntA EntA Mesa1 Mesa2 Mesa3 EXIT EXIT EXIT Empty 1 Empty Empty First First First Wait 60 Wait 45 Wait 60 Declaración FREE y JOINTLY Se utilizan 2 recursos Rec1 y Rec2, uno (Res1) para mover la entidad EntA de la estación InstA a la estación Inst1, juntos (Rec1 y Rec2) los recursos cargan la entidad EntA a la máquina en la estación 1, se libera el recurso 1 (Rec1) y el recurso 2 (Rec2) opera la máquina procesando EntA en esta estación y después de termina Res2 lleva la entidad EntA a la estación Inst2, entonces se libera el recurso 2 (Rec2) y se procesa EntA para luego salir del sistema. En PROCESSING Entity Location EntA InstA EntA Inst1 EntA Inst2 Operation Wait 1 Jointly Get (Res1 and Rec2) WAIT N(4.5,.2) Free Rec1 WAIT L(5,1) Free Rec2 Wait 3 Output EntA EntA Destination Inst1 Inst1 Rule First First EntA EXIT First En Move Logic del primer renglón debe contener: MOVE WITH Rec1 THEN FREE En Move Logic del segundo renglón debe contener: MOVE WITH Rec2 THEN FREE Envío de entidades a la estación que tenga Más Espacio Disponible (MOSTAVL) La entidad EntA es procesada en la estación Inst1 y luego es en viada a cualquiera de las estaciones Inst2, Inst3, o Inst4 que tengas más espacio disponible. En PROCESSING Entity Location EntA Inst1 Operation Wait 4 EntA EntA EntA Wait 5 Wait 10 Wait 15 Inst1 Inst2 Inst3 Output EntA EntA EntA EntA EntA EntA Destination Inst1 Inst2 Inst3 EXIT EXIT EXIT Rule MOST 1 MOST MOST First First First Declaración SPLIT Esta declaración permite separar una entidad de grupo en varias entidades individuales. Llega un grupoA de unidades a la Instalación 1, ahí se desagrupan en 7 unidades individuales, donde son llevadas por el recurso a la instalación2 para ser procesadas. Declaración MATCH En PROCESSING Entity Location EntAB Inst1 EntA EntA EntB EntB EntB Fresadora Torno Fresadora2 Torno2 Inst10B EntAB Sierra Operation Inc(count) Attr1=Count Wait 2 Match Attr1 Wait 2 Wait 3 Match Attr1 Join 1 Wait 2 Output EntAB EntA EntB EntA EntA EntB EntB EntAB Destination EXIT Fresadora Fresadora2 Torno Inst10B Torno2 Inst10B Sierra Rule FIRST1 FIRST1 FIRST1 First1 JOIN1 First1 First1 First1 EntAB EXIT First1 IF_THEN_ELSE Este modelo demuestra el uso de la declaración IF-THEN-ELSE. Mientras que el reloj (clock) es menor de 2 horas, La Entidad A va la instalación 2. Cuando el reloj alcanza las 2 horas, la EntA es entonces enviada a la instalación3. Operación If Clock(hr)<2.0 Then Route 1 Else Route 2 IF_THEN Este modelo muestra la declaración IF-THEN. Mientras que el valor del reloj (clock en horas) es menor que 8 horas, la variable cuenta será incrementada en 1. Cuando el reloj alcance las 8 horas se detiene el incremento. If Clock(hr)<8.0 then inc(cuenta) Declaración STOP Este modelo usa la declaración STOP. Conforme las entidades abandonan la instalación 2, la variable "Total_Complete" es incrementada. Cuando la variable llega a 100, la simulación es detenida. Declaración GRAPHIC Este ejemplo demuestra la declaración GRAPHIC para cambiar el icono de la gráfica para Entidades y Recursos. Las entidades y los recursos pueden tener múltiples iconos enumerados de 1 a n. como se define en su respectivo editor de gráficos. Usar GRAPHIC 0 hace que el icono desaparezca. En este ejemplo, las primeras 10 entidades que llegan serán movidas a inspección, inspeccionadas y transportadas fuera del sistema sin cambiar el icono de la gráfica. entonces el icono será cambiado a GRAPHIC 2 después de la inspección y el icono del montacargas será cambiado a GRAPHIC 2 cuando abandone la instalación de inspección. En RESOURCES, después de indicar el icono del recurso (Graphic 1) en Resource Graphics desmarque New y seleccione el icono que será Graphic 2 Declaración RENAME AS Entidad A se junta con la entidad B en la instalación 2. Ellas son juntadas y son renombradas como entidad C antes de moverse a la instalación 3 para ser procesadas. Declaración PROBABILITY La Entidad A llega a la instalación 1 y es procesada por 8 minutos. Entonces pasa a la instalación 2,3, o 4 dependiendo de la probabilidad establecida. En este ejemplo el 80% de las veces las partes irán a la instalación 2, 15% a la instalación 3, y 5% de las veces a la instalación 4. Declaración CREATE Llega un lote EntA con diez piezas EntB, las cuales son descargadas en un tiempo N(5,3) y donde son inspeccionadas en un tiempo U(3,3) y después pasan a ser procesadas en màquinado con un tiempo determinado. EN OPERACION WAIT N(5,.3) INC NO_lotes Create 10 As EntB Declaración GO TO Este modelo demuestra la declaración GOTO. El valor del atributo es seleccionado aleatoriamente. Si el atributo es menor que 4, la declaración "goto L1" es usada para saltar a la estiqueta "L1:" e incrementa la variable V1. Si el atributo es 4, 5 o 6, entonces la variable V2 es incrementada. Finalmente, si el atributo es mayor que 6, entonces la variable V3 es incrementada. Operation del primer nivel WAIT 1.0 min Var4=Attr1 If Attr1>3 Then Goto L1 Inc(Var1) BREAKBLK L1: If Attr1>6 Then Goto L2 Inc(Var2) BREAKBLK L2: Inc(Var3) Envió Dirigido por Turno Declaración GROUP/UNGROUP Declaración LOAD Declaración GET Declaración UNTIL FULL Declaración RENAME AS Declaración USER CONDITION Declaración BREAKBLK Declaración CREATE AS Recurso Compartido Declaración DISPLAY ( Letrero )