• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página

Programación Siemens

Cursos online de TIA Portal y PLC Siemens.

  • Cursos
  • Blog
  • Mi cuenta
    • Mi cuenta
    • Foros
    • Curso de TIA Portal para CPU 1200
    • Curso Express de TIA Portal
    • Curso de AWL
    • HMI con OPC UA en Python y QT-Designer
    • Curso HMI con Python y Qt-Designer
    • Curso de iniciación a la Industria 4.0
    • Curso de comunicaciones IE y Profinet
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso ViSnap7
    • Curso de Step 7 V5.x
  • Contacto & Faq
Home | ejemplos | 4. Creación de FBs en Step 7 – Ejemplo de una bomba de agua

4. Creación de FBs en Step 7 – Ejemplo de una bomba de agua

4. Creación de FBs en Step 7 – Ejemplo de una bomba de agua

por Iñigo Gútiez · 37 comentarios

Para ir creciendo un poco más en la lógica binaria vamos a ver un par de ejemplos durante estos días después de haber visto los primeros fundamentos con el álgrebra de boole. El primero será crear FBs en Step 7 y el siguiente será crear FCs.

 

 

  • Un ejemplo de creación de FB
  • Un ejemplo de creación de FC

 

La idea es ir introduciendo conceptos nuevos, y no se puede programar en Step 7 si no se conocen los FB y los FC.

FBs en Step 7

Hoy comenzamos con los FBs. Son más completos que los FC ya que como vamos a ver, van a tener remanencia a diferencia de los FC que nos servirán para otros menesteres como veremos pronto.

Como ya dijimos en la introducción los FB no son mas que unos bloques que nosotros vamos a construir y que va a poder tener una serie de variables (ninguna de ellas obligatoria):

  • Variables de entrada
  • Variables de salida
  • Variables de entrada/salida
  • Variables temporales
  • Variables estáticas (remanentes)

 

Como bien digo, no es obligatorio el uso de ninguna de ellas ya que se puede hacer la llamada al FB y dentro de este usar variables globales (marcas u otros DBs).

Lo único que es obligatorio es crear un DB de instancia asociado al FB. Este DB nos servirá para almacenar la información remanente aunque veremos que todas las variables quedan reflejadas en él (todas las que se declaren, claro).

No hay que declarar ninguna variable dentro del DB ya que Step 7 lo va a hacer por ti a la hora de hacer la llamada o al crearlo desde el Simatic Manager

 Ejemplo de maniobra de una Bomba de agua

Para ver cómo crear FBs en Step 7 de forma práctica vamos a hacerlo a través de un ejemplo de manejo de una bomba de agua.

Se trata de un tanque que tiene un mínimo y un máximo que es abastecido entre estos límites a través de una bomba. Esta bomba toma el agua de una fuente sin determinar y que no viene al caso.

La cuestión es que hay que hacer:

  • A través de una maneta de OFF/ON, poner el sistema en posibilidad de trabajar. Cuando se pasa al estado ON, la máquina se pone en modo manual.
  • El modo manual es simple. Si se activa el botón de marcha de la bomba, esta bombea sin límites. Si se vuelve a pulsar se para.
  • El modo automático se pone cuando se pulsa el botón de auto/man. Tras pasar a auto hay que pulsar el botón de marcha de la bomba y esta trabajará entre el mínimo y el máximo. Cuando pierde el mínimo se activa y cuando llega al máximo se para.
  • Si se vuelve a pulsar el botón de auto/man se pasa de nuevo a manual y la bomba se para.
  • Hay una serie de leds para indicar los estados de auto, manual, marcha y paro de la bomba.

 

Para visualizar todo esto mejor, te he preparado un vídeo donde se explica el ejercicio (sin solución).

 

 

En el siguiente vídeo puedes ver la resolución del ejercicio.

 

 Recuerda..

Este ejemplo está incluido en Cómo programar Step 7 y no morir en el intento con todos los textos, explicaciones, vídeos y proyectos para su descarga.

 

Iñigo Gútiez
Iñigo Gútiez

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.

Publicado en: ejemplos, Teoría, Tutoriales, Videos Etiquetado como: DB, ejemplos, fbs, videos

