En esta entrada vamos a realizar un pequeño repaso de los OB de fallo en Step 7: qué son y para qué sirven.
Además, veremos que podemos hacer con ellos ya que en general, aunque no se manipulen en exceso, se pueden utilizar para gestionar el funcionamiento de la maquina en función de cual sea el fallo producido.
Qué es un OB de fallo
Un OB de fallo es un bloque de función que tiene las siguientes características:
- Puede existir en nuestro proyecto o no. Sólo depende de ti a la hora de programar el proyecto.
- Son específicos. Cada uno de ellos hace referencia a un fallo en concreto.
- No se ejecutan salvo cuando se da el fallo en cuestión (y exista lógicamente).
- Si no existen en el programa del PLC, este puede irse a STOP en función de la severidad del fallo.
- No todos los OB de fallo están presentes en todas las CPU (aunque sí la mayoría).
Vale. Ya ves que son unos bloques un tanto especiales.
Listado de OB de fallo.
- OB 80 - Error de tiempo
- OB 81 - Error de la fuente de alimentación
- OB82 - Alarma de diagnóstico
- Ob83 - Alarma de insercción/extracción
- OB84 - Error de hardware CPU
- OB85 - Error de ejecución de programa.
- OB86 - Fallo de un aparato de ampliación, sistema maestro DP o periferia descentralizada
- OB87 - Error de comunicación
- OB88 - Ejecución interrumpida
- OB121 - Error de programación
- OB122 - Error de acceso a la periferia
Además de estos OB de fallo existen otros como son el OB70 al 73 que son para CPU H redundantes.
En las referencias tienes indicada la documentación de Siemens sobre estos bloques. En ella podrás saciar tus ansias de conocimiento más en profundidad.
Pero este post no va de eso. Quiero que veas para qué sirven en general. Luego tú serás el que busque el OB adecuado para cada ocasión.
La parte fundamental es que si se produce un error y el PLC hace una llamada al OB correspondiente, puede suceder:
- Que el error no sea grave y exista el OB o no, la CPU no se vaya a STOP
- Que el error sea grave y el OB no exista con lo cual la CPU se irá a STOP
- Que el error sea grave y el OB sí exista, con lo cual, salvo que tu lo programes, la CPU no se irá a STOP.
Los OB de fallo típicos son el OB80, el Ob85, el OB86, el OB122... y poco más.
El OB80 es muy típico cuando estás programando en la puesta en marcha. Haces un bucle que no tiene salida y zas... a STOP. Lógico. Superas el tiempo de watchdog y de ahí que se vaya a STOP. No es bueno que lo cargues ya que si se va a STOP porque estas programando un bucle que por una mala programación se vuelve infinito, mejor saberlo ¿no? Porque la que se puede liar es importante.
El OB85 se da en general cuando haces una llamada a un bloque que no existe... típicamente cargas el FB y se te olvida que este chiquitín lleva consigo un DB.
Más típicos de cargar pueden ser por ejemplo el OB86 y OB122. Imagina que tu red profibus está compuesta por varias maquinas, alguna de ellas no es digamos crítica. Puede que te interese tirar la tensión esa parte de la máquina y apagar la periferia que tengas ahí. Entonces, tendrás que cargar estos módulos para cuando quieras mantener esta parte de la instalación, la CPU no se vaya a STOP.
Al contrario, si es peligroso que un esclavo se pueda ir a fallo, es interesante que la CPU vaya a STOP siempre, con lo cual, no cargarás dichos módulos.
Vamos, que lo de la carga de estos módulos, ni si ni no, ni todo lo contrario: depende de la aplicación.
Para que la CPU no se vaya a STOP, simplemente tiene que existir el OB. Por ejemplo digamos el OB122. Dentro de ese OB122 no tienes porqué programar absolutamente nada salvo que lo desees. La simple existencia de dicho OB hará que la CPU no se vaya a STOP por el motivo por el que fue llamado este módulo.
Además, cada bloque tiene asociado una serie de variables que te van a servir para identificar el problema y así vas a poder tomar decisiones, como llevar a STOP el PLC o no.
Para finalizar te ofrezco un nuevo video explicando un poco su uso y alguna cosilla interesante.
Referencias:
- Bloques de organización de Step 7 (Capítulo 1), documentación de Siemens.
Comentarios (42)