• Skip to primary navigation
  • Skip to main content

ProgramaciónSiemens

Cursos online de automatización industrial con PLC Siemens

  • Cursos
  • Mi cuenta
    • Mi cuenta
    • Blog
    • Foros
    • 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

FIFO y LIFO en SCL con TIA Portal

FIFO y LIFO en SCL con TIA Portal

por Iñigo Gútiez · 17 Comments

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.

Filed Under: blog

Reader Interactions

    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 says

    22 noviembre, 2018 at 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 says

      28 noviembre, 2018 at 21:37

      Gracias a ti Luis por comentar.

      Responder
  2. David says

    22 noviembre, 2018 at 19:35

    Super super potente SCL ! Merece la pena el curso!

    Responder
  3. Juan Carlos Serrano Durante says

    15 diciembre, 2018 at 21:31

    Me parece un buen programa, bien explicado.

    Saludos

    Responder
  4. Rodrigo Cordero says

    7 agosto, 2019 at 12:07

    Grande Iñigo, muchas gracias por el aporte

    Responder
    • Iñigo Gútiez says

      7 agosto, 2019 at 12:29

      Muchas gracias Rodrigo!

      Responder
  5. Rodrigo Cordero says

    8 agosto, 2019 at 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 says

      8 agosto, 2019 at 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 says

    23 marzo, 2020 at 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 says

    18 diciembre, 2020 at 18:55

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

    Responder
    • Iñigo Gútiez says

      19 diciembre, 2020 at 11:53

      All the projects are only available for students and clients.

      Responder
  8. Eduardo says

    22 febrero, 2021 at 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 says

      22 febrero, 2021 at 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 says

        22 febrero, 2021 at 17:17

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

        Responder
  9. Ivan Martin says

    4 marzo, 2021 at 20:09

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

    Responder
  10. Luis says

    20 mayo, 2021 at 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 says

      20 mayo, 2021 at 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
  • Aviso Legal y Política de Privacidad
  • Condiciones de Venta
  • Política de cookies
  • Contacto & Faq
  • Blog

Copyright © 2022 · Programación Siemens · Todos los derechos reservados

· ¿Quién soy? · Misión, Visión y valores

7 pasos para programar mas ordenado y profesional op

7 pasos para programar más ordenado y profesional

Recibirás de forma TOTALMENTE GRATUITA:

  • Un PDF con los pasos para programar de forma más eficiente, limpia y profesional

PROGRAMACIÓN SIEMENS te informa que los datos de carácter personal que nos proporciones rellenando el presente formulario serán tratados por Iñigo Gútiez Chagartegui como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales que te solicitamos es para enviarte nuestras publicaciones, promociones de productos y/o servicios y recursos exclusivos. La legitimación se realiza a través del consentimiento del interesado. Te informamos que los datos que nos facilitas estarán ubicados en los servidores de ActiveCampaign, LLC  (proveedor de email marketing), ubicada en EEUU. ActiveCampaign, LLC
 está acogido al acuerdo EU-US Privacy Shield. Puedes ver la política de privacidad de ActiveCampaign en https://www.activecampaign.com/privacy-policy/. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no pueda atender tu solicitud. Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en info@programacionsiemens.com así como el derecho a presentar una reclamación ante una autoridad de control. Puedes consultar la información adicional y detallada sobre Protección de Datos en nuestra política de privacidad.

x