Interacciones con los lectores

    Deja un comentario Cancelar

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

    37 Comentarios

  1. Gabriel dice

    21 septiembre, 2013 a las 4:29

    Excelente Iñigo!!!

    Con respecto con el asunto de usar FC o FB es un tema que me complica encontrarle un uso efectivo a las funciones FB.

    Si bien es cierto las funciones FB son remanentes, esto quiere decir que en las declaraciones de variables locales, las voy a guardar en un DB de instancia asociado y esto me obliga a generar tantos DB´s por el uso de FB que requiera.

    En cambio usar FC no hay remanencia de sus variables locales tras finalizar la llamada de dicha FC y así sucesivamente a lo largo del ciclo scan (OB1).

    Cuando estoy usando FB todas las variables locales son almacenadas en el DB de instancia (entradas, salidas, entradas/salidas, temporales, estaticas), pero en la mayoría de las aplicaciones que he visto solo se requiere refrescar las entradas como salidas de la función FB, por lo tanto cuando llamo y parametrizo la función FC estoy volviendo a declarar nuevas variables (marcas, DB´s principalmente u otro).

    En cambio usando FC puedo hacer lo anterior y evito duplicar variables, (evito los DB´s de instancia). Creo la función FC y uso variables locales y marcas, procuro declarar bien las variables locales especialmente las entradas y salidas, una vez realizada mi programación llamo a la función FC desde otra FC o del OB1 u otro, cuando llamo la FC y la parametrizo (en los parámetros uso DB´s globales, teniendo precaución con la función AUF o OPN) y así llamo la función con cuantos DB´s quiera evitando usar DB´s de instancia. He insisto solo refresco entradas y salidas de la FC programada.

    Sin embargo, con lo expuesto te darás cuenta, que aún lo he encontrado el gustillo o mejores aplicaciones a las funciones FB´s considerando que me he basado en la remanencia.

    Saludos y ánimo!!!

    Responder
    • Iñigo Gútiez dice

      22 septiembre, 2013 a las 0:14

      Hola Grabiel,

      Yo generalmente también uso FC. Pero hay que reconocer que para realizar una programación orientada a objetos, los FB es un paso adelante.

      Tener objetos preconfigurados que sabes que funcionan y que son reutilizables con remanencia es muy interesante.

      Pero como todo, para gustos.

      Un saludo y gracias por tu punto de vista.

      Responder
  2. Roberto dice

    21 septiembre, 2013 a las 17:30

    Buenas tardes Iñigo.

    Enhorabuena por el curso. Está muy logrado. Te voy a hacer una petición. ¿Podrías pasar a formato PDF la resolución de los ejercicios?. Es para poder seguir mejor el razonamiento de los mismos.

    Gracias.

    Responder
    • Iñigo Gútiez dice

      22 septiembre, 2013 a las 0:02

      Roberto,

      Voy a hacer una cosa mejor, que debería haber hecho y se me olvidó. Subir el proyecto para que lo podáis descargar y jugar con él.

      Saludos

      Responder
  3. LUIS P dice

    21 septiembre, 2013 a las 20:37

    Hola Iñigo, en verdad se me hace una excelente idea tu aportacion de conocimientos en Siemens, y si no es mucho pedir, podrias ayudarme compartiendo un tutorial de manejo de drives SINAMICS ademas de RED ASI

    Saludos

    Responder
    • Iñigo Gútiez dice

      22 septiembre, 2013 a las 0:02

      Hola Luis,

      No tengo experiencia en bus ASi aunque por lo que sé es similar en su uso a otros buses de campo.
      En cuanto a Sinamics algún día puede que haga algún ejemplo, pero no a corto plazo ya que de momento he redirigido el objetivo del blog a los que empiezan a programar.

      Entiendo que sea frustrante, pero de momento no puedo ofrecer más ya que el tiempo y recursos es limitado.

      Un saludo

      Responder
  4. Yeray dice

    24 septiembre, 2013 a las 19:20

    Excelente video tutorial, tengo un ciclo de sistemas de regulaciñon y control de automatismos, muy orientado a la programación de PLCs y la verdad que estos videos estan muy bien para tenerlos y poder recordar cositas como las variables estaticas en los FB, enorabuena y sigue así, la gente aprendera mucho con tus tutoriales.

    Responder
    • Iñigo Gútiez dice

      24 septiembre, 2013 a las 22:23

      Muchas gracias Yeray!

      Responder
  5. David dice

    29 septiembre, 2013 a las 15:20

    Hola, soy novel en lo que a programación se refiere, me ha llevado HORAS resolver esto por mi cuenta, pero lo he conseguido, XDD, quería hacerle unas preguntas:
    a efectos prácticos que diferencia hay entre una variable estática y una dinámica?
    poder acceder al valor de esas variables desde cualquier lugar del programa o que estos se mantengan hasta ser refrescados en el siguiente ciclo de scan?
    funcionaría el telerruptor programado en un FC?
    si estoy diciendo barbaridades lo siento.
    un saludo

    Responder
    • Iñigo Gútiez dice

      29 septiembre, 2013 a las 19:12

      No hay dinámicas. Hay globales o locales. Las estáticas son también globales y son parte del DB de instancia. Lo normal es acceder exclusivamente dentro del DB pero se puede acceder sin problemas desde cualquier otro punto.
      Las temporales, a las que te refieres solo se pueden usar desde el FB/FC y se debe dar valor antes de usarlas ya que sino pueden hacer cosas raras si las lees antes de darles valor.
      El telerruptor no funcionaría en un FC porque no tiene estáticas. Las variables temporales no valdrían para esto. Deberías usar marcas pasándoselas como IN/OUT, por ejemplo.

      Un saludo

      Responder
      • david dice

        29 septiembre, 2013 a las 20:59

        Ok, voy entendiendo, cuando dije dinámicas lo que quería decir ers temporales, se me fue el santo al cielo. gracias

        Responder
  6. NelsonGV dice

    4 octubre, 2013 a las 0:53

    Excelente vídeo, muchas gracias por la explicación. tengo una duda la programación en step7 se puede hacer siguiendo el curso pero la de la pantalla de simatic win cc y la integración no me queda claro como se hace, no se si es que se explico en otra parte y no lo vi o si se omitió la explicación,.. la verdad no se como se integran los estados de entradas y salidas para q aparezca la bomba, los leds enciendan o apaguen según step7 en la pantalla de simatic win cc.

    Muchas gracias por su atención, espero su respuesta.

    Responder
  7. CARLOS JOSE dice

    15 octubre, 2013 a las 1:38

    desde colombia felicitaciones, muy interesante su pagina y estoy aprendiendo mucho. gracias por compartir el conocimiento

    Responder
  8. David dice

    19 diciembre, 2013 a las 23:10

    Hola Iñigo, excelente video como siempre. Estoy suscrito a tu canal de youtube.
    Respecto a este proyecto tengo una duda, es posible tener el proyecto de la programacion en PLC (Step7) separado de la parte del HMI (WinCC Flexible). Descarge el proyecto y lo quise migrar a TIA Portal, pero no me deja hacer la migración porque solo tengo instalado el Step7 y no el WinCC Flexible, para lo cual se me habia ocurrido tener los proyectos por separado, migrar el proyecto de PLC y yo crear la HMI en TIA Portal, por supuesto que si lo hago, con gusto te paso la carpeta del archivo del proyecto de TIA Portal en caso que te interese subirlo a este blog. Saludos.

    Responder
    • Iñigo Gútiez dice

      19 diciembre, 2013 a las 23:17

      Sí, es posible.
      Pero claro. Necesitas el wincc flexible para separarlos.

      Responder
  9. Miguel dice

    15 enero, 2014 a las 6:54

    Hola Iñigo, te quisiera realizar una consulta, cuando creas un FC o un FB dentro de ellos(en Interface) existe un tipo de variable llamada IN_OUT o variables de entrada_salida; en que casos usas este tipo de variables al momento de crear dichos bloques?
    Muchas gracias por todos los tutoriales….sigue adelante.

    Responder
    • Iñigo Gútiez dice

      16 enero, 2014 a las 20:18

      Las variables IN_OUT se usan cuando quieres manipular la variable de de entrada y darle valor de salida, modificarla.

      Responder
  10. andres dice

    5 marzo, 2014 a las 12:44

    gracias

    Responder
  11. Carlos Garcia dice

    10 marzo, 2014 a las 19:56

    Hola, sinceramente tus vídeos están muy buenos, pero tengo un pequeño problema, utilizo el TIA portal V12 y es bastante distinto gráficamente lo que vos haces, me podrías decir cual es la versión que vos usas, porque cuando quise ver lo que habías puesto para descargar no me permitía verlo ya no es compatible con el programa que tengo

    Responder
  12. Miquel dice

    11 abril, 2014 a las 12:06

    Hola Iñigo antes de todo darte las gracias por este curso, has hecho un trabajo fantastico y ademas de manera altruista, lo que desde mi punto de vista es admirable.
    Bien,supongo que como muchos electromecanicos que no han tenido la oportunidad de estudiar mucho, soy virgen en el tema de programacion y pese a lo bien hechos que estan los videos. hay muchos terminos que empleas que desconozco. Podrias aconsejarme donde puedo encontrar algo de informacion para entender desde cero en programacion.
    Muchas gracias.

    Responder
    • Iñigo Gútiez dice

      15 abril, 2014 a las 22:26

      Ufff Miquel… es complejo.
      La verdad es que no sabría decirte dónde podrías leer y documentarte.
      Puedes bajarte los PDF de Siemens Googleando un poco ya que son gratuitos, pero creo que son muy durillos para la gente que empieza… por no decir un tostón (mejorando lo que yo he hecho, que para nada quiero sustituirlo. He hecho lo que he podido y sabido).

      Saludos

      Responder
  13. Cristian dice

    16 abril, 2014 a las 1:20

    Hola Iñigo:
    Dejame felicitarte por tu blog, muy bien encarado en la programacion siemens, te cuento que anteriormente realice un programa similar al manejo de una bomba manual-automatico con boyas como este que presentaste en esta video y mi opinion es que seguramante hay formas mas simple de implementarlo desde el punto de vista de la programacion, yo lo realice copn un logo y el programa es mucho mas sencillo aprovechando funciones ya integradas en los bloque de programacion, como el teleruptor, muchas gracias y saludos , desde Argentina.

    Responder
  14. XAVI dice

    25 mayo, 2014 a las 5:41

    Grande iñigo (Y) gracias hermano.

    Responder
  15. Will dice

    27 septiembre, 2014 a las 19:42

    Muchas gracias por tu tiempo y dedicación, aunque te quisiera pedir el favor de reestablecer los links de los proyectos, pues estos están caídos, y la verdad quisiera aprovecharlos al máximo.

    Responder
    • Iñigo Gútiez dice

      29 septiembre, 2014 a las 18:19

      ¿que links no funcionan?

      Responder
      • Will dice

        9 octubre, 2014 a las 23:03

        Gracias, ya he logrado descargarlos, el inconveniente era el AdBlock que le tengo instalado al navegador.

        Responder
  16. roal cabrera dice

    29 octubre, 2014 a las 1:47

    Iñigo. Dios te bendiga y gracias por los videos, en el video de «Curso de programación en S7 (IV) Solución de ejemplo de manejo de una bomba», no se ve como se llama el FB, hiciste los FBs pero no como se llaman, solo sale en el video cuando ya estan los dos llamados.
    saludos
    Orizaba Veracruz Mexico

    Responder
  17. Pavel dice

    10 marzo, 2018 a las 22:07

    excelete ejemplo

    Responder
    • Iñigo Gútiez dice

      11 marzo, 2018 a las 21:18

      Gracias Pavel!

      Responder
  18. JOSE LUIS dice

    20 junio, 2018 a las 19:17

    Hola Iñigo.

    Como siempre muy didáctico.
    Es grato comprobar de nuevo que todos los caminos llevan a Roma, FC / FB.

    Yo he entendido:
    La diferencia de los FB es que tienen remanencia, es decir, cuando existe rellamada sobre un actuador.

    No se si estoy en lo cierto.

    Los vídeos explicativos muy buenos, así como su estructura.

    Gracias Iñigo

    Responder
    • Iñigo Gútiez dice

      20 junio, 2018 a las 19:22

      Exacto.
      Los FB tienen la «gracia» de tener las variables tipo STATIC que no pierden el valor entre llamadas del bloque.
      Ojo, no confundamos remanencia (no pierde valor cuando re-arranca el PLC) con estaticidad, que no pierde el valor entre llamadas.
      Saludos!

      Responder
      • Matías dice

        1 julio, 2019 a las 11:14

        Hola Iñigo;
        Estoy mirando el curso pero no consigo avanzar en este ejemplo de la bomba. Podrías decirme donde descargar el proyecto.
        Saludos.

        Responder
        • Iñigo Gútiez dice

          1 julio, 2019 a las 11:35

          Hola Matias,
          Los ejemplos resueltos(proyectos) solo están disponibles para los alumnos que en este caso, hayan adquirido el curso de step 7.
          Saludos

          Responder
  19. Jacinto dice

    28 noviembre, 2018 a las 23:53

    Olá Iñigo,

    Tenho duvidas em relação aos DBs de estancia , e DBs globais, assim como FB, como poderei aplicar ou usar , qual a diferença.

    No curso vai ter explicação

    Gracias

    Jacfig

    Responder
  20. Matías dice

    2 julio, 2019 a las 12:37

    Gracias por tu respuesta.
    Si puedes manda a mi correo un presupuesto.
    Saludos

    Responder
    • Iñigo Gútiez dice

      2 julio, 2019 a las 13:06

      En la web tienes el precio y aquí toda la información: https://programacionsiemens.com/como-programar-step-7/

      Responder
  21. milton dice

    1 agosto, 2019 a las 16:26

    esta muy bueno el pequeño curso

    Responder

Footer

· Acerca de
· Misión, Visión y valores
· Aviso Legal y Política de Privacidad
· Condiciones de Venta
· Política de cookies
Utilizamos cookies propios y de terceros para mejorar nuestros servicios y tu experiencia de usuario. Si continuas navegando, consideramos que aceptas su uso. Aceptar Política de cookies
Política de Cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR