Temporizadores y Contadores Siemens Step7
Temporizadores y Contadores Siemens Step7
Temporizadores y Contadores
Div.. Ingeniera
Div Ingeniera de
Sistemas y Automtica
Automtica
Temporizadores y Contadores 1
Bibliografa
l Ttulo: Step7 Avanzado
l Autor: Jos Martnez Torres
l Descargar de la pgina web
l Manual Siemens Step7-AWL para S7-300 y S7-400
l Manual Siemens Step7-KOP para S7-300 y S7-400
l Manual Siemens Step7-FUP para S7-300 y S7-400
l Ttulo: Automating with Step7 in STL and SCL
l Autor: Hans Berger
l ISBN: 3-89578-140-1
Temporizadores y Contadores 2
1
Bibliografa
l Ttulo: Comunicaciones Industriales
l Autores: V.Sempere, J. Silvestre, J.A. Martnez
l Editiorial : SPUPV (SPUPV-2002.213)
l Ao:2002
Temporizadores y Contadores 3
ndice
l Acumuladores
l Operaciones de carga y transferencia
l Temporizadores
l Area de memoria y componentes de un
temporizador
l Programacin
l Tipos
l Contadores
Temporizadores y Contadores 4
2
Acumuladores
Los acumuladores son registros auxiliares en la
CPU que se utilizan en el intercambio de datos y
para operaciones de comparacin y matemticas. El
S7-300 tiene dos acumuladores de 32 bits cada uno
y el S7-400 cuatro.
Temporizadores y Contadores 5
Acumuladores
l Las siguientes instrucciones estn
disponibles para intercambiar y desplazar el
contenido de los acumuladores:
l TAK intercambia el contenido de ACCU 1 con el
contenido de ACCU 2
l PUSH desplaza el contenido de ACCU 1 a
ACCU 2
l POP desplaza el contenido de ACCU 2 a
ACCU 1
Temporizadores y Contadores 6
3
Operaciones de Carga y
Transferencia
l No dependen del valor del RLO
Carga y Transferencia de Datos
KOP AWL
L - Carga T - Transferencia
(Todos los tipos de datos con 8, 16, 32 bits)
FUP Ejemplos:
L +5 // Carga un entero de 16-bit
L L#523123 // Carga un entero de 32-bit
L B#16#EF // Carga un hexadecimal de 8-bit
L 2#0001_0110_1110_0011
// Carga un binario de 16-bit
L TOD#1:10:3.3
EN - Habilitar entrada // Carga un tiempo de 32-bit
ENO -Habilitar salida
IN - Valor de entrada T MB0 // Transferir un valor al byte de
(todos los tipos de datos marcas 0
con longitud 8, 16, 32 bit ) T AD256 // Transferir un valor a la doble
O - Direcci n del resultado doble palabra de salida 256
(todos los tipos de datos
con longitud 8, 16, 32 bit )
Temporizadores y Contadores 7
Operaciones de Carga y
Transferencia
l Operacin de Carga
l La operacin de carga siempre afecta al ACCU 1. Las posiciones no utilizadas se ponen a 0. El valor
actual del ACCU 1 pasa al ACCU 2 durante la carga.
l Operacin de Transferencia
l Durante una transferencia, el contenido de ACCU 1 se retiene y se usa para transferir la informacin a
varias reas de memoria. Si slo se transfiere un byte se usan los ocho bits de la derecha.
Acumuladores
ACCU 1 contenidos para las instrucciones de carga
31 24 23 16 15 8 7 0
0000 0000 IB 0 IB 1 L EW 0
31 24 23 16 15 8 7 0
MB 0 MB 1 MB 2 MB 3 L MD 0
Instruccin Transferir
31 24 23 16 15 8 7 0
MB 0 MB 1 MB 2 MB 3
T AD 4 T AW 4 T AB 4
Temporizadores y Contadores 8
4
Area de memoria y componentes
de un temporizador
l Area de memoria
l Los temporizadores tienen un rea reservada en la
memoria de la CPU. Esta rea de memoria reserva una
palabra de 16 bits para cada operando de temporizador.
La programacin con AWL asiste 256 temporizadores.
l Problema: de contaje de tiempo limitado a 9990
segundos como periodo mximo de contaje.
l Para periodos de tiempo mayores, es obligatorio
recurrir a las OBs de alarma horaria, o realizar un
concatenamiento entre un generador de pulsos y un
contador que vaya incrementando su valor.
Temporizadores y Contadores 9
Temporizadores y Contadores 10
5
Area de memoria y componentes
de un temporizador
l Valor de temporizacin
l Los bits 0 a 9 de la palabra de temporizacin contienen el valor de
temporizacin en cdigo binario. Este valor indica un nmero de unidades.
La actualizacin decrementa el valor de temporizacin en una unidad y en
el intervalo indicado por la base de tiempo hasta alcanzar el valor 0.
l El valor de temporizacin se puede cargar en los formatos binario,
hexadecimal o decimal codificado en binario (BCD).
l Para cargar un valor de temporizacin redefinido, se observarn las
siguientes reglas sintcticas.
l El valor de temporizacin se puede cargar en cualesquiera de los siguientes
formatos:
w#16#wxyz
siendo: w= la base de tiempo (es decir, intervalo de tiempo o resolucin)
xyz = el valor de temporizacin en formato BCD
S5T#aH_b M_cS _dMS
siendo: H (horas), M (minutos), S (segundos), MS (milisegundos); a, b, c, d los
define el usuario
l La base de tiempo se selecciona automticamente y el valor de
temporizacin se redondea al prximo nmero inferior con esa base de
tiempo.
l El valor de temporizacin mximo que puede introducirse es de 9 900
segundos 2H_46M_30S.
Temporizadores y Contadores 11
Temporizadores y Contadores 12
6
Area de memoria y componentes
de un temporizador
l Configuracin binaria en la palabra de temporizacin
l Cuando se dispara un temporizador, el contenido de la palabra de
temporizacin 1 se utiliza como valor de temporizacin. Los bits 0 a 11 de
la palabra de temporizacin almacenan el valor de temporizacin en
formato decimal codificado en binario (formato BCD: cada grupo de
cuatro bits contiene el cdigo binario de un valor decimal). Los bits 12 a
13 almacenan la base de tiempo en cdigo binario.
l La figura muestra el contenido de la palabra de temporizacin
cargado con el valor 127 y una base de tiempo de 1 segundo.
Temporizadores y Contadores 13
Temporizadores y Contadores 14
7
Programacin
l Veamos cual es la estructura de un temporizador en AWL
mediante un ejemplo:
l U E 0.0 // SI SE ACTIVA LA ENTRADA
l L S5T#5S // CARGA EN EL ACUMULADOR 5 SEGUNDOS
l SI T 0 // ACTIVA EL TEMPORIZADOR 0 EN FORMATO SI CON 5
//SEGUNDOS
l UT0 // MIENTRAS EST ACTIVO EL TEMPORIZADOR
l = A 4.0 // ACTIVA LA SALIDA
Temporizadores y Contadores 15
Programacin
l Tambin es posible resetear el temporizador mediante una entrada, con lo cual el valor del
temporizador pasa a 0 y el bit del mismo se deshabilita automticamente.
l U E 0.1 // SI ESTA LA ENTRADA
l RT0 // EL TEMPORIZADOR SE RESETEA
l Por ltimo nos puede ser interesante conocer el estado actual del temporizador (cuanto
tiempo le resta por contar). Para ello, nicamente debemos de cargar el valor de la palabra
del temporizador. Esta carga se puede realizar de dos modos: normal en formato decimal
(para comparaciones), o codificada en formato BCD (utilizada en displays).
l LT0 // CARGA EL VALOR ACTUAL DEL TEMPORIZADOR
l T MW 0 // TRANSFIERELO EN DECIMAL
Temporizadores y Contadores 16
8
Tipos de Temporizadores
l Temporizador de Impulso SI
l Al arrancar un temporizador SI, se obtiene una respuesta de duracin idntica al impulso producido o,
como mximo, igual al valor de tiempo prefijado en nuestra const ante de tiempo.
l Si la entrada S cambia de 0 a 1, el temporizador arranca. El tem porizador SI marcha con el valor de
tiempo indicado en TW. Si la entrada S cambia de 1 a 0 antes de terminar el tiempo, el temporizador se
detiene. Si la entrada R cambia de 0 a 1 en cualquier momento, el temporizador se resetea . La salida
entrega un 1 mientras el temporizador cuenta.
AWL KOP
T2
S_IMPULS E0.0 A9.0
S_IMPULS
DIAGRAMA DE TIEMPOS S Q
Eje de tiempos (S) U E0.0 S5T#45s MW5
TW DUAL
L S5T#45s
SI T2 R BCD MW7
U E0.1 E0.1
Temporizador de 1 R T2
L T2
impulso S_IMPULS 0
E 0.0
T MW5
FUP
LC T2
1 T MW7
A 9.0 U T2
0 = A9.0
45 45
Temporizadores y Contadores 17
Tipos de Temporizadores
l Temporizador de Impuso Prolongado SV
l Al arrancar un temporizador SV, se obtiene una respuesta de duracin igual al valor de tiempo prefijado en
nuestra constante de tiempo, independientemente de la duracin d el impulso de entrada. Cualquier nueva
actuacin sobre la seal de activacin del temporizador supone el rearme del temporizador.
l Si la entrada S cambia de 0 a 1, el temporizador arranca y contina en marcha incluso si la entrada S
cambia a 0 antes de que el temporizador termine de contar. Mientras el tiempo est corriendo, la salida Q = 1.
Si la entrada R cambia de 0 a 1 en cualquier momento, el temporizador se resetea.
AWL KOP
S_VIMP E0.2 A9.1
S_VIMP Q
U E0.2 S
Eje de tiempos (S) L S5T#85s DUAL
DIAGRAMA DE TIEMPOS TW MW9
SV T9
U E0.3 R BCD MW11
R T9 E0.3
L T9
1
T MW9
E 0.2
0 LC T9 FUP
T MW11
Temporizador Impulso 1 U T9
A 9.1 = A9.1
prolongado S_VIMP 0
85 85 85
Temporizadores y Contadores 18
9
Tipos de Temporizadores
l Retardo a la Conexin SE
l Al arrancar un temporizador SE, se obtiene un impulso igual al de entrada menos el valor prefijado en la constante de tiempo. La
resta se produce al inicio del impulso de la seal de entrada.
l El temporizador arranca cuando hay un flanco ascendente en la entrada S. El temporizador contina en marcha con el valor de
temporizacin indicado en la entrada TW mientras sea positivo el estado de se al en la entrada S. El estado de seal en la salida Q
es "1" si el tiempo ha transcurrido sin errores y si el estado de seal en la entrada S es "1". Si el estado de seal en la entrada S
cambia de "1" a "0" mientras est en marcha el temporizador, st e cambia el estado de seal en la salida Q a "0". Si la entrada R
cambia de 0 a 1 en cualquier momento, el temporizador se resetea.
Temporizadores y Contadores 19
Tipos de Temporizadores
l Retardo a la desconexin SA
l Al arrancar un temporizador SA, se obtiene una respuesta igual a la de entrada ms el tiempo prefijado en la
constante de tiempo.
l Si la entrada S cambia de 1 a 0, el temporizador arranca y continua corriendo. Si la entrada S cambia a 1 antes
de que el temporizador termine de contar, se redispara el temporizador. Mientras el tiempo est corriendo, la
salida Q=1. Si la entrada R cambia de 0 a 1 en cualquier momento, el temporizador se resetea.
AWL KOP
S Q
U E1.7 S5T#55s
TW MW4
DUAL
Eje de tiempos (S) E1.5
L S5T #55s R BCD MW6
SA T5
U E1.5
1 R T5
Temporizador de Retardo E 0.1 L T5
0 FUP
a la desconexin S_AVERZ T MW4
LC T5
1 T MW6
A 4.1 U T5
0 = A8.6
7 7
Temporizadores y Contadores 20
10
Tipos de Temporizadores
l Retardo a la Conexin Memorizada SS
l Un temporizador SS es idntico al SE, excepto en un aspecto: este temporizador se mantiene activo a no ser que se produzca la orden
de reseteo.
l Podemos decir, que se trata de una memoria retardada el tiempo prefijado en nuestra constante.
l Si la entrada S cambia de 0 a 1, el temporizador arranca y conti na corriendo incluso si la entrada S cambia a 0 antes de que el
temporizador termine de contar. Si el tiempo ha concluido la salida Q contina =1 independientemente del estado de S. Si la entrada R
cambia de 0 a 1 en cualquier momento, el temporizador se resetea. El temporizador vuelve a arrancar con el valor de temporizacin
indicado si el estado de seal en la entrada S cambia de "0" a "1" mientras el temporizador est en marcha.
Temporizadores y Contadores 21
Ejercicio
Diagrama de tiempos (1)
Se dispone de un Pulsador de Activacin E 0.0.
A 4.1
t
5 segundos 10 segundos
Temporizadores y Contadores 22
11
Ejercicio: solucin
Temporizadores y Contadores 23
Ejercicio
l Tenemos un semforo con las
tres luces verde, amarillo y
rojo. Tenemos dos pulsadores
de mando: un pulsador de
marcha y un pulsador de paro.
l Con el pulsador de marcha
quiero que comience el ciclo.
El ciclo de funcionamiento es
el siguiente:
l 1/ Verde durante 5 seg.
l 2/ Verde + Amarillo durante 2
seg.
l 3/ Rojo durante 6 seg.
l El ciclo es repetitivo hasta que
se pulse el pulsador
Temporizadores y Contadores 24
12
Ejercicio: solucin
SOLUCIN EN AWL
U E 0.0 //Al activar el pulsador de R A 4.0 //Apaga el rojo
marcha R A 4.1 //Apaga el amarillo
S A 4.2 //Encender el verde
R A 4.2 //Apaga el verde
U A 4.2 //Si se ha encendido el verde
L S5T#5S //Cuenta 5 segundos
SE T 1 //Con el temporizador 1
U T 1 //Y cuando acabes de contar
S A 4.1 //Enciende el amarillo
U A 4.1 //Si se ha encendido el amarillo
L S5T#2S //Cuenta 2 segundos
SE T 2 //Con el temporizador 2
U T 2 //Y cuando acabes de contar
S A 4.0 //Enciende el rojo
R A 4.1 //Apaga el amarillo
R A 4.2 //Y apaga el verde
U A 4.0 //Si se ha encendido el rojo
L S5T#6S //Cuenta 6 segundos
SE T 3 //Con el temporizador 3
U T 3 //Cuando acabes de contar
S A 4.2 //Enciende el verde
R A 4.0 //Y apaga el rojo
U E 0.1 //Si se activa el pulsador de paro
Temporizadores y Contadores 25
Ejercicio
Control de un Semforo
Temporizadores y Contadores 26
13
Contadores
l A continuacin se describen tres opciones de contador para el S7-300. Existe un rea en
la memoria de la CPU reservada para los contadores. En ste rea hay una palabra (16
bits) reservada para cada contador. El mximo valor especificado es 999 (BCD).
Temporizadores y Contadores 27
Contadores
Temporizadores y Contadores 28
14
Contadores
Contadores
KOP AWL
U E0.4
ZV Z5
FUP U E0.5
ZR Z5
U E0.3
L C#20
S Z5
U E0.7
R Z5
L Z5
T MW4
LC Z5
T MW7
U Z5
= A8.3
Temporizadores y Contadores 29
Contadores
l Para meter los valores en los acumuladores, tenemos la
instruccin de carga. (L).
l Cuando cargamos un valor, siempre se carga en el acumulador 1.
Cuando volvemos a cargar otro valor, tambin se guarda en
acumulador 1. Lo que tena en el acumulador 1 pasa al acumulador
2, y lo que tena en el acumulador 2 lo pierde.
l En nuestro caso, cargaremos el valor de Z1 y a continuacin
cargaremos el valor con el que queremos comparar.
l Una vez tengamos los valores en el acumulador, tendremos que
compararlos. Para ello tenemos las siguientes instrucciones:
> > >= <= == <>
Mayor Menor Mayor o igual Menor o igual Igua Dist.
l A continuacin del smbolo de comparacin pondremos una I si
lo que estamos comparando son dos nmeros enteros.
Pondremos una R si lo que estamos comparando son nmeros
reales.
Temporizadores y Contadores 30
15
Ejercicio
l El funcionamiento que queremos es el siguiente:
l Cuando llega un coche y el parking est libre, queremos que se abra la
barrera. A la salida no tenemos barrera. Cuando sale un coche
simplemente sabemos que ha salido.
l En el parking caben 10 coches. Cuando el parking tenga menos de 10
coches queremos que est encendida la luz de libre. Cuando en el
parking haya 10 coches queremos que est encendida la luz de ocupado.
l Adems queremos que si el parking est ocupado y llega un coche que no
se le abra la barrera.
A 4.6
A 4.7
Temporizadores y Contadores 31
Ejercicio: solucin
SOLUCIN EN AWL
U E 0.0 //Si llega un coche
U A 4.6 //Y est libre
= A 4.0 //Abre la barrera
U A 4.0 //Si se he abierto la barrera
ZV Z 1 //Cuenta uno con el contador 1
U E 0.1 //Si sale un coche
ZR Z 1 //Descuenta 1 con el contador 1
L Z 1 //Carga el contador 1
L 10 //Carga un 10
<I //Si en el contador hay menos de 10
S A 4.6 //Enciende la luz de libre
R A 4.7 //Y apaga la de ocupado
==I //Si el contador de coches vale 10
R A 4.6 //Apaga la luz de libre
S A 4.7 //Y enciende la luz de ocupado
Temporizadores y Contadores 32
16
Ejercicio: solucin
UTILIZANDO EL BIT DEL CONTADOR
SOLUCIN AWL
U E 0.7 //Si activamos la entrada 0.7
L C#10 //Carga un 10
S Z 1 //Mete el 10 en el contador
U E 0.0 //Si llega un coche
U A 4.6 //Y est libre
= A 4.0 //Abre la barrera
U A 4.0 //Si se ha abierto la barrera
ZR Z 1 //Descuenta 1 en el contador 1.1 plaza libre
menos
U E 0.1 //Si sale un coche
ZV Z 1 //Cuenta 1 en el contador 1. 1 plaza libre mas.
UN Z 1 //Si en el contador 1 hay un 0
= A 4.7 //Enciende la luz de ocupado
UN A 4.7 //Si no est ocupado
= A 4.6 //Enciende la luz de libre
Temporizadores y Contadores 33
Ejercicio
Control de Acceso de garaje
Automatizar un garaje de 5 plazas
de tal forma que si ste se encuentra
lleno se encienda una luz indicndolo
y no suba la barrera. En caso contrario
deber estar encendida otra luz
indicando LIBRE.
Asignacin de variables
E0.0 Clula fotoelctrica de entrada
E0.1 Clula fotoelctrica de salida
Salida Entrada A4.0 Barrera de entrada
A4.1 Barrera de salida
A4.2 Luz de sealizacin de LIBRE
A4.3 Luz de sealizacin de LLENO
Temporizadores y Contadores 34
17
Ejercicio: solucin
Temporizadores y Contadores 35
18