Bloques Organizacionales OB – PLCs

Muchas veces como estudiantes o como gente con presencia en la industria tenemos carencias en cuanto al conocimiento de la programación de PLC. Hecho que a mucha gente nos afecta para la promoción de un puesto o para la simple resolución de una falla. Explicaremos qué es y cómo funcionan los Bloques Organizacionales OB.

Muchas veces como estudiantes o como gente con presencia en la industria tenemos carencias en cuanto al conocimiento de la programación de PLC. Hecho que a mucha gente nos afecta para la promoción de un puesto o para la simple resolución de una falla. Explicaremos qué es y cómo funcionan los Bloques Organizacionales OB.

Bloques Organizacionales OB de un PLC.


Algo que es básico y necesario para poder profundizar en temas de mayor dificultad son los diferentes tipos de bloques de programa en un PLC.

Estos bloques no solo van a ayudarnos a tener una programación más estructurada si no también podremos optimizar los segmentos de código así como acceder a más herramientas con las que estos dispositivos cuentan.

En este Artículo, que consta de tres secciones a lo largo de tres semanas,  abarcaremos los distintos bloques, podremos conocer y aprender a aplicar dichas herramientas en los casos más convenientes.

Tipos de Bloques de Función.

Bloques Organizacionales OB.

Existen diferentes tipos de bloques, para comenzar esta serie de artículos nos enfocaremos en los bloques de organización. Estos tipos de bloques reaccionan a un evento en específico en el PLC y tiene la capacidad de interrumpir el programa del usuario. Tenemos bloques de alarmas horarias, de interrupción de hardware, de interrupción de fallo, de fallo de ejecución del programa, entre otros. Básicamente tenemos la oportunidad de mandar a llamar estos bloques para interrumpir al PLC en caso de que tengamos alguna especie de fallo o cuando un evento se cumpla y sea necesario pausar el programa.

En los PLC Siemens de la familia 300 y 400 podemos encontrar los siguientes bloques organizacionales OB:

Bloque estándar para la elaboración cíclica del programa de usuario.

  • Clase de evento: Principal (OB1)

OB de alarma horaria.

  • Clase de evento: Hora del día (OB10 a OB17)

OB de alarma retardado.

  • Clase de evento: Retardo de tiempo (OB20 a OB23)

OB de tiempo.

  • Clase de evento: Cíclico (OB30 a OB38)

OB de alarma del proceso.

  • Clase de evento: Interrupción hardware (OB40 a OB47)

OB de alarma de estado.

  • Clase de evento: Alarma (OB55)

OB de alarma de actualización.

  • Clase de evento: Alarma (OB56)

OB de alarma de actualización.

  • Clase de evento: Alarma (OB56)

OB para las alarmas específicas del fabricante.

  • Clase de evento: Alarma (OB57)

OB de alarma isócrona.

  • Clase de evento: Alarma (OB61 a OB64)

OB de fallo de tiempo.

  • Clase de evento: Interrupción de fallo (OB80)

OB de fallo de fuente de alimentación.

  • Clase de evento: Interrupción de fallo (OB81)

OB de alarma de diagnóstico.

  • Clase de evento: Interrupción de fallo (OB82)

OB de alarma de diagnóstico.

  • Clase de evento: Interrupción de fallo (OB82)

OB de extracción/inserción de un módulo hardware.

  • Clase de evento: Interrupción de fallo (OB83)

OB de fallo hardware en la CPU.

  • Clase de evento: Interrupción de fallo (OB84)

OB de fallo de ejecución del programa.

  • Clase de evento: Interrupción de fallo (OB85)

OB de fallo de comunicación.

  • Clase de evento: Interrupción de fallo (OB87)

OB de interrupción de la elaboración.

  • Clase de evento: Interrupción de fallo (OB88)

OB de segundo plano.

  • Clase de evento: Interrupción de fallo (OB90)

OB de arranque.

  • Clase de evento: Arranque (OB100, OB101, OB102)

