Está en la página 1de 8

Bloques de organización (OBs)

1. Introducción

Los bloques de organización constituyen la interfase entre el sistema operativo de la CPU y


el programa de usuario. Con la ayuda de los OBs es posible seleccionar la ejecución de
partes de programas:
a. Al arrancar la CPU
b. En ejecución cíclica o también intermitente temporal
c. A determinadas horas o en determinados días
d. Después de transcurrir un tiempo preestablecido
e. Al producirse errores
f. Al dispararse alarmas de proceso.

Los bloques de organización se procesan en correspondencia con la prioridad que tienen


asignada.

2. OBs disponibles

No todas las CPUs pueden procesar todos los OBs disponibles en S7. En las listas de
operaciones /72/ y /102/ encontrará la información necesaria al respecto

Los OB´s en S7 aunque pueden generarse como nuevos bloques, es recomendable que
sean importados de la librería Standard Library de Step 7. En caso contrario, el nombre
simbólico de la OB no será importado a nuestro proyecto (en versiones anteriores a la
versión 5 de Step 7, tampoco los símbolos de las variables temporales de la tabla de
declaración de variables de la OB).

1.1 El OB1.
El OB1 es la subrutina principal en la que empieza el ciclo de programa de PLC y por la que
finaliza. Toda subrutina para poder ser ejecutada debe de ser llamada desde la OB1. De no
ser así no se ejecutará, pese a encontrarse en la memoria del PLC.
En la tabla de declaración de la OB1 existen una serie de parámetros que pueden ser de
utilidad para el programador. Estos son:

 OB1_PREV_CYCLE INT : Tiempo de ejecución del ciclo anterior (en ms).


 OB1_MIN_CYCLE INT : Tiempo de ciclo mínimo (ms) desde el último arranque.
 OB1_MAX_CYCLE INT : Tiempo de ciclo máximo (ms) desde el último arranque.

Mediante el uso de estos valores temporales podremos controlar que la CPU se nos va a ir por
tiempo de ciclo. Este es un problema que puede pasar al programador en una puesta en
marcha, al ir añadiendo rutinas al programa, con lo que aumenta el tiempo de ciclo. Puede
llegar el momento en que sobrepasemos el valor preseleccionado en Hardware de la CPU.
Si esto es así, la instalación se para, lo que en ciertas aplicaciones críticas puede ser
desastroso.
Para evitar este inconveniente, podemos comparar OB1_MAX_CYCLE INT con nuestro
tiempo de ciclo, y si nos acercamos al mismo activar un mensaje o hacer sonar una sirena.
En dicho caso, podrías utilizar la SFC43 que nos relanzaría el perro guardián, aunque es
preferible ir a hardware y aumentar el tiempo de vigilancia de ciclo.

1
PLC II Ing. Eddie Sobrado
(IMPROMIR PAGINA 1-2 1-3 1-5)

6.1.2 OB’s de alarma horar. ia (OB 10 hasta OB 17).-


Un OB de alarma horaria es una subrutina que automáticamente es llamada por el sistema, una vez o
cada cierto periodo de tiempo, a partir de una fecha y hora determinada. Disponemos en S7 de ocho
OB´s distintas para estos menesteres, pero los S7 300 únicamente soportan una de ellas, la OB10.

La mayor utilidad de este tipo de funciones es según las utilicemos:


Arranque único: útil para avisar desde un display de un determinado evento que ocurrirá en una
fecha determinada a una hora determinada.
Arranque cíclico: útil para labores de mantenimiento (engrase de cojinetes, aviso de revisión de
motores, etc...).

Los intervalos de llamada que aceptan las OB´s de alarma horaria son:
una vez
cada minuto
cada hora
cada día
cada semana
cada mes
cada año.

Existen dos maneras o formas de arrancar las alarmas horarias:


desde el Hardware de Step 7, de manera automática.
A través la SFC 30 del sistema, que nos permite además ajustar la frecuencia
de llamada.

A continuación se muestran los pasos a seguir para el primero de los casos:


arrancar la alarma horaria desde Step 7. Dentro de Hardware, parametrizamos la alarma como
muestra la figura inferior.
Necesitaremos disponer de la OB10 en nuestro PLC, por lo que la importaremos de la librería
Standard Library->Obs. En caso contrario, cuando se cumpla el tiempo seleccionado, al no encontrar
la OB en cuestión, el sistema busca la OB85 (error de programación de módulo), y si tampoco la
encuentra, el equipo pasará a stop.
Dentro de la OB podemos programar una señal alterna a la M0.0 (ver apartado ladrillos de un
programa). Si asociamos esta señal en la OB1 a una salida de nuestro equipo, observaremos una
cadencia de activación de 1 minuto en la misma.

2
PLC II Ing. Eddie Sobrado
La segunda posibilidad es controlar la alarma horaria a través de funciones de sistema. Podemos
configura, como ya hemos visto, la fecha y hora de arranque de la alarma horaria desde Step 7, pero
también a través de la SFC28. Los parámetros de la SFC28 son:

3
PLC II Ing. Eddie Sobrado
Un ejemplo del seteo de una nueva parametrización de fecha y hora a una alarma horaria es el
siguiente:

Una vez se dispone de la parametrización correcta de fecha, hora y frecuencia


para el tratamiento de la alarma horaria, es necesario activarla con la SFC30.

4
PLC II Ing. Eddie Sobrado
Los parámetros de la misma son:

Una vez arrancada la alarma horaria se puede detener llamando a la función del
sistema SFC29, como muestra la figura:

5
PLC II Ing. Eddie Sobrado
Es importante tener en cuenta que una vez se haya detenido la alarma, se requiere volver a asociar
con la SFC28 una fecha y hora a la alarma antes de arrancarla de nuevo con la llamada a la SFC30.
En cualquier momento podremos consultar el estado de la alarma horaria mediante la SFC31.

6
PLC II Ing. Eddie Sobrado
6.1.3 OB's de alarma de retardo (OB 20 hasta OB 23).
Las OB´s de retardo sirven para ejecutar una acción un tiempo después de que produzca un evento.
No se repiten automáticamente, por lo que necesariamente deberemos de volver a lanzar la llamada
desde el código de nuestro programa.
Los equipos S7 en principio disponen de 4 alarmas de retardo, que activan respectivamente de la
OB20 a la OB23 (en los S7 300 sólo está habilitada la OB20).
Supongamos que deseamos engrasar un motor diez horas después de que arranque el mismo. En
principio se podría pensar en utilizar un temporizador con retardo a la conexión memorizado. El
inconveniente estriba en el hecho de que la base de tiempo de un temporizador es de 9990 segundos
como máximo, por lo que tendríamos que recurrir a combinaciones de temporizadores. Con una
llamada a la OB20 solventaremos el problema, ya que la base de tiempos de llamada es de formato
TIME, muy superior a S5TIME, la base de los temporizadores S5.
Para arrancar la llamada a la OB20 utilizaremos la SFC32 según la figura siguiente.

Los parámetros de la función del sistema son:

7
PLC II Ing. Eddie Sobrado
Una vez arrancada la alarma de retardo, y antes de que se cumpla el tiempo y
salte automáticamente a la OB asociada, podemos bloquear la llamada a la misma
mediante la función SFC33.

8
PLC II Ing. Eddie Sobrado

También podría gustarte