Esta semana resolvemos una duda que me han consultado en mi cuenta de Linkedin.
En este caso Zeno, desde Italia nos hace esta pregunta.
El caso de la selección de tiempos en TIA Portal
Dice así:
Iñigo, te vengo siguiendo desde hace bastante tiempo, y creo que eres uno de los pocos que pueda ayudarme …
El planteamiento es el siguiente: necesito poder buscar, seleccionar los timers y configurar un nuevo tiempo de conteo, desde una pagina HMI de Siemens. La página tiene las siguientes características; El timer se selecciona usando un campo i/o único y el nuevo valor del tiempo, será programado desde otro campo i/o dispuesto para ello.
Amigo, te doy gracias por adelantado y te agradezco tu tiempo …
Luego aclaramos alguna cosa más:
[..] el problema se me presenta en TIA Portal con un S7-1500 [..] necesito poder ir a una Pagina Grafica en el HMI, desde donde a traves de dos Campo i/o pueda seleccionar el Timer a cambiar y con el otro poder insertar el nuevo valor de tiempo, a través de un botón.
Tu bien sabes, que cada vez que programo un Timer dentro de mi programa, se forma un DB de instancia, para cada Timer, se que la cosa va por ahí, pero no sé como, a través del campo i/o, seleccionar el DB respectivo al timer a ser cambiado.
Te agradezco, tu ayuda, Inigo.
Bien. Vayamos por partes.
Lo primero que hay que aclarar es que no hay que seleccionar ningún DB, Timer ni nada por el estilo. Lo que quieres es asignar el tiempo a un timer en concreto, por lo que no hay que seleccionar el timer, sino el tiempo que quieres usar.
Por tanto, nos olvidamos de los DB, timer etc, y nos centramos en lo que queremos: poder cambiar tiempos para diferentes temporizadores.
Seguro que se puede resolver de más formas, pero la que yo he elegido por su simplicidad es:
- Crear un DB global donde meteremos un array de tiempos. No de temporizadores, no, de tiempos.
- A los FB o donde queramos usar dichos tiempos, le pasaremos dicho tiempo al FB como una entrada, de tal forma que te olvidas del DB de instancia.
- Creamos la pantalla de Siemens con un desplegable en la que asociamos el temporizador en cuestión con el índice del array de tiempos.
- Un par de campos para editar dichos campos.
- Pasamos a las llamadas de FB los tiempos…
- Et Voilá
¿Lo vemos?
Vídeo de selección de tiempos en TIA Portal
¿Qué te ha parecido?
Espero que a Zeno le sirva como inspiración para resolver su problema. Con unas pequeñas modificaciones en el programa, seguro que puede adaptar el ejemplo a su problema.
Este ejemplo, en cualquier caso lo dejaré en los anexo 5 del curso completo de TIA Portal (dedicado a WinCC Flexible) y en el curso express de TIA Portal y por supuesto, en el bloque de ejemplos resueltos de https://guorker.com
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.
8 Comentarios
podria realizarse con una receta infinidad de tiempos deseados
Si, se puede realizar de muchas formas. La cuestión es que se pedía mediante un desplegable, un campo, y un botón. Es lo más parecido que se me ha ocurrido.
Pero si, con una receta con un único registro, valdría igual.
La diferencia básica es que con la receta ocupas más espacio en pantalla en principio, pero poco más. Sería una buena solución también.
Muchas gracias Iñigo, eres un fenómeno.
Me alegra que te haya gustado Alfonso.
Muchas gracias Iñigo , me ha gustado mucho.
Saludos
De nada Óscar!
Muchas gracias Íñigo,
Como siempre …..ejemplar!!
Un abrazo!!
Gracias Pablo!