Uno de los problemas que tiene el crear los FB cuando los reutilizas, es que si abres un FB reusado, necesitas saber cómo visualizar una instancia concreta de un FB.
En mi caso, y debido a que en general no suelo usar muchos FB reutilizados, pues no suelo necesitarlo.
Pero puede que tú si que lo necesites, y no sepas muy bien cómo hacerlo.
Pues aquí va un pequeño tutorial de…
Contenido
Cómo visualizar una instancia concreta de un FB
Lo primero que tienes que hacer es abrir el bloque (OB1 por ejemplo) donde la multiinstancia está siendo llamada.
Luego, sigue los siguientes pasos:
- Ve al menú TEST -> Modo de funcionamiento. Ahí estará en modo proceso. Situala en modo TEST.
- Guarda el bloque, y cárgalo al autómata.
- Ponte online, y haz click con el botón derecho sobre la multiinstancia que quieras observar, y en el menú contextual, selecciona «Bloque llamado» -> «Observar con ruta de llama».
¡Y ya está! Lo que verás será el estado de la instancia concreta de un FB que tu hayas elegido.
¿Puedo dejar el bloque cargado en modo Test?
Por poder, puedes, pero no es recomendable a mi juicio. Como bien indica Siemens, el modo Test no es gratis, sino que hace que el ciclo de scan se alargue. Literalmente, en una de las ayudas de Siemens, dice:
Indicaciones sobre el modo de servicio
- Servicio de prueba
Se pueden utilizar todas las funciones de prueba sin restricciones. Pueden aparecer grandes ampliaciones del tiempo de ciclo de la CPU, ya que , por ejemplo, el estado de las instrucciones de los bucles programados, se determina en cada pasada.. - Servicio de proceso
Se limita la función de prueba del estado del programa para garantizar una mínima carga del tiempo de ciclo. Así, por ejemplo no esta permitida ninguna condición de llamada. La visualización de estado de un bucle programado se interrumpe en el punto de salto hacia atrás. La función de prueba «Parar» (Halt) y ejecución del programa paso a paso no se pueden realizar.
Por tanto, y de lo que se trata es de saber cómo visualizar una instancia concreta de un FB en un momento dado, pero yo dejaría el modo de servicio en «Servicio de proceso».
Para volver al modo, ni que decir tiene, que simplemente lo que hay que hacer es deshacer lo hecho, es decir, en offline, seleccionar el modo anterior, guardar y volver a enviar.
Si necesitas más información, puedes encontrar lo que dice Siemens en este enlace.
El vídeo.
Como otras veces, te dejo un pequeño vídeo explicando lo que hemos visto sobre estas líneas.
¿Lo sueles usar?
Me gustaría saber si esto de cómo visualizar una instancia concreta de un FB es algo nuevo para ti o realmente sueles usarlo.
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
Saludos, iñigo,
El presente tiene como finalidad tratar de aclarar una duda con respecto a los DB cuya sintaxis,
es: DB21. DBX44.5 (contacto NO), Esta dirección sirve como permisivo para accionar una salida (A9.2), la cual esta condicionada por el DB antes mencionado.
Realmente no se como setear o mojar (forzar), ese contacto ya que proviene del DB antes mencionado, y no consigo la forma de hacerlo.
de antemano muchas gracias por cualquier ayuda que puedas aportarme.
Hola
Échale un vistazo a este post https://programacionsiemens.com/como-observar-y-forzar-variables-en-step-7/
Saludos
Bueno!
gracias.
Como puedo conseguir el código descuento?
Los códigos de descuento están en la última entrada del blog.
VUELTAS7 para el curso de S7
VUELTAWIN para el curso de WinCC Flexible 2008
VUELTAVB para el curso de VB Net
Válidos hasta mañana 14 de septiembre.
Saludos
Muchísimas gracias!!!!!! Me hacía mucha falta!! Este blog es genial!!!!
Hola,
Hay alguna forma de saber si un FB se ha ejecutado??
Me explico, como saber si alguien ha eliminado la llamada a esa FB desde la FC??
En esa FB hay programadas unas informaciones no criticas pero si alguna vez esenciales.
Si está llamado, se ejecuta, no hay más. Si no está llamado o su llamada está condicionada y no se cumple, pues no. Pero eso te lo dice el código cargado en el PLC.