Operaciones con Temporizadores S7-300/400 - · PDF file1 Operaciones con Temporizadores...

25
1 Operaciones con Temporizadores S7-300/400 Los temporizadores permiten distintas operaciones: • Funcionamiento en un modo determinado. • Borrar la temporización. • Re-arrancar un temporizador (FR). • Consultar su estado como un operando más en operaciones lógicas de bit. • Consultar su valor en ACU 1. Modos de funcionamiento: • Impulso (SI). • Impulso prolongado (SV). • Retardo a la conexión (SE). • Retardo a la conexión con memoria (SS). • Retardo a la desconexión (SA).

Transcript of Operaciones con Temporizadores S7-300/400 - · PDF file1 Operaciones con Temporizadores...

1

Operaciones con Temporizadores S7-300/400

Los temporizadores permiten distintas operaciones:

• Funcionamiento en un modo determinado.• Borrar la temporización.• Re-arrancar un temporizador (FR).• Consultar su estado como un operando más en operaciones lógicas

de bit.• Consultar su valor en ACU 1.

Modos de funcionamiento:

• Impulso (SI).• Impulso prolongado (SV).• Retardo a la conexión (SE).• Retardo a la conexión con memoria (SS).• Retardo a la desconexión (SA).

2

Carga de un valor de temporización

El valor de temporización se debe cargar en la parte baja del ACU para desde allí transferirlo al temporizador mediante el set que determine el modo de temporización adecuado.

● El valor de temporización puede cargarse en la palabra baja del ACU 1 en formato binario, hexadecimal o BCD. Desde 0 a 9990 segundos

La siguiente sintaxis permite cargar un valor de temporización predefinido: L W#16#abcd

a = base de tiempos bcd = valor de temporización en formato BCD Base de tiempos y código respectivo: 10 ms 0

100 ms 1 1 s 2

10 s 3

Registros afectados: ACU 1, ACU 2

3

Carga de un valor de temporizaciónEjemplo:

L W#16#210 //esto introduce un valor de 10 segundos en ACU 1 (2 base de 1s, 10 los segundos que deseamos) L S5T#aH_bbM_ccS_ddMS a = horas, bb= minutos, cc = segundos, dd = milisegundos

En este caso la base de tiempos se selecciona de forma automática, tomándose la de valor más bajo posible. Debido a esto los valores de resolución demasiado alta se redondean por defecto, alcanzando el rango pero no la resolución deseada.

Las posibles resoluciones y rangos son: 0,01 s 10MS a 9S_990MS

0,1 s 100MS a 1M_39S_900MS1 s 1S a 16M_39S10 s 10S a 2H_46M_30S

L S5T#00H02M23S00MS //esto introduce un valor de temporización de2 minutos y 23 segundos en el ACU 1

4

Temporizador como impulso (SI)

Instrucción: SISi el RLO (al ejecutar esta instrucción) cambia de 0 a 1, el temporizador arranca. El temporizador marcha con el valor de tiempo indicado en ACU1. Si el RLO cambia de 1 a 0 antes de terminar el tiempo, el temporizador se detiene. La salida del temporizador entrega 1 mientras el temporizador corre.

Registros afectados: ER

Ejemplo:

U E 0.0 //Empleamos la entrada 0.0 como entrada del temporizador L S5T#45s //Introducimos un valor de temporización de 45 segundos SI T 2 //Empleamos el temporizador 2 como impulso U T 2 //Leemos la salida del temporizador = A 0.1 //Asignamos la salida del temporizador a la salida 0.1

5

Temporizador como impulso prolongado (SV)

Instrucción: SVSi el RLO (al ejecutar esta instrucción) cambia de 0 a 1, el temporizador arranca y continua en marcha incluso si el RLO cambia a 0 antes de que el temporizador termine. Mientras el tiempo esta corriendo, la salida vale 1.

Registros afectados: ER

Ejemplo:

U E 0.2 //Empleamos la entrada 0.2 como entrada del temporizador L S5T#85s //Introducimos un valor de temporización de 85 segundos SV T 9 //Empleamos el temporizador 9 como impulso prolongado U T 9 //Leemos la salida del temporizador = A 9.1 //Asignamos la salida del temporizador a la salida 9.1

6

Temporizador como retardo a la conexión (SE)

