• Skip to primary navigation
  • Skip to main content

ProgramaciónSiemens

Cursos online de automatización industrial con PLC Siemens

  • Cursos
  • Mi cuenta
    • Mi cuenta
    • Blog
    • Foros
    • Curso de iniciación a la Industria 4.0
    • Curso Express de TIA Portal
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso de TIA Portal para CPU 1200
    • Curso de Step 7 V5.x
    • Curso de comunicaciones IE y Profinet
  • Contacto

OB de fallo en Step7

por Iñigo Gútiez · 32 Comments

En esta entrada vamos a realizar un pequeño repaso de los OB de fallo en Step 7: qué son y para qué sirven.

ob de falloAdemá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.[divider]

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.[divider]

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 te dejo un PDF con toda la documentación. En él 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.[divider]

 

Referencias:

  • Bloques de organización (Capítulo 1)

 

Iñigo Gútiez

Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí

Puedes seguirme en cualquiera de las siguientes redes sociales.

Filed Under: ejemplos, Teoría, Trucos, Tutoriales, Videos Tagged With: fallos, OB, periferia

Reader Interactions

    Deja un comentario Cancelar

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

    32 Comentarios

  1. jorge says

    5 mayo, 2013 at 20:07

    Muy bueno,muy util sobre todo para descriminar la periferia en error dentro del OB 122.
    yo suelo tirar del sfc 12 y sfc 13 cuando me falla alguno, pero me ha gustado tambien tu tecnica.
    Enhorabuena por tu blog y dedicacion. un saludo

    Responder
  2. Iñigo Gútiez says

    5 mayo, 2013 at 21:39

    Gracias Jorge por el aporte.

    Un saludo,

    Responder
  3. Jose Antonio says

    24 mayo, 2013 at 20:17

    Hola Iñigo

    Muy bueno el tutorial , a mi el único fallo de los que has citado que me ha salido varias veces es el 121. Pero todo lo demás no sabía nada.
    Muy interesante, de verdad

    Responder
  4. DIEGO says

    5 junio, 2013 at 16:17

    Muy bueno y útil tu bloc excelente contenido, mis mas sinceros agradecimientos por tu valioso esfuerzo y dedicación.

    Responder
  5. Iñigo Gútiez says

    5 junio, 2013 at 18:55

    Muchas gracias Diego.

    Me alegra que te sea útil

    Un saludo!

    Responder
  6. fabian limones says

    18 agosto, 2013 at 3:35

    gracias

    Responder
  7. mauricio balcazar says

    14 abril, 2014 at 22:41

    muy bueno la verdad es que con palabras claras y directas al problemas es mas fácil solucionar nuestros incidentes gracias por tu dedicación

    Responder
    • Iñigo Gútiez says

      15 abril, 2014 at 22:23

      Muchas gracias!!

      Responder
  8. mauricio balcazar says

    14 abril, 2014 at 22:44

    me gustaría tener mas información sobre lo cursos de programación de plc online saludos

    Responder
    • Iñigo Gútiez says

      15 abril, 2014 at 22:22

      Hola Mauricio.
      No sé muy bien a que te refieres.
      A lo que puedes acceder es lo que hay de momento,

      Saludos

      Responder
  9. Zeno Martorana says

    23 mayo, 2014 at 13:37

    Apreciado Iñigo. Antes que nada te agradezco profundamente tus aportes al conocimiento de los sitemas con PLC. De verdad me han servido de mucha ayuda en momentos dificiles….. Gracias.

    Posteriormente, quisiera preguntarte, algunas cosas:

    1.- Puede usarse la introduccion de algunos de esto OB de Fallo, en un programa para poder detectar el fallo en las redes o de algun otro tipo?

    Solo para el momento de detectar la falla y luego quitarlos o bien, dejarlos para otra ocasion.

    2.- Dame un ejemplo de que programar en el OB82 para detectar el nodo ET200s que esta fallando o el fallo en otra unidad de I/O. No se como leer la ADDRESS del modulo en fallo desde las variables del OB82. Dame un ejemplo.

    Gracias por tu ayuda.

    Saludos desde Italia.
    Zeno Martorana.

    Responder
    • Iñigo Gútiez says

      23 mayo, 2014 at 14:24

      Hola Zeno,
      Puedes hacer por ejemplo que cuando un OB de fallo sea llamado vuelque la información a un DB que tu elijas para revisarlo posteriormente.
      En cuanto la variable que te da es la dirección básica (diagnóstico). Ahora mismo no sé si te la da en en decimal, hex o cómo. Haz pruebas con ello.
      Yo no tengo ningún ejemplo. Tendrás que averiguarlo haciendo pruebas.
      En cualquier caso, ojo porque el OB82 igual no es lo que estás buscando, sino por ejemplo el OB86.
      Te dejo una pequeña tablita con los errores que da cada uno.
      Está obtenido de aquí: http://cache.automation.siemens.com/dnl/jk/jkyMjAyOQAA_44240604_HB/s7sfc__d.pdf
      Error de tiempo (p. ej. sobrepasar el tiempo de ciclo) OB 80
      Fallo de la alimentación (p. ej. pila agotada) OB 81
      Alarma de diagnóstico (p. ej. fusible defectuoso en un
      módulo de señales)
      OB 82
      Alarma de extraer/insertar (presencia de módulo) OB 83
      Avería hardware de la CPU (p. ej. fallo en interface) OB 84
      Error de proceso del programa OB 85
      Fallo del bastidor OB 86
      Error de comunicación OB 87

      Ya nos contarás.

      Responder
  10. Zeno Martorana says

    25 mayo, 2014 at 17:57

    Como se conoce la direccion Base de un modulo.

    Como saber la direccion Base, si el modulo es local o esta en un Et200 periuferiuco.

    Gracias por tu ayuda.

    Responder
  11. José Carlos Sendarrubias Viñas says

    14 diciembre, 2014 at 19:09

    Me sumo al resto de comentarios. Muchas gracias por estos fantásticos tutoriales y sobre todo agradecer tu esfuerzo y tiempo en llevarlos acabo. Estoy iniciandome en la programación PLC´s y tus tutoriales estan siendo de gran ayuda.

    Responder
  12. Ginés Saura says

    31 julio, 2018 at 22:33

    Hola,
    He realizado varios problemas con TIA portal para un s71200 1214C ad-dc-rly, y el caso el caso es que mediante memorias diferentes activo en diferentes líneas del programa la misma salida y siempre me funcionan correctamente.

    ¿Es esto una casualidad? ¿Con otros PLC´s se puede hacer esto?

    Estoy intrigado, a ver si me puedes echar una mano.

    Gracias. Saludos. Ginés

    Responder
    • Iñigo Gútiez says

      31 julio, 2018 at 22:37

      Si es con Set/Reset, puede funcionar bien. Con una igualación, jamás debería hacerse, ya que la salida siempre tomará el ultimo valor. Es decir, si en dos puntos del programa hay una bobina con la misma salida, y ambos segmentos se ejecutan, el valor de la salida, será la segunda ejecución.
      Saludos

      Responder
  13. Yilber says

    2 agosto, 2018 at 5:56

    Pude sacar de STOP la cpu con lo del OB122 pero ahora me marca falla SF y BF no hay comunicacion entre los esclavos, he cambiado el cable y los Dp pero sigue el problema..

    Responder
    • Iñigo Gútiez says

      2 agosto, 2018 at 7:16

      Hola,
      Como entenderás, desde aquí poco puedo hacer o saber que le esta pasando.
      Si estaba funcionando bien hasta ahora, valora que alguno de los equipos este roto.
      Saludos

      Responder
  14. Jean Balcazar says

    4 julio, 2019 at 22:51

    Buenas tardes Íñigo saludos, amigo tengo un PLC S7 300 específicamente un 315 2DP el cual me indica error de periferia OB 122, la CPU está en Funcionamiento pero los les SF y BF están encendidos. Tengo una PG Simens pero el programa me pide una contraseña la cual no tengo, solo puedo visualizar el estatus de la CPU y me indica ese error (OB 122), por descarte ya cambié algunos módulos y conectores DP pero la falla continua. Gracias de antemano espero me puedas ayudar.

    Responder
    • Jean Balcazar says

      4 julio, 2019 at 23:10

      Para complementar está información me faltó acotar que este equipo estuvo parado aproximadamente 2 años y cuando se intenta arrancar nuevamente presenta la falla, incluso alguno de los módulos que se cambiaron presentaban oxidación producto de la humedad me supongo, hasta el CPU estaba un poco deteriorado y se cambió por uno nuevo pero usando la misma memoria SD. Crees que tal vez el programa este dañado o tal vez el problema provenga de alguno de los esclavos DP ????

      Responder
      • Iñigo Gútiez says

        4 julio, 2019 at 23:14

        Puede ser cualquier cosa. Imaginaras que poco o nada puedo decir yo desde aquí sin ver la máquina y sin poder conectar.
        Si hay cosas oxidadas puedes tener la electrónica deteriorada, los puentes traseros entre las tarjetas que no hagan bien contacto por óxido… a saber.
        Lo siento, pero en estas cosas no tengo medios de poder ayudar.
        saludos y suerte con ello.

        Responder
  15. Jean Balcazar says

    4 julio, 2019 at 23:44

    Para complementar está información me faltó acotar que este equipo estuvo parado aproximadamente 2 años y cuando se intenta arrancar nuevamente presenta la falla, incluso alguno de los módulos que se cambiaron presentaban oxidación producto de la humedad me supongo, hasta el CPU estaba un poco deteriorado y se cambió por uno nuevo pero usando la misma memoria SD. Crees que tal vez el programa este dañado o tal vez el problema provenga de alguno de los esclavos DP ????

    Responder
    • Josmar Peña Buitrago says

      16 octubre, 2019 at 15:18

      Hola te agradezco el Post esta muy interesante te comento tengo una periferia descentralizada con S7-1500 y efectivamente el OB86 me esta indicando cuando tengo la falla y en que periferia se esta presentando mi pregunta es existe alguna forma que yo pueda borrar el error del buffer de alarmas del PLC «Deje de parpadear el PLC en error y vuelva a operar normal la periferia» sin yo tener que llevar el plc a stop en este caso me encuentro trabajando con una CPU safety y es la forma que estoy empleando para normalizar la operacions Gracias.

      Responder
      • Iñigo Gútiez says

        16 octubre, 2019 at 19:13

        Sinceramente no entiendo a qué te refieres con lo de resetear del buffer. La alarma se quita cuando desaparece la causa que lo ha provocado. Si el PLC se ha ido a STOP porque ha aparecido un error y no hay OB de fallo acorde, no hay otra forma que yo conozca que arrancarlo nuevamente de forma manual, bien físicamente o con la maleta de programación.
        La alarma, no la puedes quitar si hay un problema. Es decir, si has configurado una periferia, y el PLC no la detecta, por ejemplo, no es posible que deje de dar una alarma por algo que efectivamente está mal, ya que debería encontrar la periferia, y esta no la encuentra.
        Pero como digo, no entiendo muy bien qué es lo que quieres hacer, ni cual es el problema descrito.

        Responder
  16. Xavi says

    6 noviembre, 2019 at 8:18

    Buenos días,
    Tengo que hacer una red en profinet, el master es un S7-1200 y la periferia con et200S.
    Mi duda es:
    Si se va la comunicación entre la CPU y la periferia, las salidas digitales de las ET200S se van a 0?
    Y se restablece una vez vuelve a comunicar?

    Muchas gracias.

    Responder
    • Iñigo Gútiez says

      6 noviembre, 2019 at 16:41

      Depende de la periferia, y de cómo esté configurada. Si tu periferia tiene valor sustitutivo en su configuración, este es el valor que toma cuando la CPU se va a STOP o falla, como sería el caso de la pérdida del lazo PN. O eso es lo que interpreto yo. Pero de todas formas, la mejor forma, es probándolo cuando tengas oportunidad. Echa un vistazo a esta entrada donde precisamente se habla de ello: https://support.industry.siemens.com/tf//ww/en/posts/et200s-io-module-behaviour-when-communication-is-lost/110818?page=0&pageSize=10

      Responder
  17. Juan says

    14 noviembre, 2020 at 4:44

    Muchas gracias por tu información me gustaría que me explicarás o mandaras un pdf de cómo encontrar un fallo cuando falla algo de los componente físicos así como sensores etc..
    Un saludo a ver si puedes alludarme gracias

    Responder
  18. genaro rodriguez says

    12 diciembre, 2020 at 18:11

    buen dia iñigo, te saludo desde mexico, tengo un detalle con un plc S7 314 V 2.0, este controla una maquina de combustion interna de un generador de voltaje, este trabaja bien en arranque y paro de la maquina, lo unico es que al parar la maquina debe mandar a arrancar una bomba de lubricacion de aceite, y la falla es que no activa la salida de arranque del motor electrico, ya revise todas las entradas analogicas y digitales y todas estan de acorde a c omo esta en las otras maquinas que son iguales y estan operando bien. solo el plc no manda a activar la salida digital. este no tiene ningun error ni led encendido de fallo. saludos

    Responder
    • Iñigo Gútiez says

      12 diciembre, 2020 at 19:53

      Entenderás que poco puedo hacer. Es un problema que tendréis que analizar allí y buscar la solución vosotros mismos.

      Responder
  19. Gregorio says

    19 diciembre, 2020 at 11:44

    Tengo un S7 300 con CPU 315 y aún cuando no presenta falla alguna los equipos que controla no arrancan. Que puede estar pasando?.

    Responder
    • Iñigo Gútiez says

      19 diciembre, 2020 at 11:52

      Hola Gregorio. Como entenderás, no lo sé. Tendrás que mirar el diagnóstico del sistema y tirar del hilo para ver qué está pasando. Pueden ser mil cosas.

      Responder
  20. Liazid benaixa says

    13 enero, 2021 at 9:25

    Muy bueno muy interesante

    Responder
  • Aviso Legal y Política de Privacidad
  • Condiciones de Venta
  • Política de cookies
  • Contacto
  • Blog

Copyright © 2021 · Programación Siemens · Todos los derechos reservados

· ¿Quién soy? · Misión, Visión y valores