La semana pasada te proponía el reto de realizar un bloque sin apoyarse en los bloque existentes de la librería para sumar y restar tiempos S5time en Step 7.
Espero que hayas aprovechado el tiempo de esta semana para darle duro y llegar a la solución, que por otra parte, no es excesivamente compleja.
Ojo, no es excesivamente compleja, pero no es trivial tampoco.
Tiene su aquél.
Para empezar, porque el tiempo S5time no es un número normal como puede ser un entero o un real.
S5time tiene una estructura muy concreta que hay que saber manipular para poder jugar con él.
El formato de S5time es el siguiente:
Sí, efectivamente, esto no es para personas que acaben de empezar en step 7.
Pero este ejemplo nos sirve para conocer un poquito mejor este formato de variable.
Contenido
El formato S5time
Para empezar, debemos saber que el formato s5time tiene dos partes bien diferenciadas:
- El valor del tiempo
- La base de tiempos
El valor del tiempo en S5time
El valor del tiempo, como ves en la imagen ocupa 12 bits en formato BCD.
Esto, como bien indica la propia infografía nos da unos valores entre 0 y 999, ya que en BCD, cada dígito ocupa 4 bits.
Si no conoces el formato BCD, échale un vistazo a esta entrada de la Wiki, que seguro que te saca de alguna duda.
La base de tiempos de S5time
Por otro lado, tenemos los últimos 4 bits de los cuales solo usamos los 2 más bajos obteniendo la base de tiempos en función de su valor:
- 0 para base 0,01 s
- 1 para base 0,1 s
- 2 para base 1 s
- 3 para base 10s
Rango de tiempos en S5time
Esto de por sí tiene varias consecuencias para el tamaño que puede albergar un tiempo S5time:
- El valor más pequeño no nulo es de 10ms.
- La resolución es de 10ms, por lo que no podremos cargar 125ms (por ejemplo). Tendrá que ser, bien 120 o bien 130ms ya que la base son 10ms.
- No podemos seleccionar valores superiores a los 9990 segundos (2h 46m 30s)
Sumar y restar tiempos S5time en Step 7.
De todo lo anterior, se desprende fácilmente que no podemos sumar y restar tiempos tan fácilmente como lo haríamos con formatos simples como enteros o reales.
Por tanto, para sumar o restar tiempos S5time en Step 7 tenemos que hacer pasos intermedios para obtener el resultado deseado.
Usando las funciones de Siemens
Como ya vimos en el pasado post, podemos usar la funciones de Siemens (FC33 y FC40) para transformar el tiempo S5time en tiempo formato TIME.
Esto nos permite, una vez en formato time, tratar el tiempo de forma algebraica como si de un doble entero normal se tratara (de hecho, es un doble entero normal).
Tan solo hay que tener en cuenta que el tiempo en formato time, la base de tiempos es el milisegundo.
Es decir, 1s en formato time, será 1000 en formato entero.
¿Fácil no?
Es por eso, que trabajar con el formato TIME es mucho más sencillo para sumar y restar tiempos que en S5time.
Hasta ahora.
Cómo sumar y restar tiempos S5time en Step 7
En el post anterior te presentaba el bloque que he programado para poder realizar estas sumas y restas de tiempos S5time:
El reto que te presentaba era que dieras los dos operandos A y B (tiempos S5time), y que tras dar la operación (1 o 2 para sumar o restar respectivamente), como resultado obtuvieras el tiempo del operando A y B en TIME, y el resultado de la operación en formato TIME y S5TIME.
El vídeo
Te dejo con el vídeo de cómo he planteado yo la solución al reto.
Seguramente hayas pensado en otras formas de resolverlo, pero esta es una forma válida.
Como verás, he introducido algún concepto interesante que igual no has tratado nunca, como es realizar potencias.
¿Qué te ha parecido el reto de sumar y restar tiempos S5time en Step 7?
Espero que te haya gustado el reto, y sobre todo, que lo hayas resuelto por tu cuenta.
¿Lo has resuelto?
Sí, ya sé que lo de sacar el exponente, es un poco sobrada, y que es más fácil hacer unas comparaciones, multiplicar por lo que corresponda, y ya está.
Pero ¿dónde quedaría entonces la imaginación a la hora de sumar y restar tiempos S5time?
Deja tus impresiones en los comentarios.
El ejemplo lo colgaré en el anexo del curso de Step 7 para que los flamantes poseedores de él, tengan el código para que lo puedan estudiar con más detenimiento, o simplemente copien el bloque para el uso en sus proyectos.
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.
11 Comentarios
bueno!!!!!!!!!!!!!!!!!!
Excelente!!! Quedó mas que clarisimo!!!
Saludos!
Buen dia, tengo una duda, se puede realizar esta misma practica y de la misma manera en TIA Portal?
Y una gran duda que tengo, que diferencia hay entre usar el Step7 y el TIA Portal para programar los PLC 300 y 400, en mi trabajo tenemos una maquina que la programaron 2 empresas alamanas diferentes, unos usaron el Step7 y el otro el TIA Portal
Gracias por su atencion…
Para programar los PLC S7-300, tienen que tener un firmware mínimo.
De todas formas, yo si tengo un PLC programado con Step7 tradicional, lo dejaría como está.
Un saludo
Muy buena explicacion ,lo que no veo es el link para poder descargarlo. gracias.
Hola,
Si tienes el curso de Step 7, solo accede al curso a través de «Mi cuenta» y luego en el Aula virtual.
Saludos
Hola como estas , tengo el curso , he incresado por aula virtual y al curso step7 , pero solo veo los links de los ejemplos viejos , exactamente 10 ejemplos . no veo este o por lo menos en mi perfil no sale.
gracias por tu ayuda.
Solucionado. Se había quedado la publicación de la unidad un poco tonta.
Ya está disponible
Saludos y gracias por el aviso
Muy bueno gracias por el aporte
Perfecto y clarísimo!!!
Gracias José!