Instrucción: SEEl temporizador arranca cuando hay un flanco creciente en el RLO (al ejecutar esta instrucción). El temporizador continua en marcha con el valor de temporización indicado en el ACU 1 mientras sea positivo el estado de señal en la entrada (el RLO). El estado de la salida es 1 si el tiempo ha transcurrido sin errores y si el estado de la entrada (RLO) es 1. Si la entrada (RLO) cambia de 1 a 0 mientras está en marcha el temporizador, éste cambia el estado de la salida a 0. Registros afectados: ER

Ejemplo:

U E 0.7 //Empleamos la entrada 0.7 como entrada del temporizador L S5T#65s //Introducimos un valor de temporización de 65 segundos

SE T 4 //Empleamos el temporizador 4 como retardo a la conexiónU T 4 //Leemos la salida del temporizador= A 8.1 //Asignamos la salida del temporizador a la salida 8.1

7

Temporizador como retardo a la conexión (SS)

Instrucción: SSSi la entrada (RLO en la ejecución de la instrucción) cambia de 0 a 1, el temporizador arranca y continua corriendo incluso si la entrada (RLO) cambia a 0, antes que el temporizador termine de contar. Si el tiempo ha concluido la salida continua a 1 independientemente del estado de la entrada (RLO). Solo se puede poner a 0 la salida mediante un Reset. El temporizador vuelve a arrancar con el valor de temporización indicado en el ACU 1 si el estado de la señal en la entrada (RLO) cambia de 0 a 1 mientras el temporizador está en marcha. Registros afectados: ER

Ejemplo:

U E 1.2 //Empleamos la entrada 1.2 como entrada del temporizadorL S5T#32s //Introducimos un valor de temporización de 32 segundosSS T 2 //Empleamos el temporizador 2 como retardo a la c. con memoriaU T 2 //Leemos la salida del temporizador= A 3.1 //Asignamos la salida del temporizador a la salida 3.1

8

Temporizador como retardo a la desconexión (SA)

Instrucción: SA Si la entrada (RLO en la ejecución de la instrucción) cambia de 1 a 0, el temporizador arranca y continua corriendo. Si la entrada (RLO) cambia a 1 antes que el temporizador termine de contar, se resetea el temporizador. Mientras el tiempo está corriendo, la salida vale 1.

Registros afectados: ER

Ejemplo:

U E 4.2 //Empleamos la entrada 4.2 como entrada del temporizadorL S5T#32s //Introducimos un valor de temporización de 32 segundosSA T 7 //Empleamos el temporizador 7 como retardo a la desconexiónU T 7 //Leemos la salida del temporizador= A 1.1 //Asignamos la salida del temporizador a la salida 1.1

9

Elección del Temporizador adecuado

10

Borrado de un Temporizador AWL S7-300/400

Instrucción: R TEsta instrucción borra (reinicia) el temporizador indicado. El temporizador vuelve al estado dereposo, es decir parado y con la salida igual a 0.

Registros afectados: ER

Ejemplo:

U E 0.0 //Empleamos la entrada 0.0 como entrada del temporizadorL S5T#2s //Introducimos un valor de temporización de 2 segundosSS T 2 //Empleamos el temporizador 2 como retardo a la c. con memoriaU E 0.1 //Empleamos la entrada 0.1 como entrada de borradoR T 2 //Si la entrada 0.1 cambia de 0 a 1 el temporizador 2 se borraU T 2 //Leemos la salida del temporizador= A 3.1 //Asignamos la salida del temporizador a la salida 3.1

11

Re-arranque de un Temporizador AWL S7-300/400Instrucción: FR T

Cuando el RLO cambia de 0 a 1 (flanco de subida) delante de una operación FR se habilita el temporizador. Este cambio del estado de señal siempre es necesario para habilitar un temporizador.

Para arrancar un temporizador y ejecutar una operación normal de temporizador no hace falta habilitarlo. Esta función se emplea únicamente para redisparar un temporizador que está en marcha, es decir, para rearrancarlo. Este rearranque sólo puede efectuarse cuando la operación de arranque continúa procesándose con un RLO de 1. Registros afectados: ER

Ejemplo:U E 2.0 //Empleamos la entrada 2.0 como re-arranque FR T 1 //Re-arrancamos el temporizador 1 si la E 2.0 pasa a 1 U E 2.1 //Empleamos la entrada 2.1 como entrada del temporizador L S5T#5s //Introducimos un valor de temporización de 5 segundos SI T 1 //Empleamos el temporizador 1 como impulsoU T 1 //Leemos la salida del temporizador= A 4.0 //Copiamos la salida del temporizador a la salida 4.0

