Programación estructurada. Plantillas

25
Programación estructurada. Plantillas Pablo San Segundo C-206 [email protected]

description

Programación estructurada. Plantillas. Pablo San Segundo C-206 [email protected]. Índice. Consideraciones generales Plantilla de cajas Plantilla EN-ENO Plantilla de maniobra Plantilla START-STOP El problema de “mostrar el cero”. Consideraciones generales. - PowerPoint PPT Presentation

Transcript of Programación estructurada. Plantillas

Page 1: Programación estructurada.  Plantillas

Programación estructurada. Plantillas

Pablo San Segundo C-206

[email protected]

Page 2: Programación estructurada.  Plantillas

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

Page 3: Programación estructurada.  Plantillas

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

Page 4: Programación estructurada.  Plantillas

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

Page 5: Programación estructurada.  Plantillas

Plantilla de “cajas” para el grafcet

1

2

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 _001U “S1”S “X1”R “X0”

_001: U “X1”

SPBN _002U

“S2”S

“X2”R

“X1”

_002: U “X2”

SPBN _003U

“S3”S

“X3”R

“X2”

_003: NOP 0

//...

Implementacióncon “cajas”

S2

0

S1

S3

3

VENTAJAS

A) EficienciaB) ClaridadC) Modela prioridad

Buena numeración. En la caja se activa la etapa 001

Cuestión¿INCONVENIENTES?

Page 6: Programación estructurada.  Plantillas

Ejemplo repaso: Macroetapa en grafcet

M1

f

k

E1

10

11

S1

g

h

i

j

(5)

(6)

4

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

3

SETFP M100.0S “X1”R “X10”R “X11”R S1

U “X1”U “g”S “X10”R “X1”

//…

Salida de la Macroetapa

Page 7: Programación estructurada.  Plantillas

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

Page 8: Programación estructurada.  Plantillas

Plantilla Enable(EN)-Enable Out(ENO) Gestión de errores en bloques mediante el

biestable RB de la palabra de estado

Implementación caja

U E1.0SPBNB _001

CALL FC1

_001: U BIE= M 1.0

L 500L 600*I

UN OVSAVE

Tarea Objetivo

RBRLO

Uso de bit de error

RB

FC1

ENO

M 1.0E 1.0

EN

(500 * 600)

EVENTO ERROR: EN=TRUE y ENO=FALSE

Consulta el estado del bit RB

CuestiónModifique el código para que RB sólo se modifique con el evento error

Page 9: Programación estructurada.  Plantillas

Ejemplo para un bloque

BLOQUE MULTIPLICADOR (FC1)

EW 0

EW 2MW 1

EN ENOM 100.0 M 100.1

U M100.0

SPBNB _001

CALL FC1

_001: U BIE

= M100.1

OB1: Bloque invocante

EW 0 * EW 2

L EW 0

L EW 2

*I

SPO _ERR

T MW 1

BEA

_ERR: CLR

SAVE

FC1: Bloque llamado

Evento error aislado.Buen estilo

Page 10: Programación estructurada.  Plantillas

Ejemplo de concatenamiento de bloques

CADENA DE BLOQUES MULTIPLICADORES

EW 0

EW 2MW 1

EN ENOM 100.0

U M100.0

SPBNB _001

CALL FC1

U BIE

SPBNB _001

CALL FC2

_001: U BIE

= M100.1

EW 0 * EW 2

EW 4

EW 6MW 3

EN ENOM 100.1

EW 4 * EW 6

FC1 FC2

Cuestión¿Caracterización del error?

ERROR: M100.0=1 y M100.1=0

EjercicioPrograme la concatenación de bloques que aparece abajo

Cuestión¿Es necesario usar SPBNB en la segunda llamada o bastaría con usar SPBN?

Page 11: Programación estructurada.  Plantillas

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

Page 12: Programación estructurada.  Plantillas

SoluciónVAR_INPUT raw : INT; high_lim : REAL; //70ºC low_lim : REAL ; high_range : REAL //40ºC low_range : REAL ;END_VARVAR_OUTPUT temperature : REAL ; in_range : BOOL ; //[25-40]ºCEND_VARVAR_TEMP retSCALE : WORD ; //8 overflow ge_low_range : BOOL //>25ºCEND_VAR

CALL “SCALE” IN:=#raw HI_LIM:=#high_lim LO_LIM:=#low_lim BIPOLAR:=FALSE RET_VAL:=#retSCALE OUT:=#temperature

L #temperatureL #low_range>=R = #ge_low_range

L #temperatureL #high_range<=R U #ge_low_range= #in_range

L 8L #retSCALE

==ISPBN NERR CLRSAVE

NERR: NOP 0

Llamada a periferia Rango inferior Rango superior Gestión error (RB)

FC1: “sensor temp”

Page 13: Programación estructurada.  Plantillas

Aplicación de plantilla EN-ENO al grafcet

U “X1”SPBNB _002CALL FC1

U BIESPBN _ERRU T2

S “X2”R “X1”R “Salida”SPA _002

