1 / 25

Programación estructurada. Plantillas

Programación estructurada. Plantillas. Pablo San Segundo C-206 pablo.sansegundo@upm.es. Índice. Consideraciones generales Plantilla de cajas Plantilla EN-ENO Plantilla de maniobra Plantilla START-STOP El problema de “mostrar el cero”. Consideraciones generales.

morgan
Télécharger la présentation

Programación estructurada. Plantillas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programación estructurada. Plantillas Pablo San Segundo C-206 pablo.sansegundo@upm.es

  2. Índice • Consideraciones generales • Plantilla de cajas • Plantilla EN-ENO • Plantilla de maniobra • Plantilla START-STOP • El problema de “mostrar el cero”

  3. Consideraciones generales • Existen un buen número de situaciones de control que se repiten en las diferentes tecnologías • Para facilitar su programación en un PLC se proponen un conjunto de plantillas • Existe cierta similitud entre el concepto de plantilla y el de patrón en POO

  4. Índice • Consideraciones generales • Plantilla de cajas • Plantilla EN-ENO • Plantilla de maniobra • Plantilla START-STOP

  5. Implementacióncon “cajas” Implementación típica • U“X0” • SPBN_001 • U“S1” • S“X1” • R“X0” • _001: U“X1” • SPBN _002 • U“S2” • S“X2” • R“X1” • _002: U“X2” • SPBN _003 • U“S3” • S“X3” • R“X2” • _003: NOP 0 • //... • U“X0” • U“S1” • S“X1” • R“X0” • U“X1” • U“S2” • S“X2” • R“X1” • U“X2” • U“S3” • S“X3” • R“X2” • //... 1 Buena numeración. En la caja se activa la etapa 001 VENTAJAS A) EficienciaB) ClaridadC) Modela prioridad Plantilla de “cajas” para el grafcet 0 S1 S2 2 S3 3 Cuestión ¿INCONVENIENTES?

  6. Ejemplo repaso: Macroetapa en grafcet 3 OB1: BLOQUE INVOCANTE FC1 U “X3” U “f” S “M1” R “X3” U “M1” SPBN _M1 CALL FC1 U “S1” U “k” S “X4” R “M1” R M100.0 _M1: NOP 0 SET FP M100.0 S “X1” R “X10” R “X11” R S1 U “X1” U “g” S “X10” R “X1” //… FC1 Salida de la Macroetapa

  7. Índice • Consideraciones generales • Plantilla de cajas • Plantilla EN-ENO • Plantilla de maniobra • Plantilla START-STOP

  8. FC1 E 1.0 M 1.0 EN ENO (500 * 600) Uso de bit de error RB Plantilla Enable(EN)-EnableOut(ENO) • Gestión de errores en bloques mediante el biestable RB de la palabra de estado Implementación caja U E1.0SPBNB _001 CALLFC1 _001: UBIE= M 1.0 L 500L 600*IUN OVSAVE Tarea Objetivo RBRLO Consulta el estado del bit RB Cuestión Modifique el código para que RB sólo se modifique con el evento error EVENTO ERROR: EN=TRUE y ENO=FALSE

  9. OB1: Bloque invocante • U M100.0 • SPBNB _001 • CALL FC1 • _001: U BIE • = M100.1 FC1: Bloque llamado L EW 0 L EW 2 *I SPO _ERR T MW 1 BEA _ERR: CLR SAVE Ejemplo para un bloque BLOQUE MULTIPLICADOR (FC1) Evento error aislado. Buen estilo M 100.1 M 100.0 EN ENO EW 0 MW 1 EW 0 * EW 2 EW 2

  10. Ejemplo de concatenamiento de bloques Cuestión ¿Es necesario usar SPBNB en la segunda llamada o bastaría con usar SPBN? Ejercicio Programe la concatenación de bloques que aparece abajo • U M100.0 • SPBNB_001 • CALL FC1 • U BIE • SPBNB_001 • CALL FC2 • _001:U BIE • = M100.1 Cuestión¿Caracterización del error? ERROR: M100.0=1 y M100.1=0 CADENA DE BLOQUES MULTIPLICADORES FC2 FC1 M 100.1 M 100.0 EN ENO EN ENO EW 4 EW 0 MW 3 EW 4 * EW 6 MW 1 EW 0 * EW 2 EW 6 EW 2

  11. Ejercicio Implemente un bloque función que trate una señal analógica de temperatura transducida (PEW752) con rangos 10ºC (0V) - 70ºC (10V) La función debe llamar al bloque de librería SCALE (FC 105), devolver TRUE si la temperatura se encuentra en [25ºC-40ºC] y gestionar un posible error por desbordamiento mediante el bit RB

  12. Solución VAR_INPUT raw: INT; high_lim : REAL; //70ºC low_lim: REAL ; high_range: REAL //40ºC low_range : REAL ; END_VAR VAR_OUTPUT temperature : REAL ; in_range : BOOL ; //[25-40]ºC END_VAR VAR_TEMP retSCALE : WORD ; //8 overflow ge_low_range : BOOL //>25ºC END_VAR

  13. 1 Aplicación de plantilla EN-ENO al grafcet • Gestión de errores locales a una etapa mediante bit RB • EN es la etapa (implementación con cajas), • ENO representa el evento error OB1: Invocante FC1 • U“X1” • SPBNB_002 • CALLFC1 • UBIE • SPBN_ERR • UT2 • S“X2” • R“X1” • R“Salida” • SPA_002 • _ERR: S“Emergencia” • R“X1” • R“Salida” • _002: NOP 0 • //… U“X1” =“Salida” //… U “Error” SPBN _ERR CLR SAVE _ERR: NOP 0 FC1 T1 Salida / Maniobra (A1.0) con gestión de error Emergencia Error 2 T3 3 Cuestión¿Tiene “Error” prioridad? FC1 X1 Error EN ENO EjercicioImplemente un error por sobrepasamiento de tiempo para la maniobra, mediante bit RB

  14. Solución parcial VAR_INPUT tempor : TIMER ; tout : S5TIME ; END_VAR VAR_OUTPUT actuador : BOOL ; END_VAR VAR_IN_OUT bit_de_trabajo : BOOL ; END_VAR

  15. Índice • Consideraciones generales • Plantilla de cajas • Plantilla EN-ENO • Plantilla de maniobra • Plantilla START-STOP

  16. Plantilla de maniobra • Se asume una maniobra simple tal que el evento de finalización es conocido (p.ej. sensor de fin de carrera= 1) • Se consideran los siguientes biestables • Bit de trabajo: Vale ‘1’ durante la ejecución de la maniobra y ‘0’ en caso contrario. El bit de trabajo a ‘0’ sirve como condición de arranque si el bloque de maniobra es invocado • Bit de fin : Vale ‘1’ cuando se detecta la condición de finalización de la maniobra. ‘0’ en caso contrario. • Bit de error : Vale ‘1’ si se detecta un defecto durante la ejecución de la maniobra. ‘0’ en caso contrario.

  17. 1 Aplicación al grafcet 0 OB1: BLOQUE INVOCANTE FC1 FC1 sini maniobra (A124.0) con gestión de error SET FP “bitDeTrabajo” R “bitDeError” R “bitDeFin” L S5T#10s SS T1 S A124.0 //defecto U T1 S “bitDeError” R T1 FR T1 R “bitDeTrabajo” R A 124.0 //salida normal U “sfin” UN T1 S “bitDeFin” R “bitTrabajo” R T1 FR T1 R A 124.0 U “X0” U “sini” S “X1” R “X0” U “X1” SPBN _002 CALL FC1 U “bitDeError” S “X_ERR” R “X1” UN “bitDeError” U “bitDeFin” S “X2” R “X1” _002: NOP 0 X_ERR 10s/X1 2 3 Cuestion I ¿Se puede usar un temporizador SE? Ejercicio I Diseñe un interfaz apropiado para conseguir que la función maniobra FC1 sea una función de librería Ejercicio II Modifique el interfaz anterior considerando la gestión de defecto mediante bit RB

  18. Soluciones Ejercicio I. Gestión de error con biestable del área de marcas Ejercicio II. Gestión de error mediante biestable RB de la palabra de estado VAR_INPUT tempor : TIMER ; tout : S5TIME ; sfin: BOOL; END_VAR VAR_OUTPUT actuador : BOOL ; bitDeError: BOOL: bitDeFin: BOOL; END_VAR VAR_IN_OUT bit_de_trabajo : BOOL ; END_VAR VAR_INPUT tempor : TIMER ; tout : S5TIME ; sfin: BOOL; END_VAR VAR_OUTPUT actuador : BOOL ; bitDeFin: BOOL; END_VAR VAR_IN_OUT bit_de_trabajo : BOOL ; END_VAR Cuestion I ¿Se puede usar un temporizador SE? NO, se necesita un temporizador con memoria

  19. Índice • Consideraciones generales • Plantilla de cajas • Plantilla EN-ENO • Plantilla de maniobra • Plantilla START-STOP

  20. Plantilla Start-Stop • Se aplica para maniobras complejas, en las que su terminación depende de un evento asíncrono a su evolución • Ejemplo: el control de cada tramo de la escalera mecánica • Consiste en dividir el control en un grafcet maestro con estados de parada y marcha y el grafcet de producción de la maniobra a controlar • La entrada al bloque es un único parámetro start de tipo BOOL con la semántica habitual: • start= TRUE  Estado de Marcha • start= FALSE Estado de Parada • Las salidas del bloque serán: • Actuadores de la maniobra • Aquellos eventos internos que afecten a la finalización

  21. Plantilla Start-Stop PLANTILLA (INTERFAZ) //… VAR_STATIC XM: BOOL XP: BOOL BitDeTrabajo: BOOL x0: BOOL x1: BOOL x2: BOOL //… resto de estados END_VAR actuador start

  22. Caso de uso FB1

  23. 1 0 Aplicación al motor de la escalera mecánica FB “control del motor” (GMM+GP) MOTOR 1 GMM GMM 2 Cuestión ¿Son estrictamente necesarias las etapa XM y XP? FB1 / GMM FB1 / GP U “start” S “XM” R “XP” //… forzado de GP a reposo U“XM” FP “bitDeTrabajo” S “X0” R “X1” R “X2” //… 1 UN “start” S “XP” R “XM” R “bitDeTrabajo” //…forzado GP a congelación

  24. El problema de “mostrar el cero” (repaso) • Ha aparecido a lo largo del curso. • Se presenta en diversas formas: • Una señal de mando por flanco no activa una acción (p.ej. no se activa un temporizador) • Se necesita hacer que un nivel en la señal de mando sea percibido como un flanco • “Mostar un cero” consiste en poner a nivel bajo el biestable responsable de la detección del flanco en la señal de mando del componente SW • Señales de disparo en temporizadores • Señales de contaje en contadores • Aplicación para temporizadores (step 7) • Operador FR (no aparece en KOP, solo en AWL) • FR T1 (muestra el cero al temporizador, habilita la señal de disparo) • FR Z1 (muestra el cero al contador; habilita las señales de suma y resta)

  25. FIN

More Related