Si el RLO cambia de 0 a 1 en la entrada de re-arranque mientras está en marcha el temporizador, el temporizador vuelve a arrancar. El tiempo programado se emplea como tiempo actual para el re-arranque. Un cambio del RLO de 1 a 0 en la entrada de re-arranque no produce ningún efecto.

Un cambio del RLO de 0 a 1 en la entrada de habilitación no afecta al temporizador si todavía hay un RLO 0 en la entrada del temporizador.

12

Re-arranque de un Temporizador AWL S7-300/400Instrucción: FR T

Cuando el RLO cambia de 0 a 1 (flanco de subida) delante de una operación FR se habilita el temporizador. Este cambio del estado de señal siempre es necesario para habilitar un temporizador.

Para arrancar un temporizador y ejecutar una operación normal de temporizador no hace falta habilitarlo. Esta función se emplea únicamente para redisparar un temporizador que está en marcha, es decir, para rearrancarlo. Este rearranque sólo puede efectuarse cuando la operación de arranque continúa procesándose con un RLO de 1. Registros afectados: ER

Ejemplo:U E 2.0 //Empleamos la entrada 2.0 como re-arranque FR T 1 //Re-arrancamos el temporizador 1 si la E 2.0 pasa a 1 U E 2.1 //Empleamos la entrada 2.1 como entrada del temporizador L S5T#5s //Introducimos un valor de temporización de 5 segundos SI T 1 //Empleamos el temporizador 1 como impulsoU T 1 //Leemos la salida del temporizador= A 4.0 //Copiamos la salida del temporizador a la salida 4.0

Si el RLO cambia de 0 a 1 en la entrada de re-arranque mientras está en marcha el temporizador, el temporizador vuelve a arrancar. El tiempo programado se emplea como tiempo actual para el re-arranque. Un cambio del RLO de 1 a 0 en la entrada de re-arranque no produce ningún efecto.

Un cambio del RLO de 0 a 1 en la entrada de habilitación no afecta al temporizador si todavía hay un RLO 0 en la entrada del temporizador.

13

Lectura de un valor de Temporización AWL S7-300/400

Instrucciones: L T y LC T

Con la instrucción "L T" introducimos en el ACU 1 (parte baja) el valor del temporizador especificado en binario. El valor en ACU 1 puede ser introducido en otro temporizador. Con la instrucción "LC T" introducimos en el ACU 1 (parte baja) el valor del temporizador especificado en BCD. En esta codificación no es posible pasar el valor de ACU 1 a otro temporizador.

Registros afectados: ACU 1, ACU 2

Ejemplos:

L T 1 //introduce el valor del temporizador 1 en el ACU 1LC T 2 //introduce el valor del temporizador 2 en el ACU 1 enBCD

14

Operaciones con Temporizadores S7-300/400

TEMPORIZADORES “SE” Y “SI”

Temporizadores sin memoria: Tenemos los temporizadores “SE” y ”SI”. Analicemos cada uno de ellos.

Temporizador “SE”: Es un temporizador de retardo a la conexión. Para programar el temporizador, necesitamos cinco operaciones como mínimo.

1ª Necesitamos una condición a partir de la cual empiece a temporizar. Esta condición puede constar de una sola instrucción o de varias.

2ª Necesitamos decirle cuanto tiempo tiene que temporizar.

3ª Necesitamos decirle el modo de funcionamiento y nº de temporizador que queremos utilizar. (En cada CPU tenemos una cantidad de temporizadores)

4º Queremos que en algún momento dado, (mientras temporiza, cuando ha acabado de temporizar, etc.)

5º haga algo.

Alguna de estas operaciones pueden constar de más de una instrucción.

15

Temporizadores SE y SI S7-300/400

El modo de funcionamiento es el siguiente:

Además de lo que hemos visto, en cualquier momento podemos hacer un RESET del temporizador. Para hacer un RESET necesitamos una condición. En el momento se cumpla si al temporizador le correspondía estar a 1, automáticamente se pondrá a cero aunque por su modo de funcionamiento no le corresponda.

16

Temporizadores SE y SI S7-300/400

Tenemos un semáforo con las tres luces verde, amarillo y rojo. Tenemos dos pulsadores de mando: un pulsador de marcha y un pulsador de paro.

Con el pulsador de marcha quiero que comience el ciclo. El ciclo de funcionamiento es el siguiente:

1º/ Verde durante 5 seg.2º/ Verde + Amarillo durante 2 seg.3º/ Rojo durante 6 seg.

El ciclo es repetitivo hasta que se pulse el pulsador de paro. En ese momento se apaga todo. Siempre que le dé al pulsador de marcha quiero que empiece por el verde.

