En artículos anteriores comenzamos a analizar los diferentes bloques de organización de los PLC TIA Portal, hablamos sobre qué son los OB y analizamos algunos de los OB como OB1 (cíclica principal), OB10 y OB20 (interrupciones de retardo de tiempo del día y de retardo de tiempo, respectivamente). En este artículo, hablaremos sobre el OB100 o el bloque de organización de arranque en Siemens Tia Portal.
Contenido:
- ¿Qué es el OB100?
- ¿Por qué se necesita el OB100?
- Notas importantes durante el arranque.
- Ejemplo de programa simple.
¿Qué es el bloque de organización de arranque (OB100)?
El OB100 o el OB de arranque es un bloque de organización que el sistema operativo llama y ejecuta una vez al arrancar el PLC, es decir, una vez cada transición del modo STOP al modo RUN.
El OB1 de ciclo principal no se llamará ni se ejecutará hasta que se ejecuten todas las funciones de arranque dentro del OB100.
Puede tener más de un OB de inicio en la lógica de su PLC; si esto sucede, el sistema operativo los llamará y ejecutará todos uno por uno, comenzando desde un número de OB más bajo hasta un número más alto. Es decir, si tiene OB100 y OB123, se llamará y ejecutará primero el OB100 y luego el OB123.
Después de ejecutar el OB100, el sistema operativo leerá los módulos de entrada en la PII e iniciará el programa de ciclo principal OB1.
¿Por qué necesita el OB100?
El OB100 se utiliza para muchas tareas que puede querer o necesitar realizar antes de iniciar su lógica cíclica, por estos motivos:
- Inicializar variables.
- Reiniciar módulos del sistema.
- Recalibrar sensores/actuadores.
- Verificar alarmas y condiciones de seguridad antes de iniciar su proceso.
Incluso si no ha creado un OB de inicio para su lógica, el sistema operativo aún tiene muchas tareas que necesita ejecutar antes de iniciar su lógica principal, algunas de estas tareas son:
- Borrar memorias no retentivas
- Borrar el PIQ
- Llamar y ejecutar OB de inicio, si los hay.
- Actualizar PII
- Habilitar salidas después de cambiar al modo RUN.
¿Observó que la última tarea de una rutina de inicio es habilitar las salidas? Es por eso que el primer paso para ejecutar el programa de ciclo principal OB1 es escribir el PIQ en el módulo de salida.
Notas importantes durante el inicio
Tenga en cuenta los siguientes puntos con respecto al modo “STARTUP”:
- Las salidas en los módulos están deshabilitadas.
- La imagen del proceso se inicializa.
- La imagen del proceso no se actualiza.
- Para leer el estado actual de las entradas durante el “STARTUP”, puede acceder a las entradas a través del acceso directo de E/S.
- Para inicializar las salidas durante el STARTUP, los valores se pueden escribir a través de la imagen del proceso o a través del acceso directo de E/S. Los valores se emiten en las salidas durante la transición al modo “RUN”.
- Se inicializan las memorias de bits no retentivas, los temporizadores y los contadores.
- Se inicializan las etiquetas no retentivas en los bloques de datos.
- Durante el inicio, todavía no se ejecuta ningún monitoreo del tiempo de ciclo.
Ejemplo de programa simple
En este ejemplo, agregaremos un OB100 de inicio a nuestra lógica de PLC y veremos cuántas veces se ejecuta el OB100. Vea la imagen 1 para agregar un nuevo OB100.
Imagen 1: Agregar un OB100
Como puede ver en la última imagen, agrega bloques de organización de inicio de la misma manera que agregamos una función de un bloque de función.
Dentro del OB100 que acabamos de crear, agregaremos una instrucción ADD simple para acumular cuántas veces se llama y ejecuta el OB100. Vea la imagen 2.
Imagen 2: Acumule los tiempos de ejecución de OB100
Ahora, compile y ejecute su programa y vea qué sucede. Vea la siguiente animación para una simulación del programa PLC.
Animación 1
Como puede ver en la animación anterior, el contador de ciclos OB100 es 1 y no cambia cuando el modo PLC pasa de STOP a RUN.
Bueno, sí cambia, pero no ve este cambio. Cada vez que el PLC pasa al modo STOP y luego al modo RUN nuevamente, el contador se restablecerá a cero y luego a 1 nuevamente después de que se ejecute el OB100. También puede ver que el contador de ciclos OB1 principal cambia y, cuando el PLC se detiene y luego se ejecuta nuevamente, el contador de ciclos OB1 comenzará a acumularse nuevamente.
Para ver el cambio en el contador de inicio, necesitamos conservar el valor de la memoria de etiquetas. Consulte la imagen 3.
Imagen 3: Retener la memoria de la etiqueta OB100CycleCounter
Después de retener la etiqueta OB100CycleCounter, ahora ejecute la simulación del PLC nuevamente y vea qué sucede. Consulte la animación de simulación 2.
Animación 2
Ahora puede ver en la animación anterior que el contador de inicio aumenta cada vez que detengo el PLC y luego lo reinicio. Como ahora se retiene la memoria de la etiqueta, el valor no se restablecerá a cero y es por eso que ve que el valor del OB100CycleCounter se acumula.
Ahora, necesito agregar una funcionalidad adicional a mi lógica de inicio del PLC, que es saber cuándo fue el último inicio del PLC. Lo lograremos a través de una lógica simple donde leo la hora local del PLC al inicio y muevo la fecha y la hora a un área de memoria determinada. Ver imagen 4.
Imagen 4: Lectura de la hora local al iniciar
Después de agregar la lógica, compile y ejecute la simulación nuevamente. Vea la animación de simulación de PLC 3.
Animación 3
Puede ver en la animación anterior que cada vez que se inicia el PLC, la fecha y la hora de inicio se registrarán en el área de memoria que asignamos. Así que ahora tengo la información sobre cuántas veces se inició mi PLC y cuándo fue la última vez que se inició.
Conclusión
Los OB de inicio son muy importantes si desea evaluar alguna funcionalidad antes de poder ejecutar su proceso cíclico. Puede usar OB de inicio para inicializar parámetros, calibrar sensores e incluso verificar las condiciones de seguridad antes de permitir que se ejecute su proceso.