OB de fallo de programación.

  • Clase de evento: Interrupción de fallo (OB121)

OB de fallo de acceso a la periferia.

  • Clase de evento: Interrupción de fallo (OB122)

Dentro de esta familia de bloques se encuentra el bloque principal  OB1  el cual ofrece la estructura básica para la programación y este es necesario para el programa de usuario.

Muchas veces al ser inexpertos o al comenzar a programar lo único que hacemos es programar en el OB1 lo cual puede ser funcional y hasta se pueden generar programas 100% aplicables, sin embargo, siempre será recomendable hacer uso de los otros bloques de programación como FB´s , FC´s , DB´s. De esta manera lograremos un mejor programa y lograremos utilizar más herramientas.

TUTORIAL.

Ejemplo de la utilización del OB de arranque OB100:

El OB 100 es un bloque de organización exclusivo para la configuración de arranque. Este OB100 tiene un valor jerárquico mayor lo cual hace que sea ejecutado antes que el OB1 y es el encargado de parametrizar los datos de inicio. Con este OB100 podemos indicar los valores de inicio de contadores, temporizadores y todos los datos que sean requeridos.


Para comenzar a programar tendremos que iniciar con la configuración normal del programa. Iniciaremos agregando un contador y un temporizador. Para hacer lo anterior podemos comenzar a programar en nuestro OB1 de manera tradicional.


Comúnmente podríamos poner directamente los valores del contador y del temporizador, o podríamos generar un botón el cual le diera el valor que quisiéramos como 5 eventos y 5 segundos al temporizador y al contador cada que fuera presionado.




En este último caso es necesario utilizar DB´s y el comando “MOVE” para mover el valor de 5 al temporizador y al contador (Los DB´s serán explicados en el siguiente articulo).

Como resultante tenemos un programa el cual al iniciar tiene los valores 0 del contador y del temporizador, al ser presionado el “BOTON_2”, es cuando van a adquirir el valor de 5 eventos y de 5 tiempos.


APRETAMOS EL “BOTON_2” y de esta manera asignaremos el valor de 5 y de T#5S.




Pero en el caso de que utilicemos el OB100, en éste tendríamos que asignar un valor de inicio. Con esto parametrizaríamos los valores iniciales y una vez que ya haya arrancado el PLC y ya esté corriendo el ciclo de SCAN del OB1 tendremos lo valores programados en el OB100. De esta manera podríamos tener de valor inicial 100 tiempos y 100 segundos y posteriormente los  podríamos cambiar a 5 tiempos y 5 eventos por medio del “BOTON_2”.

Para abrir el OB100 agregamos un nuevo bloque de programa y seleccionamos la carpeta STARTUP donde encontraremos nuestro OB100


Posteriormente asignaremos el valor que queramos al contador y al temporizador por medio del comando MOVE dentro de nuestro OB100 (El área de programación es igual a la de OB1)


Finalmente podremos ver que al correr el programa desde un principio tenemos nuestros valores de 100 eventos y 100 segundos, los cuales  con “BOTON_2” podremos cambiar a 5.



De esta manera es posible parametrizar los valores deseados cada que el PLC inicie, y posteriormente ya corriendo estos pueden ser modificados.

En nuestra próximo ENTRADA explicaremos LOS FB´s y DB´S con algunos ejemplos prácticos. Sigan leyendo.

Bibliografía Formato APA:

SIEMENS AG. (10/01/2010). SIMATIC Programming with STEP 7 V5.5. 14/02/2017, de SIEMENS AG Sitio web: https://support.industry.siemens.com/cs/document/45531107/simatic-programming-with-step-7-v5-5?dti=0&lc=en-WW

LBR iiwa – El primer robot colaborativo y sensible con el Humano.
Un robot desarrollado por la marca alemana KUKA es el primer brazo robótico producido en serie, capaz de trabajar de forma colaborativa con el humano sin causar daños, es muy seguro. Conoce el LBR iiwa.