• 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 HMI con Python y Qt-Designer
    • Curso de AWL
    • Curso de iniciación a la Industria 4.0
    • Curso Express de TIA Portal
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso ViSnap7
    • Curso de TIA Portal para CPU 1200
    • Curso de Step 7 V5.x
    • Curso de comunicaciones IE y Profinet
  • Contacto & Faq
Home | blog | FIFO y LIFO en SCL con TIA Portal

FIFO y LIFO en SCL con TIA Portal

FIFO y LIFO en SCL con TIA Portal

por Iñigo Gútiez · 17 comentarios

Hace unos días recibí una petición de uno de mis clientes desde Italia.
Alessandro me pedía ayuda para realizar un FIFO con datos complejos en SCL para TIA Portal 15.
Hoy te cuento el resultado.

FIFO y LIFO en SCL con TIA Portal

Para empezar, los requerimientos de los datos a tratar eran :

«[..]memorización de los códigos de pieza, fecha ahora código de identificación de la pieza (int), peso (real), color (int) cuando son escuchados por una fotocélula y descargue cuando se escuchan desde otra distancia a lo largo de la cinta transportadora.»

Esto nos lleva a arrastrar, no un bit o byte, sino a una estructura con varias variables y tipos de datos diferentes.

Como además, inicialmente lo entendí mal, desarrollé un LIFO, y no un FIFO.

Posteriormente Alessandro me corrigió en lo que él quería.

Cosas que pasan cuando te pones a trabajar en casa, ya muy tarde después de una jornada completa en planta.

La cosa, es que ya que tenía hecho el LIFO, pensé en hacer un bloque que hiciera de LIFO o de FIFO.

Entiendo que sabes la diferencia entre ambos, pero si no es así, lo veremos también en el vídeo.

Por tanto, la solución dada en un único bloque:

  • Señal de entrada de datos
  • Señal de salida de datos
  • Datos a introducir
  • Tendrá opción entre FIFO/LIFO
  • Poder borrar el buffer
  • Salida de los datos que salen del FIFO/LIFO

¿Vamos a ello?

Solución de FIFO y LIFO en SCL

Como en otras ocasiones, te dejo con el vídeo donde te cuento cómo realizar este tipo de programación.

¿Que te ha parecido?

Espero que te haya resultado interesante.

Recuerda que si necesitas formarte en SCL, o TIA Portal en general, tienes el curso de TIA Portal para aprender todo lo necesario para programar proyectos como un pro.

El ejemplo y código fuente, esta alojado lógicamente en el Anexo del bloque de SCL.