17

Temporizadores SE y SI S7-300/400

U E 0.0 //Al activar el pulsador de marchaS A 4.2 //Encender el verdeU A 4.2 //Si se ha encendido el verdeL S5T#5S //Cuenta 5 segundosSE T 1 //Con el temporizador 1U T 1 //Y cuando acabes de contarS A 4.1 //Enciende el amarilloU A 4.1 //Si se ha encendido el amarilloL S5T#2S //Cuenta 2 segundosSE T 2 //Con el temporizador 2U T 2 //Y cuando acabes de contarS A 4.0 //Enciende el rojoR A 4.1 //Apaga el amarilloR A 4.2 //Y apaga el verdeU A 4.0 //Si se ha encendido el rojoL S5T#6S //Cuenta 6 segundosSE T 3 //Con el temporizador 3U T 3 //Cuando acabes de contarS A 4.2 //Enciende el verdeR A 4.0 //Y apaga el rojoU E 0.1 //Si se activa el pulsador de paroR A 4.0 //Apaga el rojoR A 4.1 //Apaga el amarilloR A 4.2 //Apaga el verdeBE

18

Temporizadores SE y SI S7-300/400

19

Automatización de un depósito AWL S7-300/400Se tiene un tanque de líquidos para su operación se tiene un selector de mando. Podemos seleccionar modo manual o modo automático. Si seleccionamos modo manual, lo que queremos es que mientras esté conectada, la bomba esté funcionando, y cuando desconectemos que se pare la bomba. No se quiere atender a la señalización de nivel. En modo automático el nivel se debe mantener entre los detectores de nivel. Se dispone de una protección térmica de motor con indicador luminoso en el panel de control.

Segmento 1: MANUAL

U E 0.0 //Si activamos en modo manual= A 4.0 //Pon en marcha la bomba= A 4.1 //Enciende la luz de marcha

Segmento 2: AUTOMÁTICO

U E 0.1 //Si está en automáticoU E 0.7 //Y está bien el reléU E 0.2 //Y está activo el nivel de abajoUN E 0.3 //Y no está activo el nivel de arribaS A 4.0 //Pon en marcha la bombaS A 4.1 //Y enciende la luz de marchaU E 0.1 //Si está en automáticoU E 0.7 //Y está bien el reléUN E 0.2 //Y no está activo el nivel de abajoU E 0.3 //Y se ha activado el nivel de arribaON E 0.7 //O ha saltado el reléR A 4.O //Para la bombaR A 4.1 //Apaga la luz de marchaUN E 0.7 //Si ha saltado el relé= A 4.7 //Avísame con la luz de reléBE

20

Automatización de un depósito AWL S7-300/400

Si hacemos la prueba de este circuito veremos que no funciona correctamente. Vemos que en modo manual sí que funciona pero en modo automático no para la bomba cuando debería.

Para resolver este circuito: nos hace falta utilizar marcas auxiliares. En un mismo bloque no podemos activar la misma salida dos veces con condiciones diferentes porque se interfieren entre ellas.

● Las salidas no se activan en el mismo instante en el que se lee la instrucción correspondiente. Existe un registro interno que se denomina PAA (Imagen de proceso de salida), en el que se van almacenando los valores que se tienen que transferir a las salidas cuando finalice el correspondiente ciclo de scan.

Cuando se lea la instrucción BE es cuando se mandarán estos valores a las salidas reales. Si hemos enviado varios valores dentro del mismo ciclo de scan, el que realmente llegará a las salidas, será el último que hemos enviado.

21

Automatización de un depósito AWL S7-300/400

Segmento 1: MANUAL

U E 0.0 //Si está en manual= M 0.0 //Activa la marca 0.0= M 0.1 //Y activa la marca 0.1

Segmento 2: AUTOMÁTICO

U E 0.1 //Si está en automáticoU E 0.7 //Y está el relé bienU E 0.2 //Y está activo el nivel inferiorUN E 0.3 //Y no está activo el nivel superiorS M 0.2 //Activa la marca 0.2S M 0.3 //Y activa la marca 0.3U E 0.1 //Si está en automáticoU E 0.7 //Y está el relé bienUN E 0.2 //Y no está activo el nivel inferiorU E 0.3 //Y se ha activado el nivel superiorON E 0.7 //O ha saltado el reléR M 0.2 //Desactiva la marca 0.2R M 0.3 //Y desactiva la marca 0.3UN E 0.7 //Si no está el relé= A 4.7 //Activa la luz de relé.

