martes, 11 de junio de 2013

Comparaciones en KOP de tiempos S5TIME

En los autómatas S7-200 se pueden realizar, de forma muy sencilla y efectiva, operaciones de comparación para tratar los tiempos de los temporizadores. Dichos tiempos pueden ser comparados con variables o constantes y para ello basta con utilizar operaciones de comparación para números enteros y poner en sus valores de entrada (IN1-IN2), la referencia nemotecnia del temporizador (T1, T37, etc) y un número (o variable) con el tiempo a comparar, que debe estar escrito en función de la base de tiempos de temporizador. 
Así, en el siguiente ejemplo se muestra el temporizador T37, cuya base de tiempos es de 100 ms, el cual se compara para activar dos salidas (Q0.0 y Q0.1) a 100 x 100ms (10 segundos) y a 150 x 100ms (15 segundos) respectivamente.
Cuando uno migra al Step 7 de los S7-300 e intenta hacer algo similar a este tipo de comparaciones en lenguaje KOP, se da cuenta dicha programación no es tan inmediata como en sus "hermanos" menores los S7-20. No obstante, la comparación de tiempos en este lenguaje es posible y es lo que se explica a continuación.

Para poder realizar comparaciones de tiempos S5TIME en lenguaje KOP es necesario conocer algunos detalles técnicos sobre el formato que utilizan los temporizadores.

Diferencias en la forma de temporizar.
En los S7-200 la temporización se produce de "abajo hacia arriba". Es decir, cuando se activa el temporizador comienza a temporizar desde 0 hasta un tiempo máximo. Sin embargo, en los S7-300 la temporización se efectúa exactamente al revés de "arriba hacia abajo". Es decir, cuando el temporizador se activa, este descuenta desde el tiempo ajustado en el parámetro de preselección, bajando hasta 0. Si bien este detalle no es importante cuando se utilizan las acciones en formato de bit para activar y desactivar contactos asociados al temporizador, si que es de suma importancia para poder realizar la comparación tiempos.

Base de tiempos del formato S5TIME
En los S7-200, la base de tiempos se elige en función del tipo de temporizador (TON, TOF ó TONR) y el número que lo identifica. Es decir, no es lo mismo utilizar un T1 o un T37, ya que cada uno de ellos es de un tipo diferente (TONR y TON respectivamente) y funcionan con distintas bases de tiempo (10 y 100 ms, en este ejemplo). En este caso es absolutamente necesario consultar la hoja de características del PLC, para conocer los diferentes tipos de temporizadores y las bases de tiempo asociadas en función de el número del temporizador. En el formato S5TIME, la base de tiempos se selecciona automáticamente en función del tiempo ajustado en el parámetro TW del temporizador. Dicha base de tiempos se elige por rango según se muestra en la siguiente tabla:


Rango elegido Base de tiempos seleccionada
10ms 9s 9ms 10ms
10s 99s 999ms   (1M 39S 900MS) 100ms
100s  (1M 40S) 999s 999ms  (16M 39s) 1s
1000s (16M 40s) 9990s  (2h 46min 30s) 10s
A continuación se muestran varios ejemplos:
Valor de preselecciónTW Base de tiempos seleccionada
S5T#5ms 10ms
S5T#8s 10ms
S5T#11s 100ms
S5T#85s 100ms
S5T#200s 1s

Comparación de tiempos S5TIME.
Conociendo estos detalles, ya es posible efectuar comparaciones en KOP con los tiempos de los temporizadores S5TIME del STEP 7. Lo primero que se debe hacer es configurar el tiempo de preselección (1) el cual se escribe en formato S5TIME en la entrada PW del temporizador. Este dato sirve para seleccionar automáticamente la base de tiempos con la que se va a trabajar, según lo indicado en la tabla anterior, y además poner el "tope" con el que el temporizador va a trabajar. Por otro lado, es necesario asignar una marca del tamaño de una palabra en la salida DUAL del temporizador (2), ya que es la que se va a utilizar para realizar las comparaciones. A todos los efectos, dicha marca es el dato del tiempo del temporizador y debe ser univoca en el programa.
Ejemplo 1:
En este caso la base de tiempos seleccionada es de 100 ms ya que el tiempo de preselección del temporizador se ha ajustado a 10s. Así, cuando el temporizador se acciona mediante la entrada E124.1, la salida A124.0 se activa de forma inmediata y se mantienen así siempre que el tiempo del temporizador sea mayor o igual a 6 segundos (60 x 100ms). Dicho de otra forma, la salida se desactiva cuando han transcurrido 4 segundos desde que se activó el temporizador.
Es importante recordar que los temporizadores S5T temporizan de arriba a abajo. Es decir "descuentan" el tiempo hasta llegar a cero.

Ejemplo 2:
En este ejemplo la base de tiempos seleccionada es también de 100ms ya que el tiempo de preselección del temporizador es de 30S. En este caso se ha utilizado una comparación "menor o igual", de forma que la salida A124.2 se activa a los 10 segundos de poner en marcha el temporizador. Es decir, cuando el tiempo del temporizador es menor o igual a 20 segundos (200 x 100 ms).

Ejemplo 3:
En el siguiente ejemplo la base de tiempos es de 1s, ya que el tiempo de preselección que se ha asignado al temporizador es de 140S (2M20S). En esta ocasión se ha utilizado también una comparación "menor o igual", por lo que la salida A124.2 se activa cuando el temporizador baja de los 120 segundos (120 x 1s), o dicho de otra forma, cando han transcurrido 20 segundos de la activación del temporizador.
Resumiendo:
Como se deduce de los ejemplos anteriores, cuando se realizan comparaciones de tiempos de los temporizadores S7T es necesario conocer el tiempo de preselección (o tope) ajustado en el parámetro TW del temporizador, ya que con él se asigna de forma automática al base de tiempos utilizada y, además, es el tiempo máximo desde el que comienza la temporización. Así, desde que se activa el temporizador hasta que se produce la acción asignada al comparador, pasa un tiempo que resulta ser la diferencia del tiempo preajustado en TW y el asignado mediante la constante usada en el comparador. Así en los anteriores ejemplos el tiempo de la temporización es:
 
Tiempo de preselección TW Dato a comaprar Temporización
(Momento en el que se ejecuta la acción)
Ejemplo 1 S5T#10S 60 4 segundos
(40 X 100ms)
Ejemplo 2 S5T#30S 200 10 segundos
(100 x 100ms)
Ejemplo 3 S5T#140S 120 20 segundos
(20 x 1s)

No hay comentarios:

Publicar un comentario en la entrada