En un artículo anterior, analizamos qué es un bloque de organización y hablamos de un bloque de organización muy importante, que es el OB1 principal.
En este artículo, continuaremos analizando los diferentes OB y esta vez hablaremos de los bloques de organización de interrupción horaria u OB10.
Contenido:
- ¿Qué es el OB10 de interrupción horaria?
- ¿Cómo crear y utilizar el OB10?
- Ejemplo de programa simple.
- Reglas importantes para las interrupciones horarias.
- Conclusiones.
¿Qué es una interrupción horaria (OB10)?
Como sugiere el nombre, una interrupción horaria es un bloque de organización que interrumpirá la ejecución del ciclo principal de su programa de PLC en un momento determinado del día. Este momento de interrupción (fecha y hora) se puede especificar para que ocurra una vez a una hora específica o para que ocurra periódicamente en intervalos de tiempo específicos, por ejemplo, cada minuto, hora, día, semana y algunas otras opciones.
Puede tener más de una interrupción horaria en el mismo programa, no es necesario que tengan la misma lógica o código, cada una puede tener su propia funcionalidad y también cada una puede configurarse por separado para que se produzca en un momento específico.
¿Cómo crear y utilizar el OB10?
Para crear una interrupción horaria, siga los mismos pasos que seguiría si necesitara agregar un nuevo bloque a su lógica. Vea la imagen 1.
Imagen 1: Agregar una interrupción horaria
Presione la opción Agregar nuevo bloque en el árbol del proyecto a la izquierda, elija el bloque de organización y luego elija una interrupción horaria como se muestra en la imagen anterior.
Ahora puede abrir el OB10 y agregar cualquier lógica de PLC que desee ejecutar cuando se llame a este bloque, por llamado queremos decir que se produjo el evento o la hora de interrupción y, por lo tanto, el sistema operativo interrumpirá el ciclo principal y ejecutará el OB10.
Escribiremos un código muy simple en el OB10 para ayudarnos a comprender mejor cómo funciona este bloque OB10. En esta lógica, usamos la instrucción add para agregar un valor de 1 a un área de memoria que llamamos TimeOfDayInterruptCounter y luego colocamos el resultado de la suma nuevamente en la misma área. De esa manera, podemos tener un contador para la ejecución del OB10.
Cada vez que se llame y ejecute el OB10, el valor de TimeOfDayInterruptCounter aumentará en 1. Vea la imagen 2.
Imagen 2: agregue su lógica al OB10
Ahora que hemos creado el OB10 y hemos escrito algo de lógica dentro, necesitamos configurar el tiempo establecido del OB10 y cuántas veces queremos que interrumpa nuestro ciclo principal.
Para configurar el tiempo y el intervalo del OB10, debemos ir a la página de propiedades del OB10. Consulte la imagen 3.
Imagen 3: Propiedades del OB10
En las propiedades del OB10, encontrará una gran cantidad de configuraciones y atributos que puede configurar.
Lo que necesitamos ahora es la página de interrupción de la hora del día para que podamos configurar cuándo se llamará al OB10 y cuántas veces. Consulte la imagen 4.
Imagen 4: Configuración de la interrupción de la hora del día
Como puede ver en la última imagen, puede configurar la ejecución del OB10, la fecha de inicio y la hora del día en la que se debe ejecutar el OB10.
Para fines de simulación, hicimos que el intervalo de ejecución sea cada minuto para que el OB10 se llame y se ejecute cada minuto. Eso significa que a partir de la fecha del 23/3/2023 y la hora 09:25 AM, el valor de TimeOfDayInterruptCounter aumentará en 1 cada minuto.
Tiene la opción de configurar la hora de acuerdo con la hora del sistema del PLC o la hora local, como puede ver en la última imagen. En un artículo anterior, hablamos sobre la hora del sistema y la hora local del PLC, qué significa cada hora y cómo configurarlas y usarlas.
Como dijimos antes, la hora local es la hora que ve ahora en su PC. Por lo tanto, es la hora real de la región donde se utilizará el PLC.
Debe configurar la hora local para el PLC, según dónde se utilizará. Vea la imagen 5.
Imagen 5: Configuración de la hora local para el PLC
Ejemplo de programa de PLC simple
Agregamos una interrupción de hora del día OB10 a nuestro programa de PLC y la configuramos para que se ejecute cada minuto. También configuramos la hora local del PLC.
Creamos una lógica simple de una instrucción ADD para acumular el valor de TimeOfDayInterruptCounter en 1 cada vez que se ejecuta el OB10.
Agregaremos otra instrucción, pero en el OB1 principal, esta instrucción es RD_LOC_T o leer hora local, para que podamos ver cómo avanza la hora local y compararla con la ejecución del OB10. Ver imagen 6.
Imagen 6: ejemplo de programa simple
Compile su programa de PLC e inicie una nueva simulación.
Observe que configuraremos la hora del día en que se produce la interrupción para que se pueda llamar y ejecutar el OB10 mientras estamos simulando la lógica del PLC. Vea la siguiente simulación.
Como se puede ver en la animación, el valor de TimeOfDayInterruptCounter es cero al inicio y luego se incrementará en 1 cada minuto a partir de las 09:25 AM, lo que indica que el OB10 se ejecuta cada minuto.
Reglas importantes para las interrupciones horarias
- Si configura una interrupción horaria de tal manera que el OB correspondiente se debe procesar una vez, la hora de inicio no debe ser anterior (en relación con el reloj de tiempo real de la CPU).
- Si configura una interrupción horaria de tal manera que el OB correspondiente se debe procesar periódicamente, pero la hora de inicio es anterior, entonces el OB de interrupción horaria se procesará la próxima vez que sea debido según la hora actual.
- La fecha de las interrupciones horarias periódicas debe corresponder a una fecha real. Por lo tanto, por ejemplo, la repetición mensual de un OB de interrupción horaria con una fecha de inicio del 31/1 no es posible. En este caso, un OB solo se inicia en los meses que tienen 31 días.
- Una interrupción de tiempo activada durante el inicio no se ejecuta hasta que el inicio se haya completado.
- Un inicio elimina todas las interrupciones de tiempo que se establecieron y activaron mediante una instrucción en el programa de usuario.
Conclusión
OB10 es un bloque de organización que se puede configurar para interrumpir el ciclo de su programa en un día y hora determinados. Esta interrupción puede ocurrir una vez o periódicamente cada cierto tiempo.
No hay una razón específica por la que necesitaría un OB10, ya que depende de su proceso y su lógica. Y sí, puede lograr la misma funcionalidad utilizando su código personal, pero es una función incorporada disponible y fácil de usar. Y usted sabe cómo usarla.