Fecha de presentación de notas: Lunes 22 de Febrero Fecha de revisión: Martes 23 de Febrero a las 11.00h
Ejercicio 2 (40 minutos, 3 puntos)
Se pretende automatizar un sistema de montacargas para un edificio de 3 plantas. La cabina del montacargas consta de una botonera interior (botones B1, B2, B3) para seleccionar cada una de las plantas. En cada planta existen sensores de presencia (S1, S2, S3), un piloto para indicar si la cabina está actualmente en uso (L1, L2, L3) y un pulsador para realizar la petición de cabina (P1, P2, P3). El cuadro de mandos tiene pulsadores de marcha (PON) y parada (POFF) y un piloto de mantenimiento (LM) para
indicar la necesidad de realizar una inspección. Las órdenes que puede recibir la cabina son SUBIR y BAJAR. Para simplificar se asume que la cabina no tiene puertas. Características del funcionamiento del sistema:
• El sistema arranca con el pulsador de marcha por flanco (se asume que la cabina se encuentra al inicio en la planta baja –etapa de puesta en marcha-). • Cuando la cabina llega a la planta destino hay que realizar una espera de 7s. • Tiene preferencia siempre la botonera de cabina frente a los pulsadores de
planta.
• Se detecta la llegada de la cabina a cada planta mediante los sensores de presencia correspondientes.
• Al pulsar POFF, el sistema vuelve a la planta baja una vez descargados los
pasajeros de la cabina en destino, quedando lista para la llegada de nuevos pasajeros.
• Tras realizar 1000 peticiones se enciende el piloto de mantenimiento (LM) en el cuadro de mandos para indicar la necesidad de una revisión. La cabina continúa funcionando con normalidad.
Se pide:
1) GRAFCET de nivel 1 del funcionamiento del sistema.
Nota: Encapsular la espera de 7 segundos y la llegada a cada planta en macroetapas del tipo SUBIR-PLANTA_X, BAJAR_PLANTA_Y. No incluir la gestión del piloto de mantenimiento LM en el dibujo. Modelar la parada mediante una secuencia de escape. 2) Implemente una función FC-1 con parámetros adecuados de entrada /salida que pueda ser invocada para implementar todas las macroetapas del tipo
SUBIR-PLANTA_X, BAJAR_PLANTA_Y. Incluya la llamada de la función desde el bloque invocante.
Nota: Tras la invocación de FC-1 la cabina ha llegado a su destino, han pasado los 7s para la descarga de los pasajeros y se ha incrementado el contador asociado con LM.
Implemente la función FC-2 y complete el código del bloque invocante que aparece a continuación:
donde M10.1=1 si el peso en cabina es correcto.
Nota: La gestión del error en la medida se debe hacer obligatoriamente mediante el bit RB.
4) Implemente la funcionalidad relativa a la parada (evento POFF) en una nueva función
FC-3. Dicha función debe invocar a la función FC-1 implementada en el apartado 2. La invocación de FC-3 desde el bloque principal es del tipo:
Nota importante: Todos los bloques deben ser autocontenidos en la medida de lo posible. No se aceptarán como válidas implementaciones de bloques de función con dependencias externas innecesarias.
PEW10 ERROR EN MEDIDA M10.1 FC-2 OB1 CALL FC-3 //…. Bloque invocante U EvaluarPeso SPBNB _001 CALL FC2 //… _001: NOP 0
SOLUCIÓN
1) GRAFCET (nivel 1)
Las etapas E1, E2, E3 representan los estados donde la cabina se encuentra parada en cada una de las plantas a la espera de estar en servicio.
MemParada es una memoria del evento parada (Poff)
Las macroetas SUBIR_X, BAJAR_Y incluyen la llegada a la planta y la espera de 7segundos
Las receptividades no quedan detalladas en el GRAFCET para simplificar el dibujo. Algunos ejemplo: 1- E1ÆSubir_2: ( B2+P2⋅B ) Mparada3 ⋅ 2- E2ÆBajar_1: ( B1+P B ) Mparada1⋅ 3 ⋅ 3- E3ÆBajar_2: ( B2+P2⋅B ) Mparada1 ⋅ E1 E2 E3 E1 E3 E1 E2 E1 MemParada E1, E2, E3 Subir_2 Subir_3 Bajar_1 Subir_3 Bajar_1 Bajar_2 Bajar_1 MemParada MemParada
FC2 L #Peso //En Kg L 500; >=I ; = #PesoExcedido L #Peso; L 1000; >=I ; SPBN _001 CLR ; SAVE ; _001: NOP 0 BLOQUE INVOCANTE U Peticion SPBN _001: CALL "IrPlanta" Accionador :="BAJAR" SensorPlantaDestino:="S_Planta1" BitDeFin :="BitDeFinDePeticion" U "BitDeFinDePeticion" S "M_Planta1" R "M_Bajar1" _001: NOP 0 //… FC1 O M 1000.0 ON M 1000.0 FP "BitDeTrabajo" S #Accionador S #EnMov R #BitDeFin U #SensorPlantaDestino R #Accionador R #EnMov L "Datos".TiempoEspera SE T1 U T1 S #BitDeFin R "BitDeTrabajo" BLOQUE INVOCANTE U "M_Planta1" O "M_Planta2" O "M_Planta3" SPBNB _001 CALL "LimitePeso" Peso :="PEW10" PesoExcedido:=M10.1 UN BIE = "ErrorEnMedida" _001: NOP 0 U M10.1
//…Tratamiento Exceso de Peso 3)
FC1 SensorPlanta
FC3-PARADA U "Reset" FP M 500.1
S #MemReset //Memoria: parámetro TEMP U # MemReset U( U "M_Planta2" O "M_Planta3" ) SPBN _001; CALL "IrPlanta" Accionador := "BAJAR" SensorPlantaDestino := "S_Planta1" BitDeFin := "BitDeFinDePeticion" U "BitDeFinDePeticion" S "M_Planta1" R "M_Planta2; R "M_Planta3" R # MemReset _001: NOP 0 4)
Dado el código en STEP 7 que figura a continuación se pide:
1) Dibuje los cronogramas de las señales M 200.0, M 200.1, M 200.2.
2) ¿Sería posible emplear un temporizador de tipo SI para conseguir el mismo comportamiento de las 3 señales del apartado uno? Justifique la respuesta.
3) Explique brevemente para qué puede servir este código. ¿Qué ocurriría si la instrucción U M200.3 se cambiara por U M200.7? ¿Y si la constante de tiempo que se carga en el temporizador fuera de 1s en lugar de 500ms?
SOLUCIÓN
1) Las señales son periódicas alternando niveles alto y bajo. La señal M200.0 es la de mayor frecuencia (1Hz), la M200.1 va a 0.5 Hz y la M200.2 a 0,25Hz. Todas empiezan a nivel bajo.
2) El temporizador tiene que tener memoria porque inmediatamente después de ser disparado le llega un nivel bajo en la entrada de disparo, con lo que si no tuviera memoria dejaría de temporizar.
3) Este código sirve para genera de una manera sencilla señales cuadradas de frecuencias que dividen su valor por dos según la posición de memoria. En particular es la forma de programar marcas de ciclo en el arranque de un PLC para comprobar que los módulos de entrada salida están funcionando correctamente.
Si se modifica la instrucción U M200.3 por U M200.7 se habilitan las señales M200.3-M200.6.
Al modificar la constante de tiempo se está modificando la frecuencia de todas las señales. En concreto la frecuencia de la señal más rápida (M200.0) es:
fz (M200.0) = 2 x Cte.Tiempo UN T1 L S5T#500ms SV T1 ZV Z1 L Z1 T MB200 U M200.3 R Z1