_ERR: S “Emergencia”

R “X1”R “Salida”

_002: NOP 0//…

OB1: Invocante

U “X1”= “Salida”

//…

U “Error”SPBN _ERRCLRSAVE

_ERR: NOP 0

FC1

Salida / Maniobra (A1.0)con gestión de error

Error

1

2

T1

T3

3

Emergencia

2T Error

FC1

Cuestión¿Tiene “Error” prioridad?

Gestión de errores locales a una etapa mediante bit RB EN es la etapa (implementación con cajas), ENO representa el evento error

EjercicioImplemente un error por sobrepasamiento de tiempo para la maniobra, mediante bit RB

FC1

ENO

ErrorX1

EN

Page 14: Programación estructurada.  Plantillas

Solución parcial

VAR_INPUT tempor : TIMER ; tout : S5TIME ;END_VARVAR_OUTPUT actuador : BOOL ; END_VARVAR_IN_OUT bit_de_trabajo : BOOL ; END_VAR

SETFP #bit_de_trabajoS #actuador L #tout SS #tempor

U, #tempor BEB

CLR //sets RB bitSAVE R #actuador R #bit_de_trabajo FR #tempor R #tempor

Arranque Gestión del error (RB)

FC1: “sensor temp”

Page 15: Programación estructurada.  Plantillas

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

Page 16: Programación estructurada.  Plantillas

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.

Page 17: Programación estructurada.  Plantillas

Aplicación al grafcet

1

2

sini

maniobra (A124.0)con gestión de error

X_ERR

10s/X1(10 / 1) sfins X

FC1 OB1: BLOQUE INVOCANTE FC1

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

SETFP “bitDeTrabajo”R “bitDeError”R “bitDeFin”L S5T#10sSS T1S A124.0

//defectoU T1S “bitDeError”R T1FR T1R “bitDeTrabajo”R A 124.0

//salida normalU “sfin”UN T1S “bitDeFin”R “bitTrabajo”R T1FR T1R A 124.0

0

Cuestion I¿Se puede usar un temporizador SE?

3

Ejercicio IDiseñe un interfaz apropiado para conseguir que la función maniobra FC1 sea una función de librería

Ejercicio IIModifique el interfaz anterior considerando la gestión de defecto mediante bit RB

Page 18: Programación estructurada.  Plantillas

Soluciones

VAR_INPUT tempor : TIMER ; tout : S5TIME ; sfin: BOOL;END_VARVAR_OUTPUT actuador : BOOL ; bitDeError: BOOL: bitDeFin: BOOL;END_VARVAR_IN_OUT bit_de_trabajo : BOOL ; END_VAR

VAR_INPUT tempor : TIMER ; tout : S5TIME ; sfin: BOOL;END_VARVAR_OUTPUT actuador : BOOL ; bitDeFin: BOOL;END_VARVAR_IN_OUT bit_de_trabajo : BOOL ; END_VAR

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

Cuestion I¿Se puede usar un temporizador SE?

NO, se necesita un temporizador con memoria

Page 19: Programación estructurada.  Plantillas

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

Page 20: Programación estructurada.  Plantillas

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

Page 21: Programación estructurada.  Plantillas

Plantilla Start-Stop

start Start =1 à XM=1Start =0 à XP=1

GMM + GPActuador

Evento 1 que condiciona la terminación de GP

Evento 2 que condiciona la terminación de GP

Segmento de arranque

U XMFP BitDeTrabajoS X0R X1R X2//...

PLANTILLA (INTERFAZ)//…

VAR_STATIC XM: BOOL XP: BOOL BitDeTrabajo: BOOL x0: BOOL x1: BOOL x2: BOOL //… resto de estadosEND_VAR

start actuador

GP

0

1

2

Actuador

M

P

“marcha”

“paro” Bit de trabajo GP=0

GP{*}

GMM

M

start

start

GP{INIT}P

Page 22: Programación estructurada.  Plantillas

Caso de uso

X3start

SFC1

X2

FB1

Actuador

2

3

X2·ev_asin“ev_asin:

asíncrono con SFC1”

SFC1

G.Principal

SFC10

1

2

Actuador

“Etapa de espera y condición

necesaria para terminación”

*

FB1

Page 23: Programación estructurada.  Plantillas

Aplicación al motor de la escalera mecánica

1SE 1

2

1

MOTOR 1

1SE

1SE

0

1(50 / ) 1s X SE

FB “control del motor”(GMM+GP)

UN “start”S “XP”R “XM”R “bitDeTrabajo”//…forzado GP a congelación

U “start”S “XM”R “XP”//… forzado de GP a reposo

FB1 / GMM

GMM

GMM

startX2

FB1

Actuador

standby

U “XM”FP “bitDeTrabajo”S “X0”R “X1”R “X2”//…

FB1 / GPCuestión¿Son estrictamente necesarias las etapa XM y XP?

Page 24: Programación estructurada.  Plantillas

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)

Page 25: Programación estructurada.  Plantillas

FIN