La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación estructurada. Plantillas

Presentaciones similares


Presentación del tema: "Programación estructurada. Plantillas"— Transcripción de la presentación:

1 Programación estructurada. Plantillas
Pablo San Segundo C-206

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 Plantilla de “cajas” para el grafcet
U “X0” U “S1” S “X1” R “X0” U “X1” U “S2” S “X2” R “X1” U “X2” U “S3” S “X3” R “X2” //... 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 //... Implementación con “cajas” Buena numeración. En la caja se activa la etapa 001 VENTAJAS A) Eficiencia B) Claridad C) Modela prioridad S1 1 S2 2 S3 3 Cuestión ¿INCONVENIENTES?

6 Ejemplo repaso: Macroetapa en grafcet
3 OB1: BLOQUE INVOCANTE FC1 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” //… Salida de la Macroetapa

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

8 Plantilla Enable(EN)-Enable Out(ENO)
Gestión de errores en bloques mediante el biestable RB de la palabra de estado FC1 ENO M 1.0 E 1.0 EN (500 * 600) Implementación caja Uso de bit de error RB U E1.0 SPBNB _001 CALL FC1 _001: U BIE = M 1.0 L 500 L 600 *I UN OV SAVE 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 BLOQUE MULTIPLICADOR (FC1)
Ejemplo para un bloque U M100.0 SPBNB _001 CALL FC1 _001: U BIE = M100.1 OB1: Bloque invocante L EW 0 L EW 2 *I SPO _ERR T MW 1 BEA _ERR: CLR SAVE FC1: Bloque llamado BLOQUE MULTIPLICADOR (FC1) Evento error aislado. Buen estilo M 100.0 M 100.1 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 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 FC1 FC2 M 100.1 M 100.0 EN ENO EN ENO EW 4 EW 0 MW 1 EW 4 * EW 6 MW 3 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 VAR_TEMP retSCALE : WORD ; //8 overflow ge_low_range : BOOL //>25ºC CALL “SCALE” IN:=#raw HI_LIM:=#high_lim LO_LIM:=#low_lim BIPOLAR:=FALSE RET_VAL:=#retSCALE OUT:=#temperature L #temperature L #low_range >=R = #ge_low_range L #high_range <=R U #ge_low_range = #in_range L 8 L #retSCALE ==I SPBN NERR CLR SAVE NERR: NOP 0 Llamada a periferia Rango inferior Rango superior Gestión error (RB) FC1: “sensor temp”

13 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 Salida / Maniobra (A1.0) con gestión de error Error 1 2 T1 T3 3 Emergencia FC1 U “X1” SPBNB _002 CALL FC1 U BIE SPBN _ERR U T2 S “X2” R “X1” R “Salida” SPA _002 _ERR: S “Emergencia” _002: NOP 0 //… U “X1” = “Salida” //… U “Error” SPBN _ERR CLR SAVE _ERR: NOP 0 Cuestión ¿Tiene “Error” prioridad? FC1 ENO Error X1 EN Ejercicio Implemente 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 ; VAR_IN_OUT bit_de_trabajo : BOOL ; SET FP #bit_de_trabajo S #actuador L #tout SS #tempor U, #tempor BEB CLR //sets RB bit SAVE R #actuador R #bit_de_trabajo FR #tempor R #tempor Arranque Gestión del error (RB) FC1: “sensor temp”

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 Aplicación al grafcet FC1 OB1: BLOQUE INVOCANTE FC1 sini 1
FC1 OB1: BLOQUE INVOCANTE FC1 sini 1 maniobra (A124.0) con gestión de error 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” _002: NOP 0 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 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; VAR_IN_OUT bit_de_trabajo : BOOL ; VAR_INPUT tempor : TIMER ; tout : S5TIME ; sfin: BOOL; END_VAR VAR_OUTPUT actuador : BOOL ; bitDeFin: BOOL; VAR_IN_OUT bit_de_trabajo : BOOL ; 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) //… actuador start
VAR_STATIC XM: BOOL XP: BOOL BitDeTrabajo: BOOL x0: BOOL x1: BOOL x2: BOOL //… resto de estados END_VAR start actuador

22 Caso de uso FB1

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


Descargar ppt "Programación estructurada. Plantillas"

Presentaciones similares


Anuncios Google