Una de las cosas que hay que tener claro al aprender a programar los PLC de Siemens, es el tiempo de reacción.
Es un concepto básico para poder realizar bien los programas y entender el comportamiento de los autómatas de Siemens tanto en TIA Portal como en Step 7 tradicional.
Pero para ahondar en lo que implica el tiempo de reacción, necesitamos definir los conceptos.
Contenido
Tiempos de ciclo y tiempos de reacción
Como primera aproximación, definiremos el tiempo de ciclo como el tiempo que tarda el PLC en ejecutar 1 vez todas las operaciones del programa de usuario (tu programa) además de las tareas adicionales que realiza el propio PLC (tareas de comunicaciones, actualización de I/O, etc)
Por su parte, el tiempo de reacción será el tiempo transcurrido desde una señal cambia de estado, hasta que las salidas se actualizan debido a este cambio en las entradas físicas.
Estas dos definiciones, nos ayudarán a entender cómo funcionan en general los PLC de Siemens (independientemente de la serie) y así, no tener problemas que puedas tener por no entender estos dos conceptos.
Tiempo de ciclo de un PLC Siemens
Para entender bien cómo se produce el tiempo de reacción de los autómatas de Siemens, previamente tenemos que tener claro cómo se produce el ciclo de Siemens y qué está incluido en este tiempo de ciclo.
He extraído del Curso de TIA Portal parte de una de las infografías en las que se explica el funcionamiento de los PLC de Siemens de una forma más exhaustiva:
Nos vamos a fijar, que al inicio del ciclo (OB1), se realiza un volcado de la imagen de salidas de proceso sobre las salidas físicas. Es decir, AW –>PAW.
Además, tomaremos las entradas físicas y actualizaremos la imagen de entradas de proceso. Es decir, las PEW–>EW
Nada nuevo bajo el sol (aunque en Bilbao lo veamos poco).
Posteriormente se ejecuta el programa de usuario y finalmente las actividades del SO.
Veamos como influye esta forma en la que se ejecuta el programa, para determinar el tiempo de reacción.
Tiempo de reacción de un PLC Siemens
Veamos ahora otra infografía del curso de TIA Portal:
Imaginemos un programa tan sencillo como:
U E0.0 (un final de carrera, por ejemplo)
= A0.0
Una señal física (un final de carrera), se activará en un momento determinado cualquiera, en principio a mitad del ciclo del OB1.
Nuestro programa, al finalizar el OB1, actualizará la salida física, según nuestro programa.
Independientemente de si el final de carrera se activó antes o después de ejecutarse la línea del programa arriba expuesto, la salida se actualizará con un cero ya que la entrada aún está sin actualizar.
En el siguiente ciclo, ahora sí, la entrada estará a 1 debido a que la imagen de entradas de proceso, habrá tomado cuenta del cambio en el final de carrera, y por tanto, actualizará a 1 la salida A0.o al finalizar la ejecución de este segundo ciclo del programa principal.
Por tanto, el tiempo de reacción estará comprendido entre 1 tiempo de ciclo (si justo cambia antes de actualizarse las entradas) y 2 tiempos de ciclo si el final de carrera cambia justo después de actualizarse la imagen de entradas de proceso.
Además, deberás añadir a este tiempo, el tiempo de conmutación de la entrada física en la tarjeta, y el tiempo de conmutación de la salida física.
Pero lo importante es el concepto que hemos explicado.
¿Tiene importancia el tiempo de reacción?
En general, no.
Pero si necesitas mucha precisión, puede ser un problema.
Imaginemos que un transportador se mueve a 100m/min (6Km/h).
Imaginemos a su vez, que los tiempos de ciclo, son entorno a 20ms.
Esto implica, que el espacio recorrido desde que el final de carrera del ejemplo será:
Mejor tiempo de reacción: 0’020s x 1min/60 s x 100 m/min x 1000 mm/m = 33,33 mm
Peor tiempo de reacción: 2 x 0’020s x 1min/60 s x 100 m/min x 1000 mm/m = 66,66 mm
Como ves, dependiendo de la situación, puede ser irrelevante, o extremadamente importante.
Mejorar el tiempo de reacción
Debido a estos pequeños problemas, tienes herramientas para paliar los efectos:
- Interrupciones de hardware
- Interrupciones cíclicas
Interrupciones de hardware.
Si la detección de un detector es determinante, puedes optar a detectar cuando la señal se activa o desactiva y ejecutar el código que desees en ese momento.
Puedes echar un vistazo a este ejemplo donde hablamos en su día de las interrupciones de hardware.
Interrupciones ciclicas.
También puedes ejecutar una parte del programa a tiempo fijo, y que sea muy rápido (usando el OB35 por ejemplo) y leer las periferia directamente y escribir directamente en periferia.
Por ejemplo, podrías ejecutar el OB35 cada 5ms, de tal forma que el espacio recorrido en el ejemplo anterior, sería de solo 8,33 mm frente a los 33 del mejor de los casos ejecutándose en el OB1.
¿Que te ha parecido?
¿Tenías claro estos conceptos?
Espero que ahora, un poco más claro, al menos.
Evidentemente, en general no tiene mucha importancia, pero saberlo, ¡deberías!
Puede echar un vistazo a este PDF de Siemens donde encontrarás más información
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.
8 Comentarios
Estupendo y claro como siempre!
Hacía tiempo que no miraba los videos pero en este último el de las interrupcione hardware se entiende a la perfección. Lo explicas de una manera amena y clara que dudo que nadie no lo pueda poner en práctica.
Buena semana santa!
La verdad no me parecía tan relevante el tema hasta que leí el ejemplo y se me vinieron a la mente Miles de situaciónes donde el tiempo de respuesta es muy importante! Oí alguna vez hablar del red lion (nose si está bien escrito) pero ese término que dije , tiene algo que ver con el tiempo de respuesta???
Perfecto y claro, como nos tienes acostumbrados.
Tus aportaciones son siempre excelentes.
Paso el enlace de tu página a mi nuevo grupo de alumnos de mi curso de Certificación Profesional.
Buena Semana Santa.
Muchas gracias Inma!
Exelente gracias
A ti Robin!
gracias y muy buena esplicacion es clara y sencilla. saludos
Gracias Jonas!