El tiempo de ciclo en TIA Portal ¿cómo se calcula?

Buscas y buscas dónde está el tiempo de ciclo en TIA Portal. Y no lo encuentras.

Una de las cosas que puede sorprender cuando comienzas a programar en TIA Portal es que en las variables temporales del OB1, no tenemos disponible el tiempo de ciclo del ciclo anterior, valga la rebuznancia.

¿Y entonces? ¿Cómo calcular el tiempo de ciclo en TIA Portal?

Pues la forma de calcular el tiempo de ciclo en TIA Portal es muy sencillo.

Podemos hacerlo de dos formas, una más casera que nos de este tiempo en formato Time y en milisegundos, o con una mayor precisión en segundos en un formato LReal ¡Tóma ya!

Forma precisa y out of the box

calcular el tiempo de ciclo en TIA Portal

Con la instrucción RUNTIME (la puedes encontrar en la caja de herramientas en la carpeta Control del programa), podrás saber el tiempo transcurrido del último ciclo de scan del OB1.

También podremos usarlo para calcular el tiempo que tarda en ejecutarse un bloque, poniendo a la entrada y a la salida del bloque la instrucción RUNTIME y usando la misma variable MEM como entrada.

Como ves, la salida es en segundos y con muchísima precisión.

Para poder usar este bloque, tendrás que usar variables LReal declarando por ejemplo un P#M100.0 como Lreal en caso de querer usar marcas o  bien declararlos en DB globales o de instancia en un FB.

Forma menos precisa y más casera.

A nosotros, como nos va la marcha, nos gusta hacer las cosas a nuestra manera.

Otra forma de calcular el tiempo de ciclo, aunque sea menos preciso, es realizando nuestro propio bloquecito:

calcular tiempo de ciclo en tia portal

Está realizado en un FB, y hemos usado dos variables DTL, usando además la lectura del reloj del sistema, y la instrucción T_DIFF, que nos devuelve la diferencia entre dos tiempos.

Lo que hacemos es sencillo:

  • Registramos el valor del tiempo actual del reloj en la variable #CicloActual
  • Si la variable #CicloActual > #CicloAnterior, entonces calculamos la diferencia entre ellas, dando como resultado el #TiempoCicloAnterior
  • Finalmente copiamos #CicloActual en CicloAnterior, para que en el siguiente ciclo de scan, hagamos nuevamente la diferencia

¿Ingenioso no? Pues sí, a la par que inútil teniendo la operación RUNTIME, pero nos gusta aprender cosas nuevas y diferentes formas de solucionar un mismo problema ¿o no?

Pues si quieres aprender cosas como estas, u otras como puede ser este ejemplo, no esperes más, y échale un vistazo al curso de TIA Portal que está teniendo mucha aceptación.

 

Acerca de Iñigo Gútiez

Ingeniero industrial por la Escuela de Ingenieros Superiores de Bilbao. Trabajo como ingeniero de proyectos y automatización en Guardian Industries

Te puede interesar

Entrevista a Juan Carlos Martín (REEA)

En esta ocasión traigo al blog algo muy especial. Más bien a alguien especial. La …

2 Comentarios

  1. José Alcántara

    Gracias Iñigo por tan buena información.
    Saludos!!