• 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 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 de TIA Portal para CPU 1200
    • Curso de Step 7 V5.x
    • Curso de comunicaciones IE y Profinet
  • Contacto

Cómo crear un calendario de trabajo en SCL

Cómo crear un calendario de trabajo en SCL

por Iñigo Gútiez · 9 Comments

Vamos a ver cómo crear un calendario de trabajo en SCL para unos motores usando un S7-1200 y una pantalla Basic de Siemens.

En realidad, podría ser el calendario para el arranque/paro de cualquier máquina, pero me he basado en la duda que he encontrado en el foro de infoplc.net para intentarla resolver.

La duda es la siguiente:

Buenos días, tengo una aplicación en donde por medio de una HMI KTP1200 se va a dibujar un calendario de LUNES @ DOMINGO en donde se va ingresar una hora determinada de encendido y apagado de una serie de motores cada día, de tal forma que el sistema encienda y apague los motores automáticamente dependiendo del calendario configurado en la pantalla. El plc que estoy trabajando es un S7-1200. Alguien sabe que instrucciones puedo utilizar o si alguien tiene un documento que me pueda ayudar como soporte para iniciar a implementar la programación.

Está claro. Un calendario para una serie de motores (que no se especifica cuántos).

Contenido

  • 1 Calendario de trabajo en SCL
  • 2 Vídeo de calendario de trabajo en SCL
  • 3 Conclusiones y lecciones aprendidas con este calendario de trabajo en SCL
    • 3.1 Piensa, piensa y piensa
    • 3.2 Ponte las pilas con SCL en TIA Portal
  • 4 ¿Qué te ha parecido?

Calendario de trabajo en SCL

Lo bueno que tiene SCL es que puedes hacer cosas que en ladder se complicaría mucho la cosa, o simplemente sería muy trabajoso de implementar.

Pensando bien la forma de trabajar y de organizar los datos, en SCL con un poco de código puedes hacer maravillas.

No estoy diciendo con esto que SCL sea mejor que Ladder.

¡NO! ¡Que quede bien claro!

Programar todo en SCL, bajo mi punto de vista, es un error y significa que no conoces bien las bondades de Ladder, y sobre todo, que no mantienes las máquinas y buscas averías.

Porque SCL es para cosas complejas, para tratamiento de datos… no para lógica booleana.

Pero esto es otra discusión.

Al tema.

Con unas pocas líneas se puede resolver en este caso el problema que se plantea:

