16 de enero de 2012

Modificando tiempos en un PLC S7 desde WinCC Flexible RT

Recientemente me ha tocado actualizar el programa de una máquina que llevaba un panel táctil realizado en ProTool. En este proyecto hay una serie de tiempos configurables desde el panel y me llamó la atención que estaban enlazados a variables en formato WORD, haciendo la conversión a formato S5TIME en el PLC, con segmentos como el siguiente:


El valor se recibe en un WORD, se copia en un INT, que vuelve a ser un WORD después de la instrucción I_BCD, se le añade la base de tiempo con la instrucción WOR_W, para finalmente moverlo a la variable en formato S5TIME definitiva.

No es la primera vez que me encuentro con conversiones similares, pero como no estaba del todo seguro de cómo trata WinCC Flexible directamente las variables de tipo S5TIME, pues nada mejor que hacer una sencilla prueba.

Lo primero es crear un proyecto de Step7 con una variable S5TIME en un bloque de datos y transferirlo a mi PLC.


En WinCC Flexible enlazo la variable anterior a un campo de entrada salida, le doy suficiente longitud de representación, tres dígitos para la parte decimal y tipo de formato Decimal.


La idea es ir dando distintos valores a la variable desde el Runtime de WinCC Flexible para comprobar de qué manera le llega el valor de tiempo al PLC. Así que transfiero el programa al panel y visualizo simultáneamente el valor de la variable en el PLC y la ejecución del HMI:

Dos máquinas virtuales: una con Step7 on-line con el PLC y la otra con el RT de WinCC Flexible.
Lo que me he encontrado es que introduciendo el valor en segundos (en milisegundos si obviamos la coma),
la variable en formato S5TIME del PLC recibe la conversión ya realizada, directamente, sin programar nada más. Si ponemos valores superiores a 9990,000 segundos (que es la temporización máxima de un temporizador Simatic correspondiente a 2h 36m 30s) se redondea a este valor. Asimismo, no todos los valores de tiempo son posibles, dependen de la base de tiempo, pero el PLC recibirá el valor redondeado más próximo al que hayamos introducido.

Y hasta aquí esta sencilla comprobación. Cualquier comentario será bienvenido.

2 comentarios:

  1. Hola.
    Yo prefiero el primer método, el de los cálculos en el PLC. Aunque le añadiría un control de límites (por si los negativos, valores > 999 etc etc).
    Antes o depués hay que calcular en el PLC un tiempo y hay que terminar usando el método.
    No todo es Wincc.
    Los displays y PC´s pasan (cascan) el PLC permanece...

    ResponderEliminar
  2. Buenas.
    De que manera puedo temporizar mas de 9990 s, Gracias.

    ResponderEliminar

Por favor, no pidas copias de programas comerciales, licencias o números de serie.