En artículos anteriores, analizamos diferentes tipos de bloques de organización, como el OB1 principal, que es el bloque principal del programa cíclico; en este artículo, abordaremos otro bloque de organización cíclica. El OB30 u OB de interrupción cíclica.
Contenido:
- ¿Qué es el OB30 de interrupción cíclica?
- ¿Qué es el ciclo OB1 principal?
- ¿Por qué necesito el OB30?
- ¿Cómo configurar las interrupciones cíclicas?
- ¿Qué sucede si tengo más de una interrupción cíclica?
- Conclusión.
¿Qué es el OB30 de interrupción cíclica?
Un OB30 de interrupción cíclica es un bloque de organización que se llama y se ejecuta en intervalos de tiempo específicos y exactos; a diferencia del OB1 cíclico principal, que se llama y se ejecuta continuamente, la interrupción cíclica se llamará en intervalos de tiempo que debe configurar al crear un OB de interrupción cíclica.
Por ejemplo, si he creado un OB30 con un intervalo de tiempo _también llamado tiempo de ciclo_ de 20 ms, eso significa que el sistema operativo interrumpirá el OB1 de ciclo principal y llamará al OB30 cada 20 ms.
Debe asegurarse de que el tiempo de ejecución de un OB de interrupción cíclica sea menor que su intervalo de tiempo. De lo contrario, podría ocurrir que la siguiente llamada del OB30 llegue mientras esta llamada del OB30 todavía se está ejecutando. En este caso, el sistema operativo genera un error de tiempo que puede provocar que el PLC pase al modo STOP.
¿Qué es el OB1 de ciclo principal?
El OB1 cíclico principal es el bloque de organización que se encarga de ejecutar cíclicamente su lógica por parte del PLC. Siempre que cree un nuevo proyecto y agregue un PLC, el software creará automáticamente el OB1 principal.
La base esencial de su código de PLC es el comportamiento cíclico, lo que significa que necesita que su código se ejecute de forma continua. Cuando se ha completado el procesamiento de su lógica, el sistema operativo comienza a procesarla de nuevo. Esto se hace mediante el uso del OB1 principal, usted coloca y llama toda su lógica y código dentro de este OB1 y el sistema operativo se asegurará de ejecutarlo continuamente.
El tiempo de ciclo del OB1 principal se refiere al tiempo de ejecución del programa cíclico, incluido el tiempo de ejecución de todas las partes del programa anidadas como FC, FB y OB de mayor prioridad. Si ha creado varios OB de ciclo de programa, cada OB de ciclo de programa contribuye al tiempo de ciclo.
El sistema operativo monitorea si el tiempo de ciclo permanece más pequeño que el tiempo de ciclo máximo configurado. Si excede el tiempo de ciclo máximo, el PLC pasará al modo STOP o llamará al OB80 según su programación.
¿Por qué necesito el OB30?
Alguien podría argumentar que puedo colocar cualquier funcionalidad dentro del OB30 en el OB1 principal e intentar salirme con la mía dependiendo del desempeño muy rápido de la mayoría de los PLC actuales. Esto puede estar bien a veces, pero no siempre.
Dependiendo del rendimiento de su PLC, el tiempo de ciclo principal podría ser de entre 1 y 150 ms; puede ser diferente, pero esta es la configuración estándar; este tiempo de ciclo depende de muchos factores, como el tamaño de su programa de PLC, interrupciones dentro de su lógica y otros factores que probablemente harán que el tiempo de ejecución de su ciclo no sea estable.
Ahora, si necesita realizar cierta funcionalidad exactamente cada 10 ms, no 9 ms ni 11 ms, no puede depender del OB1 principal, ya que el resultado podría no ser el deseado. En este caso, utiliza la interrupción cíclica OB30, la configura con los 10 ms que desea y el sistema operativo se asegurará de llamar y ejecutar esta función exactamente cada 10 ms. Por eso se llama interrupción; porque interrumpirá la ejecución del OB1 principal para llamar y ejecutar su OB30.
Ejemplos de funcionalidad que necesita OB30
- Procesamiento del controlador PID.
- Monitoreo de circuitos de seguridad.
- Monitoreo de la comunicación entre máquinas.
Todos los ejemplos anteriores implican la necesidad de supervisar y comprobar continuamente los parámetros en determinados momentos, ya que se relacionan con magnitudes físicas reales o con la seguridad de la máquina. La ejecución de dichas funciones no debe retrasarse, ya que afectan a la seguridad y la continuidad de su proceso.
¿Cómo configurar interrupciones cíclicas?
Al crear una interrupción cíclica, hay algunos parámetros que debe configurar. Consulte la imagen 1 para agregar un nuevo OB30.
Imagen 1: Agregar nuevo OB30 de interrupción cíclica
Al crear una interrupción cíclica, puede encontrar muchos parámetros que puede configurar en las propiedades del bloque; consulte la imagen 2.
Imagen 2: Propiedades del OB30
Los parámetros más importantes que debe tener en cuenta son los siguientes:
- Tiempo de ciclo
Use el parámetro “Tiempo de ciclo” para establecer el período de tiempo entre dos llamadas del OB de interrupción cíclica. Es un múltiplo entero de 1 µs.
- Desfase de fase
Aquí se establece el período de tiempo en el que se desplazan los tiempos de inicio en comparación con el múltiplo del tiempo de ciclo.
Véase la imagen 3 para la configuración del tiempo de ciclo y del desfase de fase.
Imagen 3: Configuración del tiempo de ciclo y del desfase del OB30
- Prioridad del OB de interrupción cíclica
Este es otro parámetro importante que debe tener en cuenta al configurar una interrupción cíclica, ya que puede tener más de un bloque cíclico; si se necesita llamar a dos OB diferentes al mismo tiempo, el sistema operativo llamará y ejecutará el bloque con un número de prioridad más alto.
Debe saber que el ciclo del programa principal del PLC OB1 tiene prioridad número 1, que es el nivel de prioridad más bajo que puede tener un bloque. Es por eso que el OB1 puede ser interrumpido por cualquier otra llamada de bloque. Vea la imagen 4.
Imagen 4: Configuración de la prioridad del OB30
¿Qué sucede si tengo más de una interrupción cíclica?
No es raro que tenga más de una interrupción cíclica en su lógica. Si tiene dos controladores PID en la lógica de su PLC, es posible que necesite dos interrupciones cíclicas para manejar cada PID. En ese caso, debe asegurarse de que la llamada y la ejecución de diferentes interrupciones cíclicas no se superpongan.
Por ejemplo, si tiene OB30 con un tiempo de ciclo de intervalo de 5 ms y OB31 con un intervalo de ciclo de 10 ms, eso significa que la segunda llamada del OB30 también será el momento de llamar al OB31. Esto puede provocar errores lógicos, incluso si establece la prioridad de uno de ellos para que sea mayor que la del otro, lo que arruinará el tiempo de ciclo para el bloque de menor prioridad. Consulte la imagen 5.
Imagen 5: superposición de llamadas a diferentes interrupciones cíclicas
En ese caso, puede ser recomendable un desfase de fase cuando utilice varios OB de interrupción cíclica.
Si sus tiempos de ciclo tienen múltiplos comunes, puede utilizar un desfase de fase para evitar tiempos de inicio simultáneos. Consulte la imagen 6.
Imagen 6: desfase entre diferentes llamadas de OB
Por lo tanto, para evitar esta superposición, estableceremos el tiempo de desfase del OB31 en 1 ms.
Esto significa que el conteo del intervalo de tiempo OB31 se verá desplazado 1 ms respecto del tiempo de inicio de OB30. Ver imagen 7.
Imagen 7: configuración de desplazamiento de OB31
Conclusión
- Las interrupciones cíclicas son muy útiles para tareas críticas en cuanto al tiempo que no deberían enfrentar demoras.
- Puede tener más de una interrupción cíclica en su lógica.
- Utilice la configuración de desplazamiento de las interrupciones cíclicas para evitar tiempos de inicio simultáneos.
- Utilice la configuración de prioridad para controlar el orden de ejecución de diferentes interrupciones cíclicas.
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now