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).
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:
Ver código · 8 líneas
//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.




