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
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:
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.
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
3 Comentarios
Gracias Iñigo por tan buena información.
Saludos!!
De nada José! Me alegro que te sea útil.
hola buenos días realice el montaje que colocas en la imagen, pero la salida de la diferencia no me da una diferencia del tiempo me puedes enviar la imagen pero sin tanto recorte como para ver las lineas