Cuando empiezas a programar tal vez te surjan una duda cuasi existencial... ¿Qué es mejor usar? ¿FC o FB?... pues básicamente, depende.
En general con ambos se pueden hacer lo mismo. Cambia la forma. Pero digamos que no están pensados para lo mismo.
- Los FC serán ideales para generar resultados que no tengamos que almacenar. Dentro de la automatización lo usaremos en la lógica general de los programas. Pueden ser usados en líneas generales de actuación de las máquinas, secuencias e interrelación entre ellas.
- Los FB son como los FC, pero vitaminados. No solamente podremos hacer lo que hacemos con los FC sino que además podremos almacenar valores ya que tienen asociados DB. Además podremos usar los temporizadores IEC de forma muy sencilla evitando complicarnos con los temporizadores de S5 para nuestros propósitos. Serán adecuados para el manejo de motores, variadores etc ya que podremos juntar similares funcionalidades bajo el mismo FB usando DB para cada uno de ellos.
Está claro entonces... uso FB siempre y ya está.
Esta es la conclusión a la que fácilmente podrías llegar tras lo expuesto. Antes de dar este paso hay que tener en cuenta que los FB siempre han de tener un DB asociado.
Eso en sí mismo no es un problema, pero puede serlo si el programa es extenso y has de tener muchas funciones para una correcta organización del programa. El uso inecesario de FB hacen que se ocupe memoria de forma innecesaria ya que generarás un DB lo necesites o no.
Si todo lo haces con FB, y el proyecto es suficientemente complejo, tendrás un sinfín de DB. Hay que elegir por tanto los FB en general cuando:
- El FB controle un actuador o motor y tengas varios del mismo tipo de tal forma que puedas reutilizar el FB no necesitando usar marcas. Esto hace que sea más fácil de mantener y más difícil de cometer errores ya que no necesitarás tener en cuenta qué marcas están usadas y cuales no.
- Necesitas guardar datos de forma permanente. Qué mejor hacerlo a través de un FB ya que así tienes un DB asociado donde guardar estos datos.
- Si vas a usar el FB con diferentes motores por ejemplo, y necesitas temporizadores. Puedes usar los temporizadores IEC y usarlos como multiinstancias.
¿Cuándo usaremos los FC entonces?
- Para planteamientos generales de las aplicaciones, o para actuadores que no necesiten ser reutilizados.
- Funciones aritméticas, trigonométricas o de otra índole que no necesiten almacenar los datos y que simplemente nos devuelva un valor o que se utilicen marcas globales.
En definitiva, habrá que evaluar cada caso para saber qué usar. Por lo general personalmente uso más los FC que FB, pero dependerá del proyecto en concreto.
Para finalizar adjunto un video en el cual presento las diferencias entre los FB y los FC en ejemplos muy sencillos: un sumador, un totalizador de tiempo y el uso de temporizadores. Ahí quiero mostrarte las diferencias entre ambos para que puedas intuir con más facilidad cuál es el concepto para cada caso.
Referencias:
- Difference between FB & FC's (hilo del antiguo foro de Siemens)
- FC o FB,DB

Comentarios (19)