22

Automatización de un depósito AWL S7-300/400

A continuación se añaden las marcas a las salidas.

U M 0.0 //Si está activa la marca 0.0O M 0.2 //O está activa la marca 0.2= A 4.0 //Pon en marcha la bombaU M 0.1 //Si está activa la marca 0.1O M 0.3 //O la marca 0.3= A 4.1 //Enciende la luz de marcha

Ahora ya no funciona el térmico en el modo manual. Al utilizar marcas diferentes para cada tipo de funcionamiento, el térmico sólo actúa sobre las marcas de modo automático. Sólo estamos haciendo un reset de una de las marcas que activan la bomba. Nos falta resetear la otra marca. Tendremos que añadir las siguientes líneas.

UN E 0.7 //Si ha saltado el reléR M 0.0 //Desactiva la marca 0.0R M 0.1 //Y desactiva la marca 0.1BE

Otra posible solución sería programar el paro de la bomba por apertura del relé térmico en el último segmento. Los paros de emergencia se suelen programar al final.

Ahora podemos hacer todas las objeciones que queramos y corregir sobre lo que ya tenemos hecho.

23

Automatización de un depósito AWL S7-300/400

Por ejemplo, puedo querer asegurarme que cuando se pone en marcha en modo manual no está a la vez en modo automático. Se puede suponer que por error se pueden dar las dos circunstancias a la vez y quiero evitar ese error.

Se añaden las instrucciones pertinentes.

U E 0.0UN E 0.1

Ahora ya tenemos la base del programa. Podemos añadir todo lo que creamos que sea necesario o conveniente. Por ejemplo, en este caso no se ha tenido en cuenta la situación de que después de haber estado en manual o en automático,volvamos a la posición de reposo. En automático he hecho sets a ciertas marcas. Cuando volvamos a la posición de reposo esas marcas tendrán que volver a cero. De lo contrario podría darse el caso de que estando en la posición de reposo, tengamos la bomba en marcha. Para remediar esto podría añadir las siguientes instrucciones:

UN E 0.0UN E 0.1R A 4.0R A 4.1 .......

24

Control cintas transportadoras AWL S7-300/400

Funcionamiento: Es un automatismo para seleccionar cajas por su tamaño. La cintatransportadora A4.0 está activa esperando una caja. Cuando se activa el sensor E0.0 la cinta A4.1 se pone en marcha, y la cinta A4.0 se detiene. Para seleccionar la caja hay dos sensores: E0.1 y E0.2, este último también indica que la caja sale de la cinta.

• Si la caja es grande se activarían los 2 sensores a la vez, por lo que la caja se desplazaría por la cinta transportadora A5.0 que funcionaría durante 5 seg.• Si la caja es pequeña nunca se activarían los dos sensores a la vez, y pasaría a la cinta para cajas pequeñas A5.1 que funcionaría 4 seg. Una vez que la caja salga de la cinta intermedia A4.1 podremos procesar otra caja activando A4.0.

Las cajas van llenando dos contenedores. Como opción, se podrá poner dos contadores quecuenten las cajas grandes y pequeñas, y que cuando lleguen a 7 cajas grandes y 5 pequeñas, sedetenga el proceso hasta que el operario sustituya los contenedores por otros vacíos y le dé a unpulsador de acuse de recibo.

25

Automatización de un sistemas de cintas AWL S7-300/400

//Activación de las cintasUN A 4.1 //Si no está activada la cinta intermedia= A 4.0 //que se activa la primera cintaU E 0.0 //Si sensor de llegada de caja a la cinta intermediaS A 4.1 //activar la cinta intermedia

//Selección por tamaño:

U E 0.1U E 0.2 //Si se activan los dos sensoresS M 0.0 //Es que es una caja grande, lo guardo en una marcaU E 0.2 //Cuando se activa el sensor de salida de la cintaFN M 0.1 //intermedia por flanco positivo= M0.2 //Lo guardo en una marca

//Según el tamaño activo la cinta de salida:

U M 0.2 //Cuando sale la cajaU M 0.0 //y es grandeL S5T#5SSV T 1U T 1= A 5.0 //activo la cinta para grandes durante 5 seg.U M 0.2 //Cuando sale la cajaUN M 0.0 //y no es grandeL S5T#4SSV T 2U T 2= A 5.1 //activo la cinta para pequeñas durante 4 segU M 0.2 //Cuando sale la cajaR A 4.1 //Desactivo la cinta intermediaR M 0.0 //Reseteo la marca que me indica el tamaño