• 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

Recorrer un array en lazo cerrado vs lazo abierto

Recorrer un array en lazo cerrado vs lazo abierto

por Iñigo Gútiez · 2 Comments

Recientemente he recibido una consulta respecto a la sobrecarga que sufre los PLC al crear loops del estilo For-Next en SCL.

La cuestión es si tanto carga el hecho de que sea SCL… pero no solamente es eso.

Contenido

  • 1 Aspectos que sobrecargan el PLC en un lazo cerrado
    • 1.1 Código optimizado
    • 1.2 Número de iteraciones
    • 1.3 Trabajo a realizar
  • 2 ¿Y si aún así es mucho trabajo para el PLC?
  • 3 El vídeo del lazo cerrado vs lazo abierto
  • 4 ¿Qué te ha parecido?

Aspectos que sobrecargan el PLC en un lazo cerrado

Bajo mi punto de vista, y por experiencias previas, a la hora de hacer un loop, influyen tres aspectos (fundamentalmente):

  • Lo optimizado del código
  • El número de iteraciones
  • El trabajo a realizar en cada iteración.

Código optimizado

En el primer punto, está claro: cuanto más optimizado esté el código, menos tardará en ejecutarse el código, y por tanto, menos sobrecargará el PLC.

Desde este punto de vista, SCL  es un lenguaje de alto nivel, y por definición, más alejado del procesador.

Este tipo de lenguajes (en PLC o no), hace que sea mucho más fácil de programar porque es más entendible, pero por otro lado, es menos eficiente de cara a su ejecución.

Por tanto, en un PLC317 como era el caso, siempre será más eficiente una programación en AWL, bien hecha, claro está, frente a SCL.

De hecho, en el caso de un S7-317, todo lo que programes en SCL, tendrá que ser traducido a AWL, por lo que jamás podrá estar mejor optimizado. A lo sumo igual dependiendo del caso.

Número de iteraciones

Esto no tiene mayor explicación: cuanto más iteraciones tengas que hacer, mayor carga de trabajo para el PLC.

No hay más.

Es por eso, que hay que tener en cuenta que cuando son muchas iteraciones, hay que pensar muy bien cuál es la mejor forma de hacerlo para hacer el mínimo de iteraciones posibles.

Trabajo a realizar

Otro punto importante es qué es lo que va a ejecutar el PLC en cada iteración.

No todas las instrucciones cuestan lo mismo ser ejecutadas.

Es por eso que si la conjunción iteraciones-trabajo sobrecarga el PLC tal vez tengas que repensar si lo que está haciendo en cada iteración no se puede hacer de otra forma menos gravosa para el PLC.

¿Y si aún así es mucho trabajo para el PLC?

Bien, habrá veces que no es posible realizar un for-next porque es tal la cantidad de operaciones que te puede llegar a tira el PLC por superar el tiempo de watchdog.

Entonces ¿qué podemos hacer?

Bueno, en estos casos, no te quedará más remedio, que dividir el trabajo que tiene que realizar.

No hay más.

Ahora bien ¿cómo?

Pues haciendo que el lazo no sea cerrado, es decir, el loop no se ejecute en un único ciclo de scan, sino en varios.

Puede ser que si tienes que hacer 100 iteraciones, pues hacerlas de 10 en cada ciclo del OB1 (10 en total) o si no tienes prisa porque se ejecute, hacerlo en 100 ciclos consecutivos.

El vídeo del lazo cerrado vs lazo abierto

Como siempre, es más fácil ver las diferencias y explicarlo con un vídeo, así que.. let’s go!

¿Qué te ha parecido?

Como ves, hay mucha diferencia entre ejecutar un loop de muchas iteraciones frente a hacer una iteración por ciclo de scan.

Evidentemente dependerá del tiempo disponible para ejecutar las tareas, del número de iteraciones etc, para agrupar las iteraciones o poder hacer una iteración por ciclo.

Este ejemplo lo dejaré en Guorker.com en la sección de ejercicios resueltos, y en el bloque 4 del curso de TIA Portal dedicado a SCL.

¡¡Espero tus comentarios!!

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.

    2 Comentarios

  1. Franco says

    27 julio, 2021 at 1:36

    Cual seria el código de bajo nivel de un plc s7-1200?, comprendo que no es editable por el usuario, pero supongo que lo debe tener.

    Responder
    • Iñigo Gútiez says

      2 agosto, 2021 at 19:06

      Pues en los 1200 todo está compilado por lo que no sé cual será el más eficiente. Supongo que en este caso igual entra lo bien que esté programado más que el lenguaje en sí.

      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