sábado, 18 de mayo de 2013

Temporizadores del S7-1200

Tipos de temporizadores IEC

Los autómatas S7-1200 han incorporado en su biblioteca de programación los temporizadores basados en software que dicta la norma IEC 1131-3:
  • TP - Temporizador de impulsos.
  • TON - Temporizador a la conexión.
  • TONR -Temporizador a la conexión con memoria.
  • TOF - Temporizador a al desconexión.
Si eres un programador procedente del entorno de los S7-200, observarás que hay un cambio radical en la forma que se utilizan dichos temporizadores. Si estás habituado a la programación de los temporizadores hardware de los S7-300, también tendrás que adaptarte al nuevo concepto ya que comprobarás que son bastante diferentes,. Sin embargo, si alguna vez has utilizado los temporizadores software (Temporizadores IEC) de la librería Standard Library>Systems Funciton Blocks  del STEP 7, no tendrá ninguna dificultad con los temporizadores de los S7-1200, ya que son prácticamente idénticos.
El siguiente tutorial se basa en el temporizador TON, pero puede ser utilizado de forma similar con los demás tipos.

 

Uso de los temporizadores

Los temporizadores del S7-1200, al estar basados en software, no requieren direccionamiento a una zona de memoria determinada del hardware y por tanto, no se identifican con un número (T1, T37, etc) como ocurre, por ejemplo, en los S7-200. Así, cada vez que se inserta un temporizador en la zona de programación, éste pide que se asigne un bloque de datos (DB) a instancia. Dicho DB debe identificarse mediante un nombre simbólico reconocible y que sea fácilmente distinguible de otros que se puedan utilizar en el mismo programa.

En el campo PT del temporizador debe escribirse el tiempo de preselección en formato TIME. Por ejemplo: T#3S (tres segundos) ó T#1M10S (un minuto 10 segundos) ó T#100Ms (cien milisegundos).

Ejemplo 1: Activación directa de una salida una vez transcurrido un tiempo.

Un uso inmediato de los temporizadores, consiste en utilizar la salida Q, de tipo binario, para activar  de forma directa, una vez que se ha superado el tiempo de preselección PT, elementos de programación en formato de bit como salidas, marcas o cualquier otra combinación lógica.

Ejemplo 2: Asociación de contactos a un temporizador.

Al no ser temporizadores hardware y no existir un direccionamiento directo a una zona de memoria específica para ellos, ya no es posible asignar, como se hacía en otros PLC's, contactos a los temporizadores mediante su identificador: T1, T2, T3, etc.  No obstante, para hacer algo similar se puede recurrir a diferentes técnicas.
  • Opción 1: Uso de una marca asociada al temporizador.
Cuando la marca es "verdadera", los contactos asociados invierten su valor lógico, activando o desactivando los segmentos en los que se encuentran programados.
 
Se puede decir que esta es una solución muy "eléctrica" similar a la utilizada en los automatismos cableados con relés.
  • Opción 2: Uso de la variable Q del DB a instancia asociado al temporizador.
En este caso no es necesario asignar ninguna bobina a la salida Q del temporizador. Sin embargo, los contactos asociados deben leer el valor de dicha salida directamente del DB a instancia. Para ello cada contacto  debe tener la siguiente sintaxis: "Nombre del DB".Q (en nuestro ejemplo "Temp_1".Q).

Ejemplo 3: Uso de un solo temporizador para acciones a diferentes valores de tiempo.

Lo visto anteriormente requiere usar un temporizador por cada conmutación temporizada que se desee realizar. Es decir, si se desea activar una salida a los 5 segundos y otra a los 10 segundos, es necesario utilizar dos temporizadores independientes configurados, cada uno de ellos, con sus respectivos tiempos de preselección.
Sin embargo, si se lee el valor de la salida ET del temporizador a a través de una variable o a través de DB a instancia, es posible realizar acciones a diferentes valores de tiempo de un mismo temporizador.
  • Opción 1: Comparar el valor de una variable asignada a la salida ET del temporizador.
La variable debe tener el formato de doble entero (DInt) y debe escribirse en la salida ET del temporizador. El tiempo se almacena en ella en formato de milisegundos. Por tanto, las operaciones de comparación deben hacerse teniendo esto en cuenta.
En el siguiente ejemplo se muestra como la salida Q0.6 se activa si el tiempo de temporizador es mayor o igual a 3 segundos (3000ms) y la Q0.7 lo hace si el tiempo es superior o igual a 8 segundos (8000ms).
  • Opción 2: Comparar el valor de la salida ET del temporizador.
De igual forma que para la salida Q del del DB a instancia, es posible leer la salida ET (que tiene formato DInt) y operar con ella en las comparaciones sin necesidad de crear ninguna variable intermedia.
En las comparaciones se puede utilizar una constate numérica en ms o directamente emplear el dato en formato TIME:
 

9 comentarios:

  1. ¿Es posible de algún modo asignar una variable a la entrada PT del temporizador?
    En concreto quisiera que una variable entera pudiera ser modificada y esta definir el tiempo de ejecución del temporizador, para que el usuario final pueda incrementar o decrementar este tiempo asignado a su antojo.

    Gracias de antemano.
    Andrés.

    ResponderEliminar
    Respuestas
    1. Puedes ingresar en un DB la variable tiempo para que el usuario desde el HMI a través de un campo E/S le agregue el valor deseado

      Eliminar
  2. puedees hacerlo siempre y cuando la variable sea de tipo time

    ResponderEliminar
  3. muchas gracias amigo me ha servido mucho

    ResponderEliminar
  4. Me sirvió par a mi tarea c:

    ResponderEliminar
  5. QUE TAL, ESTOY REALIZANDO UN PROYECTO ESCOLAR, PERO REQUIERO PODER LEER UN VALOR DE TIEMPO DESDE MI PANTALLA Y YO PODERLE MANDARLE EL VALOR DE TIEMPO DESDE MI PANTALLA

    ResponderEliminar
  6. hola... necesito programar una alarma que se active cada vex que un evento se produzca 10 veces en el lapso de una hora...

    ResponderEliminar