//Leemos el reloj del sistem
//a y lo guardamos en el DB
#Resultado:= RD_LOC_T("Calendario".FechaHoraPLC);
#HoraPLC :=DTL_TO_TOD("Calendario".FechaHoraPLC);


    
FOR #Contador := 1 TO 3 DO
    //Obtenemos las horas y minutos para facilitar la comprensión
    #HoraMotorEntrada := "Calendario".Motor[#Contador].DiaSemana["Calendario".FechaHoraPLC.WEEKDAY].Entrada;
    #HoraMotorSalida := "Calendario".Motor[#Contador].DiaSemana["Calendario".FechaHoraPLC.WEEKDAY].Salida;
    
    //Encendemos o apagamos el motor en función de si la hora está dentro de los valores admitidos
    IF (#HoraPLC>=#HoraMotorEntrada ) AND (#HoraPLC<#HoraMotorSalida)  THEN
        "Calendario".Motor[#Contador].EstadoMotor := true;
    ELSE
        "Calendario".Motor[#Contador].EstadoMotor := false;
    END_IF;
END_FOR;

Como ves, no es mucho código que digamos.

Claro que con ese código te habrás quedado casi igual de cómo debes crear un calendario de trabajo en SCL.

Así que te dejo con un vídeo que presenta todo lo que hacen esas pocas líneas.

Vídeo de calendario de trabajo en SCL





Conclusiones y lecciones aprendidas con este calendario de trabajo en SCL

Lo que quiero que veas con este ejemplo es:

  • Antes de ponerte a aporrear el teclado, piensa lo que quieres hacer.
  • Aprende SCL si no lo conoces aún. Como ves, ahorra mucho tiempo si sabes cómo usarlo.

Piensa, piensa y piensa

De la primera parte, ni que decir tiene que un poco de papel y un lápiz son armas de primer orden: dibuja, haz tu esquema, imagina cómo debería funcionar.

Una vez que funcione en tu cabeza, sólo es teclear un poco.

Te sentirás como Dios (con perdón) cuando veas que está bien pensado, y que funciona a la primera.

Pero esto solo se logra analizando el problema y dedicando un poco de tiempo a pensar antes de ponerte a programar.

Ponte las pilas con SCL en TIA Portal

Sobre el segundo punto, está claro que conocer SCL es un must, que dicen los yankis: debes conocerlo.

Porque ahorra muchas horas de trabajo si está bien pensado.

Si no estás puesto en SCL, te puedo ayudar.

Tienes a tu disposición el bloque 4 del curso de TIA Portal para la serie 1200.

Ahí conocerás todos los entresijos de este lenguaje para que le quites el miedo y te pongas las pilas de una vez con ello.

Para los alumnos que ya lo están cursando, o lo han cursado, voy a dejar el proyecto de este ejemplo colgado en el apartado anexo del bloque de SCL.

¿Qué te ha parecido?

Me gustaría saber tu opinión.

¿Hubieras hecho este ejemplo en ladder o en SCL? ¿Lo hubieras hecho así?

¡Deja tus comentarios y comparte el post!

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

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.

    9 Comentarios

  1. Luis Miguel Suarez ferrer says

    1 noviembre, 2017 at 15:52

    Interesante la programación en SCL, muy bueno.
    Saludos desde Perú.

    Responder
  2. José carlos says

    1 noviembre, 2017 at 20:00

    El sistema funcionaría siempre y cuando la programación del arranque y paro de la Bomba fuese en el mismo día. Pero si se programas el inicio a las 23 horas y el paro a las 2, si la hora del PLC estuviera entre ambas, la condición AND sería false.

    Responder
    • Iñigo Gútiez says

      1 noviembre, 2017 at 21:03

      Efectivamente está pensado para realizar un turno de trabajo. Si quisieras que trabajara un día por la noche, tendrías que empalmar el turno de noche de un día con la madrugada del siguiente. Por ejemplo, de 22h a 0 y de 0 a 6 del siguiente.
      Tiene sus limitaciones tal y como es, pero a partir de lo creado, se le pueden buscar las vueltas que se quieran.
      Si quisieras algo más sofisticado te tendrías que ir a algo como lo que ya programé en su día:https://programacionsiemens.com/programador-horario-de-tareas-en-s7/
      Saludos

      Responder
  3. Bartolome says

    1 noviembre, 2017 at 20:50

    una vez mas, estupendo trabajo, ya tengo para aplicarlo, gracias

    Responder
  4. felipe garcia says

    4 noviembre, 2017 at 8:15

    como siempre un gusto ver vuestros videos ya que siempre me deja una enseñanza.

    no queda mas que felicitarte por tu gran empresa que es ayudarnos y darnos herramientas.

    y por otro lado si este ejemplo se auisiera hacer por cada hora de cada día, como recomendarias realizarlo o alguna suferencia.

    por ejemplo: lunes: 0:10 a 0:15; 1:20 a 1:25; 2:40 a 2:45, etc.

    muchas gracias.

    Responder
    • Iñigo Gútiez says

      5 noviembre, 2017 at 14:51

      Hola,
      La idea se similar, tendrías que hacerlo con botones como en el comentario anterior(https://programacionsiemens.com/programador-horario-de-tareas-en-s7/) y hacer algo parecido.
      Saludos

      Responder
  5. David says

    5 noviembre, 2017 at 12:45

    Ya no es por la funcionalidad del reloj, si no, por coger el concepto de indexar variables de forma indirecta en SCL y aprovechar su potencial. Yo la verdad que viniendo del KOP me cuesta un poco seguir esta forma programar y con los punteros en AWL pero se agradecen ejercicios como este para poder afianzar poco a poco mas esos conceptos. Gracias Iñigo. un saludo!!

    Responder
    • Iñigo Gútiez says

      5 noviembre, 2017 at 14:52

      Muchas gracias David.
      Esa es la idea, ver un poco el tema de la indexación, más que la aplicación de los relojes en sí.
      Posteriormente se puede sofisticar todo lo que se quiera, que no es el fin del ejercicio.
      Saludos!

      Responder
  6. Roly says

    22 noviembre, 2017 at 4:06

    Me parece genial esta forma de realizar los calendarios. Particularmente he tenido que pelearr en ladder con los s7200 ya pasados de moda mediante direccionamiento indirecto con puntero y el empleo de ciclos for next para calendariar las salidas de estos PLC en una red con protocolo PPI. Un saludo Iñigo sigue así. Yo como siempre tarde pero seguro hermano.

    Responder
  • Aviso Legal y Política de Privacidad
  • Condiciones de Venta
  • Política de cookies
  • Contacto
  • Blog

Copyright © 2021 · 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