Recuerda que puedes apuntarte en Guorker.com donde por una cuota mensual, tendrás tarifa plana en todos los cursos disponibles en la plataforma.

 

 

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: blog

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.

    17 Comentarios

  1. Luis Sabogsl dice

    22 noviembre, 2018 a las 13:48

    Me parece algo muy interesante que existan personas coml Ud. Que se dediquen a enseñar temas tan interesantes como estos de programacion Siemens, que no son tan publicos por parte de esta multinacional.

    Muchas gracias por compartir tan valioso conocimiento

    Responder
    • Iñigo Gútiez dice

      28 noviembre, 2018 a las 21:37

      Gracias a ti Luis por comentar.

      Responder
  2. David dice

    22 noviembre, 2018 a las 19:35

    Super super potente SCL ! Merece la pena el curso!

    Responder
  3. Juan Carlos Serrano Durante dice

    15 diciembre, 2018 a las 21:31

    Me parece un buen programa, bien explicado.

    Saludos

    Responder
  4. Rodrigo Cordero dice

    7 agosto, 2019 a las 12:07

    Grande Iñigo, muchas gracias por el aporte

    Responder
    • Iñigo Gútiez dice

      7 agosto, 2019 a las 12:29

      Muchas gracias Rodrigo!

      Responder
  5. Rodrigo Cordero dice

    8 agosto, 2019 a las 10:40

    Hola Iñigo Q tal??
    No puedo usar en TIA V.14 La instruccion MOVE_BLK_VARIANt (me aparece sombreada).
    Tienes alguna idea de porque…
    Un saludo

    Responder
    • Iñigo Gútiez dice

      8 agosto, 2019 a las 10:59

      Apostaría a una de dos, o el autómata que estas usando no es un 1200/1500 o si lo es, el firmware es demasiado antiguo y no lo permite.

      Responder
  6. Rufino dice

    23 marzo, 2020 a las 18:54

    Me parece que es un curso muy interesante.gracias por hacer el curso por broques, a si es mas asequible
    y poco a poco los podre hacer todos

    Responder
  7. Ebrahim dice

    18 diciembre, 2020 a las 18:55

    hi
    Can you share this project ? I need to get more in fifo method

    Responder
    • Iñigo Gútiez dice

      19 diciembre, 2020 a las 11:53

      All the projects are only available for students and clients.

      Responder
  8. Eduardo dice

    22 febrero, 2021 a las 16:01

    Buenas Iñigo, gracias una vez más por tus videos!
    Quería preguntarte por qué en el caso del FIFO no añadimos los componentes incrementando el índice del array. Así, el valor que sacaríamos siempre sería el array[0] (lo tendríamos más localizado) y subiríamos el resto sacar el primero, añadiendo un elemento con valor cero por abajo (me imagino el array en vertical, creciendo hacia abajo conforme introducimos datos.
    No se si ves algún inconveniente que yo no vea en hacer esto.
    Gracias de antemano!

    Responder
    • Iñigo Gútiez dice

      22 febrero, 2021 a las 16:07

      Ahora mismo me pillas, porque no estoy delante de ello. Tal vez para que me valiera tanto para fifo como para el lifo. Pero no descartes que sea mejor como dices. Siempre hay varias formas de hacer casi todo.
      También hay veces que empiezas de una forma, te pones unas orejeras y tiras para delante y luego viene alguien y te dice.. no sería más fácil hacerlo así? Y tu pensando… Puessss sí.
      Pero cuando lo hice, no se me ocurrió.
      Lo importante es que el programa sea consistente y previsible.
      Luego siempre habrá formas más optimizadas que otras de resolverlo.
      Seguramente como dices, lo sea en este caso
      Como digo no estoy delante de ello y no recuerdo el ejemplo en concreto (he hecho muchos ya), y no recuerdo por qué lo hice como lo hice.
      Pero ya te digo que no será la única forma.

      Responder
      • Eduardo dice

        22 febrero, 2021 a las 17:17

        En principio lo estoy probando y funciona. Esperemos que no haga cosas raras más adelante. Gracias igualmente!

        Responder
  9. Ivan Martin dice

    4 marzo, 2021 a las 20:09

    Hola Iñigo! Me ha encantado el ejemplo. Muchas Gracias!
    Saludos desde Alemania!

    Responder
  10. Luis dice

    20 mayo, 2021 a las 9:19

    Hola Iñigo,
    Me ha parecido genial esta forma de manejar una FIFO / LIFO. Sólo tengo una duda:
    Me parece que sería necesario verificar si se ha alcanzado el número máximo de piezas antes de aceptar un nuevo ingreso de pieza.
    ¿Estoy en lo correcto o hay algo que no he entendido bien?

    Muchas gracias por tus comentarios.

    Responder
    • Iñigo Gútiez dice

      20 mayo, 2021 a las 10:06

      Sí, y no. El aceptar una pieza más en el tracking, no le corresponde al FIFO. Puedes poner esta limitación, pero no debería llegar a ese punto nunca. Si físicamente entran 20 piezas, el tracking no debería ser quien diga si puede aceptar o no esa pieza. No sé si me explico. Por ejemplo, tú lógicamente puedes tener un fifo de 100 posiciones, pero que físicamente solo entren 90. Esa limitación no valdría para nada, o no debería valer habida cuenta que nunca vas a hacer uso de las 10 últimas posiciones. Ese control debería ser externo al fifo y por tanto, irrelevante el ponérselo o no.

      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